summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/audio/music1.asm4
-rw-r--r--src/engine/bank1.asm28
-rw-r--r--src/engine/bank1c.asm12
-rw-r--r--src/engine/bank2.asm66
-rw-r--r--src/engine/bank20.asm16
-rw-r--r--src/engine/bank3.asm20
-rw-r--r--src/engine/bank4.asm42
-rw-r--r--src/engine/bank6.asm14
-rw-r--r--src/engine/home.asm297
-rw-r--r--src/sram.asm2
-rw-r--r--src/vram.asm25
11 files changed, 327 insertions, 199 deletions
diff --git a/src/audio/music1.asm b/src/audio/music1.asm
index c4ccf4b..9db9632 100644
--- a/src/audio/music1.asm
+++ b/src/audio/music1.asm
@@ -25,10 +25,10 @@ Func_f4015:: ; f4015 (3d:4015)
Func_f4018:: ; f4018 (3d:4018)
jp Func_f406f
-Func_f401b:: ; f401b (3d:401b)
+_PauseSong:: ; f401b (3d:401b)
jp Music1_PauseSong
-Func_f401e:: ; f401e (3d:401e)
+_ResumeSong:: ; f401e (3d:401e)
jp Music1_ResumeSong
Music1_PlaySong: ; f4021 (3d:4021)
diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm
index eedb048..fdf35c8 100644
--- a/src/engine/bank1.asm
+++ b/src/engine/bank1.asm
@@ -5,12 +5,12 @@ Start_Cont: ; 4000 (1:4000)
call ResetSerial
call EnableInt_VBlank
call EnableInt_Timer
- call EnableExtRAM
+ call EnableSRAM
ld a, [$a006]
ld [wTextSpeed], a
ld a, [$a009]
ld [wccf2], a
- call DisableExtRAM
+ call DisableSRAM
ld a, $1
ld [wUppercaseFlag], a
ei
@@ -27,10 +27,10 @@ Start_Cont: ; 4000 (1:4000)
call YesOrNoMenuWithText
jr c, .reset_game
; erase sram
- call EnableExtRAM
+ call EnableSRAM
xor a
ld [$a000], a
- call DisableExtRAM
+ call DisableSRAM
.reset_game
jp Reset
@@ -1215,11 +1215,19 @@ Func_5aeb: ; 5aeb (1:5aeb)
INCROM $5aeb, $6785
Func_6785: ; 6785 (1:6785)
- INCROM $6785, $6793
+ call EnableSRAM
+ ld hl, $bc00
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ call DisableSRAM
+ ret
+; 0x6793
; loads player deck from SRAM to wPlayerDeck
LoadPlayerDeck: ; 6793 (1:6793)
- call EnableExtRAM
+ call EnableSRAM
ld a, [$b700]
ld l, a
ld h, $54
@@ -1234,7 +1242,7 @@ LoadPlayerDeck: ; 6793 (1:6793)
inc de
dec c
jr nz, .next_card_loop
- call DisableExtRAM
+ call DisableSRAM
ret
; 0x67b2
@@ -1580,10 +1588,10 @@ _TossCoin: ; 71ad (1:71ad)
.asm_72ad
add a
ld d, a
- ld bc, $0202
- ld hl, $0102
+ lb bc, 2, 2
+ lb hl, 1, 2
pop af
- call Func_1f5f
+ call FillRectangle
.asm_72b9
ld hl, $cd9f
diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm
index 79994a3..1016ae8 100644
--- a/src/engine/bank1c.asm
+++ b/src/engine/bank1c.asm
@@ -89,7 +89,7 @@ Func_700a3: ; 700a3 (1c:40a3)
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, vTiles1
+ ld de, v0Tiles1
call Func_701e9
call Func_701fe
ld hl, ChrTrnPacket_BGTiles1
@@ -105,7 +105,7 @@ Func_700a3: ; 700a3 (1c:40a3)
jr z, .asm_700da
call Func_70136
dec hl
- ld de, vTiles1
+ ld de, v0Tiles1
call Func_701e9
ld hl, ChrTrnPacket_BGTiles2
call Func_70177
@@ -136,10 +136,10 @@ Func_700fe: ; 700fe (1c:40fe)
push hl
call Func_70136
pop hl
- ld de, vTiles1
+ ld de, v0Tiles1
call Func_701e9
pop hl
- ld de, vTiles2
+ ld de, v0Tiles2
call Func_701e9
call Func_701fe
pop hl
@@ -230,7 +230,7 @@ Func_701c0: ; 701c0 (1c:41c0)
call DisableLCD
xor a
ld c, $10
- ld hl, vTiles2
+ ld hl, v0Tiles2
.asm_701cb
ld [hli], a
dec c
@@ -269,7 +269,7 @@ Func_701e9: ; 701e9 (1c:41e9)
ret
Func_701fe: ; 701fe (1c:41fe)
- ld hl, vBGMapTiles
+ ld hl, v0BGMapTiles1
ld de, $000c
ld a, $80
ld c, $d
diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm
index fea3d9b..f2a796c 100644
--- a/src/engine/bank2.asm
+++ b/src/engine/bank2.asm
@@ -2,7 +2,7 @@
Func_8cd4: ; 8cd4 (2:4cd4)
push bc
- call EnableExtRAM
+ call EnableSRAM
ld b, $3c
.asm_8cda
ld a, [de]
@@ -12,7 +12,7 @@ Func_8cd4: ; 8cd4 (2:4cd4)
jr nz, .asm_8cda
xor a
ld [hl], a
- call DisableExtRAM
+ call DisableSRAM
pop bc
ret
; 0x8ce7
@@ -20,7 +20,7 @@ Func_8cd4: ; 8cd4 (2:4cd4)
INCROM $8ce7, $8cf9
Func_8cf9: ; 8cf9 (2:4cf9)
- call EnableExtRAM
+ call EnableSRAM
xor a
ld hl, $b703
ld [hli], a
@@ -29,7 +29,7 @@ Func_8cf9: ; 8cf9 (2:4cf9)
ld [hli], a
ld [hl], a
ld [$b701], a
- call DisableExtRAM
+ call DisableSRAM
Func_8d0b: ; 8d0b (2:4d0b)
ld hl, Unknown_8d15
ld de, $9380
@@ -178,7 +178,7 @@ Func_8e42: ; 8e42 (2:4e42)
call Func_92b4
call Func_9345
jr nc, .asm_8ec4
- call EnableExtRAM
+ call EnableSRAM
ld hl, $cf17
call Func_910a
call Func_9048
@@ -200,7 +200,7 @@ Func_8e42: ; 8e42 (2:4e42)
call Func_92ad
call Func_9038
ld a, [hl]
- call DisableExtRAM
+ call DisableSRAM
or a
jr z, .asm_8edb
.asm_8ec4
@@ -262,10 +262,10 @@ Func_8f05: ; 8f05 (2:4f05)
Func_8f38: ; 8f38 (2:4f38)
ld hl, $b701
- call EnableExtRAM
+ call EnableSRAM
ld a, [hli]
ld h, [hl]
- call DisableExtRAM
+ call DisableSRAM
ld l, a
ld de, wc590
call Func_0663
@@ -294,7 +294,7 @@ Func_8f38: ; 8f38 (2:4f38)
xor a
ld [hl], a
ld hl, $b701
- call EnableExtRAM
+ call EnableSRAM
ld e, [hl]
inc hl
ld d, [hl]
@@ -310,7 +310,7 @@ Func_8f38: ; 8f38 (2:4f38)
ld [hl], d
dec hl
ld [hl], e
- call DisableExtRAM
+ call DisableSRAM
ret
Func_8f8a: ; 8f8a (2:4f8a)
@@ -323,28 +323,28 @@ Func_8f8a: ; 8f8a (2:4f8a)
jp Func_8dbc
Func_8f9d: ; 8f9d (2:4f9d)
- call EnableExtRAM
+ call EnableSRAM
ld a, [$b700]
- call DisableExtRAM
+ call DisableSRAM
ld h, $3
ld l, a
call HtimesL
ld e, l
inc e
- ld d, $2
+ ld d, 2
xor a
- ld hl, $0000
- ld bc, $0202
- call Func_1f5f
+ lb hl, 0, 0
+ lb bc, 2, 2
+ call FillRectangle
ld a, [wceb1]
- call EnableExtRAM
+ call EnableSRAM
ld [$b700], a
- call DisableExtRAM
+ call DisableSRAM
call Func_9326
call Func_9038
- call EnableExtRAM
+ call EnableSRAM
call Func_9253
- call DisableExtRAM
+ call DisableSRAM
xor a
ld [wce3f], a
ld [wce40], a
@@ -634,7 +634,7 @@ Func_9168: ; 9168 (2:5168)
ld a, $1
ld [wceb5], a
.asm_9214
- call EnableExtRAM
+ call EnableSRAM
ld a, [$b700]
ld c, a
ld b, $0
@@ -656,7 +656,7 @@ Func_9168: ; 9168 (2:5168)
.asm_9234
ld a, c
ld [$b700], a
- call DisableExtRAM
+ call DisableSRAM
call Func_9326
call EnableLCD
ret
@@ -720,9 +720,9 @@ Func_92ad: ; 92ad (2:52ad)
jr Func_92ad
Func_92b4: ; 92b4 (2:52b4)
- call EnableExtRAM
+ call EnableSRAM
call Func_92ad
- call DisableExtRAM
+ call DisableSRAM
ret
; 0x92be
@@ -731,9 +731,9 @@ Func_92b4: ; 92b4 (2:52b4)
Func_9314: ; 9314 (2:5314)
ld bc, $0018
add hl, bc
- call EnableExtRAM
+ call EnableSRAM
ld a, [hl]
- call DisableExtRAM
+ call DisableSRAM
or a
jr nz, .asm_9324
scf
@@ -743,19 +743,19 @@ Func_9314: ; 9314 (2:5314)
ret
Func_9326: ; 9326 (2:5326)
- call EnableExtRAM
+ call EnableSRAM
ld a, [$b700]
- call DisableExtRAM
- ld h, $3
+ call DisableSRAM
+ ld h, 3
ld l, a
call HtimesL
ld e, l
inc e
- ld d, $2
+ ld d, 2
ld a, $38
- ld hl, $0102
- ld bc, $0202
- call Func_1f5f
+ lb hl, 1, 2
+ lb bc, 2, 2
+ call FillRectangle
ret
Func_9345: ; 9345 (2:5345)
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index b551e73..480823f 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -64,9 +64,9 @@ Func_801a1: ; 801a1 (20:41a1)
ld a, [$ff81]
push af
ld a, $1
- call BankswitchRAM
- ld hl, vEnd
- ld de, vBGMapTiles
+ call BankswitchSRAM
+ ld hl, v0End
+ ld de, v0BGMapTiles1
ld c, $20
.asm_801b4
push bc
@@ -101,8 +101,8 @@ Func_801a1: ; 801a1 (20:41a1)
dec c
jr nz, .asm_801b4
pop af
- call BankswitchRAM
- call DisableExtRAM
+ call BankswitchSRAM
+ call DisableSRAM
pop de
pop bc
pop hl
@@ -114,14 +114,14 @@ Func_801f1: ; 801f1 (20:41f1)
ld a, [$ff81]
push af
ld a, $1
- call BankswitchRAM
+ call BankswitchSRAM
ld hl, $a000
ld bc, $0800
xor a
call $3c10
pop af
- call BankswitchRAM
- call DisableExtRAM
+ call BankswitchSRAM
+ call DisableSRAM
pop bc
pop hl
ret
diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm
index c5e2fb4..614e995 100644
--- a/src/engine/bank3.asm
+++ b/src/engine/bank3.asm
@@ -1,8 +1,8 @@
LoadMap: ; c000 (3:4000)
call DisableLCD
- call EnableExtRAM
+ call EnableSRAM
bank1call Func_6785
- call DisableExtRAM
+ call DisableSRAM
ld a, $0
ld [wd0b5], a
xor a
@@ -266,12 +266,12 @@ Func_c1f8: ; c1f8 (3:41f8)
ld [wd111], a
ld [wd112], a
ld [wd3b8], a
- call EnableExtRAM
+ call EnableSRAM
ld a, [$a007]
ld [wd421], a
ld a, [$a006]
ld [wTextSpeed], a
- call DisableExtRAM
+ call DisableSRAM
farcall Func_10756
ret
@@ -977,7 +977,7 @@ Func_c74d: ; c74d (3:474d)
ret
MainMenu_c75a: ; c75a (3:475a)
- call Func_379b
+ call PauseSong
ld a, MUSIC_PAUSEMENU
call PlaySong
call Func_c797
@@ -1003,7 +1003,7 @@ MainMenu_c75a: ; c75a (3:475a)
call Func_c32b
jr .asm_c765
.asm_c793
- call Func_37a0
+ call ResumeSong
ret
Func_c797: ; c797 (3:4797)
@@ -2645,7 +2645,7 @@ Func_d317: ; d317 (3:5317)
DeckMachine_d336: ; d336 (3:5336)
push bc
call Func_c2a3
- call Func_379b
+ call PauseSong
ld a, MUSIC_DECKMACHINE
call PlaySong
call Func_04a2
@@ -2665,7 +2665,7 @@ DeckMachine_d336: ; d336 (3:5336)
.asm_d360
farcall Func_b19d
.asm_d364
- call Func_37a0
+ call ResumeSong
call Func_c2d4
jp IncreaseOWScriptPointerBy2
@@ -2777,11 +2777,11 @@ Func_d41d: ; d41d (3:541d)
jp IncreaseOWScriptPointerBy1
Func_d423: ; d423 (3:5423)
- call Func_379b
+ call PauseSong
jp IncreaseOWScriptPointerBy1
Func_d429: ; d429 (3:5429)
- call Func_37a0
+ call ResumeSong
jp IncreaseOWScriptPointerBy1
Func_d42f: ; d42f (3:542f)
diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm
index 5aed479..c2de9b9 100644
--- a/src/engine/bank4.asm
+++ b/src/engine/bank4.asm
@@ -27,9 +27,9 @@ Func_10031: ; 10031 (4:4031)
ld a, [$ff81]
push af
ld a, $1
- call BankswitchRAM
+ call BankswitchSRAM
call $4cbb
- call DisableExtRAM
+ call DisableSRAM
call $4b28
call SetFlushAllPalettes
call EnableLCD
@@ -37,8 +37,8 @@ Func_10031: ; 10031 (4:4031)
call $4cea
call SetFlushAllPalettes
pop af
- call BankswitchRAM
- call DisableExtRAM
+ call BankswitchSRAM
+ call DisableSRAM
ret
Func_10059: ; 10059 (4:4059)
@@ -54,7 +54,7 @@ Medal_1029e: ; 1029e (4:429e)
ld a, [wd291]
push af
push bc
- call Func_379b
+ call PauseSong
ld a, MUSIC_STOP
call PlaySong
farcall Func_70000
@@ -93,7 +93,7 @@ Medal_1029e: ; 1029e (4:429e)
ldtx hl, WonTheMedalText
call Func_2c73
call Func_3c96
- call Func_37a0
+ call ResumeSong
pop af
ld [wd291], a
ret
@@ -136,7 +136,7 @@ BoosterPack_1031b: ; 1031b (4:431b)
ld a, [hl]
ld [wce40], a
call $4031
- call Func_379b
+ call PauseSong
ld a, MUSIC_BOOSTERPACK
call PlaySong
pop bc
@@ -150,7 +150,7 @@ BoosterPack_1031b: ; 1031b (4:431b)
.asm_10373
call Func_2c73
call Func_3c96
- call Func_37a0
+ call ResumeSong
ldtx hl, CheckedCardsInBoosterPackText
call Func_2c73
call DisableLCD
@@ -290,7 +290,7 @@ Func_10c96: ; 10c96 (4:4c96)
push af
push bc
ld a, $1
- call BankswitchRAM
+ call BankswitchSRAM
call $4cbb
call Func_10ab4
pop bc
@@ -303,8 +303,8 @@ Func_10c96: ; 10c96 (4:4c96)
.asm_10cb0
call EnableLCD
pop af
- call BankswitchRAM
- call DisableExtRAM
+ call BankswitchSRAM
+ call DisableSRAM
ret
; 0x10cbb
@@ -1104,12 +1104,12 @@ Func_12704: ; 12704 (4:6704)
farcall Func_c1b1
call Func_128a9
farcall Func_1996e
- call EnableExtRAM
+ call EnableSRAM
ld a, [$a007]
ld [wd421], a
ld a, [$a006]
ld [wTextSpeed], a
- call DisableExtRAM
+ call DisableSRAM
ld a, MUSIC_STOP
call PlaySong
farcall Func_70000
@@ -1130,10 +1130,10 @@ Func_12741: ; 12741 (4:6741)
jr nc, Func_12704
farcall Func_c1ed
farcall Func_70000
- call EnableExtRAM
+ call EnableSRAM
xor a
ld [$ba44], a
- call DisableExtRAM
+ call DisableSRAM
ld a, $0
ld [wd0b5], a
farcallx $03, Func_383d
@@ -1499,20 +1499,20 @@ Func_131d3: ; 131d3 (4:71d3)
INCROM $131d3, $1344d
Func_1344d: ; 1344d (4:744d)
- call Func_379b
+ call PauseSong
ld a, MUSIC_MEDAL
call PlaySong
ldtx hl, DefeatedFiveOpponentsText
call Func_2c73
call Func_3c96
- call Func_37a0
+ call ResumeSong
ret
; 0x13462
INCROM $13462, $13485
Func_13485: ; 13485 (4:7485)
- call EnableExtRAM
+ call EnableSRAM
ld a, [$ba68]
or a
ret z
@@ -1520,14 +1520,14 @@ Func_13485: ; 13485 (4:7485)
ld [wce43], a
ld a, [$ba57]
ld [wce44], a
- call DisableExtRAM
- call Func_379b
+ call DisableSRAM
+ call PauseSong
ld a, MUSIC_MEDAL
call PlaySong
ldtx hl, ConsecutiveWinRecordIncreasedText
call Func_2c73
call Func_3c96
- call Func_37a0
+ call ResumeSong
ret
; 0x134b1
diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm
index 6428c3f..fa1c529 100644
--- a/src/engine/bank6.asm
+++ b/src/engine/bank6.asm
@@ -5,7 +5,7 @@ INCLUDE "data/effect_commands.asm"
INCROM $18f9c, $1996e
Func_1996e: ; 1996e (6:596e)
- call EnableExtRAM
+ call EnableSRAM
ld a, PLAYER_TURN
ldh [hWhoseTurn], a
ld hl, $a100
@@ -26,7 +26,7 @@ Func_1996e: ; 1996e (6:596e)
ld a, $9
ld hl, $a3f8
call Func_199e0
- call EnableExtRAM
+ call EnableSRAM
ld hl, $a100
ld a, $80
.asm_199a2
@@ -58,7 +58,7 @@ Func_1996e: ; 1996e (6:596e)
ld [$a005], a
ld [$a00a], a
farcall Func_8cf9
- call DisableExtRAM
+ call DisableSRAM
ret
Func_199e0: ; 199e0 (6:59e0)
@@ -69,7 +69,7 @@ Func_199e0: ; 199e0 (6:59e0)
jr c, .asm_19a0e
call Func_19a12
pop hl
- call EnableExtRAM
+ call EnableSRAM
push hl
ld de, wc590
.asm_199f3
@@ -90,7 +90,7 @@ Func_199e0: ; 199e0 (6:59e0)
ld [hli], a
dec c
jr nz, .asm_19a04
- call DisableExtRAM
+ call DisableSRAM
or a
.asm_19a0e
pop hl
@@ -146,7 +146,7 @@ Func_1a61f: ; 1a61f (6:661f)
ld e, a
ld d, $0
call LoadCardDataToBuffer1
- call Func_379b
+ call PauseSong
ld a, MUSIC_MEDAL
call PlaySong
ld hl, $cc27
@@ -162,7 +162,7 @@ Func_1a61f: ; 1a61f (6:661f)
call Func_378a
or a
jr nz, .asm_1a680
- call Func_37a0
+ call ResumeSong
bank1call $5773
ret
; 0x1a68d
diff --git a/src/engine/home.asm b/src/engine/home.asm
index cd10623..5a9a7a7 100644
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -45,7 +45,7 @@ Start: ; 0150 (0:0150)
ld a, $1
call BankswitchHome
xor a
- call BankswitchRAM
+ call BankswitchSRAM
call BankswitchVRAM_0
call DisableLCD
pop af
@@ -198,7 +198,7 @@ SetupTimer: ; 0241 (0:0241)
ld [rTAC], a
ret
-; carry flag: 0 if CGB
+; return carry if not CGB
CheckForCGB: ; 025c (0:025c)
ld a, [wConsole]
cp CONSOLE_CGB
@@ -411,50 +411,51 @@ InitialPalette: ; 0399 (0:0399)
rgb 10,10,08
rgb 00,00,00
+; clear VRAM tile data
SetupVRAM: ; 03a1 (0:03a1)
call FillTileMap
call CheckForCGB
- jr c, .asm_3b2
+ jr c, .vram0
call BankswitchVRAM_1
- call .asm_3b2
+ call .vram0
call BankswitchVRAM_0
-.asm_3b2
- ld hl, vTiles0
- ld bc, vBGMapTiles - vTiles0
-.asm_3b8
+.vram0
+ ld hl, v0Tiles0
+ ld bc, v0BGMapTiles1 - v0Tiles0
+.loop
xor a
ld [hli], a
dec bc
ld a, b
or c
- jr nz, .asm_3b8
+ jr nz, .loop
ret
-; fill VARM tile map banks with [wTileMapFill]
+; fill VRAM0 BG maps with [wTileMapFill] and VRAM1 BG Maps with 0
FillTileMap: ; 03c0 (0:03c0)
call BankswitchVRAM_0
- ld hl, vBGMapTiles
- ld bc, vBGMapAttrs - vBGMapTiles
-.asm_3c9
+ ld hl, v0BGMapTiles1
+ ld bc, v0BGMapTiles2 - v0BGMapTiles1
+.vram0_loop
ld a, [wTileMapFill]
ld [hli], a
dec bc
ld a, c
or b
- jr nz, .asm_3c9
+ jr nz, .vram0_loop
ld a, [wConsole]
cp CONSOLE_CGB
ret nz
call BankswitchVRAM_1
- ld hl, vBGMapTiles
- ld bc, vBGMapAttrs - vBGMapTiles
-.asm_3e1
+ ld hl, v1BGMapTiles1
+ ld bc, v1BGMapTiles2 - v1BGMapTiles1
+.vram1_loop
xor a
ld [hli], a
dec bc
ld a, c
or b
- jr nz, .asm_3e1
+ jr nz, .vram1_loop
call BankswitchVRAM_0
ret
@@ -641,7 +642,7 @@ AttrBlkPacket_04bf: ; 04bf (0:04bf)
ds 6 ; data set 2
ds 2 ; data set 3
-; returns vBGMapTiles + BG_MAP_WIDTH * c + b in de.
+; returns v0BGMapTiles1 + BG_MAP_WIDTH * c + b in de.
; used to map coordinates at bc to a BGMap0 address.
BCCoordToBGMap0Address: ; 04cf (0:04cf)
ld l, c
@@ -652,7 +653,7 @@ BCCoordToBGMap0Address: ; 04cf (0:04cf)
add hl, hl
add hl, hl
ld c, b
- ld b, HIGH(vBGMapTiles)
+ ld b, HIGH(v0BGMapTiles1)
add hl, bc
ld e, l
ld d, h
@@ -1217,8 +1218,8 @@ BankswitchHome: ; 07a3 (0:07a3)
ld [MBC3RomBank], a
ret
-; switch RAM bank
-BankswitchRAM: ; 07a9 (0:07a9)
+; switch SRAM bank
+BankswitchSRAM: ; 07a9 (0:07a9)
push af
ldh [hBankRAM], a
ld [MBC3SRamBank], a
@@ -1228,7 +1229,7 @@ BankswitchRAM: ; 07a9 (0:07a9)
ret
; enable external RAM
-EnableExtRAM: ; 07b6 (0:07b6)
+EnableSRAM: ; 07b6 (0:07b6)
push af
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
@@ -1236,7 +1237,7 @@ EnableExtRAM: ; 07b6 (0:07b6)
ret
; disable external RAM
-DisableExtRAM: ; 07be (0:07be)
+DisableSRAM: ; 07be (0:07be)
push af
xor a ; SRAM_DISABLE
ld [MBC3SRamEnable], a
@@ -1303,7 +1304,7 @@ CGBSpeedSwitch: ; 07f1 (0:07f1)
SetupExtRAM: ; 080b (0:080b)
xor a
- call BankswitchRAM
+ call BankswitchSRAM
ld hl, $a000
ld bc, $1000
.asm_815
@@ -1320,7 +1321,7 @@ SetupExtRAM: ; 080b (0:080b)
call Func_084d
scf
call Func_4050
- call DisableExtRAM
+ call DisableSRAM
ret
.asm_82f
ld hl, $a000
@@ -1338,7 +1339,7 @@ SetupExtRAM: ; 080b (0:080b)
call Func_084d
or a
call Func_4050
- call DisableExtRAM
+ call DisableSRAM
ret
Func_084d: ; 084d (0:084d)
@@ -1358,8 +1359,8 @@ Func_084d: ; 084d (0:084d)
ClearExtRAMBank: ; 0863 (0:0863)
push af
- call BankswitchRAM
- call EnableExtRAM
+ call BankswitchSRAM
+ call EnableSRAM
ld hl, $a000
ld bc, $2000
.asm_870
@@ -1875,8 +1876,8 @@ Func_0bcb: ; 0bcb (0:0bcb)
ld [rLCDC], a
ld a, %11100100
ld [rBGP], a
- ld de, vTiles1
- ld bc, vBGMapTiles - vTiles1
+ ld de, v0Tiles1
+ ld bc, v0BGMapTiles1 - v0Tiles1
.loop
ld a, [hli]
ld [de], a
@@ -1885,7 +1886,7 @@ Func_0bcb: ; 0bcb (0:0bcb)
ld a, b
or c
jr nz, .loop
- ld hl, vBGMapTiles
+ ld hl, v0BGMapTiles1
ld de, $000c
ld a, $80
ld c, $d
@@ -2519,15 +2520,15 @@ Func_0fe9: ; 0fe9 (0:0fe9)
Func_100b: ; 100b (0:100b)
ld a, $2
- call BankswitchRAM
+ call BankswitchSRAM
call $669d
xor a
- call BankswitchRAM
- call EnableExtRAM
+ call BankswitchSRAM
+ call EnableSRAM
ld hl, $a008
ld a, [hl]
inc [hl]
- call DisableExtRAM
+ call DisableSRAM
and $3
add $28
ld l, $0
@@ -2535,7 +2536,7 @@ Func_100b: ; 100b (0:100b)
add hl, hl
add hl, hl
ld a, $3
- call BankswitchRAM
+ call BankswitchSRAM
push hl
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
@@ -2551,7 +2552,7 @@ Func_100b: ; 100b (0:100b)
call SwapTurn
pop hl
push hl
- call EnableExtRAM
+ call EnableSRAM
ld a, [wcc06]
ld [hli], a
ld a, [wTempNonTurnDuelistCardId]
@@ -2563,10 +2564,10 @@ Func_100b: ; 100b (0:100b)
add hl, de
ld e, l
ld d, h
- call DisableExtRAM
+ call DisableSRAM
bank1call $66a4
xor a
- call BankswitchRAM
+ call BankswitchSRAM
ret
; copies the deck pointed to by de to wPlayerDeck or wOpponentDeck
@@ -3707,7 +3708,7 @@ SwapTurn: ; 1c72 (0:1c72)
ret
PrintPlayerName: ; 1c7d (0:1c7d)
- call EnableExtRAM
+ call EnableSRAM
ld hl, $a010
.loop
ld a, [hli]
@@ -3716,7 +3717,7 @@ PrintPlayerName: ; 1c7d (0:1c7d)
or a
jr nz, .loop
dec de
- call DisableExtRAM
+ call DisableSRAM
ret
PrintOpponentName: ; 1c8e (0:1c8e)
@@ -3741,7 +3742,7 @@ PrintOpponentName: ; 1c8e (0:1c8e)
Func_1caa: ; 1caa (0:1caa)
push de
push bc
- call EnableExtRAM
+ call EnableSRAM
ld hl, $0000
ld de, sDeck1Cards
ld c, $4
@@ -3775,7 +3776,7 @@ Func_1caa: ; 1caa (0:1caa)
.asm_1cd8
inc e
jr nz, .asm_1ccf
- call DisableExtRAM
+ call DisableSRAM
pop bc
pop de
ret
@@ -3784,7 +3785,7 @@ Func_1ce1: ; 1ce1 (0:1ce1)
push hl
push de
push bc
- call EnableExtRAM
+ call EnableSRAM
ld c, a
ld b, $0
ld hl, sDeck1Cards
@@ -3822,7 +3823,7 @@ Func_1ce1: ; 1ce1 (0:1ce1)
.asm_1d11
and $7f
- call DisableExtRAM
+ call DisableSRAM
pop bc
pop de
pop hl
@@ -3833,11 +3834,11 @@ Func_1ce1: ; 1ce1 (0:1ce1)
Func_1d1d: ; 1d1d (0:1d1d)
push hl
- call EnableExtRAM
+ call EnableSRAM
ld h, $a1
ld l, a
ld a, [hl]
- call DisableExtRAM
+ call DisableSRAM
pop hl
and $7f
ret nz
@@ -3846,7 +3847,7 @@ Func_1d1d: ; 1d1d (0:1d1d)
; creates a list at $c000 of every card the player owns and how many
CreateTempCardCollection: ; 1d2e (0:1d2e)
- call EnableExtRAM
+ call EnableSRAM
ld hl, sCardCollection
ld de, wTempCardCollection
ld bc, CARD_COLLECTION_SIZE
@@ -3859,7 +3860,7 @@ CreateTempCardCollection: ; 1d2e (0:1d2e)
call AddDeckCardsToTempCardCollection
ld de, sDeck4Name
call AddDeckCardsToTempCardCollection
- call DisableExtRAM
+ call DisableSRAM
ret
AddDeckCardsToTempCardCollection: ; 1d59 (0:1d59)
@@ -3890,7 +3891,7 @@ AddCardToCollection: ; 1d6e (0:1d6e)
push hl
call CreateTempCardCollection
pop hl
- call EnableExtRAM
+ call EnableSRAM
ld h, wTempCardCollection >> 8
ld a, [hl]
and $7f
@@ -3902,7 +3903,7 @@ AddCardToCollection: ; 1d6e (0:1d6e)
inc a
ld [hl], a
.asm_1d8a
- call DisableExtRAM
+ call DisableSRAM
pop bc
pop de
pop hl
@@ -3910,7 +3911,7 @@ AddCardToCollection: ; 1d6e (0:1d6e)
Func_1d91: ; 1d91 (0:1d91)
push hl
- call EnableExtRAM
+ call EnableSRAM
ld h, $a1
ld l, a
ld a, [hl]
@@ -3920,7 +3921,7 @@ Func_1d91: ; 1d91 (0:1d91)
ld [hl], a
.asm_1d9f
- call DisableExtRAM
+ call DisableSRAM
pop hl
ret
; 0x1da4
@@ -3943,7 +3944,7 @@ SafeCopyDataDEtoHL: ; 1dca (0:1dca)
.lcd_on
jp HblankCopyDataDEtoHL
-; returns vBGMapTiles + BG_MAP_WIDTH * e + d in hl.
+; returns v0BGMapTiles1 + BG_MAP_WIDTH * e + d in hl.
; used to map coordinates at de to a BGMap0 address.
DECoordToBGMap0Address: ; 1ddb (0:1ddb)
ld l, e
@@ -3957,7 +3958,7 @@ DECoordToBGMap0Address: ; 1ddb (0:1ddb)
add d
ld l, a
ld a, h
- adc HIGH(vBGMapTiles)
+ adc HIGH(v0BGMapTiles1)
ld h, a
ret
@@ -4106,7 +4107,7 @@ ContinueDrawingTextBoxDMGorSGB:
lb de, $1a, $1b
; fallthrough
-; copies b bytes of data to sp+$1c and to hl, and returns hl += BG_MAP_WIDTH
+; copies b bytes of data to sp-$1f and to hl, and returns hl += BG_MAP_WIDTH
; d = value of byte 0
; e = value of byte b
; a = value of bytes [1, b-1]
@@ -4246,13 +4247,18 @@ AttrBlkPacket_1f4f: ; 1f4f (0:1f4f)
ds 6 ; data set 2
ds 2 ; data set 3
-Func_1f5f: ; 1f5f (0:1f5f)
+; Fill a bxc rectangle at de and at sp-$26,
+; using tile a and the subsequent ones in the following pattern:
+; | a+0*l+0*h | a+0*l+1*h | a+0*l+2*h |
+; | a+1*l+0*h | a+1*l+1*h | a+1*l+2*h |
+; | a+2*l+0*h | a+2*l+1*h | a+2*l+2*h |
+FillRectangle: ; 1f5f (0:1f5f)
push de
push af
push hl
- add sp, $e0
+ add sp, -BG_MAP_WIDTH
call DECoordToBGMap0Address
-.asm_1f67
+.next_row
push hl
push bc
ld hl, sp+$25
@@ -4261,18 +4267,18 @@ Func_1f5f: ; 1f5f (0:1f5f)
ld a, [hl]
ld hl, sp+$4
push hl
-.asm_1f72
+.next_tile
ld [hli], a
add d
dec b
- jr nz, .asm_1f72
+ jr nz, .next_tile
pop de
pop bc
pop hl
push hl
push bc
ld c, b
- ld b, $0
+ ld b, 0
call SafeCopyDataDEtoHL
ld hl, sp+$24
ld a, [hl]
@@ -4281,10 +4287,10 @@ Func_1f5f: ; 1f5f (0:1f5f)
ld [hl], a
pop bc
pop de
- ld hl, $0020
+ ld hl, BG_MAP_WIDTH
add hl, de
dec c
- jr nz, .asm_1f67
+ jr nz, .next_row
add sp, $24
pop de
ret
@@ -4299,7 +4305,7 @@ Func_20b0: ; 20b0 (0:20b0)
jr nz, .asm_20bd
ld hl, DuelGraphics + $e90 - $4000
.asm_20bd
- ld de, vTiles1 + $500
+ ld de, v0Tiles1 + $500
ld b, $30
jr CopyFontsOrDuelGraphicsTiles
@@ -4310,7 +4316,7 @@ Func_20c4: ; 20c4 (0:20c4)
jr nz, .copy
ld hl, DuelGraphics + $ed0 - $4000
.copy
- ld de, vTiles1 + $540
+ ld de, v0Tiles1 + $540
ld b, $c
jr CopyFontsOrDuelGraphicsTiles
@@ -4327,12 +4333,12 @@ asm_20de
jr nz, .copy
ld hl, DuelGraphics + $1190 - $4000
.copy
- ld de, vTiles1 + $500
+ ld de, v0Tiles1 + $500
jr CopyFontsOrDuelGraphicsTiles
Func_20f0: ; 20f0 (0:20f0)
ld hl, Fonts + $8
- ld de, vTiles1 + $200
+ ld de, v0Tiles1 + $200
ld b, $d
call CopyFontsOrDuelGraphicsTiles
ld hl, DuelGraphics + $bc0 - $4000
@@ -4341,24 +4347,24 @@ Func_20f0: ; 20f0 (0:20f0)
jr nz, .copy
ld hl, DuelGraphics + $13d0 - $4000
.copy
- ld de, vTiles1 + $500
+ ld de, v0Tiles1 + $500
ld b, $30
jr CopyFontsOrDuelGraphicsTiles
Func_210f: ; 210f (0:210f)
ld hl, DuelGraphics + $1770 - $4000
- ld de, vTiles2 + $300
+ ld de, v0Tiles2 + $300
ld b, $8
jr CopyFontsOrDuelGraphicsTiles
Func_2119: ; 2119 (0:2119)
ld hl, DuelGraphics - $4000
- ld de, vTiles2 ; destination
+ ld de, v0Tiles2 ; destination
ld b, $38 ; number of tiles
; fallthrough
; if hl ≤ $3fff
-; copy b tiles from Gfx1:hl to de
+; copy b tiles from Gfx1:(hl+$4000) to de
; if $4000 ≤ hl ≤ $7fff
; copy b tiles from Gfx2:hl to de
CopyFontsOrDuelGraphicsTiles:
@@ -4370,7 +4376,34 @@ CopyFontsOrDuelGraphicsTiles:
ret
; 0x212f
- INCROM $212f, $2167
+; this function appears to copy duel gfx data into sram
+Func_212f: ; 212f (0:212f)
+ ld hl, DuelGraphics - $4000
+ ld de, $a400
+ ld b, $30
+ call CopyFontsOrDuelGraphicsTiles
+ ld hl, DuelGraphics + $17f0 - $4000
+ ld de, $a700
+ ld b, $08
+ call CopyFontsOrDuelGraphicsTiles
+ call GetCardSymbolData
+ sub $d0
+ ld l, a
+ ld h, $00
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, DuelGraphics + $680 - $4000
+ add hl, de
+ ld de, $a780
+ ld b, $04
+ call CopyFontsOrDuelGraphicsTiles
+ ld hl, DuelGraphics + $680 - $4000
+ ld de, $b100
+ ld b, $30
+ jr CopyFontsOrDuelGraphicsTiles
+; 0x2167
DrawDuelBoxMessage: ; 2167 (0:2167)
ld l, a
@@ -4381,14 +4414,14 @@ DrawDuelBoxMessage: ; 2167 (0:2167)
; hl = a * $280
ld de, DuelBoxMessages
add hl, de
- ld de, vTiles1 + $200
+ ld de, v0Tiles1 + $200
ld b, $28
call CopyFontsOrDuelGraphicsTiles
ld a, $a0
- ld hl, $010a
- ld bc, $0a04
+ lb hl, 1, 10
+ lb bc, 10, 4
lb de, 5, 4
- jp Func_1f5f
+ jp FillRectangle
; 0x2189
INCROM $2189, $21c5
@@ -4604,7 +4637,7 @@ Func_22f2: ; 22f2 (0:22f2)
ld l, e
ld h, d
ld de, $cd05
- ld c, $1
+ ld c, 1
call SafeCopyDataDEtoHL
ld hl, $ffac
inc [hl]
@@ -5253,7 +5286,83 @@ Func_271a: ; 271a (0:271a)
ret
; 0x278d
- INCROM $278d, $29f5
+ INCROM $278d, $2988
+
+CardTypeToSymbolID: ; 2988 (0:2988)
+ ld a, [wLoadedCard1Type]
+ cp TYPE_TRAINER
+ jr nc, .trainer_card
+ cp TYPE_ENERGY_FIRE
+ jr c, .pokemon_card
+ ; energy card
+ and 7 ; convert energy constant to type constant
+ ret
+.trainer_card
+ ld a, 11
+ ret
+.pokemon_card
+ ld a, [wLoadedCard1Stage]
+ add 8
+ ret
+; 0x299f
+
+GetCardSymbolData: ; 299f (0:299f)
+ call CardTypeToSymbolID
+ add a
+ ld c, a
+ ld b, 0
+ ld hl, CardSymbolTable
+ add hl, bc
+ ld a, [hl]
+ ret
+; 0x29ac
+
+DrawCardSymbol: ; 29ac (0:29ac)
+ push hl
+ push de
+ push bc
+ call GetCardSymbolData
+ dec d
+ dec d
+ dec e
+ ld a, [wConsole]
+ cp CONSOLE_CGB
+ jr nz, .tiles
+ ; CGB-only attrs (palette)
+ push hl
+ inc hl
+ ld a, [hl]
+ lb bc, 2, 2
+ lb hl, 0, 0
+ call BankswitchVRAM_1
+ call FillRectangle
+ call BankswitchVRAM_0
+ pop hl
+.tiles
+ ld a, [hl]
+ lb hl, 1, 2
+ lb bc, 2, 2
+ call FillRectangle
+ pop bc
+ pop de
+ pop hl
+ ret
+; 0x29dd
+
+CardSymbolTable:
+; starting tile, cgb palette (grey, red, blue, pink)
+ db $e0, $01 ; TYPE_ENERGY_FIRE
+ db $e4, $02 ; TYPE_ENERGY_GRASS
+ db $e8, $01 ; TYPE_ENERGY_LIGHTNING
+ db $ec, $02 ; TYPE_ENERGY_WATER
+ db $f0, $03 ; TYPE_ENERGY_PSYCHIC
+ db $f4, $03 ; TYPE_ENERGY_FIGHTING
+ db $f8, $00 ; TYPE_ENERGY_DOUBLE_COLORLESS
+ db $fc, $02 ; TYPE_ENERGY_UNUSED
+ db $d0, $02 ; TYPE_PKMN_*, Stage 0
+ db $d4, $02 ; TYPE_PKMN_*, Stage 1
+ db $d8, $01 ; TYPE_PKMN_*, Stage 2
+ db $dc, $02 ; TYPE_TRAINER
Func_29f5: ; 29f5 (0:29f5)
farcallx $6, $4000
@@ -7321,12 +7430,12 @@ PlaySFX: ; 3796 (0:3796)
farcall _PlaySFX
ret
-Func_379b: ; 379b (0:379b)
- farcall Func_f401b
+PauseSong: ; 379b (0:379b)
+ farcall _PauseSong
ret
-Func_37a0: ; 37a0 (0:37a0)
- farcall Func_f401e
+ResumeSong: ; 37a0 (0:37a0)
+ farcall _ResumeSong
ret
; 0x37a5
@@ -7395,7 +7504,7 @@ Func_3874: ; 3874 (0:3874)
Func_3876: ; 3876 (0:3876)
ldh a, [hBankROM]
push af
- call Func_379b
+ call PauseSong
ld a, MUSIC_CARDPOP
call PlaySong
ld a, $3
@@ -7407,7 +7516,7 @@ Func_3876: ; 3876 (0:3876)
ld a, [wd10e]
and $ef
ld [wd10e], a
- call Func_37a0
+ call ResumeSong
pop af
call BankswitchHome
scf
@@ -7433,10 +7542,10 @@ Func_38c0: ; 38c0 (0:38c0)
ld [wd0c2], a
xor a
ld [wd112], a
- call EnableExtRAM
+ call EnableSRAM
xor a
ld [$ba44], a
- call DisableExtRAM
+ call DisableSRAM
call Func_3a3b
bank1call StartDuel
scf
@@ -7446,10 +7555,10 @@ Func_38db: ; 38db (0:38db)
ld a, $6
ld [wd111], a
call Func_39fc
- call EnableExtRAM
+ call EnableSRAM
xor a
ld [$ba44], a
- call DisableExtRAM
+ call DisableSRAM
asm_38ed
farcall Func_131d3
ld a, $9
@@ -7462,9 +7571,9 @@ Func_38fb: ; 38fb (0:38fb)
xor a
ld [wd112], a
bank1call Func_406f
- call EnableExtRAM
+ call EnableSRAM
ld a, [$ba44]
- call DisableExtRAM
+ call DisableSRAM
cp $ff
jr z, asm_38ed
scf
@@ -7478,9 +7587,9 @@ Credits_3911: ; 3911 (0:3911)
Func_3917: ; 3917 (0:3917)
ld a, $22
farcall CheckIfEventFlagSet
- call EnableExtRAM
+ call EnableSRAM
ld [$a00a], a
- call DisableExtRAM
+ call DisableSRAM
ret
GetFloorObjectFromPos: ; 3927 (0:3927)
diff --git a/src/sram.asm b/src/sram.asm
index 40e1f93..1a0bf38 100644
--- a/src/sram.asm
+++ b/src/sram.asm
@@ -1,4 +1,4 @@
-SECTION "Working Cards", SRAM
+SECTION "SRAM", SRAM
ds $100
diff --git a/src/vram.asm b/src/vram.asm
index b4a34b2..7adca0a 100644
--- a/src/vram.asm
+++ b/src/vram.asm
@@ -1,10 +1,21 @@
-SECTION "VRAM", VRAM
+SECTION "VRAM0", VRAM
-vTiles0:: ds $800 ; 8000
-vTiles1:: ds $800 ; 8800
-vTiles2:: ds $800 ; 9000
+v0Tiles0:: ds $800 ; 8000
+v0Tiles1:: ds $800 ; 8800
+v0Tiles2:: ds $800 ; 9000
-vBGMapTiles:: ds $400 ; 9800
-vBGMapAttrs:: ds $400 ; 9c00
+v0BGMapTiles1:: ds $400 ; 9800
+v0BGMapTiles2:: ds $400 ; 9c00
-vEnd:: ; a000
+v0End:: ; a000
+
+SECTION "VRAM1", VRAM
+
+v1Tiles0:: ds $800 ; 8000
+v1Tiles1:: ds $800 ; 8800
+v1Tiles2:: ds $800 ; 9000
+
+v1BGMapTiles1:: ds $400 ; 9800
+v1BGMapTiles2:: ds $400 ; 9c00
+
+v1End:: ; a000