the cutting room mirror

Kirby & the Amazing Mirror

This page is a good article.This article has a talk page!
view on tcrf.net

Kirby & the Amazing Mirror is Kirby's second and final GBA adventure, taking on a Metroidvania type of gameplay similar to Kirby Super Star‍ '​s "Great Cave Offensive" mode and featuring three Kirby partners who aren't very helpful. Oh, did we mention Kirby has to save Meta Knight this time around? Aw YEAH!

The game would be later re-released for the 3DS Virtual Console in December 2011 as part of the 3DS Ambassador Program, and Wii U Virtual Console in April 2014, both without its trademark multiplayer functionality. However, the game would see a third re-release on the Game Boy Advance - Nintendo Classics service in September 2023 with full online multiplayer.

Sub-Pages#

Resources#

Data#

Version Differences#

Unused Rooms#

Debug Room#

There was a room here.

Using the room ID 3C9, this room uses a similar tileset to Kirby: Nightmare in Dream Land's debug rooms. This was probably used as a debug room earlier in development, but it's empty now. Use code 02020FE6:03C9 and you'll be transported there after you lose a life. It's gone now.

Most of its data is located near the end of the internal room list, including object data, collision data, and more.

(Source: GoldS)

Unknown Room#

Another unused room. Its header is missing.

There is another unused room in the game. However, this room, unlike the debug room, cannot be accessed by cheating due to unique circumstances surrounding it. The header and preset data for this room is completely missing from the final game, but all the other data (tile map, solidity map, and objects) is still there. It doesn't have a traditional room ID, but it does have a numerical ID with the value 04, represented by the leftover object and collision data of it. The only way to access this room is by hacking the game to replace another room's header and presets. Pretty nice to look at though.

The room appears to have been built with tileset 13, as assigning that tileset to the room's collision data fits perfectly. No other tileset works. The music and background data is also unknown. The room contains four Maxim Tomatoes and two 1UPs. Their presence suggests this was some kind of test room.

The following patch will restore the room's collision, tile map, tileset, and all objects. The effects take place when starting from a clean, new save in the American version of the game.

Download Unused Room 04 Patch

File: Unused Room 04 Patch (K&TAM US).zip (231 B) (info)

(Source: UraYukimitsu, Vyroz (patch))

Inaccessible Areas#

