If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Banjo-Kazooie/Stop N Swop

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Banjo-Kazooie.

One of the most infamous Rare pieces of media is without a doubt the Stop 'n' Swop, which was a planned pre-DLC method of acquiring bonus content from other games. Due to technological complications (which will be explained later), this idea never quite panned out. Similar ideas from other companies were experimented on, including Sega's lock-on technology and Ubi Soft's "Ubi Key" for the GBC Rayman.

What's Still In The Game

Maddening, isn't it?

If the player collects all of the Jiggies and then beats Gruntilda, Mumbo will show pictures of two Eggs and one Ice Key during the ending. These and four more Eggs can be obtained by using secret built-in codes: go to the sandcastle in Treasure Trove Cove and type in "CHEAT"; a cow moo will confirm correct entry. Now, enter any of these codes:

Code Result
NOW YOU CAN SEE A NICE ICE KEY WHICH YOU CAN HAVE FOR FREE In Wozza's Cave in Freezeezy Peak, the ice wall will disappear, allowing the player to go through into a room containing the Ice Key. Of note is that this was one of the first Stop 'n' Swop items to be obtained, due to the use of the "Press L to Levitate" GameShark code.
OUT OF THE SEA IT RISES TO REVEAL MORE SECRET PRIZES Sharkfood Island (also in Treasure Trove Cove) will rise out of the sea and the player will be able to enter it. Inside is a large structure that can be climbed to acquire the Pink Egg.
A DESERT DOOR OPENS WIDE ANCIENT SECRETS WAIT INSIDE In Gobi's Valley, the door which is normally always closed will be opened. Inside is a secret room with a sarcophagus which can be opened using a nearby switch. Inside the sarcophagus is the Blue Egg.
DONT YOU GO AND TELL HER ABOUT THE SECRET IN HER CELLAR In the wine cellar in Mad Monster Mansion, the keg which normally has an X printed on it will be opened. It leads to a secret room with the Cyan Egg inside.
AMIDST THE HAUNTED GLOOM A SECRET IN THE BATHROOM In the bathroom in Mad Monster Mansion, the Green Egg will appear on top of Loggo the toilet.
THIS SECRET YOULL BE GRABBIN IN THE CAPTAINS CABIN The Red Egg will appear in the Captain's Cabin in Rusty Bucket Bay.
NOW BANJO WILL BE ABLE TO SEE IT ON NABNUTS TABLE In Click Clock Wood, the Yellow Egg will appear on the table in Nabnut's house in Winter.

As soon as the player collects one of these, a new menu called "Stop 'n' Swop" will appear at the very end of the game totals, which shows all the secret items collected so far. None of these items have an effect in-game; they were intended to be used in various Rare-developed Nintendo 64 games by relying on the fact that the Nintendo 64 console retained Rambus memory for 10 seconds after power-off - enough time to quickly swap cartridges so the contents of memory left behind by the previous game would be available to the next game, hence the feature's name. Each of the Eggs corresponded to a different game, and transferring the Ice Key to every game and back would unlock a final, grand bonus.

For the longest time, the fate of Stop 'n' Swop was completely unknown and subject to many different rumors. It was not until 2020 when Paul Machacek, an ex-Rare employee who worked on this feature, revealed the true story, first on Rare Gamer and later on Twitter. As it turns out, Stop 'n' Swop is in fact implemented and fully functional in Banjo-Kazooie (see below), and Rare was able to transfer items between their next game, Donkey Kong 64, and Banjo-Kazooie during development. However, when Donkey Kong 64 was sent to Nintendo for approval, they requested the feature to be removed from the game, both due to the rare possibility of damage to either the console or the cartridge, and because Nintendo could not guarantee the method of transfer would work on future console models. Indeed, newer Nintendo 64 models starting in 1999 reduced the time the console retained Rambus memory down to just 1 second, completely breaking Stop 'n' Swop as it was implemented. Because Banjo-Kazooie was already released with the original method of transfer in mind, Rare had no choice but to scrap its implementation in future games. Data relating to the Ice Key can still be found in the released version of Donkey Kong 64.

