Submission #3138: RT-55J's NES Bio Force Ape in 04:30.02

Console Nintendo Entertainment System Emulator
Game Version unknown Frame Count 16228
ROM Filename Bio Force Ape (J) (Prototype).nes Frame Rate 60.0988138974405
Branch Rerecord Count 3641
Unknown Authors RT-55J
Game Bio Force Ape
Submitted by RT-55J on 4/30/2011 7:18:03 AM

Submission Comments
Bio Force Ape completed with a 16228 frame input file. No anti-communist butter monsters were harmed during the making of this film.

Game objectives

  • Emulator used: FCEUX 2.1.0a
  • Aims for Fastest In-Game Time [1]
  • Genre: Platformer
  • Abuses programming errors
[1]See comments on Stage 3 for details


Bio Force Ape is an unreleased game where you play as an ape that can run really fast and do wrestling moves. For some unknown reason the game was canceled, but thanks to the efforts of The Lost Levels the game has been found and released for consumption by the general public of retrogaming nerds. Whether the game is actually complete is unknown (the number of glitches says "probably not"), but as is the game's "plot" indicates that the final product wouldn't have any more stages.
Interesting, the game keeps track of your best times and displays them after the level. According the scoreboard's default times, a run twice as long would be considered quite skillful.

General Tricks

Horizontal Momentum

You accelerate 16 subpx/fr/fr when holding forward, and decelerate 40 subpx/fr/fr when not holding forward. Your max speed is about 6px/fr, and it takes 96 frames to reach it. Despite being able to go so fast, you can stop on a dime just be pressing back.
Strangely, if you run into a wall or an enemy, nothing happens to your speed.

2/2 Falling

Gravity pulls your character down 144 subpx/fr/fr normally, and 48 subpx/fr/fr when holding the jump button. Your terminal velocity is 8 px/fr. Note, however, that this velocity is never actually achieved, and that the game immediately sets your velocity to 7px/fr (+0 subpx/fr) if this velocity is attained. As a result of this, your vertical speed normally oscillates between (7px+0subpx)/fr and (7px+144subpx)/fr. However, if you hold hold jump for 2 (or 3) frames and release jump for 2 (or 1) frames, you can have the subpixel portion of your speed go from 0 to 144 to 192 to 240 to 0 and so on. For long falls, this trick saves just a tad more than 1 frame per screen.
A similar oscillation occurs with your horizontal speed, but it is not abusable.


It is possible to roll through small gaps on walls if your horizontal velocity is sufficient and if you were rolling as you entered the air.
Speed-wise, there is no difference between rolling and running.
Also, in some instances, rolling can help reduce lag.

Ceiling Glitch

When rolling you can roll into small tunnel (a la Metroid). If you jump right before enter a tunnel this way, you will end up standing inside the tunnel (feet a few pixels into the ground, but whatever). If your speed is sufficiently high, a rolling jump will allow you to go into the next tile of the tunnel. However, if the ceiling is less than two blocks thick, you will go through it instead.

Corner Magnetism

When jumping off a ledge at the last frame possible, you end up jumping lower than you normally would. This is annoying, though occasionally useful.
Conversely, if you hit the corner of a platform while jumping you will "stick" to the platform regardless of your vertical velocity. This is useful, though occasionally annoying.

Useful Memory Addresses

