Submission #2649: sgrunt's DOS Commander Keen: Episode 5 - The Armageddon Machine "glitched" in 02:42.43

Console DOS Emulator JPC-RR r10
Game Version unknown Frame Count 9746
ROM Filename keen5.img Frame Rate 60
Branch glitched Rerecord Count 705
Unknown Authors sgrunt
Game Commander Keen: Episode 5 - The Armageddon Machine
Submitted by sgrunt on 4/30/2010 10:43:17 PM

Submission Comments
This is a heavily glitched runthrough of Commander Keen 5 - completing the game in the impossibly short time of 2:42 - and the first submitted TAS using the emulator JPC-RR, which may be considered a proof-of-concept that the emulator is suitable for TASing.

Game objectives

  • Emulator used: JPC-RR r10 (syncs with r10.4)
    • VGA_DRAW must be enabled for the game to render properly, but enabling or disabling it does not impact gameplay.
  • Best ending
  • Uses warps
  • Uses hardest difficulty
  • Heavy glitch abuse
  • Takes damage to save time
  • Uses death to save time
  • Genre: Platform


Setting up the emulator

A prebuilt version of JPC-RR r10.4 is available from the TASTools Google Code repository (if you want to encode this, you'll also need the stream tools available there). Unpack it somewhere and start it. You will need to create two disk images using JPC-RR's Drives -> Import image utility:
  • The FreeDOS image normally distributed with JPC. The image is in the JPC source package, as resources/images/floppy.img. If you'd rather not do that, you can grab a prepared JPC-RR disk image for this from here (available under the terms of the GNU GPL v2).
  • The game (see the below section for more information about the disk image used).
After you've created the disk image (it should go into the disklibrary directory), run start-jpcrr.bat to start the emulator. (Flygon has reported that under Windows 7, the "java -jar" at the beginning of the command line within may be unnecessary and may prevent the emulator from running.)
The movie file can be loaded with Snapshot -> Load -> Movie; the appropriate images (including the game) will be loaded upon doing so. If you get a "no such image in library" message, it probably means you haven't built the game disk image properly.
Before starting the movie, you may wish to enable the VGA_DRAW hack in Debug -> Hacks; this doesn't affect sync but it results in the game displaying properly.
To start playback, go to System -> Start.


This TAS uses v1.4 of the game - this is because the most important glitch works only in this version, as described below - and plays on Hard difficulty. If you happen to have another version of the game, distributes a patch to convert your copy of the game to the appropriate version.
Here is JPC-RR's ImageMaker's report on the disk image I used (note that the hard disk geometry is the default when specifying "Hard disk" in the image creation utility):
Type               : HDD
Tracks             : 16
Sides              : 16
Sectors            : 63
Total sectors      : 16128
Primary extent size: 2744
Storage Method     : 3
Sectors present    : 1714
Calculated Disk ID : F278BE6EE81B72D8D7B51F186AFF6834
Claimed Disk ID    : f278be6ee81b72d8d7b51f186aff6834
Comments section:
Entry: N/A            N/A                                       4 /
Entry: 19900101000000 d080b7c53b0b374813a7479b559d4eb4     101990 /AUDIO.CK5
Entry: 19900101000000 d5598dcda25b02e61aeac17fcac9437b     573664 /EGAGRAPH.CK5
Entry: 19900101000000 33ffac175c3fb8e33fc3dbdc0ab6b965      73721 /GAMEMAPS.CK5
Entry: 19900101000000 075194c6617abf14e07cd78ea44e3266     106417 /KEEN5E.EXE


There is a 2:42 speedrun on Easy difficulty on YouTube which I used heavily as a reference. I am not sure what timing points are in use there; instead, here are some reference timing points for this run: first gameplay input to last moment gameplay is 2:38.533, and first input to triggering the action which eventually ends the game (setting off the mine; see level notes) is 2:36.133. Either way, there's a clear improvement with this run, not to mention the difference in difficulty levels (which throw a lot of new enemies in the path)!

Tricks and glitches

Central to most of the maneuvering in this run is the Impossible Pogo Trick. Tapping the jump (CTRL) and pogo stick (ALT) keys near-simultaneously while running allows a higher-than-normal pogo jump. On Easy mode Keen gets an extra unit of height out of this compared to some of the other two modes, so some of the maneuvers in the speed run are difficult if not impossible to replicate (Korath III comes to mind as a prime example of this).
There are two major glitches in use here:
  1. Warp glitch. Being pushed under certain conditions, including while hanging onto a pole, causes the end of the level to warp you to the game's secret level, Korath III. This is useful as the exit from Korath III takes you to the segment of the overworld just prior to the second last level of the game (as the exit to the secret level is in that level), meaning, if it's done early enough, you can skip a considerable number of levels. This glitch only works in v1.4 of the game.
  2. Death flag glitch. Saving and reloading a game causes the "you are dying" flag to be reset, but Keen is still in the dying animation, allowing him to clip through walls. This is most useful when done near the edge of a level, as touching the edge of a level while alive ends the level (which is never actually used in this game, and is a holdover from the other two games using the engine). Since one actually never sees the "you didn't make it past[...]" screen, I don't consider this death per se, but Keen still takes damage!

Stage by stage comments


To avoid flickering, I quickly turn on the SVGA Compatibility Mode option. I then start the game on Hard difficulty.

Ion Ventilation System

Key to this entire run are the presence of poles and Little Amptons (the purple pushing enemies), as they enable the use of the warp glitch in the very first level of the game! Keen shoots two of them to avoid slowing down or getting hit (he can only take damage from them if one of them slides into him on a pole), then hugs a pole and gets pushed off by the third, triggering the conditions for the warp glitch. Several tricky jumps and a handful of dead Sparkies later (the first Impossible Pogo after getting pushed needs to be effectively frame-perfect to work as advertised), Keen reaches the exit and mysteriously warps to Korath III.

Korath III Base

Frustratingly, Keen only has enough height to jump directly from the left platform to the hidden alcove on Easy mode. Instead, I land as quickly as possible on the right platform and Impossible Pogo up to the alcove. Two jumps later and Keen finds and breaks a fuse - doing so ends the level and also sets up the better ending later on.
No, Keen's quip about the fuse can't be dismissed any faster.

Gravitational Damping Hub

The death flag glitch sees use here. Keen needs to be standing almost as far to the right as possible in the alcove with the Volte-face in order to be close enough to the edge of the level after dying to get there without needing to save and reload more than once (given the time needed in loading the game, it is desirable to not have to reload more than once).
(Note that in the YouTube run, the Volte-face is already in a position where Keen can jump down right away. Here it starts off in the worst possible position for some reason, so I need to wait for a bit to jump down and wait a bit when it's down there...)

Quantum Explosion Dynamo

Here's the finale, and the longest of the four levels in this run. Sadly this level can't be skipped - triggering the ending in that fashion dumps him back to the overworld with no way to complete the game. The only way to trigger the ending is to reach and destroy the QED. To get to the QED requires three keys, and to blow it up needs a fourth.
The red and green keys are straightforward enough to obtain, needing little more than good timing and a few well-placed jumps. The blue key is a lot tricker thanks to the presence of a large number of Shockshunds. There is a Shockshund sitting right next to the key that eventually needs to be lured away, so a direct bypass approach isn't feasible; instead Keen ducks below the bridge area similar to the speedrun, though takes a lot less time shooting everything he can until he runs out of ammo, leaving a sufficient opening to collect the key. The remaining Shockshund moves slightly slower than Keen does, so just chasing it is out of the question; instead Keen ducks below and pulls off an impossible Impossible Pogo to escape.
The yellow key is en route to the doors, and the jump sequence Keen uses to get it and evade the Shikadi unscathed was the result of a lucky accident.
After unlocking the doors, Keen arrives at the QED itself. He evades a Shikadi Master and its attack and unlocks the red door, behind which are a number of Shikadi Mines - the only thing which can damage the QED. After painfully slowly luring it over to the QED, the mine explodes, taking down the QED, but also Keen? (Having Keen die here is slightly shorter than letting him live.)
Roll the ending!

Other comments

I anticipate that people may have difficulty getting the emulator to play back or would prefer to watch the run at normal speed. To that end, and as you've come to expect from me, I have encoded the run. Grab it at or watch it below:
(flowplayer module removed)
A note about the encode: it uses the resolution of the game, i.e. 640x400, though there is a short segment of DOS at the beginning which is normally 720x400. Those images have been scaled to the appropriate resolution, similar to the norm of other runs which use multiple resolutions (such as Shadow of the Beast 2). You probably won't even notice, as that segment is so short, but I thought I would note what I did for future PC games that need encodes.
Here are some suggested screenshots:

Without the hard work that Ilari has put into JPC-RR, this run would not have been possible, so he deserves not only my thanks but yours as well!

Nach: It slices! It dices! It causes the judges to go crazy and accept it! Explosion!

Last Edited by adelikat 2 days ago
Page History Latest diff