Merge pull request #743 from Rangi42/master

Disassemble the final English debug ROMs
This commit is contained in:
Rangi 2020-07-13 16:16:28 -04:00 committed by GitHub
commit d626a0dc3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 2063 additions and 52 deletions

7
FAQ.md
View File

@ -4,7 +4,7 @@
## Questions
- [What is pokecrystal11.gbc?](#what-is-pokecrystal11gbc)
- [What is pokecrystal-au.gbc?](#what-is-pokecrystal-augbc)
- [What is pokecrystal_au.gbc?](#what-is-pokecrystal_augbc)
- [I can't build the ROM, `make` just prints an error!](#i-cant-build-the-rom-make-just-prints-an-error)
- [`gcc`: command not found](#gcc-command-not-found)
- ["ERROR: `UNION` already defined"](#error-union-already-defined)
@ -25,9 +25,10 @@
Version 1.1 of Pokémon Crystal, which fixed some issues with the initial international release. `make crystal11` defines `_CRYSTAL11` so the assembly builds the changed version.
## What is pokecrystal-au.gbc?
The Australian release of Pokémon Crystal, which is based on the international 1.1 release but censors gambling references from the Game Corners. `make crystal-au` defines `_CRYSTAL11` and `_CRYSTAL_AU` so the assembly builds the changed version.
## What is pokecrystal_au.gbc?
The Australian release of Pokémon Crystal, which is based on the international 1.1 release but censors gambling references from the Game Corners. `make crystal_au` defines `_CRYSTAL11` and `_CRYSTAL_AU` so the assembly builds the changed version.
## I can't build the ROM, `make` just prints an error!

View File

@ -1,6 +1,6 @@
roms := pokecrystal.gbc pokecrystal11.gbc pokecrystal-au.gbc
roms := pokecrystal.gbc pokecrystal11.gbc pokecrystal_au.gbc pokecrystal_debug.gbc pokecrystal11_debug.gbc
crystal_obj := \
rom_obj := \
audio.o \
home.o \
main.o \
@ -17,8 +17,11 @@ gfx/sprites.o \
gfx/tilesets.o \
lib/mobile/main.o
crystal11_obj := $(crystal_obj:.o=11.o)
crystal_au_obj := $(crystal_obj:.o=_au.o)
pokecrystal_obj := $(rom_obj:.o=.o)
pokecrystal11_obj := $(rom_obj:.o=11.o)
pokecrystal_au_obj := $(rom_obj:.o=_au.o)
pokecrystal_debug_obj := $(rom_obj:.o=_debug.o)
pokecrystal11_debug_obj := $(rom_obj:.o=11_debug.o)
### Build tools
@ -39,24 +42,26 @@ RGBLINK ?= $(RGBDS)rgblink
### Build targets
.SUFFIXES:
.PHONY: all crystal crystal11 crystal_au clean tidy compare tools
.PHONY: all crystal crystal11 crystal_au crystal_debug crystal11_debug clean tidy compare tools
.SECONDEXPANSION:
.PRECIOUS:
.SECONDARY:
all: crystal
crystal: pokecrystal.gbc
crystal11: pokecrystal11.gbc
crystal-au: pokecrystal-au.gbc
crystal: pokecrystal.gbc
crystal11: pokecrystal11.gbc
crystal_au: pokecrystal_au.gbc
crystal_debug: pokecrystal_debug.gbc
crystal11_debug: pokecrystal11_debug.gbc
clean:
rm -f $(roms) $(crystal_obj) $(crystal11_obj) $(crystal_au_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
rm -f $(roms) $(pokecrystal_obj) $(pokecrystal11_obj) $(pokecrystal_au_obj) $(pokecrystal_debug_obj) $(pokecrystal11_debug_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
find gfx \( -name "*.[12]bpp" -o -name "*.lz" -o -name "*.gbcpal" -o -name "*.sgb.tilemap" \) -delete
find gfx/pokemon -mindepth 1 ! -path "gfx/pokemon/unown/*" \( -name "bitmask.asm" -o -name "frames.asm" -o -name "front.animated.tilemap" -o -name "front.dimensions" \) -delete
$(MAKE) clean -C tools/
tidy:
rm -f $(roms) $(crystal_obj) $(crystal11_obj) $(crystal_au_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
rm -f $(roms) $(pokecrystal_obj) $(pokecrystal11_obj) $(pokecrystal_au_obj) $(pokecrystal_debug_obj) $(pokecrystal11_debug_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
$(MAKE) clean -C tools/
compare: $(roms)
@ -72,9 +77,11 @@ ifeq ($(DEBUG),1)
RGBASMFLAGS += -E
endif
$(crystal_obj): RGBASMFLAGS +=
$(crystal11_obj): RGBASMFLAGS += -D _CRYSTAL11
$(crystal_au_obj): RGBASMFLAGS += -D _CRYSTAL11 -D _CRYSTAL_AU
$(pokecrystal_obj): RGBASMFLAGS +=
$(pokecrystal11_obj): RGBASMFLAGS += -D _CRYSTAL11
$(pokecrystal_au_obj): RGBASMFLAGS += -D _CRYSTAL11 -D _CRYSTAL_AU
$(pokecrystal_debug_obj): RGBASMFLAGS += -D _DEBUG
$(pokecrystal11_debug_obj): RGBASMFLAGS += -D _CRYSTAL11 -D _DEBUG
rgbdscheck.o: rgbdscheck.asm
$(RGBASM) -o $@ $<
@ -93,24 +100,25 @@ ifeq (,$(filter clean tools,$(MAKECMDGOALS)))
$(info $(shell $(MAKE) -C tools))
$(foreach obj, $(crystal_au_obj), $(eval $(call DEP,$(obj),$(obj:_au.o=.asm))))
$(foreach obj, $(crystal11_obj), $(eval $(call DEP,$(obj),$(obj:11.o=.asm))))
$(foreach obj, $(crystal_obj), $(eval $(call DEP,$(obj),$(obj:.o=.asm))))
# Dependencies for shared objects objects
$(foreach obj, $(pokecrystal_obj), $(eval $(call DEP,$(obj),$(obj:.o=.asm))))
$(foreach obj, $(pokecrystal11_obj), $(eval $(call DEP,$(obj),$(obj:11.o=.asm))))
$(foreach obj, $(pokecrystal_au_obj), $(eval $(call DEP,$(obj),$(obj:_au.o=.asm))))
$(foreach obj, $(pokecrystal_debug_obj), $(eval $(call DEP,$(obj),$(obj:_debug.o=.asm))))
$(foreach obj, $(pokecrystal11_debug_obj), $(eval $(call DEP,$(obj),$(obj:11_debug.o=.asm))))
endif
pokecrystal.gbc: $(crystal_obj) layout.link
$(RGBLINK) -n pokecrystal.sym -m pokecrystal.map -l layout.link -p 0 -o $@ $(crystal_obj)
$(RGBFIX) -Cjv -t PM_CRYSTAL -i BYTE -k 01 -l 0x33 -m 0x10 -r 3 -p 0 $@
pokecrystal_opt = -Cjv -t PM_CRYSTAL -i BYTE -n 0 -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokecrystal11_opt = -Cjv -t PM_CRYSTAL -i BYTE -n 1 -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokecrystal_au_opt = -Cjv -t PM_CRYSTAL -i BYTU -n 0 -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokecrystal_debug_opt = -Cjv -t PM_CRYSTAL -i BYTE -n 0 -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokecrystal11_debug_opt = -Cjv -t PM_CRYSTAL -i BYTE -n 1 -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokecrystal11.gbc: $(crystal11_obj) layout.link
$(RGBLINK) -n pokecrystal11.sym -m pokecrystal11.map -l layout.link -p 0 -o $@ $(crystal11_obj)
$(RGBFIX) -Cjv -t PM_CRYSTAL -i BYTE -n 1 -k 01 -l 0x33 -m 0x10 -r 3 -p 0 $@
pokecrystal-au.gbc: $(crystal_au_obj) layout.link
$(RGBLINK) -n pokecrystal-au.sym -m pokecrystal-au.map -l layout.link -p 0 -o $@ $(crystal_au_obj)
$(RGBFIX) -Cjv -t PM_CRYSTAL -i BYTU -k 01 -l 0x33 -m 0x10 -r 3 -p 0 $@
%.gbc: $$(%_obj) layout.link
$(RGBLINK) -n $*.sym -m $*.map -l layout.link -o $@ $(filter %.o,$^)
$(RGBFIX) $($*_opt) $@
### LZ compression rules

View File

@ -7,6 +7,8 @@ It builds the following ROMs:
- Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc `sha1: f4cd194bdee0d04ca4eac29e09b8e4e9d818c133`
- Pokemon - Crystal Version (UE) (V1.1) [C][!].gbc `sha1: f2f52230b536214ef7c9924f483392993e226cfb`
- Pokemon - Crystal Version (A) [C][!].gbc `sha1: a0fc810f1d4e124434f7be2c989ab5b5892ddf36`
- CRYSTAL_ps3_010328d.bin `sha1: c60d57a24bbe8ecf7cba54ab3f90669f97bd330d`
- CRYSTAL_ps3_us_revise_010710d.bin `sha1: 391ae86b1d5a26db712ffe6c28bbf2a1f804c3c4`
To set up the repository, see [INSTALL.md](INSTALL.md).

View File

@ -47,6 +47,8 @@ MAX_BALLS EQU 12
MAX_KEY_ITEMS EQU 25
MAX_PC_ITEMS EQU 50
MAX_ITEM_STACK EQU 99
; mail
MAIL_LINE_LENGTH EQU $10
MAIL_MSG_LENGTH EQU $20

View File

@ -19,6 +19,9 @@ GS_VERSION EQU 0
SAVE_CHECK_VALUE_1 EQU 99
SAVE_CHECK_VALUE_2 EQU 127
; RTC halted check value
RTC_HALT_VALUE EQU $1234
; time of day boundaries
MORN_HOUR EQU 4 ; 4 AM
DAY_HOUR EQU 10 ; 10 AM

View File

@ -3432,7 +3432,24 @@ DoEnemyDamage:
ld [wBuffer4], a
sbc b
ld [wEnemyMonHP], a
if DEF(_DEBUG)
push af
ld a, BANK(sSkipBattle)
call OpenSRAM
ld a, [sSkipBattle]
call CloseSRAM
or a
; If [sSkipBattle] is nonzero, skip the "jr nc, .no_underflow" check,
; so any attack deals maximum damage to the enemy.
jr nz, .debug_skip
pop af
jr nc, .no_underflow
push af
.debug_skip
pop af
else
jr nc, .no_underflow
endc
ld a, [wBuffer4]
ld [hli], a

1762
engine/debug/debug_room.asm Normal file

File diff suppressed because it is too large Load Diff

View File

@ -168,7 +168,7 @@ PutItemInPocket:
jr z, .terminator
cp c
jr nz, .next
ld a, 99
ld a, MAX_ITEM_STACK
sub [hl]
add b
ld b, a
@ -205,14 +205,14 @@ PutItemInPocket:
jr nz, .loop2
ld a, [wItemQuantityBuffer]
add [hl]
cp 100
cp MAX_ITEM_STACK + 1
jr nc, .newstack
ld [hl], a
jr .done
.newstack
ld [hl], 99
sub 99
ld [hl], MAX_ITEM_STACK
sub MAX_ITEM_STACK
ld [wItemQuantityBuffer], a
jr .loop2
@ -408,7 +408,7 @@ ReceiveTMHM:
add hl, bc
ld a, [wItemQuantityChangeBuffer]
add [hl]
cp 100
cp MAX_ITEM_STACK + 1
jr nc, .toomany
ld [hl], a
scf

View File

@ -498,7 +498,7 @@ BuyMenuLoop:
ret
StandardMartAskPurchaseQuantity:
ld a, 99
ld a, MAX_ITEM_STACK
ld [wItemQuantityBuffer], a
ld a, MARTTEXT_HOW_MANY
call LoadBuyMenuText
@ -557,7 +557,7 @@ RooftopSaleAskPurchaseQuantity:
ld a, MARTTEXT_HOW_MANY
call LoadBuyMenuText
call .GetSalePrice
ld a, 99
ld a, MAX_ITEM_STACK
ld [wItemQuantityBuffer], a
farcall RooftopSale_SelectQuantityToBuy
call ExitMenu

View File

@ -96,11 +96,11 @@ Function249a7:
jr nz, .asm_249cd
ld a, [wScrollingMenuCursorPosition]
call Function24a97
cp 99
cp MAX_ITEM_STACK
jr z, .asm_249cd
ld a, [wSwitchItem]
call Function24a97
cp 99
cp MAX_ITEM_STACK
jr nz, .asm_249cf
.asm_249cd
and a
@ -121,14 +121,14 @@ Function249d1:
ld a, [hl]
pop hl
add [hl]
cp 100
cp MAX_ITEM_STACK + 1
jr c, .asm_24a01
sub 99
sub MAX_ITEM_STACK
push af
ld a, [wScrollingMenuCursorPosition]
call ItemSwitch_GetNthItem
inc hl
ld [hl], 99
ld [hl], MAX_ITEM_STACK
ld a, [wSwitchItem]
call ItemSwitch_GetNthItem
inc hl

View File

@ -88,6 +88,12 @@ AreYouABoyOrAreYouAGirl:
farcall InitMobileProfile ; mobile
ret
if DEF(_DEBUG)
DebugRoom: ; unreferenced
farcall _DebugRoom
ret
endc
ResetWRAM:
xor a
ldh [hBGMapMode], a

View File

@ -18,6 +18,7 @@
const MAINMENUITEM_MYSTERY_GIFT ; 3
const MAINMENUITEM_MOBILE ; 4
const MAINMENUITEM_MOBILE_STUDIUM ; 5
const MAINMENUITEM_DEBUG_ROOM ; 6
MobileMenuGFX:
INCBIN "gfx/mobile/mobile_menu.2bpp"
@ -70,6 +71,9 @@ MainMenu:
db "MYSTERY GIFT@"
db "MOBILE@"
db "MOBILE STUDIUM@"
if DEF(_DEBUG)
db "DEBUG ROOM@"
endc
.Jumptable:
; entries correspond to MAINMENUITEM_* constants
@ -79,6 +83,9 @@ MainMenu:
dw MainMenu_MysteryGift
dw MainMenu_Mobile
dw MainMenu_MobileStudium
if DEF(_DEBUG)
dw MainMenu_DebugRoom
endc
MainMenuItems:
; entries correspond to MAINMENU_* constants
@ -90,71 +97,95 @@ MainMenuItems:
db -1
; MAINMENU_CONTINUE
db 3
db 3 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
; MAINMENU_MOBILE_MYSTERY
db 5
db 5 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
db MAINMENUITEM_MOBILE
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
; MAINMENU_MOBILE
db 4
db 4 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MOBILE
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
; MAINMENU_MOBILE_STUDIUM
db 5
db 5 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MOBILE
db MAINMENUITEM_MOBILE_STUDIUM
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
; MAINMENU_MYSTERY_MOBILE_STUDIUM
db 6
db 6 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
db MAINMENUITEM_MOBILE
db MAINMENUITEM_MOBILE_STUDIUM
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
; MAINMENU_MYSTERY
db 4
db 4 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
; MAINMENU_MYSTERY_STUDIUM
db 5
db 5 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MYSTERY_GIFT
db MAINMENUITEM_MOBILE_STUDIUM
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
; MAINMENU_STUDIUM
db 4
db 4 + DEF(_DEBUG)
db MAINMENUITEM_CONTINUE
db MAINMENUITEM_NEW_GAME
db MAINMENUITEM_OPTION
db MAINMENUITEM_MOBILE_STUDIUM
if DEF(_DEBUG)
db MAINMENUITEM_DEBUG_ROOM
endc
db -1
MainMenu_GetWhichMenu:

View File

@ -25,6 +25,20 @@ NextCallReceiveDelay:
ld hl, .ReceiveCallDelays
add hl, de
ld a, [hl]
if DEF(_DEBUG)
ld h, a
ld a, BANK(sDebugTimeCyclesSinceLastCall)
call OpenSRAM
ld a, [sDebugTimeCyclesSinceLastCall]
call CloseSRAM
dec a
cp 2
jr nc, .debug_ok
xor 1
ld h, a
.debug_ok
ld a, h
endc
jp RestartReceiveCallDelay
.ReceiveCallDelays:

View File

@ -185,6 +185,10 @@ EggStatsJoypad:
.check
bit A_BUTTON_F, a
jr nz, .quit
if DEF(_DEBUG)
cp START
jr z, .hatch
endc
and D_DOWN | D_UP | A_BUTTON | B_BUTTON
jp StatsScreen_JoypadAction
@ -193,6 +197,39 @@ EggStatsJoypad:
call StatsScreen_SetJumptableIndex
ret
if DEF(_DEBUG)
.hatch
ld a, [wMonType]
or a
jr nz, .skip
push bc
push de
push hl
ld a, [wCurPartyMon]
ld bc, PARTYMON_STRUCT_LENGTH
ld hl, wPartyMon1Happiness
call AddNTimes
ld [hl], 1
ld a, 1
ld [wTempMonHappiness], a
ld a, 127
ld [wStepCount], a
ld de, .HatchSoonString
hlcoord 8, 17
call PlaceString
ld hl, wcf64
set 5, [hl]
pop hl
pop de
pop bc
.skip
xor a
jp StatsScreen_JoypadAction
.HatchSoonString:
db "▶HATCH SOON!@"
endc
StatsScreen_LoadPage:
call StatsScreen_LoadGFX
ld hl, wcf64
@ -970,6 +1007,17 @@ EggStatsScreen:
ld de, FiveQMarkString
hlcoord 11, 5
call PlaceString
if DEF(_DEBUG)
ld de, .PushStartString
hlcoord 8, 17
call PlaceString
jr .placed_push_start
.PushStartString:
db "▶PUSH START.@"
.placed_push_start
endc
ld a, [wTempMonHappiness] ; egg status
ld de, EggSoonString
cp $6

View File

@ -1138,7 +1138,7 @@ MaskObject::
ld d, $0
ld hl, wObjectMasks
add hl, de
ld [hl], -1 ; , masked
ld [hl], -1 ; masked
ret
UnmaskObject::
@ -1150,6 +1150,28 @@ UnmaskObject::
ld [hl], 0 ; unmasked
ret
if DEF(_DEBUG)
ComputeROMXChecksum::
ldh a, [hROMBank]
push af
ld a, c
rst Bankswitch
ld hl, $4000 ; ROMX start
.loop
ld a, [hli]
add e
ld e, a
ld a, d
adc 0
ld d, a
ld a, h
cp $80 ; HIGH(ROMX end)
jr c, .loop
pop af
rst Bankswitch
ret
endc
ScrollMapUp::
hlcoord 0, 0
ld de, wBGMapBuffer

View File

@ -2,6 +2,22 @@ OpenSRAM::
; if invalid bank, sram is disabled
cp NUM_SRAM_BANKS
jr c, .valid
if DEF(_DEBUG)
push af
push bc
ld b, 1
.loop
sla b
dec a
jr nz, .loop
ld a, BANK(sOpenedInvalidSRAM)
call OpenSRAM
ld a, [sOpenedInvalidSRAM]
or b
ld [sOpenedInvalidSRAM], a
pop bc
pop af
endc
jr CloseSRAM
.valid:

View File

@ -165,6 +165,10 @@ hSGB:: db
hDMATransfer:: db
hMobile:: db
hSystemBooted:: db
if DEF(_DEBUG)
hDebugRoomMenuPage::
endc
hClockResetTrigger:: db
ds 19

View File

@ -294,6 +294,7 @@ ROMX $77
"Tileset Data 7"
"bank77_2"
ROMX $78
"Debug Room"
"Tileset Data 8"
ROMX $7b
"Battle Tower Text"

View File

@ -290,7 +290,7 @@ INCLUDE "engine/overworld/player_movement.asm"
INCLUDE "engine/events/engine_flags.asm"
INCLUDE "engine/overworld/variables.asm"
INCLUDE "data/text/battle.asm"
INCLUDE "engine/menus/debug.asm"
INCLUDE "engine/debug/color_picker.asm"
SECTION "bank21", ROMX
@ -696,6 +696,13 @@ INCBIN "gfx/pokegear/pokegear.2bpp.lz"
INCLUDE "engine/pokemon/european_mail.asm"
SECTION "Debug Room", ROMX
if DEF(_DEBUG)
INCLUDE "engine/debug/debug_room.asm"
endc
SECTION "Battle Tower Text", ROMX
INCLUDE "data/battle_tower/trainer_text.asm"
@ -722,7 +729,15 @@ SECTION "Mobile Stadium 2", ROMX
if DEF(_CRYSTAL_AU)
INCBIN "mobile/stadium/stadium2_au.bin"
elif DEF(_CRYSTAL11)
if DEF(_DEBUG)
INCBIN "mobile/stadium/stadium2_11_debug.bin"
else
INCBIN "mobile/stadium/stadium2_11.bin"
endc
else
if DEF(_DEBUG)
INCBIN "mobile/stadium/stadium2_debug.bin"
else
INCBIN "mobile/stadium/stadium2.bin"
endc
endc

View File

@ -844,3 +844,9 @@ Function4a6d8:
dec b
jr nz, Function4a6d8
ret
if DEF(_DEBUG)
MainMenu_DebugRoom:
farcall _DebugRoom
ret
endc

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +1,5 @@
f4cd194bdee0d04ca4eac29e09b8e4e9d818c133 *pokecrystal.gbc
f2f52230b536214ef7c9924f483392993e226cfb *pokecrystal11.gbc
a0fc810f1d4e124434f7be2c989ab5b5892ddf36 *pokecrystal-au.gbc
a0fc810f1d4e124434f7be2c989ab5b5892ddf36 *pokecrystal_au.gbc
c60d57a24bbe8ecf7cba54ab3f90669f97bd330d *pokecrystal_debug.gbc
391ae86b1d5a26db712ffe6c28bbf2a1f804c3c4 *pokecrystal11_debug.gbc

View File

@ -90,6 +90,14 @@ sBackupCheckValue2:: db ; loaded with SAVE_CHECK_VALUE_2, used to check save cor
sStackTop:: dw
if DEF(_DEBUG)
sRTCHaltCheckValue:: dw
sSkipBattle:: db
sDebugTimeCyclesSinceLastCall:: db
sOpenedInvalidSRAM:: db
sIsBugMon:: db
endc
SECTION "Save", SRAM

View File

@ -1177,6 +1177,49 @@ wccb5:: ds 3
wccb8:: ds 1
wccb9:: ds 1
wccba:: ds 102
if DEF(_DEBUG)
NEXTU
; debug room
; debug room RTC values
wDebugRoomRTCSec:: db
wDebugRoomRTCMin:: db
wDebugRoomRTCHour:: db
wDebugRoomRTCDay:: dw
wDebugRoomRTCCurSec:: db
wDebugRoomRTCCurMin:: db
wDebugRoomRTCCurHour:: db
wDebugRoomRTCCurDay:: dw
; debug room paged values
wDebugRoomCurPage:: db
wDebugRoomCurValue:: db
wDebugRoomAFunction:: dw
wDebugRoomStartFunction:: dw
wDebugRoomSelectFunction:: dw
wDebugRoomAutoFunction:: dw
wDebugRoomPageCount:: db
wDebugRoomPagedValuesPtr:: dw
wDebugRoomROMChecksum:: dw
wDebugRoomCurChecksumBank:: db
UNION
; debug room new item values
wDebugRoomItemID:: db
wDebugRoomItemQuantity:: db
NEXTU
; debug room new pokemon values
wDebugRoomMon:: box_struct wDebugRoomMon
wDebugRoomMonBox:: db
NEXTU
; debug room GB ID values
wDebugRoomGBID:: dw
ENDU
endc
ENDU