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

Super Smash Bros. Melee/Developer Functions

From The Cutting Room Floor
Jump to navigation Jump to search


This is a sub-page of Super Smash Bros. Melee.

Super Smash Bros. Melee's infamous Debug Menu was discovered by players around 2003 with an Action Replay code authored by Rune of GameShark Central, and for years, it was considered the game's primary debug tool. As expansive as it is, the debug menu is only a part of the larger debugging functions used by developers in the game. Curiously, all of the debug functions can be activated with an empty file that isn't even present on the disc.

Hmmm...
To do:

Sub-Pages

SSBM-GLOBAL-DATA-EDIT.png
Master Debug Menu
The hub of Melee's developer functions. You can even save all the changes you've made...or wipe out your Memory Card.
SSBM Sound Test.png
Debug Sound Test
When your in-game Sound Test isn't quite enough.
SSBM debugtransformation1.png
Debug Trophy Tools
Pick and modify your trophies.
SSBM-debugmessage1.png
Data Messages Test
Continue without saving?
SSBM-Crash-dblevel3.png
Crash Debugger
Poke around after the game freezes.

develop.ini

Super Smash Bros. Melee is actually missing a file on the disc, and it appears to be intentional. At boot-time, as the game starts up and before the HAL Laboratory logo appears (and also before the Progressive Scan/60Hz Mode menus), the function at 0x8015fda4 calls DVDConvertPathToEntrynum in an attempt to find develop.ini in the root directory. This file essentially unlocks all of the developer functions and can be easily added back into the game. This can be done by creating an empty file called develop.ini and adding it to the game's root directory with a ISO rebuilding tool such as DAT Texture Wizard or GC Rebuilder. The develop.ini file can be completely empty, similar to the usa.ini file found in the North American version of the game.

The develop.ini file can be inserted into the game data regardless of revision or region, it works with all demo versions of the game, and also often works with modded versions of the game.


(Source: metaconstruct)

Setting the DB Level

The game's title screen with a DB Level of 1 or higher displays the Apploader date.

One of the first things that develop.ini will change is the game’s DB Level, a significant variable inside of Super Smash Bros. Melee. The term DB Level may be familiar with anyone who has noticed the DBLEVEL setting on the root of the Debug Menu. There are five different DB Levels: 0, 1, 2, 3, and 4. Essentially, the higher the DB Level is, the more developer controls are enabled. The DB Level can be changed in the Debug Menu, but with develop.ini, the DB Level can be changed as the game boots. The DB Level will be maintained after a soft reset.

DB Level Debug Menu Name Notes
0 MASTER Without develop.ini, Super Smash Bros. Melee boots at DB Level 0. The Debug Menu refers to DB Level 0 as MASTER, which may indicate that this DB Level is intended for retail versions of the game. Since this is the default DB Level used by the retail game, there are of course no developer controls enabled at this DB Level.
1 NO-DEBUG-ROM With develop.ini, Super Smash Bros. Melee boots at DB Level 1, which is labeled by the Debug Menu as NO-DEBUG-ROM. While DB Level 1 does not actually enable any developer controls, it does display the game’s Apploader Date, or the revision compile date, on the title screen. It’s possible DB Level 1 is referred to as NO-DEBUG-ROM to indicate the game is in debug state despite enabling no developer controls (which theoretically could be useful for ensuring a certain build of the game is being used during testing).
2 DEBUG-DEVELOP DB Level 2, referred to in the Debug Menu as DEBUG-DEVELOP can only be accessed through the DBLEVEL option in the Debug Menu, meaning it can’t be accessed during boot with develop.ini. This is curious as there seems to be no apparent differences between DB Levels 1 and 2.
3 DEBUG-ROM With develop.ini in the game data, holding Y as the game boots will set Super Smash Bros. Melee to DB Level 3, otherwise known as DEBUG-ROM. Holding X will also boot the game to DB Level 3, but it will also unlock all of the hidden characters and stages without displaying the usual in-game special messages. At DB Level 3, developer controls are enabled, and they are available throughout the game (even before the opening movie starts).
4 DEVELOP DB Level 4 is also only accessible through the options in the Debug Menu, meaning it can’t be accessed during boot with develop.ini. This is simply referred to as DEVELOP, and it has no apparent differences from DB Level 3.

