Faxanadu includes inactive code for a level switch. The way this works is that, when activated, a Button Up press on controller 2 will go up one level/area, and Button Down will go down one. This loops around, so if you keep pressing the same direction, you'll end up (roughly) where you started. This code lives in Bank 15 at $DF99 - DFC4. Here's roughly what it looks like (translated to pseudo-C and cleaned up a bit): ```c void Debug_ChooseArea(void) { if ((Joy2_ButtonMask & BUTTON_BIT_UP) != BUTTON_BIT_NONE) { // Going up. Area_Region++; if (Area_Region > REGION_EVIL_FORTRESS) { Area_Region = REGION_EOLIS; } } else if ((Joy2_ButtonMask & BUTTON_BIT_DOWN) != BUTTON_BIT_NONE) { // Going down. Area_Region--; if (Area_Region < 0) { Area_Region = REGION_EVIL_FORTRESS; } } Area_CurrentScreen = 0; Game_SetupAndLoadArea(); } ``` # Activating this code The best way I've found to activate this it to replace the Pause functionality. The game mainloop jumps to a number of functions for managing game state, input, and rendering. One of these functions checks for and manages pausing the game (Bank 15, $E02B - $E047). Instead of jumping there, you can jump to the debug handler by replacing Bank 15 $DB75 - $DB76 (bytes `2B E0`) with bytes `99 DF`. This is easily done with the following [[Memory and Game Genie Codes|Game Genie codes]]: ``` OPYISU NIYIVU ``` This has been tested in both revisions of Faxanadu released in the US and Canada. The pause functionality will be disabled (you can always open the Player Menu), but the debug mode will be active.