This game likes 24-bit arithmetic
Bio Force Ape
System: Nintendo Entertainment System
Domain Address Data Type Signed Endian Description
RAM 1158 Byte Unsigned Little X-Pos - Screen
RAM 1157 Byte Unsigned Little X-Pos - Pixel
RAM 1156 Byte Unsigned Little X-Pos - Subpixel
RAM 1161 Byte Unsigned Little Y-Pos - Screen
RAM 1160 Byte Unsigned Little Y-Pos - Pixel
RAM 1159 Byte Unsigned Little Y-Pos - Subpixel
RAM 1164 Byte Signed Little X-Spd - Screen
RAM 1163 Byte Signed Little X-Spd - Pixel
RAM 1162 Byte Signed Little X-Spd - Subpixel
RAM 1167 Byte Signed Little Y-Spd - Screen
RAM 1166 Byte Signed Little Y-Spd - Pixel
RAM 1165 Byte Signed Little Y-Spd - Subpixel
RAM 301 Byte Unsigned Little Current Stage Time - 256*256 Frames
RAM 300 Byte Unsigned Little Current Stage Time - 256 Frames
RAM 299 Byte Unsigned Little Current Stage Time - Frames
RAM 316 Byte Unsigned Little Total Time - 256*256 Frames
RAM 315 Byte Unsigned Little Total Time - 256 Frames
RAM 314 Byte Unsigned Little Total Time - Frames

Stage by stage comments

Stage 1 - some dumb warehouse

This stage has quite a few instances where you don't really do anything, but it spices things up by having the not-doing-anything take place in a variety of directions and speeds. There are platforms that can zip you up, right, and left at exhilarating speeds (while you are doing absolutely nothing). There are segments where you just run with no obstacles. There's quite a bit bit of falling (which thankfully can be sped up). The ultimate example of this do-nothing-itis, however, is the elevators. They will always eat up 28 seconds of your time, and there is nothing you can do about. In fact the game doesn't even accept your input while in them (just look at that lag counter!).
In this middle of all this (literally (just look at the map)), is some passable stage design. The main feature is these swinging ropes that like to annoy you by causing lag. In return, they launch you at max speed with you jump off of them (how nice). Less prominently, there are some spring-loaded platforms, which are completely unremarkable.
The main rolling trick mentioned above was used to execute a nice little shortcut, which saves a bit more than five seconds.
In-game time: 2:18.4

Stage 2 - some dumb cave

Normal this level involves a bunch of braindead wrestling matches against foes who make Pro Wrestling's Amazon look pedestrian. These matches are broken up by even more braindead minecart segments (straight outta Donkey Kong Country), during which you can do nothing but feel relieve that at least the game is bothering to read your input this time.
Thankfully, due to the combined laziness of the level designer and programmer, we can skip all of this nonsense thanks to the ceiling glitch.
In-game time: 0:32.1

Stage 3 - some dumb nondescript building (missile silo?)

This level is a teleporter maze where you're supposed to find switches to detonate explosive TNT barriers that block your way. However, thank to some sloppy collision detection and the rolling trick, all of these barriers can be trivially bypassed (ie it's really easy to do in real time). In total, this saves about 20-25 seconds.
For some reason, gravity has no effect on your character when you are in the pass-through-platform tiles around the teleporters.
For some reason your jumps on the falling platforms do not take effect until you walk off of them. It is possible to jump over two of these platforms in a single jump, but this behavior makes it impossible to do repeatedly.
After defeating the final boss (don't spoil it), a short cutscene plays wherein you walk half a pixel per frame to edge of the screen. The in-game timer does not stop until the fade-out begins, which only happens when you finish walking. I could have ended the input file earlier with a punch on frame 16181, but this would have delayed the fade-out by a few seconds. Instead, I timed my last punch and last bit of running so that the fade-out would happen as soon as possible (so I could get the best in-game time possible).
In-game time: 1:27.8
Rather hilariously, the song that plays while the end time is being displayed is actually the longest in the game (~105 seconds), but the game forces you off the screen after 8 seconds or something. To hear the full song, access the soundtest by holding A+B as the copyright screen fades away and select song $ØØØ1.
In-game total time: 4:18.4

Special thanks

  • The dudes at The Lost Levels for finding this game
  • Xkeeper for making screenshot maps of the levels
  • scrimpeh, Sonikkustar, and alden for their support

feos: HD encode.

Baxter: Short and sweet NES craziness, accepting!

Brandon: Publication underway.

Last Edited by on 1/1/2022 6:13:20 PM
Page History Latest diff List Referrers