In this edition:
Burning Rangers was intended to have a two player co-op mode, but it got cut during development.
However, most of the code for it remains on the disc. I’ve managed to make it functional.
You can play it! Get the patch from SegaXtreme and grab a friend.
Here’s a video of co-op mode in action:
Intro
The earliest previews of Burning Rangers billed it as a two player game. For example, this video shows Tillis and Shou teaming up in Mission 1. The multiplayer concept seems changed during development, however: this magazine preview shows a “Versus mode” rather than a “Co-op” mode. Alas, the final game shipped without either.
But how far did the team get with co-op mode? Did they rip it all out? Apparently not - it turns out that there’s enough of it left in the final game that we can pretty thoroughly restore it!
It’s… not that bad? Somewhere between “Tails in Sonic Adventure” and “Tails in Sonic 2” in terms of playability for player 2. I can see why they scrapped it, though - it’s finicky and fragile. Both players can stay on screen if they’re working together with that goal in mind, but not otherwise.
This article will describe the process of restoring this feature, mostly by showing what breaks when it’s enabled and how it can be worked around.
Taking control
If you’re just messing around with an emulator, the easiest way to turn on co-op mode is to turn on the PLAYER-2
debug flag. This first came to the attention of BR fans when the 1997-12-01 prototype resurfaced. The patch is:
06004166 0202
This code modifies the default debug flags that are set when the game gets initialized.
If we start playing now, we’ll have two players on screen. Pressing A will cause the second character to teleport to where the first character is, but that’s about it - no other movement is possible. This is because the second character is treated as an NPC. We can fix that with this patch:
06029b54 e000
This works because Versus mode automatically marks the second character as playable. So we can borrow that functionality by telling the game we’re in Versus mode when it checks:
Skipping training
If we play Co-op mode on a new save, we’ll get some weird behavior right off the bat: the training area will be very broken. This is because the other rangers that appear there are NPCs controlled by game’s AI. Co-op mode interferes with that, so Lead floats instead of running. You can’t actually complete the exercises; the game crashes.
A similar thing happens in the cut scene after Mission 2 - this is the one that has Shou/Tillis swimming with the dolphin back to the ship. It ultimately crashes and doesn’t let you complete Mission 2.
We’ll work around this by just avoiding the training area and outro altogether. When their rounds come up (03 and 0E), we’ll just skip past them. The patches are:
0601c8ea 8803
0601c8ec 8b01
0601c8ee e000
0601c8f0 c015
0601c8f2 880e
0601c8f4 8b02
0601c8f6 e00a
0601c8f8 c015
Here’s what we’re doing in pseudo-C:
The function being patched here is the one responsible for loading everything before a new round starts. There is some space for our code, because there’s a superfluous check to see whether Versus mode is enabled during the Mission 2 outro. This is impossible in the final game, so I’m not sure why the developers put it there!
Choose your buddy
Skipping the training area puts us into Mission 1. But now there’s another issue: we’ll either have two Shous, a Shou and a corrupt-looking Tillis, or a Tillis and a corrupt-looking Shou:
The problem is with the textures: the game only loads the ones it needs, so if we bring a character into a round that isn’t normally there, they won’t look right. My workaround is to choose a ranger whose textures are available in each mission:
Mission 1: Lead
Mission 2: Tillis / Shou
Mission 3: Big
Mission 4: Tillis / Shou
These work because you encounter those rangers as NPCs if you’re playing the missions normally. The patches are:
0601d170 0303
0601d172 03fc
0601d174 fcff
0601d178 ffff
0601d17a 0202
0601d17c 0200
0601d17e fcff
0601d180 ffff
0601d182 ffff
These are altering a table that determines which character appears for each round. It gets read by the instructions following 0601CAFA.
Skipping cutscenes
The cutscenes in BR that feature the other rangers as NPCs are problematic for Co-op mode. If one of them starts, it will seize control of the second player and not give it back.
In Mission 1, there’s one with Lead that starts when you turn the lights back on. Fortunately, the game doesn’t play that clip if you’re in “BGM Mode,” i.e. the thing you can unlock with special passwords from survivors. So we can tell the game that we’re in BGM mode when it checks:
0603b018 e004
In Mission 2, there’s a bit where you encounter Tillis (or Shou, depending on who you are). We can prevent the game from taking over by telling it we’re in BGM mode again:
0601f998 e004
For Mission 3, we need to skip past the cutscene in which Big confronts the foreman. The BGM mode trick doesn’t work here, so we’ll just arrange for the door before that part to teleport us past it:
060162e8 0641
060162ec 02ba
060162f0 08a0
The function at 06016846
is what sets your position when you enter a new section. Its argument is a table of X, Y, and Z coordinates. For this section, that table is at 060162e4
.
In part of Mission 4 you’re accompanied by another ranger (Lead if you’re Shou; Big if you’re Tillis). We need to have the game skip the logic that sets them up for AI control:
0601de9c 0009
060166fe 0009
Teleportation, yeah!
The patches so far let us play most of each mission with a second player. But there are some areas where the second player will be unable to teleport if they go off screen. I think this is due to the game trying to prevent you from ever being stuck inside a wall or floor.
What seems to help is this: changing the “teleport” function to use the button being “held” rather than the one being “pressed.” That makes player 2 lock onto player 1’s position the whole time the A button is being pressed.
0601e5bc c530
Burning Rangers, go!
Now Co-op mode mostly works! But it is still pretty limited. Player 2 can’t collect crystals, open doors, or land on some platforms. But they can help! They can put out fires and damage enemies. Teaming up is particularly effective in the boss fights.
The camera only tracks player 1, so it’s easy for player 2 to fall offscreen. Fortunately, the teleportation function (button A) usually makes them visible again. That feature would have been nice to have in Sonic the Hedgehog 2…
Is it fun? Sort of! It’s really cool to look at - I can see why it was featured in those early previews. But ultimately I understand the decision to cut it. It’s possible that given a few more months of development it could have been polished into something better, but they had to prioritize other things to meet their deadline.
Outro
I love BR, so I hope you’ll grab a friend at try out this mod. Let me know if you do! Many thanks to Double Dime and Retrospectors for testing out an earlier version of the patch.
For other mods from me, see:
Fighting Vipers - enable unused character costume
Fire ProWrestling S: 6Men Scramble - restore unused characters
High Velocity - restore unused 4 player mode
Clockwork Knight 2 - change gameplay styles
I’ll have more Sonic Team stuff for this month, so stay tuned!
Thanks for doing this and also for the great writeup on the stuff you had to do to make it work!