(Source: Paul Machacek)

These codes are effectively permanent. New games started after these codes are input will begin with the locations unlocked, and new games started after the items are collected will still have them collected. The only way to erase these items is to use GameShark code 81283400 0000.

Rare reintroduced the concept in the Xbox Live Arcade release of Banjo-Kazooie: although these codes are no longer permanent, getting wiped after exiting the save, having Banjo-Tooie and/or Banjo-Kazooie: Nuts & Bolts save data on the console unveils all the locations permanently. Then, collecting the items both adds them to the player's inventory in Banjo-Tooie (which makes the breakable N64 carts drop different items for a "Stop 'n' Swop II") and unlocks rare parts in Banjo-Kazooie: Nuts & Bolts.

(Source: Rare Gamer)

The Mechanism

The original Stop 'n' Swop mechanism is left unused in Banjo-Kazooie, but is still fully functional.

On boot, the game scans all of main memory for a special 128-byte payload left behind by another game.

This payload starts with the magic number 0xC908C52F, contains data in the next 112 bytes (to transfer items between games), has 4 bytes of padding, and ends with two 4-byte checksums. If the magic number is present and the checksums are valid, the contents are transferred to an in-game word array, and then read by the game to make the relevant Stop 'n' Swop items accessible.

Receiving data from other games
The incoming payload should contain some or all of the values 0x108 through 0x10E inclusive:

Value Purpose
0x108 Makes the Yellow Egg appear (Click Clock Wood, Winter: Nabnut's Table)
0x109 Makes the Red Egg appear (Rusty Bucket Bay: Captain's Cabin)
0x10A Makes the Green Egg appear (Mad Monster Mansion: Loggo the Toilet)
0x10B Grants access to the Blue Egg (Gobi's Valley: Secret Chamber)
0x10C Grants access to the Pink Egg (Treasure Trove Cove: Sharkfood Island)
0x10D Grants access to the Cyan Egg (Mad Monster Mansion: Cellar)
0x10E Grants access to the Ice Key (Freezeezy Peak: Wozza's Cave)

Here's a payload that will make all seven Stop 'n' Swop items accessible if placed in RAM before the game boots, and at any 128-byte boundary past the first ~1MB of memory (e.g. at 0x80200000)

To use with latest Project64:

  1. Enable the debugger (Settings > Options > Advanced > Enable debugger)
  2. Open Banjo-Kazooie, and hit F2 to freeze the game as early as possible
  3. Open the memory viewer (Debugger > View Memory)
  4. Paste the payload at the desired address, e.g. 0x80200000
  5. Close the viewer and hit F2 to resume the game
Make all Stop 'n' Swop items accessible
C908C52F 00000108 00000109 0000010A
0000010B 0000010C 0000010D 0000010E
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 638AE93A 22A1C3FD

Sending data to other games
The game also writes outgoing payloads into memory, meant to be sent to and read by another game. These are the values of one or more of the Stop 'n' Swop items you've collected in the game, represented by the values 0x100 to 0x106 inclusive. It also writes the value 0x1, but its purpose is unclear.

Value Purpose
0x1 (unknown)
0x100 Sends the Yellow Egg
0x101 Sends the Red Egg
0x102 Sends the Green Egg
0x103 Sends the Blue Egg
0x104 Sends the Pink Egg
0x105 Sends the Cyan Egg
0x106 Sends the Ice Key

Here's the payload meant to send all seven items to other Rare games:

Send all Stop 'n' Swop items to other games
C908C52F 00000001 00000100 00000101
00000102 00000103 00000104 00000105
00000106 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 55E7E71F 32815BC5

Interestingly, the magic number 0xC908C52F, when shifted right by 2, gives the ASCII string "2B1K". The orderly presence of the letters B and K suggests that this is not a coincidence, but the meaning of the numbers 2 and 1 are unclear.

(Source: Wedarobi)