0 Members and 1 Guest are viewing this topic.
Yeah, I was doing it naively (11 T-states at 4MHz), but hadn't remembered the obscure way the cycles are stretched in order to share the bus with the video hardware (still not entirely sure how 3 memory cycles becomes 4us but I assume it's been measured/analysed).
I was a bit surprised myself to find the game was using a complete screen clear to start each frame as well considering it's moving reasonably fast for a software scroll, as it's hard to imagine that approach being optimal on the CPC.I made the clear timing estimate closer to 300 scan lines though, I suspect your time has been based on T-states or a 3 microsecond push, while push actually takes 4 microseconds on the CPC. I went and timed the clear routine in use in stormlord and it works out to 335 scan lines in all.But yeah it's hard not to think that surely keeping track of trailing edges & sprites to clear would be faster, without doing any code on it at least, but I guess it's one of those cases of presumably it was something like 100 scan lines on the spectrum and that could seem like a small price to pay for a much simpler approach.
@Axelay How do your games scroll smooth? Edge grinder appears to scroll just 1 mode 0 pixel a time and is fast and smooth? Are there any drawbacks? Only suitable for a shoot em up or maybe a simple platformer along the lines of Turbo the Tortoise but all smooth?
So in regards to Dynamite Dux which is also using a software scroll and a smaller screen (I think) while scrolling quite smoothly, are they replacing the whole screen, or are they just replacing the bits that are needed?I've always been very impressed by the speed of that game, but I'm guessing this has a lot to do with the frame rate being quite consistent from what I remember.
All but Sub Hunter are hardware scrolls. Edge Grinder is 1 mode 0 pixel per frame at 25FPS. The technique used has a couple of drawbacks. From a hardware point of view, it uses manipulating CRTC register 3, the monitor H-sync, which generally only works on analogue CRTs like the amstrad monitors.The other drawback is that the R3 technique only gets you down to a two mode 0 pixel scroll, so in order to get a one mode 0 pixel scroll, the background graphics on one of the double buffered screens are offset by one mode 0 pixel, so a mode 0 pixel scroll can be achieved. The problem that creates is you cant really *stop* scrolling without ceasing to use the double buffer.The way the scrolling stopped at the end of Super Edge Grinder for the boss was to copy one buffer to the other, the lack of on screen action at that point hid the cpu time used by that process. So in general the scrolling method used in Edge Grinder is best suited to continuous scrolling shooters, though it's always conceivable that someone could come up with a game design that might just work it into some other genre.It uses a tile system similar in principal to that used in stormlord, save it's an 8 way scroll, and skips the screen clear that used and instead redraws the entire screen with the tiles, then places the sprites on top. But yeah, the play area is quite small too, just 24 chars wide and 16 high.
Is it possible (and hopefully faster) to just scroll part of the game area. For example the bottom 64 pixels (ground with 16x16 tiles with a depth of 64, 48, 32, 16) scroll while the top area (a backdrop image) stays static with the added bonus of it looking like parallax scrolling? With the player character able to move up and down normally between the two?
Page created in 0.166 seconds with 36 queries.