To do:

  • Interesting examples
  • In some rooms, there are sections that you cannot fully see during normal gameplay because they are placed too far behind walls. See VGMaps for a quick check. (Examples: Top right of room 741 - you can uppercut there but still not see everything; top right and bottom left of room 535; top right of room 731 - can uppercut off a helper Kirby, but still not quite see everything; some rooms in Olive ocean (...)

Some rooms in the game have a few areas that have proper collision, decorations, and other quirks despite being completely inaccessible. Out of bounds areas that look like they can be traversed are usually filled out with collision tiles, meaning they cannot actually be entered by external methods, but there are some notable exceptions. These areas are detailed below with an image of their whole maps taken via Reflex Viewer, with the inaccessible areas having their boundaries marked in red.

Room 2C8#

Room 2C8 of Moonlight Mansion has a big area above Boxy's section that, if entered, can be walked around and has proper collision all around. Kirby_&_The_Amazing_Mirror_Room_2C8_Inaccessible_Area.png

This is section is mostly empty, so it was likely not meant to be used for anything. Kirby_&_The_Amazing_Mirror_Room_2C8_Explore.gif

Room 2E5#

Another room from Moonlight Mansion, room 2E5, has an inaccessible area at the top right section of the room that is similar to the area with the two Flamer enemies beside it. Kirby_&_The_Amazing_Mirror_Room_2E5_Inaccessible_Area.png

It's completely decorated, and it seems like it was meant to be used at some point. Its only hypothetical entry point is blocked by some generic tiles. It is also not restricted by the camera locker object like its sister room. Kirby_&_The_Amazing_Mirror_Room_2E5_Explore.gif

Room 191#

Candy Constellation's room 191 has a sizable area covering its middle left section. It has some decorative tiles and some funky collision in the section where the upwards slope and ceiling meet. Kirby_&_The_Amazing_Mirror_Room_191_Inaccessible_Area.png

The room also contains a small, inaccessible but explorable area below the top right section of it, but this area is bigger. Kirby_&_The_Amazing_Mirror_Room_191_Explore.gif

Room 19C#

Room 19C, also from Candy Constellation, has a massive, explorable area with few decorations in its top left section. The collision is properly laid out. Kirby_&_The_Amazing_Mirror_Room_19C_Inaccessible_Area.png

It's unknown why this area was properly mapped instead of being blocked like most of the out of bounds areas in the game. Kirby_&_The_Amazing_Mirror_Room_19C_Explore.gif

(Source: Mugg1991, Vyroz)

Unused Flags#

This game uses a flag system that tracks completion progress for a lot of aspects of the game in EWRAM. These flags track rooms, treasure chests, bosses, etc., and are triggered once specific conditions are met, allowing for unlockables and completion percentage to show up and advance. Some flags set by the developers ended up in the cutting room floor. Literally.

Room 3C9 Flag#

EWRAM address 02028EDB tracks the flag that determines if room 3C9 has been visited or not. If the 00 value in that address is changed to 80, the room will be counted as visited, but it won't contribute to the completion progress of the game. This flag, however, can never be triggered in a vanilla game due to room 3C9 being the ID pertaining to the debug room. Logically, the debug room cannot be entered without the use of hacking or RAM edits, leaving this flag completely unused.

(Discovery: Mugg1991)

Unused Copy Abilities#

Hi-Jump#

Hi-Jump, an ability from Kirby: Nightmare in Dream Land, was apparently set to appear in this game. Developer text from a removed Debug Menu lists its attacking sound from the previous game, called SE KBY_HI_JUMP internally. The sound itself also remains, and can be heard in the Collection Room's Sound Player as sound 68, grouped behind UFO's sound effects.

No other copy abilities from the previous game are listed, such as Ball, Light, and Freeze, which leads to the conclusion of Hi-Jump being considered for this game, before ultimately getting cut.

Unfortunately, the sound and its internal name are the only known remnants of this ability. Any graphics of Kirby or his hat are nowhere to be found, and it's unknown if there's code for it.

(Source: Vyroz)

Unused State#

Hello Mr. Flosty.

Kirby has an unused state with the value 1B. It seems to be an unfinished version of the "WAIT" state from Kirby: Nightmare in Dream Land. Its effects in-game seem to replace Kirby's current icon with the "WAIT" icon from the previous game, change his pause screen to display nothing, and corrupt his graphics, causing him to adopt the sprites of various Mid-Bosses or other ability hats. The game is also prone to crashing when starting to float or entering a mirror door. It can be accessed by editing the value at 02020FE3 in memory to 1B or with the following Cheat Code:

Version

Code

All Versions

02020FE3:1B

Alternatively, the following CodeBreaker code can also be used:

Version

Code

All Versions

32020FE3 001B

Below is how the pause screen looks with this state active in all versions of the game.

Japan

US

Europe

(Source: Vyroz)

Unused Locale Settings#

The European version of the game specifically has an unused setting to make the game run in Japanese. The European ROM can be played in English, German, French, Spanish, and Italian when the options are set in the title screen. Japanese, however, is not a selectable language, but the locale can still be accessed by changing the byte at 03000468 in RAM to 00, or by using the following Cheat Code:

Version

Code

European Version

03000468:00

A similar CodeBreaker code can be used:

Version

Code

European Version

33000468 0000

The Japanese and American versions of the game do not contain the locale system from the European version despite having a language byte, therefore, they cannot switch languages. Differences between the unused locale and the released Japanese version are documented below.

Intro/Main Menu#

If the code is used when booting the game, the sequence with Kirby and the avalanche of enemies will be the same as the original Japanese version of the game, with only the red Nintendo logo showing up instead of the blue one, likely due to the palette being directly modified for international releases.

Japan

Unused

I'm blue, da ba dee da ba di.
That's the logo we all know.

After this sequence, the title screen will successfully load the Japanese logo, but it'll keep the English prompts for starting the game.

Japan

Unused

The main menu looks and works identically to the Japanese version's menu.

Sub-Games#

The sub-games have lots of trouble with their graphics. Due to their compressed Japanese graphics not being set-up to work on the European version, the game will not load anything or load incorrect graphics.

Speed Eaters#

Speed Eaters is first, and its title screen immediately presents issues, as it doesn't load the level graphics at the bottom of the screen. This also happens in the multiplayer-exclusive title screens. This doesn't mean the sub-game is inaccessible, since the player can navigate and select the difficulty just fine. The graphics are just not present.

Japan

Unused

When starting a match, most of the graphics will not show up. Most of the graphics that don't load are the compressed Japanese sheets for the sub-game. Stuff like the tray's cover and the exclamation mark graphics will show up due to not being tied to the Japanese locale, instead being uncompressed graphics that every version of the game uses independent of language.

Japan

Unused

Crackity Hack#

Crackity Hack is next, and just like Speed Eaters' title screen, the level prompts don't show up, also occurring in multiplayer.

Japan

Unused

When starting Crackity Hack, the only thing that will load is the power meter. Even if everything is not loaded in, the game is perfectly playable from start to finish. Surprisingly, the reticle will also be absent.

Japan

Unused

Lastly, when the boulder is cracked, the underground section will load like normal, but the counters will be absent.

Japan

Unused

Kirby Wave Ride#

Finally, Kirby Wave Ride is here, and just like its fellow sub-games, the difficulty prompts don't load in both the regular and multiplayer title screens.

Japan

Unused

When doing a race, the text indicating the start and end of the race as well as the Kirbys' graphics won't load, leaving only the water and ramps.

Japan

Unused

A sequel to Kirby Air Ride before Kirby Air Riders!

Lastly, when the race is over, the results screen will be completely empty.

Japan

Unused

Main Game#

The main game doesn't have many issues with its graphics. However, the pause and map screens have some trouble with their sprites. When pausing, the prompts for switching screens load entirely incorrect stuff due to them being compressed graphics.

Japan

Unused

Similarly, the area map screens just give up on loading the Japanese graphics for the map names, and the prompts use their English versions.

Japan

Unused

Lastly, the world map's text is entirely in English instead of Japanese.

Japan

Unused

If these graphical problems are ignored, then the game is completely playable from start to finish. Some things exclusive to the Japanese version of the game will be restored as well, such as the elemental damage icons and the stone ability icon, while other things, such as the Japanese version's missile damage and screen freeze glitch, will not.

(Source: Vyroz)

Development Text#

Strings relating to the development process.

Debug Text#

This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Figure out if the text system that displayed these in the Demo is still present in the final game.

A whole patch of devtext containing internal BGM and SFX names can be located at 00369A64 in the Japanese version, 0038F29C in the European version, and 003852F0 in the US version. The text was part of a Sound Test Debug Menu, which was removed from the final game, but can still be found on the game's Demo. The table below lists the text, the sound they were associated with, and a translation of the text if needed. Please note that the BGM and SFX are prefixed with "BGM" and "SE" respectively, according to the Debug Menu.

Some of the words might use the Nihon-Shiki romanization system instead of Hepburn romanization. Such cases will be explained and detailed.

BGM

Text

Non

start_st

ply_1

ply_2

ply_5

boss_mid

boss_kyotu

kbydead

SFX

Text

not sound

kby_jump

kby_suikomi

kby_hoobari

kby_starshot_1

kby_starshot_2

kby_tyakuti

kby_nouryoku

kby_dmg_1

kby_dmg_2

kby_dmg_3

kby_nomikomi

kby_airshot

kby_habataki

kby_rakka

kby_dash

kby_sliding

kby_brake

kby_oyogi_1

kby_oyogi_2

kby_dmg_ice

kby_dmg_fire_1

kby_dmg_fire_2

kby_dmg_fire_3

kby_dmg_fire_4

kby_nobori

kby_ori

kby_hoshiware

kby_mizuhaki

kby_mizuoti

kby_hosidasi

kby_starhane

kby_tyuu

kby_shinisou

kby_tobitati

kby_korogari

kby_humi_jump

kby_suikomi_loop

kby_toridashi

kby_fire_loop

kby_ice_loop

kby_icecube_osi

kby_burnin_loop

kby_dokan

kby_wheel_loop

kby_wheelbrake

kby_parasol

kby_cutter

kby_lazer

kby_stone_1

kby_stone_2

kby_korogari_2

kby_slowcatch

kby_slownage

kby_slowhit

kby_sleep1

kby_sleep2

kby_lazer50

kby_lazerkabe20

kby_hi_jump

kby_ufo_tame1

kby_ufo_tame2

kby_ufo_tame3

kby_ufo_tame4

kby_ufo_lazer1

kby_ufo_lazer2

kby_ufo_lazer3

kby_ufo_lazer4

kby_ufo_hane

kby_ufo_nori

kby_ufo_tamekiri

kby_spark_loop

kby_tornado1

kby_tornado2

kby_hammerfuri1

kby_hammerfuri2

kby_hammerhit1

kby_hammeratari

kby_fire_oni1

kby_fire_oni2

kby_hammerhit2

kby_tornado

kby_hammerhit3

kby_sword40_1

kby_sword40_2

kby_sword_mijin1

kby_sword_mijin2

kby_sword_final

kby_panch

kby_kick

kby_spike_panch

kby_sky_kick

kby_pshot_tame1

kby_pshot_tame2

kby_pshot_tame3

kby_pshot1

kby_pshot2

kby_mega_pshot

kby_riging

kby_spin_kick

kby_moon_kick

kby_crash60

zakodead1

zakodead2

zakodead3

zakodead_s1

zakodamage1

dmg_icehit

dmg_cutterhit

dmg_swordhit

hit_1

hit_2

zako_bomb

zako_dead_ice

zako_tobitachi

zako_shot1

zako_fire1

zako_spark1

zako_jump1

zako_shot_zo

bress__dosin_s

roal_start

roal_kabe

apper_apper

foaly_bombnage

syuty_shot

dittshi_jab

ditshi_apper

heavyknight_sword

gleat_tyakuti

birug_nomikomi

birug_hakidashi

m_boss_exp

m_boss_damage1

m_boss_kizetu

m_boss_flash

cat_atk

cat_fireboal

b_boss_exp

b_boss_flash

king_tataki

king_goalem

item

oneup

kaifuku

kbydead_fgm

pause

select

kettei

keitai_coal

keitai_tyak

koware1

switch

tobira_f1

tobira_f2

takara

(Source: Vyroz, heynow)

Nintendo SRAM#

Located at 0xD60864:

MultiSio4Sio32Load020820
Sio32MultiLoad010214
NINTENDOSRAM_V113

Build Dates#

Located at F87AF0 in the Japanese version, F32D94 in the US version, F4026C in the European version and A2BF78 in the prototype, included here for comparison. The Japan Revision 1 version, the Japan Virtual Console version and the USA Virtual Console version do not differ from their "parent" versions.

Prototype

Europe

USA

Japan

0.21
Mon Dec 29 19:37:23  2003
1.01
Mon Apr 19 20:21:54  2004
1.03
Mon Apr 12 19:58:05  2004
1.08
Tue Mar  2 02:08:54  2004

Unused Compressed Spots#

Various areas inside the ROM contain compressed properties, but they're strangely empty. The addresses below are from the European version of the game. While the Japanese and American versions of the game have more unused compressed areas, it's because most of these were placeholders for graphics that were to be used in the European build, and eventually became used.

Address

Image Number

Notes

001E21A8

164

Located between the Italian pause screen description for Master and the World Map graphic.

002E073C

755

Located between the graphics for the save data corruption message and the graphics that show up in the World Map when pressing a Big Switch.

00D888D4

1195

Located right next to the graphics of an English connection error for a Subgame.

00DAB364

1199

Located right next to the graphics of a German connection error for a Subgame.

00DCDFB4

1202

Located right next to the graphics of a French connection error for a Subgame.

00DF0C88

1205

Located right next to the graphics of a Spanish connection error for a Subgame.

00E13748

1208

Located right next to the graphics of an Italian connection error for a Subgame.

00E3938C

1215

Located right next to the graphics of an Italian connection error for a Subgame.

00E71A6C

1218

Located right next to the graphics of an English connection error for a Subgame.

00E9EA08

1222

Located right next to the graphics of a German connection error for a Subgame.

00ECB92C

1226

Located right next to the graphics of a French connection error for a Subgame.

00EF8888

1230

Located right next to the graphics of a Spanish connection error for a Subgame.

00F25718

1234

Located right next to the graphics of an Italian connection error for a Subgame.

(Source: Vyroz)

Possibly Cut Graphics#

Example of the glitch with Parasol.

When Kirby is transported to Dark Mind's last phase, any ability that he had on him will be removed immediately. Thanks to glitches, however, it's possible to keep the abilities of the other Kirbys. To do so, Kirby must call his friends when the screen is almost fully red after defeating Dark Mind's core. This will result in the Kirbys being able to move around the cutscene where Dark Mind escapes and conserve the ability when the final fight begins. There's a side effect to all of this, as the ability hats (or parasol, in the case of Parasol Kirby) of the Kirbys will just stay floating beside the Warp Star. However, there is one ability that has a unique effect: Missile.

The glitch with Missile.

Missile is the only ability that has a unique sprite when riding the Warp Star. It's identical to one of his sprites when climbing a ladder, but it's located at a different spot in the ROM. While the ladder sprite is located at 005B5D18, this one is located at 005B9458. Missile, unlike other abilities, doesn't have separate sprites for his hat.

Other abilities that have their hats and base sprites as one, such as Cupid, Hammer, Fighter, and Throw, will crash the game if this glitch is attempted with them. This most likely means that the game is trying to load graphics that no longer exist for these abilities. As for abilities that have their hats separate, they could be loading their default hat sprite due to the game being unsuccessful at finding the correct graphic.

All of this indicates that, at one point, every ability was planned to have a special graphic/hat for the Warp Star ride at the final fight, but for unknown circumstances, they were cut. Kirby_&_The_Amazing_Mirror_Unused_Missilie_Sprite.png

(Discovery: Mugg1991)

Dark Mind Glitch and Unused Hit Counter Behavior#

This needs some investigation.
Discuss ideas and findings on the talk page.
Specifically: Is it truly random?

Kirby_&_The_Amazing_Mirror_Dark_Mind_Glitch.gif

An extremely rare glitch can occur at the last Dark Mind fight that causes a softlock. It can happen randomly, and there are no clear requirements for it.

During the post-credits scene, Dark Mind has an absurdly low chance of simply not dying. The player can keep hitting him, but he will never explode. This unfortunate event can at least let us see some unused behavior from the hit counter. If the player is patient enough to surpass 999 hits to Dark Mind's core... the counter just resets to 000 hits. Cool.

(Source: Vyroz)

Oddities#

  • Despite what the lives counter would have us believe, the game actually caps lives at 255 instead of 99.
  • The cutscene where Kirby unlocks the Ability Room uses a dedicated tileset that depicts the upper left corner of the Central Circle. Curiously, it seems to be based on an earlier version of said room, as the mirror to Peppermint Palace is using its design from the Demo, consisting of a more cavern-like frame instead of the more refined, castle-like frame. The tileset for this cutscene only includes the top part of Peppermint Palace's mirror's frame.

References#


  1. CREDITS - Planning: Flagship, Programming: Dimps, Debug: HAL Laboratory↩︎
  2. https://www.ign.com/games/kirby-the-amazing-mirror↩︎
  3. https://twitter.com/Sora_Sakurai/status/1382529108605800448↩︎
  4. https://www.nintendo.co.uk/Games/Game-Boy-Advance/Kirby-The-Amazing-Mirror-266914.html↩︎