I've always been surprised that nobody's done this game. It's a pretty nifty title that got several remakes and showed up in a bunch of classic packs, and is the exact kind of game where anybody running it is probably thinking "if only I had superhuman reflexes to dodge all of these projectiles and get shots in during 3-frame margins of error." I think the barrier to entry for a TAS of this is low, so I'll make this my first! Wish me luck!
For the unfamiliar, Gain Ground is a game about killing stone age barbarians with missile launchers and robots with spears. Actually there is a plot but it only explains one half of that. The Genesis version has 10 more levels than the arcade version. I'm running Gain Ground (UE) [c][!] as NTSC, but this syncs with the Japanese version as well so whatever.
The difficulty settings are weird, especially in 2P. Hard gives you all characters at the start but doesn't let you recruit any, which is "hard" because on lower settings, some characters can be gained more than once, giving you more chances in the later stages. I think Hard also removes a captive from the map when you die even if you aren't escorting it. Really, this means Medium and Hard are fundamentally different, some characters are unusable early on Medium and some can't be doubled, but character selection takes less time. A 100% run is also completely different since 100% on Hard just means kill all enemies, but 100% on Medium would mean kill all enemies AFTER rescuing.
I'm just doing a vanilla speed run: Hard difficulty, 2 players. All stages will be cleared via kills, which is more of a guess than a goal: There are other strategies that might be faster, mainly suiciding everyone but one character and going straight for exits where possible. The problem is that it's a totally-different strategy and requires spending well over a minute killing characters. Given the current pace of the run, it's highly unlikely that a mass suicide is faster on Hard.
I'm going to do 2P because it's faster and will probably be more technically interesting.
Damage:
- Most attacks do 1HP damage
- Boomerangs, grenades, missiles, fireballs, and Knight basic attacks all do 2HP damage
- Tornados do 2HP damage every AI frame (which is every 2 frames) that they are in contact with an unphased enemy. Some enemies do not bounce the tornado when collided with. Many (mostly bosses) do not collide or phase, and take massive damage.
- Water Knight special does 2HP damage to enemies that it fails to stun
- Glow Knight and Mud Puppy special attacks do 3HP damage
Character walk speeds: Cardinal/Diag (in subpixels/frame)
Spears/Archers: 192/134
Boomerangs/Grenadiers/Knights/Rifles/MGs: 144/100
Heavies: 96/67
Some thoughts/notes:
- Explosives do NOT do splash damage
- Scrolling past characters takes 25 frames
- Killing a player takes about 146 frames
- Most enemies will be killed instantly if you contact them during the character select invincibility. This doesn't apply to the demon turrets.
- Character selection has a weird behavior where the ability to SELECT a character will be available 3 frames later for one of the two players, and this is independent of lag. (There is lag when selecting a character). However, scrolling characters is NOT delayed, so I'm generally trying to make the character eating the selection delay the one that has to change characters, where applicable. Which player gets the laggy select seems to vary.
- If a player's projectiles are live when a player dies, character selection is delayed until the projectile disappears.
- Death delays stage completion until the dead player can select a character.
- Loose projectiles do NOT delay stage completion
- C attacks can not refire until the projectile disappears. Fade-outs (i.e. tornado) and explosions also delay refire.
- Handedness only matters when facing directly up or down.
- Projectile are offset from your sprite. Characters with high B fire offsets (i.e. spears, archers) need 4px of clearance from an obstacle directly above them or they will hit it.
- Projectile refires can be ordered on the frame that the sprite disappears.
Watches:
FFA801: P1 X
FFA81F: P1 subpixel X
FFA803: P1 Y
FFA821: P1 subpixel Y
FFA901: P2 X
FFA91F: P2 subpixel X
FFA903: P2 Y
FFA921: P2 subpixel Y
Subpixels are reset to zero on direction change (this also prevents movement for a frame). Stage change subpixel optimizations are not possible because character selection resets your movement state to stopped.
I'm updating the WIP GMV every stage!
You can get the current GMV here.
1-1: Athra+Athra
1-2: Athra+Verbal. Moving Verbal down at the end (on that exact frame no less) causes the top-right enemy to move down, allowing it to be killed 4 frames sooner.
1-3: Athra+Gascon. Gascon commits suicide to reduce selection time on Verbal. It looks possible to manipulate the top spear thrower to move left and be killed by a vertical spear shot before Ashra can contact it, allowing for 2 frames saved by better movement, but I haven't been able to duplicate that with Gascon selected. If Ashra is another pixel to the right, he'd get hit by the spear, another left and the bottom enemy wouldn't die from invincibility contact.
1-4: Athra+Athra: Needed to kill a few enemies from invincibility contact to prevent projectile firing from causing lag. P2 kills a ground archer early to prevent it from firing right and interfering with the ledge kills.
1-5: Athra+Athra: Not much to say.
1-6: Athra+Athra: And up goes my rerecord count! Tweaked P2's shot timing to avoid lag at the start.
1-7: Athra+Athra: P2 cuts to the center to get some useful movement in during a 7-frame period where he can't go above a certain height without the top-right enemy firing.
1-8: Athra+Athra: I tried a bunch of routes here, this one turned out the fastest. I'm not thrilled with it.
1-9: Athra+Verbal: The benefits of Verbal's faster projectile speeds and range come to light.
1-10: Athra/Gascon+Mars: Mass suicide. P2 actually kills his turret faster than P1 due to P1 having to dodge projectiles. Mars was originally picked so he would die on this stage, but due to a faster kill in 2-5, he stays alive. This doesn't actually cost frames. The boss has some WEIRD immunity behavior, sometimes you can hit it for 2 consecutive frames, usually you can't, and it looks like it's per-player. All I can say is every shot is taken at the exact frame it is for a reason.
2-1: Verbal/Verbal: Manipulated the last archer to a slightly better position.
2-2: Verbal/Verbal: The opening volley causes lag but the contact kills save time. P1 logjams enemies on P2's side to reduce wait. Manipulated an enemy on P2's side to avoid it moving up into his path.
2-3: Verbal/Verbal: The stage is bottlenecked on the top ambushes and it's faster for P1 to ignore the roof enemies so that they trigger as soon as possible.
2-4: Verbal/Verbal.
2-5: Verbal/Mars: The stage is bottlenecked on a single ambush chain and P1 gets first input. This leaves plenty of time for P2 to lose a character without costing any frames. I edited Mars' death in 1-10 out and moved it to here.
2-6: Verbal/Verbal: It's faster to shoot projectiles to the opposing side due to the weird angles.