Title Screen Controls

On DB Levels 2 and below, the title screen will only accept one input: the Start button, which loads the main menu. But with DB Level 3 or higher, there are three more inputs available at the title screen.

The default match loaded from the title screen.
Button Result
Y Pressing the Y button will load the Debug Menu.
X Pressing the X button will load the Debug Sound Test.
A The A button will start a match using the current Debug Menu’s settings under the Versus Diarontou section. By default, this is an endless match with a human player one Link and a human player two Mario at Final Destination. There is no way to exit this match without resetting the system.

Global Inputs

During the game, there are some global inputs for development features that are accessible at almost any time. These inputs require the DB Level to be set at Level 3 or 4.

CPU/Memory Stats

The CPU/Memory Stats enabled on the main menu.

Pressing the X button and D-Pad Right toggles a view of CPU and memory stats at the bottom of the screen. The X button must be pressed before D-Pad Right. Loading a new screen (for example, leaving the character select screen and returning to the menu) will clear this view, and the input will need to be pressed again to make it re-appear. This can be toggled at any point in the game - even during matches and other debug screens.

Frame Advance Mode

Pressing the X button and D-Pad Up toggled a frame advance mode and stops on the current frame. The X button must be pressed before D-Pad Up. Each Z button press will advance one frame forward. This frame advance mode is available in matches, but is instead toggled with the Start button, and pressing the X button and D-Pad Up during a match will pause or unpause the game normally. There is no on-screen UI for the Frame Advance Mode, and the game can still be controlled while Frame Advance Mode is enabled.

Completing the first level of Adventure Mode with L, R, and A without making it to the end of the level.

Quit a Match

If the DB Level is set to Level 3 or 4, pausing the game and then pressing the L, R, and A buttons together will often end the match or stage similar to quitting normally.

In Versus Mode, this will simply cause a No Contest on the results screen. In Stamina Mode, the Results screen will be skipped and return the player back to the Character Select Screen. During Classic, Adventure, or All-Star, this will automatically clear the stage. This even works in All-Star’s rest area. In other 1-P Modes, this button combination will return the player to the previous menu. This button combination does nothing during a Tournament Mode match since the ability to quit a match is disabled in this mode. This also has no effect in Training.

USB2EXI

Hmmm...
To do:
  • Investigate USB2EXI.

Holding the R button during startup while in DB Level 3 or 4 starts what is called the EXI2USB Setup. To achieve this, during startup, you would need to hold the X or Y button to change the DB Level while also holding the R button to start the EXI2USB Setup. It seems the EXI2USB Setup would have primarily been used for capturing screenshots and potentially dumping the log output. Unfortunately, performing this button combination doesn't make any apparent differences to the game, as this feature requires GameCube development hardware and software to function as intended.

In order to properly utilize USB2EXI as intended without emulation, the USB-ADAPTER (as described by the GameCube's software development kit) would be needed to connect to the NPDP-GBOX (otherwise known as a GameCube development box) through an EXI port (a Memory Card slot) on the back on the development box and into a Windows NT 4.0 or Windows 2000 PC using a USB cable that plugs into the USB-ADAPTER's connector. To run Super Smash Bros. Melee on a GameCube development box (which does not have an optical disc drive), the game would need to be written onto a NPDP (Nintendo Portable Drive Pak) cartridge. This requires either an NPDP-GW or NPDP-SW unit connected to a Windows NT 4.0 or Windows 2000 PC that also has an NPDP-WIF card inserted in one of its PCI slots and the NPDP-WIF drivers and writer software installed.