This completes the Atari 7800 first stage in expert mode. Note that this is effectively a completely different game than the MSX version of Galaga, with unique sound and different enemy patterns (although the same basic concept).
Two shots can be fired at once with a minimum of 5 frames between shots. Shots stop being counted (are returned for use) before they reach the top of the screen and immediately on impact with an enemy. Shooting causes the shot to be registered immediately by the game then two frames later the firing animation occurs.
There are 152 possible horizontal positions with 0 being the far left and 152 being the far right as tracked by the memory addresses below. Note that the first address updates the frame after input and the current ship position updates two frames later. The ship position value jumps by two when moving quickly, but only updates every other frame.
065A b u 0 RAM1 Next ship pos.
048F b u 0 RAM1 Current ship pos.
060B b u 0 RAM1 Shot 1 fired
060C b u 0 RAM1 Shot 2 fired
The selection of Expert mode happens as soon as possible (in fact, the word Expert does not get a chance to be displayed). There is a "frame rule" of sorts where the next wave of enemies happens at a set time, even if you eliminated the previous wave long ago. This leads to pauses where nothing happens for a few seconds seconds. I shoot all of the enemy ships at the earliest possible frame anyway, although given the amount of time to play around there's plenty of opportunity for trick shots to mix things up. I'm somewhat concerned that I don't move around enough between waves to keep things entertaining, but there's really only three things you can do: Go left, go right, or stay put. And maybe shoot at thin air.
While it might sound like this is horribly boring, I spent hours playing Galaga on the family Atari 7800 as a kid and making this WIP brought back fond memories. I'm looking forward to doing the rest of the challenge stage sometime soon so I can do a few trick shots and make the run a bit more entertaining. Enjoy and let me know what you think,