(Copied from [The Super Metroid Documentation page.] )
Enable Debug ModeEdit
808004FF -- Debug Mode
This enables a whole mess of debugging features. This is actually the same as the code listed in the GGCCC's Super Metroid GG FAQ as "Another version of Galoob's 'select any area when loading a saved game'". In addition to selecting which region of the planet to start in, you can also pick a spot within the region using select on controller 2.
Various debugging features can be unlocked during normal gameplay via button combos on controller 1. Holding Select + L and pressing X will get you sprite tile viewer. Continue holding Select + L and press A to view the tiles with different palettes, or press X again to view the second set of sprite tiles.
Hold Select + L and press A for a (buggy) palette viewer.
Hold Select + R and press A to turn off the layer 3 stuff(status bar, liquids/fogs).
[Select + R + B = set missiles, super missiles, and power bombs to 0.]
[Select + L + Y = gray the bottom portion of the screen to indicate when the frame finished processing]
There are other Select + [shoulder button] + [other button] combos, but their uses aren't as apparent. Try some and see what I mean. Also, the standard Select + Start + L + R reset combo is enabled now. Pretty boring, to be honest. The real fun is to be had over on controller 2. Here's a rundown of the keys for controller 2:
Start --- Save prompt. Save and reset or (likely) crash. Your choice. Select --- Displays the room's enemy set data(needs the debugger font). A --- Toggle Samus <-> enemy interaction(you can't hurt each other). L --- Disable framely processing of enemies(all enemies stop). R --- Enemy Mover(and what loads the enemy debugger font)
The enemy mover is what's important here. It shows you the enemy's name, X/Y position, current HP, the enemy set name, and lets you move enemies around with the pad on controller 2. Press Select to select the next enemy, B + Select to go back one(somewhat buggy). Pressing A will summon the enemy to a spot on Samus's right and holding X while moving the enemy around will move it much faster. Pressing R will bring us to...
...the enemy room population entry editor. This edits the enemy's entry in the room population data in RAM. Use the pad to move the cursor, X to increase the value, and B to decrease it. Select will move the enemy to the X/Y pos that you've set while A does the opposite, setting the X/Y pos to the enemy's current position. Pressing R will exit, but pressing L takes us to...
...the enemy spawner. It gives you a list of enemies in the current enemy set. You pick your enemy with down. You spawn the enemy with L. You cancel with R. You know where the Kraid's Hideout energy tank is? Go try it out there.
Extended Enemy DebuggerEdit
B495D69C -- Extended Enemy Debugger
This will make the R button in the enemy spawner take you to the extended enemy debugger instead of exiting. Here you can watch all kinds of enemy animation and AI variables. Press R to move to the next page. After a few pages of four variables per page, you'll be dumped into the enemy set display, where you can press Select to exit the debugger.
Miscellaneous Debugging EnablersEdit
808000FF --- Bypass country and NTSC/PAL check
808002FF --- Enable what I'm fairly sure is the demo recorder. It tries to record what appears to be the current button presses, button holds, Samus's X/Y position, and the X/Y position of the top-left corner of the visible area. That was off the top of my head, so question its accuracy. Either way, it does exactly nothing at the moment due to the fact that it tries to write these values to ROM(which would have worked fine on Nintendo's development systems, but not on current emulators or the SNES).
808006FF --- Lets X on controller 2 toggle scrolling on and off. Pretty annoying. You have to use this with the main debug code(which enables reading of the second controller) in order for this to work.
808008FF --- Something for the audio man, I'm guessing. Start up with this code and you'll crash when you go through a door. Turn the code on during gameplay and the music won't change(actually, I think it still changes for the item room/elevator music and some other special tracks).
There are a lot of other little debugging and development features hiding throughout the game's code. Here's an example:
A2AAF000 --- Hold B on controller 2 to make Samus's ship lift off when you enter it.
84B33360 --- Display Scrolling Trigger Extensions
84B36660 --- Display Scrolling Triggers
( Sources: deskjockey_, JathyS's site, Kejardon )
Even More Stuff?Edit
According to Kejardon, there are also some more debugging options, such as a way to enable invincibility while on elevators, but as of the moment, the code is not available.
Found using a Sprite Viewer on a ZSNES save state, this weird, alien-esque Pac-Man type thing can be seen amongst Mother Brain's graphics. Absolutely no idea what it was doing there, unless it was supposed to be a part of Mother Brain herself. Very creepy.
Stoke and ProjectileEdit
Found in the ROM is the object labeld as the "Stoke" and its projectile (that yellow blip in the door). The Stoke is simply a miniature Crocomire that moves forward and shoots projectiles. Its AI is only partially coded in, due to the fact it doesn't work properly when going up a slope. However, it can be killed easily enough. This was certainly planned to use in Norfair.
There is an unused, but very much finished reflector object in the game's settings. If you shoot at the mirror portion with either a beam, missile, super missile, or even a bomb, it reflects Samus' shot! The reflected shot can still hurt enemies, and even Samus herself if the reflected shot hits! The reflector object can be placed using SMILE or some other editor in 45-degree increments. If the reflector is hit with a bomb explosion, however, the game will freeze. However, Kejardon has created a patch to fix that bug.
Using SMILE, an unused one-screen room. The room was obviously going to be used in Norfair, but the curious thing is that there is no bottom in this room. It all just leads to garbage data. No idea what kind of a room this could've been, as it just looks like the top of a typical Norfairian shaft.