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#

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.
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#
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.
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.
|
File: Unused Room 04 Patch (K&TAM US).zip (231 B) (info) |
(Source: UraYukimitsu, Vyroz (patch))
Inaccessible Areas#
|
|
To do:
|
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. 
This is section is mostly empty, so it was likely not meant to be used for anything. 
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. 
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. 
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. 
The room also contains a small, inaccessible but explorable area below the top right section of it, but this area is bigger. 
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.
It's unknown why this area was properly mapped instead of being blocked like most of the out of bounds areas in the game. 
(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#

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 |
|---|---|
|
|
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 |
|---|---|
|
|
|
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. |
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 |
|---|---|---|---|
|
|
|
|
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#
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.
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.
(Discovery: Mugg1991)
Dark Mind Glitch and Unused Hit Counter Behavior#
|
|
This needs some investigation. |

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#
- CREDITS - Planning: Flagship, Programming: Dimps, Debug: HAL Laboratory↩︎
- https://www.ign.com/games/kirby-the-amazing-mirror↩︎
- https://twitter.com/Sora_Sakurai/status/1382529108605800448↩︎
- https://www.nintendo.co.uk/Games/Game-Boy-Advance/Kirby-The-Amazing-Mirror-266914.html↩︎
|
The Kirby series | |
|---|---|
|
Game Boy |
|
|
NES |
|
|
SNES |
|
|
Nintendo 64 |
|
|
Game Boy Advance |
Kirby: Nightmare in Dream Land • Kirby & the Amazing Mirror (Demo) |
|
Nintendo DS |
|
|
Wii |
|
|
Nintendo 3DS |
3D Classics: Kirby's Adventure • Kirby: Triple Deluxe • Kirby: Planet Robobot |
|
Nintendo Switch |
Kirby Star Allies • Kirby and the Forgotten Land • Kirby's Return to Dream Land Deluxe |
|
Side Games | |
|
Nintendo DS |
|
|
Wii |
|
|
Nintendo 3DS |
|
|
Wii U |
|
|
Spin-Offs | |
|
Game Boy (Color) |
Kirby's Pinball Land • Kirby's Block Ball • Kirby's Star Stacker • Kirby Tilt 'n' Tumble • Jaguar Mishin Sashi Senyou Soft: Kirby Family |
|
SNES |
Kirby's Dream Course • Kirby's Avalanche • Kirby's Star Stacker |
|
Satellaview |
Kirby no Omochabako (Baseball, Pinball, Hoshi Kuzushi) |
|
GameCube |
|
|
Wii |
|
|
Nintendo 3DS |
Kirby Fighters Deluxe • Team Kirby Clash Deluxe • Kirby's Blowout Blast • Kirby Battle Royale (Demo) |
|
Nintendo Switch |
|
|
Nintendo Switch 2 |
|
|
Related | |