summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2021-02-18 15:21:26 +0000
committerElectroDeoxys <ElectroDeoxys@gmail.com>2021-02-18 15:21:26 +0000
commit5d5acff2cc44369fdd49905228b45d9aeeefb09f (patch)
treefc7231a8577ce3e291f3b7f14c1beb9282c5e6a6 /src
parentd49e8a0db46c1e5289da1429f2218f1e0dbe9831 (diff)
Document bank20 routines
Diffstat (limited to 'src')
-rw-r--r--src/engine/bank03.asm7
-rw-r--r--src/engine/bank20.asm25
2 files changed, 19 insertions, 13 deletions
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm
index 345b345..c29f75a 100644
--- a/src/engine/bank03.asm
+++ b/src/engine/bank03.asm
@@ -605,11 +605,12 @@ Func_c41c: ; c41c (3:441c)
ret
Func_c430: ; c430 (3:4430)
+; update wSCXBuffer
push bc
ld a, [wd237]
sla a
sla a
- sla a
+ sla a ; *8
ld b, a
ld a, [wSCXBuffer]
cp $b1
@@ -622,10 +623,12 @@ Func_c430: ; c430 (3:4430)
ld a, b
.asm_c449
ld [wSCXBuffer], a
+
+; update wSCYBuffer
ld a, [wd238]
sla a
sla a
- sla a
+ sla a ; *8
ld b, a
ld a, [wSCYBuffer]
cp $b9
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index ee7f304..231becf 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -5,7 +5,7 @@ Func_80000: ; 80000 (20:4000)
call Func_8003d
farcall LoadPermissionMap
farcall Func_c9c7
- call Func_801a1
+ call SafelyCopyBGMapFromSRAMToVRAM
farcall Func_c3ff
ld a, [wCurMap]
cp OVERWORLD_MAP
@@ -20,7 +20,7 @@ Func_80028: ; 80028 (20:4028)
ld bc, $0000
call LoadTilemap_ToSRAM
farcall Func_c9c7
- call Func_801a1
+ call SafelyCopyBGMapFromSRAMToVRAM
farcall Func_c3ee
ret
; 0x8003d
@@ -287,18 +287,21 @@ CopyBGDataToVRAMOrSRAM: ; 8016e (20:416e)
pop hl
ret
-Func_801a1: ; 801a1 (20:41a1)
+; safely copies $20 bytes at a time
+; sBGMap0 -> v0BGMap0
+; sBGMap1 -> v0BGMap1 (if in CGB)
+SafelyCopyBGMapFromSRAMToVRAM: ; 801a1 (20:41a1)
push hl
push bc
push de
ldh a, [hBankSRAM]
push af
- ld a, $1
+ ld a, BANK("SRAM1")
call BankswitchSRAM
ld hl, sBGMap0
ld de, v0BGMap0
ld c, $20
-.asm_801b4
+.loop
push bc
push hl
push de
@@ -306,30 +309,30 @@ Func_801a1: ; 801a1 (20:41a1)
call SafeCopyDataHLtoDE
ld a, [wConsole]
cp CONSOLE_CGB
- jr nz, .asm_801d6
+ jr nz, .skip_vram1
pop de
pop hl
push hl
push de
- ld bc, $0400
+ ld bc, sBGMap1 - sBGMap0 ; $400
add hl, bc
call BankswitchVRAM1
ld b, $20
call SafeCopyDataHLtoDE
call BankswitchVRAM0
+.skip_vram1
-.asm_801d6
pop hl
- ld de, $0020
+ ld de, $20
add hl, de
ld e, l
ld d, h
pop hl
- ld bc, $0020
+ ld bc, $20
add hl, bc
pop bc
dec c
- jr nz, .asm_801b4
+ jr nz, .loop
pop af
call BankswitchSRAM
call DisableSRAM