On this page
  1. Related
  2. Games

A level ends when its goal is met: an exit reached, a boss beaten, or a field cleared. The game then takes control for a short sequence, tallies a bonus, and moves to the next level.

  • Felix the Cat (1992). A stage ends when Felix's x passes the stage's bound plus 290, a line in the stage rather than on the screen.1,2,3

Games

GameYearHowNote
Felix the Cat1992a stage ends when Felix's x passes the stage's bound plus 290, a line in the stage rather than on the screen
Every claim about this mechanic, by game (8)
Super Mario Bros.: The Lost Levels 1986The castle victory sequence (VictoryMode through PrintVictoryMessages) is Super Mario Bros.'s with these changes: on world 8, which world D also uses, VictoryMode runs a second task list that loads the ending from disk; SetupVictoryMode also sets the world's bit in CompletedWorlds and queues the castle-clear music; PrintVictoryMessages loses Super Mario Bros.'s world 8 branch and its victory music, and gains EndCastleAward, which counts the remaining time into points. DrawTitleScreen, which sits in the middle, shrinks to a few instructions that queue a layout held in the program, where Super Mario Bros. copies it out of CHR ROM. PlayerVictoryWalk keeps every instruction; only its addresses and one branch's distance differ.Code
RunStarFlagObj through OffscreenBoundsCheck are Super Mario Bros.'s with these changes: RunStarFlagObj sets off fireworks when the timer's last digit matches the coin tally's, where Super Mario Bros. matches the timer's last digit against 1, 3 and 6, and adds its points to the one player's score; MovePiranhaPlant moves red piranha plants (the patched palette) every frame; BalancePlatform leaves a platform alone when its partner is no balance platform; OffscreenBoundsCheck treats upside-down piranha plants like upright ones. FirebarSpin is byte for byte the same, and the moving platforms differ only in their addresses.Code
Felix the Cat 1992$33 is the stage index. A stage ends at $FA20, which adds 1 to it once the clear flag ($03B7) is up and the tally has run the timer down to 000. In the 1625M replay it reads 0 in the first stage and counts up to 22 in the last.Code
Three instructions in the ROM store to the clear flag $03B7. The stage load clears it; the exit test in the fixed bank sets it from Felix's x (felix-the-cat/exit-threshold); and a routine in PRG bank 12 sets it when a countdown at $042B reaches 0.Code
Every frame of play until the clear flag $03B7 is up, the game subtracts $32 and the stage's bound ($BB:$BD) from Felix's x and sets the flag when the result is at least $F0. A stage ends when Felix's x reaches its bound plus 290; in the first stage, whose bound is 3,848, that's x 4,138.Verified
The fixed bank's exit test reads Felix's x and the stage's bound, never the scroll. For example, walked a second into the first stage and placed 6 px below the scroll value, near the right edge of the screen, Felix doesn't clear the stage: the camera re-centers on him the next frame, and the clear flag stays at 0.Verified
KAGE-008's rejected TASVideos submission 6487 plays Dragon Co.'s unlicensed Felix the Cat, a different game from Hudson's, and ends levels "if the player is close to go off-screen to the right". The judge, Maru, adds that the player only has to jump "as much as possible to get to the right of the screen" and reports a test file saving 855 frames in level 1.Web
Replayed in FCEUX, Randil's 1625M movie passes 23 stages in 9 worlds of 3, 3, 3, 3, 3, 2, 2, 1, and 3 stages. For each stage the table gives the frame play starts (game mode $28 reaches 5) and the frame the clear flag goes up; the last stage runs to the movie's end at frame 81,074.Our research

References

  1. ^Every frame of play until the clear flag $03B7 is up, the game subtracts $32 and the stage's bound ($BB:$BD) from Felix's x and sets the flag when the result is at least $F0. A stage ends when Felix's x reaches its bound plus 290; in the first stage, whose bound is 3,848, that's x 4,138.Verified“Felix the Cat (USA)”
    How we know

    In the cartridge (“Felix the Cat (USA)”): fixed bank $F7FF-$F840: with $03B7 at 0, ($0658:$0642 - $32) - $BB:$BD to $09:$08; if $09:$08 - $F0 isn't negative, set $03B7 to 1 and start two sounds. We don't reproduce the bytes.

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on Felix the Cat (USA) (SHA-1 b57b1c6e6933…). It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-25.

    Checked by a second AI model, 2026-10-25.

    In the claim ledger

  2. ^The fixed bank's exit test reads Felix's x and the stage's bound, never the scroll. For example, walked a second into the first stage and placed 6 px below the scroll value, near the right edge of the screen, Felix doesn't clear the stage: the camera re-centers on him the next frame, and the clear flag stays at 0.Verified“Felix the Cat (USA)”revised
    How we know

    In the cartridge (“Felix the Cat (USA)”): fixed bank $F7FF-$F840: the exit test reads Felix's x and the stage's bound, not the scroll ($14, $16). We don't reproduce the bytes.

    Measured by a script in MesenCE 2.2.1 (build 4b8a196), on Felix the Cat (USA) (SHA-1 b57b1c6e6933…). It fails if the result disagrees with the claim.

    The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-25.

    Revised after a check by a second AI model, 2026-10-25.

    In the claim ledger

  3. ^$33 is the stage index. A stage ends at $FA20, which adds 1 to it once the clear flag ($03B7) is up and the tally has run the timer down to 000. In the 1625M replay it reads 0 in the first stage and counts up to 22 in the last.Code“Felix the Cat (USA)” · 1625M, replayed in FCEUXrevised
    How we know

    In the cartridge (“Felix the Cat (USA)”): fixed bank $F6F5-$F704: if the three timer digits ($03A9-$03AB) OR to $10, the tile for 0, jump to $F934; fixed bank $F934-$F947: with $03B7 set, jump to $FA20; otherwise, unless $0411 is set, set $03FA to 1 (time over); fixed bank $FA20-$FA27: $33 + 1 to $33. We don't reproduce the bytes.

    every change of $33

    Checked against the evidence by its author, an AI model, 2026-10-25.

    Revised after a check by a second AI model, 2026-10-25.

    In the claim ledger