Submission #4343: CoolKirby's A7800 Choplifter in 02:48.77

System Atari 7800 Emulator BizHawk 1.7.0
Game Version USA Frame Count 10113
ROM Filename Choplifter (1987) (Atari).a78 Frame Rate 59.9227510135505
Branch Rerecord Count 5213
Unknown Authors CoolKirby
Game Choplifter
Submitted by CoolKirby on 6/21/2014 9:37:50 AM

Submission Comments
Choplifter is a cool game, and one of the few games that got ported from home systems to the arcade instead of the other way around.
Besides being fun to play in real-time, it's also a great game for TASing. It has fast-paced and lag-free gameplay, nice graphics, and simple mechanics. Both moving up and down and rotating the helicopter don't decrease your horizontal speed, which is great for both optimization and entertainment.

About the run

  • Emulator used: BizHawk 1.7.0 (also syncs on 1.7.1 as well as 1.6.1, for those who can't run 1.7.x)
  • Aims for fastest time
  • Colors a rectangle
  • Genre: Shooter
I started this run a week and a half ago after blindly playing through a few Atari 7800 games for good ones to TAS. My original run contained some now-obvious mistakes, like shooting the bases right before landing and taking the time to destroy tanks guarding bases. I started over when I found out that shooting the bases earlier was faster.
Unfortunately, this game is not at all hex-friendly: performing the same input a few frames earlier will move the chopper differently and cause a desync. For instance, moving a hundred frames of flying low to the ground for entertainment by 20 frames would always cause the helicopter to hit the ground at some point. While this meant I had to redo everything, I'm glad I did because the run looks better now.

About the game: Suggested movie description

The evil Bungeling Empire has kidnapped sixty-four delegates from the World Peace Conference and is holding them hostage in four prison camps. Armed with high-powered tanks, jet fighters, and even aerial mines, they intend to defend against any attempted rescue.
On the outskirts of the empire is the allies' secret base, which is disguised as a post office. You are in control of one of the base's special attack helicopters, and your mission is to fly into Bungeling territory and rescue the hostages.

About the game: Game mechanics

There are 16 hostages held in each of four enemy bases. Your helicopter can only carry 16 at a time, so you'll have to make at least four round trips between Bungeling territory and the allies' base.
The counters at the top are, from left to right: dead hostages, hostages inside the chopper, and hostages safely inside the friendly base. If your helicopter is hit, it will crash, the hostages inside it will be added to the red dead revolver redemption counter, and you will lose a life.
Both losing all three of your selfies sorties and accounting for all 64 hostages with at least one dead will lead to the same result: a GAME OVER screen. The only way to complete the game is to successfully rescue all of the hostages.

Tricks and strategy

  • You can manipulate where tanks spawn and where they will aim their shots by changing your position.
  • Blasting open a base on the first frame possible starts the hostage exit pattern fastest, though you have to stop and pick up hostages who are already outside the base if you don't want to lose time.
    • The hostages have a strange pattern of coming out of the base: 32, then 34, then 32, then 34 frames apart. This doesn't mean you're losing 2 frames every other hostage; this is just how they exit.
  • You can't quickly slow down or change direction when flying at your top speed of 3 pixels per frame. Because of this, it's usually fastest to take off for a specific pixel from a distance that's divisible by 3 and then land by simply crashing into the ground.
    • I use this mainly by leaving enemy bases on a certain pixel to fly directly to the rightmost point on the allies' helipad in the fastest time.
  • The soonest you can pick up hostages is inside an 11-pixel-wide zone in front of each base. This is conveniently wide enough that you can move out of the way of enemy fire without having to leave the zone.
Here are some memory addresses I found and utilized:

The graphics glitch

This is a bug I discovered that glitches out part of the screen. It seems to happen because you dip below the maximum allowed Y-Position, the game doesn't know where to draw the helicopter graphics and so it freaks out. You can trigger it from the ground through a series of Up,Down+1 and Up,1,(nothing),1. Nothing should happen the first time you try one of these input sequences, but eventually, these sequences will make the helicopter rotate, something it's not supposed to be able to do on the ground.
  • You will know when the glitch is active when part of the screen starts glitching out. From here, you can fly up a little and press 1 again to cancel the glitch (and imprint the glitched graphics on the screen), or fly too far up, left or right to crash the game to a colored screen.
  • My favorite part is that just before you activate the glitchy screen, you can resume normal play, just without pressing 1. Whenever you want, press the button and the game will crash instantly to a colored screen. You can make a savestate at this point, change up the input and play around with crashing to screens of all different colors and tones. It's very entertaining, and you might even get some surprises, like recognizable graphics and sound effect patterns.
Also, fun fact: I had to switch my Frame Advance hotkey from N to Q because of the frequency with which I pressed Up+Left simultaneously for this run.

Level-by-level comments

First base

  • The first hostage boards outside of the optimal loading zone. This is the fastest way to pick him up, and doesn't throw off the other hostages' pattern.
  • Who needs to destroy an attacking enemy when you can dance around his bullets like a troll?
  • One smaller goal of this run was to destroy as many enemies as possible without losing time, starting with those tanks.

Second base

  • The second base we attack is actually the last base. Since the game is nonlinear, I chose to go here now because it won't feel like as long a flight there and back now as it would nearer the end.
  • Hopping over to the other end of the optimal loading zone confuses the tank and causes him to miss for the rest of the hostage loading.
  • I make sure to move back to that optimal pixel before leaving with the last hostage from that base.
  • While it might seem faster to blast the other bases on my way back to the safe building, for some reason this makes the hostages spread themselves out all over the map, making it necessary to stop several times just to pick up those sixteen guys.

Third base

  • I cut it close with destroying that tank for fun. My ability to shoot recharges just in time to optimally blow open the next base.
  • The third base we visit actually is the third base. I "bounce" on the ground to slow down my forward momentum so I can land on a specific pixel between the two hostages standing outside the base.
  • I actually avoid the tank's projectile by flying up into it. One of those hitboxes is apparently buggy.
  • I found that you can mimic the spin-out and crash animation using only the helicopter's simple controls.
  • Unfortunately, "helping" the hostages run faster through nudging and friendly fire doesn't actually speed them up.

HOME RUN Last base

  • I show off the flickering graphics glitch as well as the two things that you can paste on the screen when you cancel the glitch.
  • Oddly enough, though this is supposed to be the hardest part of the game, no enemies bother me except for the tank at the end, and he misses!
  • I end input as early as possible and let the helicopter drift over to the leftmost edge of the helipad.
  • All hostages rescued! Mission accomplished! And we didn't have to pay the enemy!

Possible Improvements

While it's useless for saving time right now, if someone could find a way to use the graphics glitch to jump to the subroutine (assuming that's what it is) for displaying the ending text early, that could greatly cut down the time of this run. The glitch can be done anytime after you get control of your helicopter and I think you can get different results from it (I got it to reset once).

Suggested screenshots

6492, 6755, 8370, 9154

Thanks to

  • The BizHawk team, as always
  • Dan Gorlin and Brøderbund Software for making the original game
  • Larcen Tyler for his helpful FAQ
  • Derakon and grassini for posting in the Choplifter thread
  • You, for watching

feos: Accepting to Moons and publishing...

Last Edited by adelikat on 7/19/2022 5:57 PM
Page History Latest diff