Submission #4093: adelikat's NES Cheetahmen II in 01:11.68

Nintendo Entertainment System
baseline
BizHawk 1.5.2
4308
60.0988138974405
3120
Unknown
Cheetah Men II (Active Enterprises) [!p].nes
Submitted by adelikat on 10/20/2013 1:48:30 PM
Submission Comments
I present to you, the first ever Cheetahmen II TAS that plays the original (not bugfixed) version AND shows the final boss!

History

Cheetahmen II was never released. Copies of this rare cart were discovered in a warehouse after the Action 52 company went out of business. It was a prototype for a sequel for the "hit" game Cheetahmen on the Action 52 cart. Not releasing this was a good decision, not only is it a terrible game, it had numerous bugs that made the game unplayable. The most significant was a bug that prevented the game from progressing after you beat the level 4 boss. While the game had 6 levels, for a long time people did not know this, due to not being able to get past level 4.
However, it was discovered that sometimes the game would start on a random level, and it was discovered that one of these was level 5! Now people could finally see the rest of the game (unfortunately for them).
The reason for this glitch is due to the fact that the board registers start off in an unpredictable state. This is a known issue in hardware, and most any board is built to clear out registers before attempting to use them. Good NES carts like MMC3 would do this for instance. Also, good games are programmed to loop and clear out ram, and set registers BEFORE attempting to use them. However, Cheetahmen II uses a custom board built by the Action 52 company and not surprisingly, this board is bad. It has no logic for clearing out these registers. Cheetahmen II is a badly programmed game, so it actually reads from mapper registers before setting them. Furthermore, in this perfect storm of crappiness, the game is built on a multi-cart board design. So it happens that each level is built on a separate PRG bank. Normally if the PRG register was set badly in a game, it would likely crash (as any program would if you started it halfway in).

Determinate indeterminacy

In TASing emulators, random register states and ram are bad things, they will cause indeterminacy and it is impossible to have a movie sync reliably. So emulators tend to program ram values to 0's, and all mapper registers as well. However, this is just one of many valid and possible start up scenarios! I suggest that a TAS can and should be able to exploit the initial state of hardware! If the all powerful superhuman that TASes represent can predict future RNG values, why can't he have full control over when to turn on the hardware to get the values of his choosing? With this in mind, I modded Bizhawk so that you can set the initial register values inside a movie file. This way we don't violate determinacy issues, while still giving full power to the TASer to control this situation. In this case of this submission, my movie file starts the game on PRG bank 11 (which is the start of level 5) with a prg mode of 1 (not terribly important detail, but needed for the game to run properly from bank 11).

Ending

After you kill the level 6 boss (or level 4 boss), the end of the level does not trigger. The "Fixed" from fixes this bug. But since an ending was never programmed into the game, it simply triggers a game over screen.

Summary

  • Requires BizHawk (or later)
  • Heavy glitch abuse (the whole game is a glitch though
  • Skips most of the game (Good, because the game is bad)
  • First submission to exploit the random initial state of hardware

feos: Delaying since adelikat is going to beat teh boss!

adelikat: Replaced submission file with one that does in fact "beat teh boss!"
feos: Accepting to Vault and publishing...
Last Edited by adelikat on 10/7/2023 1:19 AM
Page History Latest diff List referrers