Wario Land 4/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:
Download Wario Land 4 Debug Patch
File: Wario_Land_4_(USA,_Europe)_(DEBUG_MAIN,_SEL_DEBUG,_TITLE_DEBUG)_-_Debug_Patch.zip (info)
|
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
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.
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(u8 src, 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