Disassemble the final English debug ROM

This commit is contained in:
Rangi
2020-07-13 13:05:05 -04:00
parent 4fb0088440
commit e239aa4aba
25 changed files with 2054 additions and 36 deletions

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