Might as well chime in, since apparently somebody has been busy poking through my info on debug features ;*)
"Record ramrom" can be used via GS in PAL as well as US. Only US received a patch since, well, they have a menu. PAL carts have all the same debug stuff available, just no menu to activate it with.
Ramrom 1, 2, 3 don't just change location but also loadouts. You're viewing ramrom files during the intro playthroughs. We've been calling them sets, and each set can have unique spawn locations, equipment, and ammo. Although they never used the feature, you can also record MP matches, and these can have entirely different spawn locations or even start players with stuff.
Save Ramrom copies the current ramrom file (either the last to be replayed or the one currently recorded) to the dev unit. It generates a filename, and if that name isn't already in the dev unit's filelist copies it out.
Load ramrom generates a filename that is searched for on the dev unit's little filelist, and when found loads this as the current ramrom file. If all's well, it also starts playback.
Both of these technically work, presuming you have a writable ROM region at the correct address range and can send a flag to indicate that the file loaded successfully. They don't really crash the game; they sit and spin until the filename can be found more made.
The fileloader also has the same functionality. If a filename can't be found in the normal internal filelist, it looks at the dev unit's filelist for the name. It will continue to look until it is found, or in other words until you upload it. It then makes an entry in the internal filelist for the file and treats it like any other file on cart.
Obj load searches and loads all objects found in every part of the setup file. Under normal conditions objects are loaded on-demand, so this feature's primary purpose was determining how much memory has to be dedicated in order for every unique object to be loaded at once. You can also use it as a cheap trick to kill lag in large, open areas.
Joy2 detail edit should be explained a little better. LOD in GE and PD is used to do texture swapping at near/far distance, similiar to the Peach/Bowser trick. It's used sparingly; the rock surfaces of Dam and the walls in Grid are examples. When active, the last texture you shot is added to a list. This texture's replacement distance, type, and image can then be editted via controller 2. However, the trick here is that the texture will only display these characteristics if loaded via one of two different methods. Toggling the feature again decativates LOD for all images in the list, but shouldn't reset the list unless I'm seriously mistaken.
The options that printed text did not print it to the dev unit, unless it happened to get parrotted by some obscure means. It was actually printed to a "fake console", with its own little 1bit font, overlayed on top of all other screens. The console is line-based, 74 chars in 32 lines, so as you reach the bottom it "scrolls" down a line. It has support for tabs, which are aligned to 8 char boundries.
There are several ways it can be activated. One is as a periodic event, via Count/Compare. The typical way would be to permit the menu by setting 8002309C nonzero, then turn it on or off via 80023098. You can billy-club it on by setting 80023094 nonzero, which would be the case on serious errors.
(Had a pic for this, will have to re-up sometime)
There's also command line options, and GE isn't the only one that searches for them. At boot, some carts will load from cart addresses 0xFF0000 to 0xFF0040, which is a small buffer in the dev unit's dedicated memory range. In GE's case, it looks for more than it can use. GE originally permitted setting stage ID, difficulty, memory allocations, and other special settings. Currently, the only ones it does anything with are:
-d activate "debugger mode", which due to some missing code would be quite lethal
-j trigger japanese support, whose display is a little goofy in US ROMs
Two more flags are caught at boot but reset before use. They recycle the rdram buffer for other tokenized strings, such as memory allocation strings.
|