Making any Super Smash Bros. Melee ISO a Debug ISO

19 min read

Deviation Actions

ConnorRentz's avatar
By
    Super Smash Bros. Melee's Debug Menu is infamous, and it's one of the biggest hidden leftovers in the data of any Nintendo game. Documentation on the Debug Menu and the Debug Sound Test have been pretty great, though it's always easy for misinformation to spread. For example, many people believe that the IK DEBUG FLAG option in the Debug Menu was meant to enable six-player battles, but it is actually a toggle for making the characters' feet angle when standing on slopes (much less exciting than six-player battles for most folks, I'm sure). Similarly, there is a pretty popular misconception that the PUBLICITY option toggles the crowd sound effects, but it actually is a toggle to delete the game's save data (thanks UnclePunch for pointing those out - just wanted to share the good word).

    Recently, I learned that metaconstruct found more to Melee's development/debug capabilities. The Debug Menu wasn't all there was. There's a bit more that just isn't really mentioned online. By adding in a single empty file, any Super Smash Bros. Melee ISO can become a debug ISO. Here's my documentation.

Making a Debug/Developer ISO


    If you've ever dug inside Melee's North American ISO, you'll find that in the root folder of the game is an empty file called usa.ini (we'll talk more about that particular file later). This isn't the only empty .ini file the game checks for upon starting the game. Meta pointed out that the game also checks for develop.ini. If it's not there, Melee runs as a normal retail version of the game. If the develop.ini is present, certain debug controller inputs will be enabled that are otherwise inaccessible.
   
    The develop.ini file is pretty simple to add in to the root folder. Using any ISO rebuilder like DAT Texture Wizard takes hardly any time or thought (simply add a develop.ini file to the disc and save). The file, like usa.ini, can be empty - the usa.ini file can even be exported, renamed, and then added to the ISO. The game checks for a few things when the game boots, and that file is one of them. In fact, the main new functions granted by develop.ini are possible as soon as the game boots.

