summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/engine/bank1.asm2
-rwxr-xr-xsrc/engine/bank2.asm4
-rwxr-xr-xsrc/engine/bank3.asm16
-rwxr-xr-xsrc/engine/bank4.asm8
-rwxr-xr-xsrc/engine/bank6.asm2
-rwxr-xr-xsrc/engine/bank7.asm10
-rwxr-xr-xsrc/engine/home.asm47
-rwxr-xr-xsrc/wram.asm6
8 files changed, 51 insertions, 44 deletions
diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm
index 18b3e2d..b5d607c 100755
--- a/src/engine/bank1.asm
+++ b/src/engine/bank1.asm
@@ -182,7 +182,7 @@ StartDuel: ; 409f (1:409f)
call DrawWideTextBox_PrintText
call EnableLCD
.asm_41a7
- call Func_053f
+ call DoFrame
call Func_378a
or a
jr nz, .asm_41a7
diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm
index a250c5c..b79eb37 100755
--- a/src/engine/bank2.asm
+++ b/src/engine/bank2.asm
@@ -84,7 +84,7 @@ Func_8dbc: ; 8dbc (2:4dbc)
ld hl, $0224
call DrawWideTextBox_PrintText
.asm_8dc8
- call Func_053f
+ call DoFrame
jr c, Func_8dbc
call Func_8dea
jr c, Func_8dbc
@@ -150,7 +150,7 @@ Func_8e42: ; 8e42 (2:4e42)
call Func_2c08
call Func_905a
.asm_8e4e
- call Func_053f
+ call DoFrame
call Func_9065
jp nc, .asm_8e4e
cp $ff
diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm
index bf726a6..a4e64d7 100755
--- a/src/engine/bank3.asm
+++ b/src/engine/bank3.asm
@@ -52,14 +52,14 @@ LoadMap: ; c000 (3:4000)
call Func_c141
call Func_c17a
.asm_c092
- call Func_3c48
+ call DoFrameIfLCDEnabled
call Func_c491
call Func_c0ce
ld hl, $d0b4
ld a, [hl]
and $d0
jr z, .asm_c092
- call Func_3c48
+ call DoFrameIfLCDEnabled
ld hl, $d0b4
ld a, [hl]
bit 4, [hl]
@@ -344,7 +344,7 @@ Func_c280: ; c280 (3:4280)
ld hl, $cac0
inc [hl]
call EnableLCD
- call Func_3c48
+ call DoFrameIfLCDEnabled
call DisableLCD
farcall Func_12871
ret
@@ -373,7 +373,7 @@ Func_c2a3: ; c2a3 (3:42a3)
ld a, $1
ld [$cac0], a
call EnableLCD
- call Func_3c48
+ call DoFrameIfLCDEnabled
call DisableLCD
pop de
pop bc
@@ -957,7 +957,7 @@ MainMenu_c75a: ; c75a (3:475a)
ld a, $1
call Func_c29b
.asm_c76a
- call Func_3c48
+ call DoFrameIfLCDEnabled
call Func_264b
jr nc, .asm_c76a
ld a, e
@@ -1033,7 +1033,7 @@ PC_c7ea: ; c7ea (3:47ea)
call PlaySong
call Func_c241
call $4915
- call Func_3c48
+ call DoFrameIfLCDEnabled
ld hl, $0352
call $2c73
call $484e
@@ -1041,7 +1041,7 @@ PC_c7ea: ; c7ea (3:47ea)
ld a, $1
call Func_c29b
.asm_c806
- call Func_3c48
+ call DoFrameIfLCDEnabled
call Func_264b
jr nc, .asm_c806
ld a, e
@@ -1060,7 +1060,7 @@ PC_c7ea: ; c7ea (3:47ea)
jr .asm_c801
.asm_c82f
call Func_c135
- call Func_3c48
+ call DoFrameIfLCDEnabled
ld hl, $0353
call $4891
call Func_c111
diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm
index deeecf0..bf6b355 100755
--- a/src/engine/bank4.asm
+++ b/src/engine/bank4.asm
@@ -39,7 +39,7 @@ Medal_1029e: ; 1029e (4:429e)
ld a, $ff
ld [$d116], a
.asm_102e2
- call Func_3c48
+ call DoFrameIfLCDEnabled
ld a, [$d116]
inc a
ld [$d116], a
@@ -121,7 +121,7 @@ BoosterPack_1031b: ; 1031b (4:431b)
ld [wFrameType], a
farcallx $1, $7599
farcall Func_c1a4
- call Func_3c48
+ call DoFrameIfLCDEnabled
pop af
ld [$d291], a
ret
@@ -178,7 +178,7 @@ Duel_Init: ; 103d3 (4:43d3)
ld a, [wMatchStartTheme]
call PlaySong
call $4031
- call Func_3c48
+ call DoFrameIfLCDEnabled
ld bc, $2f1d
ld de, $1211
call Func_2a1a
@@ -758,7 +758,7 @@ CardPop_12768: ; 12768 (4:6768)
call PlaySong
bank1call Func_7571
farcall Func_c1a4
- call Func_3c48
+ call DoFrameIfLCDEnabled
ld a, MUSIC_STOP
call PlaySong
scf
diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm
index 09bf69b..482e72f 100755
--- a/src/engine/bank6.asm
+++ b/src/engine/bank6.asm
@@ -145,7 +145,7 @@ Func_1a61f: ; 1a61f (6:661f)
push hl
ld e, a
ld d, $0
- call $2f10
+ call LoadCardDataToRAM
call Func_379b
ld a, MUSIC_MEDAL
call PlaySong
diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm
index b0512ec..59b74a6 100755
--- a/src/engine/bank7.asm
+++ b/src/engine/bank7.asm
@@ -132,7 +132,7 @@ Func_1d078: ; 1d078 (7:5078)
ld a, $3c
ld [$d626], a
.asm_1d095
- call Func_3c48
+ call DoFrameIfLCDEnabled
call UpdateRNGSources
call $5614
ld hl, $d635
@@ -212,7 +212,7 @@ Func_1d11c: ; 1d11c (7:511c)
farcall Func_111e9
farcallx $4, $4031
.asm_1d15a
- call Func_3c48
+ call DoFrameIfLCDEnabled
call UpdateRNGSources
call Func_264b
push af
@@ -287,7 +287,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
farcallx $4, $4031
call $57fc
.asm_1d6c8
- call Func_3c48
+ call DoFrameIfLCDEnabled
call $5765
call $580b
ld a, [$d633]
@@ -300,10 +300,10 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
call PlaySong
farcall Func_10ab4
call $3ca4
- call $02d4
+ call Set_WD_off
call $5758
call EnableLCD
- call Func_3c48
+ call DoFrameIfLCDEnabled
call DisableLCD
ld hl, $cabb
set 1, [hl]
diff --git a/src/engine/home.asm b/src/engine/home.asm
index bef33b3..9c4466a 100755
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -23,7 +23,7 @@ SECTION "rst38",ROM0[$38]
SECTION "vblank",ROM0[$40]
jp VBlankHandler
SECTION "lcdc",ROM0[$48]
- call $cacd
+ call wLCDCFunctiontrampoline
reti
SECTION "timer",ROM0[$50]
jp TimerHandler
@@ -100,7 +100,7 @@ VBlankHandler: ; 019b (0:019b)
ld a, [wLCDC]
ld [rLCDC], a
ei
- call $cad0
+ call wVBlankFunctionTrampoline
call FlushPalettes
ld hl, wVBlankCtr
inc [hl]
@@ -342,7 +342,7 @@ SetupLCD: ; 030b (0:030b)
xor a
ld [wReentrancyFlag], a
ld a, $c3 ; $c3 = jp nn
- ld [$cacd], a
+ ld [wLCDCFunctiontrampoline], a
ld [wVBlankFunctionTrampoline], a
ld hl, wVBlankFunctionTrampoline + 1
ld [hl], NopF & $ff ;
@@ -706,16 +706,19 @@ ClearJoypad: ; 052a (0:052a)
pop hl
ret
-Func_0536: ; 0536 (0:0536)
+; calls DoFrame a times
+DoAFrames: ; 0536 (0:0536)
.loop
push af
- call Func_053f
+ call DoFrame
pop af
dec a
jr nz, .loop
ret
-Func_053f: ; 053f (0:053f)
+; updates background, sprites and other game variables, halts until vblank, and reads user input
+; if $cad5 is not 0, the game can be paused (and resumed) by pressing the select button
+DoFrame: ; 053f (0:053f)
push af
push hl
push de
@@ -727,18 +730,18 @@ Func_053f: ; 053f (0:053f)
call HandleDPadRepeat
ld a, [$cad5]
or a
- jr z, .asm_56d
+ jr z, .done
ld a, [hButtonsPressed]
and $4
- jr z, .asm_56d
-.asm_55e
+ jr z, .done
+.gamePausedLoop
call WaitForVBlank
call ReadJoypad
call HandleDPadRepeat
ld a, [hButtonsPressed]
and $4
- jr z, .asm_55e
-.asm_56d
+ jr z, .gamePausedLoop
+.done
pop bc
pop de
pop hl
@@ -2010,13 +2013,13 @@ Func_0e63: ; 0e63 (0:0e63)
dec c
jr z, .asm_e75
ld a, [hli]
- call $0e0a
+ call Func_0e0a
dec c
.asm_e75
inc b
dec b
jr z, .asm_e81
- call $0e39
+ call Func_0e39
jr c, .asm_e81
ld [de], a
inc de
@@ -3577,7 +3580,7 @@ DrawNarrowTextBox_WaitForInput: ; 2a7c (0:2a7c)
call InitializeCursorParameters
call EnableLCD
.waitAorBLoop
- call Func_053f
+ call DoFrame
call HandleTextBoxInput
ld a, [hButtonsPressed]
and $3
@@ -3605,7 +3608,7 @@ WaitForWideTextBoxInput: ; 2aae (0:2aae)
call InitializeCursorParameters
call EnableLCD
.waitAorBLoop
- call Func_053f
+ call DoFrame
call HandleTextBoxInput
ld a, [hButtonsPressed]
and $3
@@ -3638,7 +3641,7 @@ Func_2af0: ; 2af0 (0:2af0)
call EnableLCD
jr .asm_2b39
.asm_2b1f
- call Func_053f
+ call DoFrame
call HandleTextBoxInput
ld a, [hButtonsPressed]
bit 0, a
@@ -4023,7 +4026,7 @@ Func_2e41: ; 2e41 (0:2e41)
jr nz, .asm_2e70
jr .asm_2e6d
.asm_2e6a
- call Func_053f
+ call DoFrame
.asm_2e6d
dec a
jr nz, .asm_2e6a
@@ -4479,7 +4482,7 @@ Func_312d: ; 312d (0:312d) ; serial transfer-related
ld [$ce63], a ; [$ce63] ← 1
call Func_31fc
.asm_315d
- call Func_053f
+ call DoFrame
ld a, [$ce63]
or a
jr nz, .asm_315d
@@ -5129,19 +5132,19 @@ Func_3c45: ; 3c45 (0:3c45)
INCBIN "baserom.gbc",$3c46,$3c48 - $3c46
-Func_3c48: ; 3c48 (0:3c48)
+DoFrameIfLCDEnabled: ; 3c48 (0:3c48)
push af
ld a, [rLCDC]
bit 7, a
- jr z, .asm_3c58
+ jr z, .done
push bc
push de
push hl
- call Func_053f
+ call DoFrame
pop hl
pop de
pop bc
-.asm_3c58
+.done
pop af
ret
diff --git a/src/wram.asm b/src/wram.asm
index fa8beff..8408200 100755
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -209,10 +209,14 @@ wRNG2:: ; cacb
wCounter:: ; cacc
ds $1
+
+; the LCDC status interrupt is always disabled and this always reads as jp $0000
+wLCDCFunctiontrampoline:: ; cacd
ds $3
wVBlankFunctionTrampoline:: ; cad0
- ds $20 ; unknown length
+ ds $3
+ ds $1d
wBufPalette:: ; caf0 - cab7f
ds $80