qbradq wrote:
Rad Racer is a good example. It's mapper (MMC1) does not have IRQ support. I uses mid-hblank scroll changes to make the 3D road effect (I think). Not sure how this is accomplished though.
I've reverse engineered Rad Racer once and if I remember well it runs all game logic on the top of the screen (variable CPU cycle timing) then rely on a sprite zero hit on the start of the road.
Then the first part of the road (the one that bends up/down) is done with a chain $2006 writes, the lower part is just done with a chain of $2005 writes, and then the program just displays the status bar and wait for next VBlank.
Fortunately for them they were able to code the game so that the logic always ends before the road. This should have been harder to do than it sounds, as it would be terrible if the logic would take longer, and the program would "miss" the sprite zero hit.