I wonder if this used stuff like Celtic or xLIB scroll routines real(4? Sorry I forgot to add this to archives finally (added now), but when playing again, this is what I wondered. In xLIB xLIB Revolution and Super Mario Smash Dance, what I did is that I stored each kind of arrows and their position in lists before simfile starts, then during the game main loop, what I did is that I displayed the appropriate arrow at the bottom of screen and then the background image (which usually contained a HUD and/or other stuff). When doing the later I updated the LCD display. Then I immediately erased the background then did real(4 to scroll the screen 8 pixels up. The only time where the LCD was actually updated was when the background image was displayed. Doing this allowed me to have as many arrows on the screen as I wanted (8, in my case), and no matter how many there were on the screen, it still wouldn't slow things down. Also, each arrows locations were stored into a list so if such engine was adapted for something like your game or a racing game, collision detection wouldn't be that hard. The only problem is that if the projectiles locations are randomized, then game would take a ridiculous amount of time to load when starting up.