Disassemble the final English debug ROMs

This commit is contained in:
Rangi 2020-07-10 20:12:38 -04:00
parent 30c327276c
commit 4eeab8973c
21 changed files with 1542 additions and 37 deletions

View File

@ -1,4 +1,4 @@
roms := pokegold.gbc pokesilver.gbc
roms := pokegold.gbc pokesilver.gbc pokegold_debug.gbc pokesilver_debug.gbc
rom_obj := \
audio.o \
@ -21,9 +21,13 @@ gfx/pics
gold_excl_obj := $(addsuffix _gold.o,$(gs_excl_asm))
silver_excl_obj := $(addsuffix _silver.o,$(gs_excl_asm))
gold_debug_excl_obj := $(addsuffix _gold_debug.o,$(gs_excl_asm))
silver_debug_excl_obj := $(addsuffix _silver_debug.o,$(gs_excl_asm))
pokegold_obj := $(rom_obj:.o=_gold.o) $(gold_excl_obj)
pokesilver_obj := $(rom_obj:.o=_silver.o) $(silver_excl_obj)
pokegold_debug_obj := $(rom_obj:.o=_gold_debug.o) $(gold_debug_excl_obj)
pokesilver_debug_obj := $(rom_obj:.o=_silver_debug.o) $(silver_debug_excl_obj)
### Build tools
@ -50,16 +54,18 @@ RGBLINK ?= $(RGBDS)rgblink
.SECONDARY:
all: $(roms)
gold: pokegold.gbc
silver: pokesilver.gbc
gold: pokegold.gbc
silver: pokesilver.gbc
gold_debug: pokegold_debug.gbc
silver_debug: pokesilver_debug.gbc
clean:
rm -f $(roms) $(pokegold_obj) $(pokesilver_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
rm -f $(roms) $(pokegold_obj) $(pokesilver_obj) $(pokegold_debug_obj) $(pokesilver_debug_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
find gfx \( -name "*.[12]bpp" -o -name "*.lz" -o -name "*.gbcpal" -o -name "*.dimensions" -o -name "*.sgb.tilemap" \) -delete
$(MAKE) clean -C tools/
tidy:
rm -f $(roms) $(pokegold_obj) $(pokesilver_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
rm -f $(roms) $(pokegold_obj) $(pokesilver_obj) $(pokegold_debug_obj) $(pokesilver_debug_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym) rgbdscheck.o
$(MAKE) clean -C tools/
compare: $(roms)
@ -75,8 +81,10 @@ ifeq ($(DEBUG),1)
RGBASMFLAGS += -E
endif
$(pokegold_obj): RGBASMFLAGS += -D _GOLD
$(pokesilver_obj): RGBASMFLAGS += -D _SILVER
$(pokegold_obj): RGBASMFLAGS += -D _GOLD
$(pokesilver_obj): RGBASMFLAGS += -D _SILVER
$(pokegold_debug_obj): RGBASMFLAGS += -D _GOLD -D _DEBUG
$(pokesilver_debug_obj): RGBASMFLAGS += -D _SILVER -D _DEBUG
rgbdscheck.o: rgbdscheck.asm
$(RGBASM) -o $@ $<
@ -100,15 +108,26 @@ $(foreach obj, $(filter-out $(gold_excl_obj), $(pokegold_obj)), \
$(eval $(call DEP,$(obj),$(obj:_gold.o=.asm))))
$(foreach obj, $(filter-out $(silver_excl_obj), $(pokesilver_obj)), \
$(eval $(call DEP,$(obj),$(obj:_silver.o=.asm))))
$(foreach obj, $(filter-out $(gold_debug_excl_obj), $(pokegold_debug_obj)), \
$(eval $(call DEP,$(obj),$(obj:_gold_debug.o=.asm))))
$(foreach obj, $(filter-out $(silver_debug_excl_obj), $(pokesilver_debug_obj)), \
$(eval $(call DEP,$(obj),$(obj:_silver_debug.o=.asm))))
# Dependencies for game-exclusive objects (keep _gold and _silver in asm file basenames)
$(foreach obj, $(gold_excl_obj) $(silver_excl_obj), $(eval $(call DEP,$(obj),$(obj:.o=.asm))))
$(foreach obj, $(gold_excl_obj) $(silver_excl_obj), \
$(eval $(call DEP,$(obj),$(obj:.o=.asm))))
$(foreach obj, $(gold_debug_excl_obj), \
$(eval $(call DEP,$(obj),$(obj:_gold_debug.o=_gold.asm))))
$(foreach obj, $(silver_debug_excl_obj), \
$(eval $(call DEP,$(obj),$(obj:_silver_debug.o=_silver.asm))))
endif
pokegold_opt = -cjsv -t POKEMON_GLD -i AAUE -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokesilver_opt = -cjsv -t POKEMON_SLV -i AAXE -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokegold_opt = -cjsv -t POKEMON_GLD -i AAUE -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokesilver_opt = -cjsv -t POKEMON_SLV -i AAXE -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokegold_debug_opt = -cjsv -t POKEMON_GLD -i AAUE -k 01 -l 0x33 -m 0x10 -r 3 -p 0
pokesilver_debug_opt = -cjsv -t POKEMON_SLV -i AAXE -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,$^)

View File

@ -6,6 +6,8 @@ It builds the following ROMs:
- Pokemon - Gold Version (UE) [C][!].gbc `sha1: d8b8a3600a465308c9953dfa04f0081c05bdcb94`
- Pokemon - Silver Version (UE) [C][!].gbc `sha1: 49b163f7e57702bc939d642a18f591de55d92dae`
- mons2_gld_ps3_debug.bin `sha1: 53783c57378122805c5b4859d19e1a224f02a1ed`
- mons2_slv_ps3_debug.bin `sha1: 4c2fafebdbc7551f4cd3f348bdd17e420b93b6e7`
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

@ -23,6 +23,9 @@ ENDC
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

@ -0,0 +1 @@
N64PS3<EFBFBD>JZßÞnøkl—,ƒ5É]B£uQ˜1P`¢5Ѷ*L¸P&gìER^]×’îƒóþþ@jtYÀ„Õi­¼K8ü²SXõþþ­XxÃþþþþD|É.<1B>*ŽçÄœáš6ë3Ü4Vò_“Uð„-N7<19>¿óœ„Ke—œRÄÞÔ1ܦz<C2A6>,Ôþþþþ§ù^‡C‡‰ýKÅó{’øþþþþþþþþþþþþþþš{muì‡Å¨þþþþþþþþÂôbqþþþþGò6_W*YÁ'.õEþŠþþþþþþþþ)gþþˆyÖÆÇyYjÎiuÞ%„þH¬ËKmÀͼB>A²aþþŒ½0¹¬ðÆÑ¥þþü扟&#\­RÕµ°&U+y:;þþ$ÛÎiþþ-òC)=>ˆþþXüþþø¸·Ê·i‰*=þþäéþþe/þþålþþþYþþiÉþþAÃíI_þþþþ7þþ©þþby•¶\jþþ<^þþÍa©Ôr}þþ´ÍiØÌþþ¥Ëþþþþþþk쵩Œ1rhê¯þþþþþþâ:þþêËþþДþþmÂþþÔ®þþ±>7á…þþþþþþÍ|6øþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþUJ

View File

@ -0,0 +1,2 @@
N64PS3ø¡Z¥ÝËÎR®Ú|ÍÈÛ<©v-P 1(`<60>5Ѷ*L¸P&gìE2^]Öõ§ƒ´þþ@jtYÀ„ÔÈi­¼8P²SX§þþ¿4±äþþþþCŒÉ.h#¿Vå6â6Q©þ2)´hdÀ΢™%
ñå—«eØëQ<pŽ`„¹$(z<>,¸þþþþ¨§^Cm‰ýKÅòµÆôþþþþþþþþþþþþþþš{muì‡Å¨þþþþþþþþÝÄbþþþþGò6_W*UÁ'.õCþŠþþþþþþþþ)gþþˆyÖÆÇyKŒ?}çÞ%„þH¬ËKmÀͼB>A²aþþŒ¹0¹¬ðÆÑ¥þþü扟&#\­RÕµ°&U+y:;þþ$ÛÎiþþ-òC)=>ˆþþXüþþø¸·Ê·i‰*=þþäéþþe/þþålþþþYþþiÉþþAÃíI_þþþþ7þþ©þþby•¶\jþþ<^þþÍa©Ôr}þþ´ÍiØÌþþ¥Ëþþþþþþk쵩Œ1rhê¯þþþþþþÃ"þþäïþþÝÊþþ{þþÔ®þþ±>7á…þþþþþþÍ|7¦þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþSÇ

View File

@ -1,5 +1,3 @@
; Left-over debug code from pokegold-debug
const_def $6a
const DEBUGTEST_TICKS_1 ; $6a
const DEBUGTEST_TICKS_2 ; $6b

1391
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

@ -472,7 +472,7 @@ BuyMenuLoop:
ret
StandardMartAskPurchaseQuantity:
ld a, 99
ld a, MAX_ITEM_STACK
ld [wItemQuantityBuffer], a
ld a, MARTTEXT_HOW_MANY
call LoadBuyMenuText

View File

@ -96,11 +96,11 @@ Function248cf:
jr nz, .asm_248f5
ld a, [wScrollingMenuCursorPosition]
call Function249bf
cp 99
cp MAX_ITEM_STACK
jr z, .asm_248f5
ld a, [wSwitchItem]
call Function249bf
cp 99
cp MAX_ITEM_STACK
jr nz, .asm_248f7
.asm_248f5
and a
@ -121,14 +121,14 @@ Function248f9:
ld a, [hl]
pop hl
add [hl]
cp 100
cp MAX_ITEM_STACK + 1
jr c, .asm_24929
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

@ -13,6 +13,12 @@ NewGame:
ldh [hMapEntryMethod], a
jp FinishContinueFunction
IF DEF(_DEBUG)
DebugRoom:
farcall _DebugRoom
ret
ENDC
ResetWRAM:
xor a
ldh [hBGMapMode], a

View File

@ -10,6 +10,9 @@
const MAINMENUITEM_NEW_GAME ; 1
const MAINMENUITEM_OPTION ; 2
const MAINMENUITEM_MYSTERY_GIFT ; 3
IF DEF(_DEBUG)
const MAINMENUITEM_DEBUG_ROOM ; 4
ENDC
MainMenu:
ld de, MUSIC_NONE
@ -46,7 +49,11 @@ MainMenu:
.MenuHeader:
db MENU_BACKUP_TILES ; flags
IF DEF(_DEBUG)
menu_coords 0, 0, 14, 9
ELSE
menu_coords 0, 0, 14, 7
ENDC
dw .MenuData
db 1 ; default option
@ -63,6 +70,9 @@ MainMenu:
db "NEW GAME@"
db "OPTION@"
db "MYSTERY GIFT@"
IF DEF(_DEBUG)
db "DEBUG ROOM@"
ENDC
.Jumptable:
; entries correspond to MAINMENUITEM_* constants
@ -70,6 +80,9 @@ MainMenu:
dw NewGame
dw Option
dw MysteryGift
IF DEF(_DEBUG)
dw DebugRoom
ENDC
MainMenuItems:
; entries correspond to MAINMENU_* constants
@ -81,18 +94,24 @@ 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_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_GetWhichMenu:

View File

@ -130,12 +130,12 @@ _GetClock:
bit 6, a ; halt
ret z
ld a, BANK(sRTCStatusFlags)
ld a, BANK(sRTCHaltCheckValue)
call OpenSRAM
ld a, $34
ld [sUnusedRTCMinutes], a
ld a, $12
ld [sUnusedRTCHours], a
ld a, LOW(RTC_HALT_VALUE)
ld [sRTCHaltCheckValue + 0], a
ld a, HIGH(RTC_HALT_VALUE)
ld [sRTCHaltCheckValue + 1], a
call CloseSRAM
ret

View File

@ -1043,7 +1043,7 @@ MaskObject::
ld d, $0
ld hl, wObjectMasks
add hl, de
ld [hl], -1 ; , masked
ld [hl], -1 ; masked
ret
UnmaskObject::

View File

@ -160,4 +160,10 @@ hCGBPalUpdate:: db
hCGB:: db
hSGB:: db
ds 21
IF DEF(_DEBUG)
hDebugRoomMenuPage:: db
ELSE
ds 1
ENDC
ds 20

View File

@ -276,7 +276,7 @@ SRAM $00
"SRAM Bank 0"
"Backup Save 1"
"SRAM Stack"
org $bfff
org $b800
"SRAM Window Stack"
SRAM $01
"Save"

View File

@ -374,7 +374,7 @@ INCLUDE "engine/tilesets/tileset_anims.asm"
INCLUDE "engine/events/npc_trade.asm"
INCLUDE "engine/events/mom_phone.asm"
INCLUDE "engine/link/mystery_gift_3.asm"
INCLUDE "engine/menus/debug.asm"
INCLUDE "engine/debug/color_picker.asm"
SECTION "Standard Scripts", ROMX
@ -421,6 +421,9 @@ INCLUDE "data/items/descriptions.asm"
SECTION "bank70", ROMX
INCLUDE "engine/printer/print_party.asm"
IF DEF(_DEBUG)
INCLUDE "engine/debug/debug_room.asm"
ENDC
SECTION "bank70_2", ROMX
@ -439,7 +442,15 @@ INCLUDE "data/credits_strings.asm"
SECTION "Stadium Data", ROMX
IF DEF(_GOLD)
IF DEF(_DEBUG)
INCBIN "data/stadium/stadium_gold_debug.bin"
ELSE
INCBIN "data/stadium/stadium_gold.bin"
ENDC
ELIF DEF(_SILVER)
IF DEF(_DEBUG)
INCBIN "data/stadium/stadium_silver_debug.bin"
ELSE
INCBIN "data/stadium/stadium_silver.bin"
ENDC
ENDC

View File

@ -1,2 +1,4 @@
d8b8a3600a465308c9953dfa04f0081c05bdcb94 *pokegold.gbc
49b163f7e57702bc939d642a18f591de55d92dae *pokesilver.gbc
53783c57378122805c5b4859d19e1a224f02a1ed *pokegold_debug.gbc
4c2fafebdbc7551f4cd3f348bdd17e420b93b6e7 *pokesilver_debug.gbc

View File

@ -89,13 +89,16 @@ sBackupPlayerData1:: ds wPlayerData1End - wPlayerData
SECTION "SRAM Stack", SRAM
sStackTop:: dw
sUnusedRTCMinutes:: db
sUnusedRTCHours:: db
sRTCHaltCheckValue:: dw
SECTION "SRAM Window Stack", SRAM
sWindowStackTop:: ds 1
sWindowStackBottom::
ds $800 - 1
sWindowStack::
sWindowStackTop::
ds 1
SECTION "Save", SRAM

View File

@ -1060,6 +1060,33 @@ wBattleEnd::
ENDU
IF DEF(_DEBUG)
NEXTU
; debug room paged values
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 RTC values
wDebugRoomRTCSec:: db
wDebugRoomRTCMin:: db
wDebugRoomRTCHour:: db
wDebugRoomRTCDay:: dw
wDebugRoomRTCCurSec:: db
wDebugRoomRTCCurMin:: db
wDebugRoomRTCCurHour:: db
wDebugRoomRTCCurDay:: dw
NEXTU
; debug room GB ID values
wDebugRoomGBID:: dw
ENDU
ENDC
ENDU
@ -1457,6 +1484,19 @@ wKeepSevenBiasChance:: ; used in the slots to handle the favoring of 7 symbol st
wStartFlypoint:: db
wEndFlypoint:: db
IF DEF(_DEBUG)
NEXTU
; debug room paged values
wDebugRoomCurPage:: db
wDebugRoomCurValue:: db
wDebugRoomAFunction:: dw
wDebugRoomStartFunction:: dw
wDebugRoomSelectFunction:: dw
wDebugRoomAutoFunction:: dw
wDebugRoomPageCount:: db
wDebugRoomPagedValuesPtr:: dw
ENDC
NEXTU
; unidentified
wceed:: db