summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-05-04 22:34:09 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-05-04 22:34:09 -0400
commita613ed915c32d3befec54a98dae98e21649e19ce (patch)
treed483b11e73c07aec2782f57ca3765b3ed7eb2436 /misc
parent3713b71d9e3f3f1bc099d4704910cb9c1d172dcf (diff)
HDMA transfer functions
Diffstat (limited to 'misc')
-rw-r--r--misc/crystal_misc.asm4
-rwxr-xr-xmisc/gfx_41.asm212
-rwxr-xr-xmisc/mobile_12.asm4
-rw-r--r--misc/mobile_22.asm2
-rw-r--r--misc/mobile_40.asm24
-rw-r--r--misc/mobile_42.asm2
-rw-r--r--misc/mobile_45.asm4
-rw-r--r--misc/mobile_5f.asm4
-rwxr-xr-xmisc/mobile_menu.asm8
9 files changed, 150 insertions, 114 deletions
diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm
index 8ff138869..296e59305 100644
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -47,7 +47,7 @@ Function17a6a8: ; 17a6a8 (5e:66a8)
call Function17aba0
callba Function106464
call Function17ac0c
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
call Function17abcf
callba LoadOW_BGPal7
callba Function49420
@@ -169,7 +169,7 @@ Function17a78f: ; 17a78f (5e:678f)
bit 7, [hl]
res 7, [hl]
jr nz, .asm_17a79f
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ret
.asm_17a79f
diff --git a/misc/gfx_41.asm b/misc/gfx_41.asm
index dc5110e2e..e7cde8faa 100755
--- a/misc/gfx_41.asm
+++ b/misc/gfx_41.asm
@@ -1,52 +1,52 @@
-Function104000:: ; 104000
+HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function10419d
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function10419d
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
ret
; 10402d
-Function10402d:: ; 10402d
+HDMATransferTileMapToWRAMBank3:: ; 10402d
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function10419d
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
ret
; 104047
-Function104047: ; 104047
+HDMATransferAttrMapToWRAMBank3: ; 104047
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function10419d
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
ret
; 104061
@@ -56,63 +56,67 @@ ReloadMapPart:: ; 104061
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
call DelayFrame
+
di
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041ad
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041ad
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
pop af
ld [rVBK], a
ei
+
ret
-Function104099: ; 104099
+Mobile_ReloadMapPart: ; 104099
ld hl, ReloadMapPart ; useless
ld hl, .Function
jp CallInSafeGFXMode
.Function:
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
call DelayFrame
+
di
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041c1
+ ld hl, wScratchAttrMap
+ call HDMATransfer_NoDI
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041c1
+ ld hl, wScratchTileMap
+ call HDMATransfer_NoDI
pop af
ld [rVBK], a
ei
+
ret
; 1040d4
-Function1040d4: ; 1040d4
- ld hl, .Function
+; XXX
+ ld hl, .unreferenced_1040da
jp CallInSafeGFXMode
-.Function:
+.unreferenced_1040da
ld a, $1
ld [rVBK], a
ld a, $3
@@ -132,31 +136,34 @@ Function1040d4: ; 1040d4
ret
; 1040fb
-Function1040fb: ; 1040fb
- ld hl, .Function
+; XXX
+ ld hl, .unreferenced_104101
jp CallInSafeGFXMode
-.Function:
+.unreferenced_104101
ld a, $1
ld [rVBK], a
ld a, $3
ld [rSVBK], a
ld hl, w3_d800
- call Function10419d
+ call HDMATransferToWRAMBank3
ret
; 104110
-Function104110:: ; 104110
+OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
; OpenText
ld hl, .Function
jp CallInSafeGFXMode
.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with " "
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteTilemap
call DelayFrame
@@ -165,38 +172,42 @@ Function104110:: ; 104110
push af
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041b7
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041b7
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
pop af
ld [rVBK], a
ei
ret
; 104148
-Function104148: ; 104148 (41:4148)
+Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
ld hl, .Function
jp CallInSafeGFXMode
.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with $ff
decoord 0, 0, AttrMap
- ld hl, wBackupAttrMap
+ ld hl, wScratchAttrMap
call CutAndPasteAttrMap
ld c, $ff
decoord 0, 0
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
call CutAndPasteMap
+
ld a, $1
ld [rVBK], a
- ld hl, wBackupAttrMap
- call Function1041ad
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
ld a, $0
ld [rVBK], a
- ld hl, wDecompressScratch
- call Function1041ad
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
ret
; 104177
@@ -233,8 +244,8 @@ CallInSafeGFXMode: ; 104177
; 10419d
-Function10419d: ; 10419d (41:419d)
- call Function10424e
+HDMATransferToWRAMBank3: ; 10419d (41:419d)
+ call _LoadHDMAParameters
ld a, $23
ld [hDMATransfer], a
@@ -246,60 +257,76 @@ WaitDMATransfer: ; 104a14
jr nz, .loop
ret
-Function1041ad: ; 1041ad (41:41ad)
+HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
- ld c, $24
- jr Function104209
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait127Scanlines
-Function1041b7: ; 1041b7 (41:41b7)
+HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
+; HDMA transfer from hl to [hBGMapAddress]
; hBGMapAddress -> de
-; $24 -> c
+; 2 * SCREEN_HEIGHT -> c
; $7b --> b
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
- ld c, $24
- jr asm_104205
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait123Scanlines
; 1041c1 (41:41c1)
-Function1041c1: ; 1041c1
+HDMATransfer_NoDI: ; 1041c1
+; HDMA transfer from hl to [hBGMapAddress]
+; [hBGMapAddress] --> de
+; 2 * SCREEN_HEIGHT --> c
ld a, [hBGMapAddress + 1]
ld d, a
ld a, [hBGMapAddress]
ld e, a
- ld c, $24
+ ld c, 2 * SCREEN_HEIGHT
+
+ ; [rHDMA1, rHDMA2] = hl & $fff0
ld a, h
ld [rHDMA1], a
ld a, l
and $f0
ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
ld a, d
and $1f
ld [rHDMA3], a
ld a, e
and $f0
ld [rHDMA4], a
+ ; b = c | %10000000
ld a, c
dec c
or $80
ld b, a
+ ; d = $7f - c + 1
ld a, $7f
sub c
ld d, a
+ ; while [rLY] >= d: pass
.loop1
ld a, [rLY]
cp d
jr nc, .loop1
+ ; while not [rSTAT] & 3: pass
.loop2
ld a, [rSTAT]
and $3
jr z, .loop2
+ ; load the 5th byte of HDMA
ld a, b
ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
ld a, [rLY]
inc c
ld hl, rLY
@@ -314,49 +341,58 @@ Function1041c1: ; 1041c1
ret
; 104205
-asm_104205:
+HDMATransfer_Wait123Scanlines:
ld b, $7b
- jr asm_10420b
+ jr _continue_HDMATransfer
-Function104209:
-; LY magic
+HDMATransfer_Wait127Scanlines:
ld b, $7f
-asm_10420b:
+_continue_HDMATransfer:
+; a lot of waiting around for hardware registers
+ ; [rHDMA1, rHDMA2] = hl & $fff0
ld a, h
ld [rHDMA1], a
ld a, l
and $f0 ; high nybble
ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
ld a, d
and $1f ; lower 5 bits
ld [rHDMA3], a
ld a, e
and $f0 ; high nybble
ld [rHDMA4], a
+ ; e = c | %10000000
ld a, c
dec c
- or $80 ; set 7, a
+ or $80
ld e, a
+ ; d = b - c + 1
ld a, b
sub c
ld d, a
+ ; while [rLY] >= d: pass
.ly_loop
ld a, [rLY]
cp d
jr nc, .ly_loop
di
+ ; while [rSTAT] & 3: pass
.rstat_loop_1
ld a, [rSTAT]
and $3
jr nz, .rstat_loop_1
+ ; while not [rSTAT] & 3: pass
.rstat_loop_2
ld a, [rSTAT]
and $3
jr z, .rstat_loop_2
+ ; load the 5th byte of HDMA
ld a, e
ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
ld a, [rLY]
inc c
ld hl, rLY
@@ -374,7 +410,7 @@ asm_10420b:
; 10424e
-Function10424e: ; 10424e (41:424e)
+_LoadHDMAParameters: ; 10424e (41:424e)
ld a, h
ld [rHDMA1], a
ld a, l
@@ -415,7 +451,7 @@ CutAndPasteMap: ; 104265 (41:4265)
; load the original value of c into hl 12 times
ld a, [hMapObjectIndexBuffer]
- ld b, 12
+ ld b, BG_MAP_WIDTH - SCREEN_WIDTH
.loop3
ld [hli], a
dec b
@@ -441,7 +477,7 @@ _Get2bpp:: ; 104284
push bc
push hl
- ; Copy c tiles of the 2bpp from b:de to wDecompressScratch
+ ; Copy c tiles of the 2bpp from b:de to wScratchTileMap
ld a, b ; bank
ld l, c ; number of tiles
ld h, $0
@@ -452,7 +488,7 @@ endr
ld c, l
ld h, d ; address
ld l, e
- ld de, wDecompressScratch
+ ld de, wScratchTileMap
call FarCopyBytes
pop hl
@@ -464,8 +500,8 @@ endr
ld d, h
ld e, l
- ld hl, wDecompressScratch
- call Function104209
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
; restore the previous bank
pop af
@@ -519,7 +555,7 @@ endr
ld b, h
ld h, d
ld l, e
- ld de, wDecompressScratch
+ ld de, wScratchTileMap
call FarCopyBytesDouble_DoubleBankSwitch
pop hl
@@ -531,41 +567,41 @@ endr
ld d, h
ld e, l
- ld hl, wDecompressScratch
- call Function104209
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
pop af
ld [rSVBK], a
ret
; 104303
-Function104303: ; 104303
- ld hl, Function104309
+HDMATransfer_OnlyTopFourRows: ; 104303
+ ld hl, .Function
jp CallInSafeGFXMode
; 104309
-Function104309:
- ld hl, wDecompressScratch
+.Function:
+ ld hl, wScratchTileMap
decoord 0, 0
- call Function10433a
- ld hl, wDecompressScratch + $80
+ call .Copy
+ ld hl, wScratchTileMap + $80
decoord 0, 0, AttrMap
- call Function10433a
+ call .Copy
ld a, $1
ld [rVBK], a
ld c, $8
- ld hl, wDecompressScratch + $80
+ ld hl, wScratchTileMap + $80
debgcoord 0, 0, VBGMap1
- call Function104209
+ call HDMATransfer_Wait127Scanlines
ld a, $0
ld [rVBK], a
ld c, $8
- ld hl, wDecompressScratch
+ ld hl, wScratchTileMap
debgcoord 0, 0, VBGMap1
- call Function104209
+ call HDMATransfer_Wait127Scanlines
ret
-Function10433a: ; 10433a (41:433a)
+.Copy: ; 10433a (41:433a)
ld b, 4
.outer_loop
ld c, SCREEN_WIDTH
@@ -576,7 +612,7 @@ Function10433a: ; 10433a (41:433a)
dec c
jr nz, .inner_loop
ld a, l
- add $20 - SCREEN_WIDTH
+ add BG_MAP_WIDTH - SCREEN_WIDTH
ld l, a
ld a, h
adc $0
diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm
index dd0f63135..c02ae205f 100755
--- a/misc/mobile_12.asm
+++ b/misc/mobile_12.asm
@@ -359,7 +359,7 @@ Function48304: ; 48304 (12:4304)
ld a, $29
.asm_4833f
ld [wMenuScrollPosition], a
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
.asm_48348
call ScrollingMenu
ld de, $629
@@ -385,7 +385,7 @@ Function48304: ; 48304 (12:4304)
ld [wd003], a
.asm_48377
call Function48187
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
jp Function4840c
Function48383: ; 48383 (12:4383)
diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm
index 3e2a9f30e..b14f0208d 100644
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -2201,7 +2201,7 @@ Function89d75: ; 89d75 (22:5d75)
push hl
call Function8923c
call _hl_
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
pop hl
jr asm_89d90
diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm
index c2a6c20b9..bdd9cee6b 100644
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -202,7 +202,7 @@ Function100144: ; 100144
ret z
res 2, [hl]
res 6, [hl]
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ret
; 100163
@@ -445,12 +445,12 @@ Function100301: ; 100301
; 100320
Function100320: ; 100320
- callba Function104099
+ callba Mobile_ReloadMapPart
ret
; 100327
Function100327: ; 100327
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ret
; 100327
@@ -1821,7 +1821,7 @@ Function100b45: ; 100b45
call Mobile_SetOverworldDelay
callba MobileMenuJoypad
push bc
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
call Function100e2d
pop bc
jr c, .asm_100b6b
@@ -1882,7 +1882,7 @@ MobileMoveSelectionScreen: ; 100b9f
call Mobile_SetOverworldDelay
callba MobileMenuJoypad
push bc
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
call Function100e2d
pop bc
jr c, .b_button
@@ -2016,7 +2016,7 @@ Mobile_PartyMenuSelect: ; 100cb5
callba MobileMenuJoypad
push bc
callba PlaySpriteAnimations
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
call Function100dfd
pop bc
jr c, .done
@@ -2070,7 +2070,7 @@ MobileBattleMonMenu: ; 100d22
callba MobileMenuJoypad
push bc
callba PlaySpriteAnimations
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
call Function100dfd
pop bc
jr c, .asm_100d54
@@ -3074,7 +3074,7 @@ Function1013c0: ; 1013c0
; 1013d6
Function1013d6: ; 1013d6
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ret
; 1013dd
@@ -5182,7 +5182,7 @@ Function10224b: ; 10224b
.asm_10225e
res 1, [hl]
res 2, [hl]
- callba Function104099
+ callba Mobile_ReloadMapPart
scf
ret
; 10226a
@@ -6809,7 +6809,7 @@ Function102d9a: ; 102d9a
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ret
; 102db7
@@ -7390,7 +7390,7 @@ Function103309: ; 103309
ld [wd1ee], a
call Function1034be
call UpdateSprites
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ld a, $01
ld [wd1f0], a
call Function10339a
@@ -7404,7 +7404,7 @@ Function103362: ; 103362
call Function1033af
call Function10339a
call Function10342c
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
ld a, [Buffer2]
bit 7, a
jr z, .asm_103362
diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm
index af7953c76..d94afeaad 100644
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -445,7 +445,7 @@ Function1082db: ; 1082db
.loop
callba PlaySpriteAnimations
callba SetUpPokeAnim
- callba Function10402d
+ callba HDMATransferTileMapToWRAMBank3
jr nc, .loop
ret
; 1082f0
diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm
index 532a8c8cc..0b4bb7017 100644
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -7380,7 +7380,7 @@ Function117a94: ; 0x117a94
call ClearBGPalettes
call ClearSprites
callba Function172e78
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
ret
; 0x117ab4
@@ -7401,7 +7401,7 @@ Function117acd: ; 0x117acd
bit 7, a
jr nz, .asm_117ae2
call Function117ae9
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
jr Function117acd
.asm_117ae2
diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm
index 415ff7e38..905e84372 100644
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -4647,7 +4647,7 @@ Function17f555: ; 17f555
ld a, [wc303]
bit 7, a
jr nz, .quit
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
jr .loop
.quit
@@ -4716,7 +4716,7 @@ Function17f5c3: ; 17f5c3
Function17f5d2: ; 17f5d2
call Function17f5e4
- callba Function104000
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
call SetPalettes
ld a, $1
ld [wc303], a
diff --git a/misc/mobile_menu.asm b/misc/mobile_menu.asm
index d9fd3dd34..75fc58f5f 100755
--- a/misc/mobile_menu.asm
+++ b/misc/mobile_menu.asm
@@ -280,7 +280,7 @@ Function4a149: ; 4a149 (12:6149)
call ClearBox
hlcoord 1, 14
call PlaceString
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
call SetPalettes
call StaticMenuJoypad
ld hl, wMenuCursorY
@@ -403,7 +403,7 @@ Function4a28a: ; 4a28a (12:628a)
hlcoord 14, 1
ld de, String_4a34b
call PlaceString
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
call Function4a118
call ScrollingMenuJoypad
push af
@@ -432,7 +432,7 @@ Function4a28a: ; 4a28a (12:628a)
ld b, 3
ld c, 4
call TextBox
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
ld hl, DeletePassword_YesNo_MenuDataHeader
call LoadMenuDataHeader
call VerticalMenu
@@ -455,7 +455,7 @@ Function4a28a: ; 4a28a (12:628a)
call ExitMenu
.quit
call Call_ExitMenu
- callba Function104148
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
xor a
ret
; 4a346 (12:6346)