Title Screen Functions


    By default, develop.ini will set Super Smash Bros. Melee to a different DB Level than normal. Anyone who has used the Debug Menu before is probably familiar with the DBLEVEL setting in the first section of the Debug Menu. There are five different DB Levels, but they are indicated by the numbers 0 through 4. Different DB Levels allow for different amounts of developer and debug control. Without develop.ini, the game will boot at DB Level 0, known in the Debug Menu as MASTER (this level doesn't enable any debug controls).

    With develop.ini, the game will automatically boot at DB Level 1, otherwise known as NO-DEBUG-ROM. DB Level 1 displays the Apploader Date on the title screen, but otherwise does not enable any developer inputs (I imagine the "NO" part refers to the disabled developer inputs while still showing the Apploader date - a debug ROM with no additional inputs). To enable developer inputs, hold Y while the game boots (before any logos or titles). Holding Y will boot the game to DB Level 3, otherwise known as DEBUG-ROM. Holding X also boots the game to DB Level 3, but it will also unlock all characters and stages (but not trophies). Holding X or Y while the game boots also works with Gecko codes that boot to the character select screen!

   At DB Level 3 or higher, there are three additional inputs at the title screen. Pressing Start will load the main menu as usual. Pressing Y will load the Debug Menu, and pressing X will load the Debug Sound Test. Pressing A will load a match using the settings in the Debug Menu (by default, this is an endless match with Link as a human P1 and Mario as a human P2 at Final Destination). Many people are used to accessing the Debug Menu through codes, but this is really how the Debug Menu was intended to be accessed by developers and testers.

Gale01-339 by ConnorRentz

    The R button can also be held while the game boots to access the USB2EXI setup. To my understanding, official Nintendo debugging hardware is required that would connect to an USB2EXI server created by a program included with the GameCube's SDK. It seems that not only is this hardware required to boot this setup, but it seems that the game must be at DB Level 4, otherwise known as DEVELOP. Right now, this USB2EXI setup has been unexplored.

Global Inputs


    The Debug Menu itself and the in-battle debug inputs are the most popular debug functions in Melee. However, there are more things. Thanks to metaconstruct and UnclePunch for finding these. I tried them out and took notes. These all require the game to be set at DB Level 3 or 4 (which mean they don't require develop.ini as long as the Debug Menu can be accessed via codes or mods).

    First of all, pressing X and D-Pad Up at any time outside of a match will toggle a frame advance mode. Pressing Z in this mode will advance the game one frame at a time. Pressing X and D-Pad Right will draw CPU/memory stats at the bottom of the screen (this can also be toggled in a match with the same input).

Galp01-3 by ConnorRentz

Trophy Tools


    There is also a separate but very small debug menu for unlocking specific trophies! In DB Level 3 or higher, hold R while selecting the Trophy Gallery to load this small menu (this also works when selecting the Figure Max option in the Debug Menu):

Gale01-336 by ConnorRentz

    These different lettered categories are not random - they separate trophies by their rarity or (as an unused in-game message would say) their class. The trophies' rarity increases as you go down the list with all character trophies acquired through 1P modes located in the second class. The last class contains only the Mario & Yoshi trophy and the Samus Unmaksed trophy.

    This menu (the Debug Trophy Menu, if you will) allows the user to set how many trophies are unlocked in each class. This has to be done by moving the Control Stick left to increase the trophy count in a particular class. Pressing A will confirm it and reset whatever trophies have been unlocked to only those set by this menu. It also seems that each trophy class has a set order as well - picking only one trophy from the first class will always unlock the Warp Star trophy, the first trophy from the second class is always Mario's Classic Mode trophy, etc. This menu will unlock a random number of each trophy as well. One time, I got two-hundred and thirty three Donkey Kong Adventure trophies.

    In the version of this menu on a North American ISO, there are 292 trophies, meaning that the Tamagon trophy cannot be accessed from this menu. However, any Japanese ISO will have a seventeenth trophy in the "C" class, making Tamagon the sixteenth trophy in the class (followed by Stanley).

    Also, the menu "cursor" can be moved below the menu into nothingness, but no matter how far down you go, going up will always take you back to the last option. A slightly odd behavior as the normal Debug Menu does not do this.

    That's not all for trophies - there is also a Debug Gallery! This is essentially a trophy model viewer - a simplified version of the final Gallery. Selecting the Gallery while holding L will load the Debug Gallery.

Gale01-331 by ConnorRentz

    As you can see, there's no background, trophy info, or trophy base. The A button must be pressed to enable all camera controls - otherwise, only the C-Stick can rotate the model and Start can change the lighting. The controls are primarily the same as the regular Gallery but with a few minor differences. Pressing Y will toggle between the model's textures and a white silhouette. The D-Pad, X, and left and right on the Control Stick are disabled in the Debug Gallery. Pressing L and R will still scroll through trophies, and pressing B will go back to the Gallery menu. The background will be black, indicating that it's still in the Debug Gallery. When a trophy is selected from here, the trophy base can be seen for a single frame.

Gale01-335 by ConnorRentz Gale01-334 by ConnorRentz

    There is actually a second Debug Gallery! The first one its focused on simply viewing the models, while its brother has a few other stranger features. To access the second Debug Gallery, hold Z while selecting Gallery. It features a small blue menu box.

Galj01-2 by ConnorRentz

    Pressing L and R will cycle through trophies as usual. The Control Stick controls the model rotation and the C-Stick controls tracking. Pressing X will toggle the trophy information. Pressing Z will bring up the Gallery menu only if the trophy info is on screen. Otherwise, it will just make the return sound effect. Hold A and move the Control Stick left and right to control the X-axis of the model, and move the Control Stick up and down while holding A to control the Y-axis (or the Z-axis, seemingly depending on the camera angle). Holding B and moving the Control Stick up and down changes the size of the model, and moving the Control Stick left to right while holding the B button changes the size of the trophy base (the trophy base will also get taller as it shrinks or flatter as it grows). Alternatively, the D-Pad can be used in place of the Control Stick for more precise changes.

    It's kind of funny to play around with. I found these controls on accident, and the tiny Luigi just kind of happened.

Galj01-3 by ConnorRentzGalj01-4 by ConnorRentzGalj01-5 by ConnorRentz

    You can also scale a model down into the negatives. Then it will become bigger as you go lower, and once you hit the negatives, the model will be inside-out. It's pretty scary.

Galj01-7 by ConnorRentzGalj01-6 by ConnorRentz Galj01-8 by ConnorRentz Galj01-9 by ConnorRentz

    The changes made to a trophy model will remain while in the second Debug Gallery, but will reset upon exiting the menu. And be warned! Accessing the second Debug Gallery while having no trophies will softlock the game. You can actually very easily access an empty Gallery. While it's possible to use the Debug Trophy Menu and just not select any trophies to be unlocked, the Trophy Collection data can be deleted from the options menu.

Galj01-10 by ConnorRentz

Save Data Messages Test (Added 5/25/2020)


  This is a bit of a late edition to this documentation. This was discovered by Meta in December of 2018, but I guess not a lot of people talked about it. I stumbled upon it again by accident. Upon booting Melee, hold down L, R, and A for a few seconds. The opening video sequence will not start. Letting go and pressing R will start a sequence of save data messages that would usually appear upon starting the game. These messages have no function - it is merely a visual test. You can cycle through these using L and R, and there is no way to exit this test. For the sake of documentation, here is every possible screen that can be seen:

Gale01 2020-05-25 17-20-01 by ConnorRentz Gale01 2020-05-25 17-23-00 by ConnorRentz Gale01 2020-05-25 17-24-04 by ConnorRentz
 Gale01 2020-05-25 17-24-07 by ConnorRentz Gale01 2020-05-25 17-24-11 by ConnorRentz Gale01 2020-05-25 17-24-14 by ConnorRentz
Gale01 2020-05-25 17-24-23 by ConnorRentz Gale01 2020-05-25 17-24-25 by ConnorRentz Gale01 2020-05-25 17-24-38 by ConnorRentz
Gale01 2020-05-25 17-24-40 by ConnorRentz Gale01 2020-05-25 17-25-34 by ConnorRentz Gale01 2020-05-25 17-25-43 by ConnorRentz
Gale01 2020-05-25 17-25-48 by ConnorRentz Gale01 2020-05-25 17-25-50 by ConnorRentz Gale01 2020-05-25 17-26-07 by ConnorRentz
Gale01 2020-05-25 17-26-11 by ConnorRentz Gale01 2020-05-25 17-26-14 by ConnorRentz Gale01 2020-05-25 17-26-21 by ConnorRentz
Gale01 2020-05-25 17-26-27 by ConnorRentz

Crash Debugger


    Super Smash Bros. Melee also has a crash debugger. A crash debugger (very common in Nintendo games, especially prior to the GameCube) allowed developers to input a button combination after the game crashed. This button combination brings up a very rudimentary menu that describes what happened when the game crashed so that the problem could be detected and fixed. When the game crashes (to crash the game easily, load the Debug Menu and start a match with the character NONE or the DUMMY stage), hold down these button combinations together in the following order:
  • Z + R + L
  • Y + D-Pad Up
  • A + D-Pad Down
  • B + D-Pad Left
  • X + D-Pad Right
    This button combination will access the crash debugger, but only if the game is set to DB Level 3 (at least, it seems that DB Level 3 is required to control the crash debugger completely).

Gale01-337 by ConnorRentz Gale01-338 by ConnorRentz

    Like most crash debuggers, there are a few controls. Pressing Start will display the controls. The D-Pad will move this little gray square (the cursor) around the different characters. Pressing A will dump memory wherever the cursor is located, and pressing X seems to dump all memory on the screen. From the Start menu, Dump CPU Context and SPR (Special-Purpose Registers) can also be accessed as well as the option to quit, which will actually really crash the game.

    Since the game sends this info to the framebuffer, Dolphin will often have trouble taking screenshots of the crash debugger. Using any screenshot program (like Snip & Sketch on Windows 10) will also do the trick.

Annotation 2019-07-29 181311 by ConnorRentz Annotation 2019-07-29 181918 by ConnorRentz Annotation 2019-07-29 181153 by ConnorRentz

Other Versions as Debug ISOs


    The develop.ini file can be added to any retail version of Super Smash Bros. Melee. I made my own versions of the North American, Japanese, European, and Korean versions of the game all with the develop.ini file in place. I was curious if Melee's demos could also make use of the develop.ini file, but if a develop.ini file it present, the game will lock up before anything can happen (understandable, as the demos are just somewhat randomly cut down versions of the retail games and often require their respective multi-boot ISOs to load them properly). develop.ini should be compatible with any mods of Melee.

Bonus: Making a North American ISO a Japanese Game and Vice Versa


    Many people think that the Japanese version of Melee has exclusive content not found in the North American ISO. Actually, they are almost completely identical except for one file missing in the Japanese ISO: usa.ini. If you're unable to obtain a Japanese ISO of the game (I actually own a physical copy of the game), you can actually enable the full Japanese version of Melee by deleting usa.ini from the North American ISO. This makes many changes that aren't accessible just by changing the in-game language, such as the Japanese logo on the title screen, the Proximity Mine, the Topi seals, the Tamagon trophy, mentions of Perfect Dark, etc. Since the game ID is still GALE01, that means it is compatible with North American save files and North American gecko codes. The biggest difference between an actual Japanese Melee ISO and a North American ISO without usa.ini is that the Special Movie and How to Play videos are still in English.

Gale01-342 by ConnorRentz  Gale01-344 by ConnorRentz


    This is possible because Melee's has a .dat and a .usd for almost every file in the game. If usa.ini is detected, it will load the .usd files instead of the .dat files. Alternatively, adding usa.ini to a Japanese ISO will make it just like the North American ISO. The international logo, the Motion-Sensor Bomb, yeti Topis, no Tamagon or Perfect Dark, etc. However, the Special Movie and How to Play videos will still be in Japanese.

    For anyone curious about the Korean ISO of Melee, it has usa.ini included by default. Since its files seem to be almost completely identical to the North American v1.2 ISO, removing usa.ini has the same effect as the North American ISO.

Download develop.ini


    I don't know why anyone would need this, but just in case, here is an empty develop.ini file that can be added to any Super Smash Bros. Melee ISO. The easiest way to add this in is to use DAT Texture Wizard. Simply open up the ISO, and under Disc Operations, select Add File(s) to the Disc to add develop.ini, and save it to rebuild your ISO. You now have a debug ISO!

    There's always more to discover. The USB2EXI setup is yet to be accessed, and there may be more functions or features that are yet to be discovered. Again, thanks to UnclePunch and metaconstruct for their findings.

Published:
© 2019 - 2021 ConnorRentz
Comments1
Join the community to add your comment. Already a deviant? Log In
DarkraiShadowXZ's avatar

Wow, that is a lot of data. I love Melee and reading beta data. Thank you and thank you TCRF for these articles!