the cutting room mirror

Debug Build

This is a sub-page of Wario Land 4.

Partial source code for the game was found in the files of the July 2020 leaks at the path d1\routefree\bbgames\depot\wario4land_gba_ique and with a small amount of work, can be built into a debug-enabled ROM. The debug mode which is present in retail is enabled here by default, in addition to many more options including a full debug menu.

An xdelta patch to enable these features can be found here:

Controls#

On Boot:

  • Hold L while booting to jump straight to the ending sequence.
  • Hold R while booting to jump straight to the ending cutscene (After the credits).
  • Hold a D-Pad Direction while booting to affect how the Nintendo logo appears slightly.

On Nintendo Logo: (Press any of the following combos to activate debug)

  • Press D-Pad directions to move the logo.
  • Press R / L to rotate the logo.
  • Press B + D-Pad to scale / stretch the logo.

Anytime during the Nintendo logos / intro cutscenes / title screen:

  • Press A + B + Left to enter a debug menu with various options.
  • Press Select + Down to switch to next scene in the intro.
  • Press Select + Up to switch to previous scene in the intro.
  • Press Select + Right to return to Nintendo logo.

On title screen:

  • Hold B and use D-Pad to move the title screen logo.
  • Pressing R cycles between the title screen and the various auto demos.
  • Press R then hold L to trigger the ending cutscene.
  • Press R to trigger an auto demo, then hold R to show the ending cutscene after the credits.

When starting a new game, during the beginning cutscene:

  • Controls which are similar to the ones for the Nintendo logo can be used to move and scale / stretch Wario as he runs up the pyramid.
  • You can control the camera during some parts.
  • Things can break easily.

While in a level:

  • Press Select to toggle Free Movement.

While Free Movement is enabled:

  • D-Pad to move, hold R to move faster.
  • Press Start to center focus on Wario. Pressing Start again and/or exiting Free Movement will revert the camera back to its regular mode.
  • Press L + D-Pad Up to immediately clear the level.

While in the central hub area (the starting area when beginning a new game):

  • Press L + various buttons to set various flags, or use R + various buttons to trigger different scenes:

L + R = Everything Unlocked
L + B
L + Select
L + Up
R + Select = INIT_DMAP_5 = Plays the scene where the middle floor opens up
R + B = INIT_SELDEMO = Show the clear cutscene for the selected passageway

Wario_Land_4_-_DEBUG_Nintendo_logo.png Wario_Land_4_-_DEBUG_Title_screen.png Wario_Land_4_-_DEBUG_Wario_scaling.png

Debug Menu#

The debug menu contains various options, such as a level select, setting starting flags and money, changing language and difficulty, as well as a sound test.

  • Press Select to switch to Sound test and back to Main debug menu.
  • Hold B and use D-Pad to choose different options in the foreground menu.
  • Hold R and use D-Pad to choose options from the menu in the background.
  • Use D-Pad Up / D-Pad Down to increase / decrease selected value.

Wario_Land_4_-_DEBUG_Main_menu.png Wario_Land_4_-_DEBUG_Main_menu_Page_2.png Wario_Land_4_-_DEBUG_Sound_test.png

Steps to Build#

For reference, the steps that were taken to build the ROM are:

Set up a WinXP VM: Get a copy of the gbasdk zip: Install GNUPro021206.zip, then copy the bin, include, and lib folders to: C:/agb

Edit GNUmakefiles:

Remove -mthumb from all GNUmakefiles' ASFLAGS and CFLAGS. Also, remove all occurrences of -DCHINA=1 and change CHINA = 1 to CHINA = 0

Edit crt0.s:

Remove "_zh" from: .INCLUDE "crt0Include_zh.s"

Restore the following files:

wario4land_gba_ique\src\gmap\Attic\Save_SramAccess_debug.o,v

wario4land_gba_ique\src\gmap\Attic\Save_SramAccess_release.o,v

Once restored place them at: wario4land_gba_ique\src\gmap\

Fix for WriteSramEx:

Copy AgbSram.h and AgbSramFast.h from: netcard\gba\sw\gba\include\nintendo\backup to: C:\agb\include Then add extern u32 WriteSramEx(u8src, u8 dst, u32 size) ; to sram.h (before the last #endif).

Copy all *.a files from: netcard\gba\sw\gba\lib\nintendo to: C:\agb\lib

Building: Refer to the readme.txt in the src directory. Full debug features can be enabled by setting TITLE_DEBUG_MODE TRUE as well as uncommenting #define SEL_DEBUG