Tool-assisted game movies
When human skills are just not enough

Submission #5919: TehBerral's GBC Men in Black: The Series in 04:24.75

Console: Game Boy Color
Game name: Men in Black: The Series
Game version: USA/Europe
ROM filename: Men in Black - The Series (USA, Europe).gbc
Emulator: BizHawk 2.2.2
Movie length: 04:24.75
FrameCount: 15813
Re-record count: 13339
Author's real name: Matt. B
Author's nickname: TehBerral
Submitter: TehBerral
Submitted at: 2018-04-07 12:11:08
Text last edited at: 2018-04-14 17:14:37
Text last edited by: Stovent
Download: Download (4330 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

(Link to video)


J can only move at two speeds: 2 p/f (pixels per frame) while walking, or 5 p/f when running. If J initializes a run up against a wall, the game will try to eject him out. By turning on the frame the game tries to eject J, he will be pushed into the wall 5 pixels. If J is at least 5 pixels onto the first wall tile, he will be able to jump up the tiles. J isn’t able to move forward after that, unfortunately, so you can’t just double clip through two tiles to instantly underflow the level position.

The pixel J is stopped on when running into a wall isn’t static. For instance, in the first MIB HQ room, J needs to hit the wall at pixel 36, but more commonly you’ll hit the wall on pixel 38.

Long story short: walk a few frames (or however many you need to get J onto an odd pixel) so J hits the wall at the farthest possible pixel and will allow J to clip into the wall with little effort.

Probably the most important RAM addresses you’ll need are J’s level X positions.

01F9 level X 1 byte unsigned
01FA level X 2nd byte 1 byte unsigned



The OoB in this stage is tricky. This stage has underground sections that J can fall into while OoB. There are also A LOT of killzones as well.

In order to perform the screen-wrap, I obviously need J to reach level position 255 on screen 255. Problem is that simply going out of bounds and heading left will either stop J at around pixel 15, if J doesn't die immediately. The only way to move past the solid blocks in front of J is to jump - if it doesn't kill him. Another way to force J to move farther left is, oddly, to hold right for a few frames before continuing to push left. Eventually through jumping and pushing left you can get the level position to underflow to 255.

After finding the optimal amount of frames to hold right to allow J to move left more, I had to find the best optimal movement to force the level underflow. This may sound daunting, but remember that the game only accepts input every three frames, so testing different movement possibilities wasn't actually that hard assuming I jump out of bounds correctly in the first place so that J doesn't die.

Once the underflow happens, the game takes the next couple frames to examine which checkpoint you've passed. By holding right and jump at the same time J will be killed by an off-screen killzone. You don't want to do this right away because you'll only be placed at the first checkpoint. You want to wait at least 4 frames for the game to see that your current position is past the last checkpoint in the stage.

The game basically says: Frame 1: “oh you did pass the first checkpoint before you died! How niiice!” Frame 2: “oooohhh you also passed the second checkpoint!! Good SHOW!!” Frame 3: *agressively fanning self* “MY WORD, YOU’VE GOTTEN SO FAR SWEET CHILD!!!” Frame 4: “hmmmmmmm OH yes! You’ve died at the last checkpoint! Make haste to victory!!!!”.

[Ideally read in Hedonismbot’s voice]

This overall saves a whopping 1,903 frames.

I found that by sitting right next to Treblor as close as possible, he ends up shooting at the ground making easy work of him. This technique saved another 49 frames, amounting to being ahead of the current publication by 1,952 frames.


I managed to save another 7 frames through better wall clipping. Another 39 frames were saved by killing J quicker off-screen - thus warping him to the last checkpoint.

By shooting the Skraaldian from farther away and taking damage better from its shots I end the stage 2,023 ahead of the current publication.


The 5 frames were saved simply through better wall-clipping. Not much to say about this stage. Even the OoB is fairly simple in this stage. Just by holding jump and left hits the level exit (wish all of the levels were like that).

In any case, that has me at 2028 ahead.


Gonna be honest, the current publication sucks in this stage!

One immediate improvement was turning in mid-air while scaling the wall. This saves the slooooooowww turning animation.

So I couldn’t find a way to kill J OoB in this stage, and even if you trigger Treblor to show up while OoB, his projectiles don’t appear. So the only course of action is to run over top of the stage and get killed in-bounds. Treblor doesn’t shoot right away, but I found by only scrolling into range underhim around the time his AI activates he’s more likely to fire straight downward. This makes killing J much quicker. The Treblor fight kinda sucks in that the trigger for Treblor to show up is while J is on the ladder, which makes it imposible to get up close (optimally) like the other Treblor encounters.

One thing I should mention here is stutter-stepping.

You see, J can shoot while running but it isn’t as simple as firing any frame you want, or simply firing after a certain number of frames. J can only shoot when in a very specific part of his run cycle animation. By holding turbo forward (right in this case) J with stutter between his first 2 frames of his run animation without losing speed. As such, you can control when J shoots by simply restarting his run cycle anytime you want.

Now onto the fight at the end of the stage (despite my, frankly useless, knowledge of the show I can’t remember what kind of alien this guy is). A problem that I’ve encountered since I first looked into this game, I haven’t been able to manipulate this dude’s (I shall call him “Greg”) AI whatsoever. I have found by entering his general vacinity on different frames you can slightly change his pattern, but I wasn’t able to find a way to get him to jump more often than this without wasting time.

Sidenote: for some reason, if you actually touch any of the bosses in this game, you instantly die. Neat.


I was finally able to find a way to navigate the OoB to avoid that extremely abundant killzones. Much like Manhattan, you have to jump on very exact frames while moving left OoB to get the level position to drop below zero. Once that happens, I have to wait 4 frames before holding jump and right to instantly kill J (wish that worked on the roof).

So for Treblor again, it was best to stand close to him. I still had to take a hit so Treblor’s arm didn’t insta-kill me, but I still come away from this fight 3,698 frames ahead of the publication.

Treblor then reveals himself to be BUZZARD ALL ALONG!! If you didn’t watch the show this means literally zero to you, and means even less so since he’s dead now.

After Noisy Cricketing the crap out of Buzzard and shooting the cocoon with K inside of it, I end the movie with a 3,707 frame improvement!

ThunderAxe31: Judging.

ThunderAxe31: Accepting as improvement over the published movie.

Stovent: Processing...

Similar submissions (by title and categories where applicable):