summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/engine/bank01.asm2
-rw-r--r--src/engine/bank03.asm12
-rw-r--r--src/engine/bank04.asm121
-rw-r--r--src/engine/bank06.asm2
-rw-r--r--src/engine/bank07.asm2
-rw-r--r--src/engine/bank20.asm593
-rw-r--r--src/sram.asm105
-rw-r--r--src/wram.asm39
8 files changed, 839 insertions, 37 deletions
diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm
index 8bf9ab2..02e2682 100644
--- a/src/engine/bank01.asm
+++ b/src/engine/bank01.asm
@@ -7,7 +7,7 @@ GameLoop: ; 4000 (1:4000)
call EnableInt_VBlank
call EnableInt_Timer
call EnableSRAM
- ld a, [s0a006]
+ ld a, [sTextSpeed]
ld [wTextSpeed], a
ld a, [s0a009]
ld [wSkipDelayAllowed], a
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm
index ed9a8cc..4013cd4 100644
--- a/src/engine/bank03.asm
+++ b/src/engine/bank03.asm
@@ -270,7 +270,7 @@ Func_c1f8: ; c1f8 (3:41f8)
call EnableSRAM
ld a, [sAnimationsDisabled]
ld [wAnimationsDisabled], a
- ld a, [s0a006]
+ ld a, [sTextSpeed]
ld [wTextSpeed], a
call DisableSRAM
farcall Func_10756
@@ -464,7 +464,7 @@ Func_c36a: ; c36a (3:436a)
cp POKEMON_DOME_ENTRANCE
jr nz, .asm_c379
xor a
- ld [wd324], a
+ ld [wd323 + 1], a
.asm_c379
ret
@@ -8329,10 +8329,10 @@ Func_f5d4: ; f5d4 (3:75d4)
Func_f5db: ; f5db (3:75db)
xor a
- ld [wd698], a
- ld [wd699], a
- ld [wd69a], a
- ld [wd69b], a
+ ld [wd698 + 0], a
+ ld [wd698 + 1], a
+ ld [wd698 + 2], a
+ ld [wd698 + 3], a
ret
Func_f5e9: ; f5e9 (3:75e9)
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index 7cff830..c8625fc 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -854,7 +854,124 @@ Func_11416: ; 11416 (4:5416)
INCROM $11416, $11430
Func_11430: ; 11430 (4:5430)
- INCROM $11430, $1157c
+ push de
+ ld de, sb800
+ call .Func_11439
+ pop de
+ ret
+
+.Func_11439
+ push hl
+ push bc
+ call EnableSRAM
+ call .Func_11447
+ call DisableSRAM
+ pop bc
+ pop hl
+ ret
+
+.Func_11447
+ push hl
+ push bc
+ push de
+ ld a, e
+ add $08
+ ld [wTempPointer], a
+ ld a, d
+ adc 0
+ ld [wTempPointer + 1], a
+ ld hl, .data_11498
+.asm_11459
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ or d
+ jr z, .done_copy
+ inc hl
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+
+; copy bc bytes from wTempPointer to de
+ push hl
+ ld a, [wTempPointer]
+ ld l, a
+ ld a, [wTempPointer + 1]
+ ld h, a
+.loop_copy
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop_copy
+
+ ld a, l
+ ld [wTempPointer], a
+ ld a, h
+ ld [wTempPointer + 1], a
+ pop hl
+ inc hl
+ inc hl
+ jr .asm_11459
+
+.done_copy
+ call EnableSRAM
+ ld a, [sAnimationsDisabled]
+ ld [wAnimationsDisabled], a
+ ld a, [sTextSpeed]
+ ld [wTextSpeed], a
+ call DisableSRAM
+ pop de
+ pop bc
+ pop hl
+ ret
+
+.data_11498
+; pointer, number of bytes, unknown
+ dw wd3cc, 1, $ff00
+ dw wd3cb, 1, $ff00
+ dw wPlayTimeCounter + 0, 1, $ff00
+ dw wPlayTimeCounter + 1, 1, $ff00
+ dw wPlayTimeCounter + 2, 1, $ff00
+ dw wPlayTimeCounter + 3, 2, $ff00
+ dw wd32e, 1, $ff00
+ dw wTempMap, 1, $ff00
+ dw wTempPlayerXCoord, 1, $ff00
+ dw wTempPlayerYCoord, 1, $ff00
+ dw wTempPlayerDirection, 1, $ff00
+ dw wd0c2, 1, $ff00
+ dw wDuelResult, 1, $ff00
+ dw wd0c4, 1, $ff00
+ dw wd696, 1, $ff00
+ dw wd698, 4, $ff00
+ dw wd323, 11, $ff00
+ dw Data_1156c, 1, $ff00
+ dw wd0b8, 1, $ff00
+ dw wd0b9, 1, $ff00
+ dw wd11b, 1, $ff00
+ dw wd0ba, 1, $ff00
+ dw wPCPackSelection, 1, $0e00
+ dw wPCPacks, 15, $ff00
+ dw wd111, 1, $ff00
+ dw wcad5, 1, $ff00
+ dw wd3b8, 1, $ff00
+ dw wd3bb, 10, $ff00
+ dw wd0c5, 1, $ff00
+ dw wMultichoiceTextboxResult_ChooseDeckToDuelAgainst, 1, $ff00
+ dw wd10e, 1, $ff00
+ dw Data_1156c, 15, $ff00
+ dw Data_1156c, 16, $ff00
+ dw Data_1156c, 16, $ff00
+ dw wEventFlags, 64, $ff00
+ dw NULL
+; 0x1156c
+
+Data_1156c: ; 1156c (4:556c)
+ db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
+; 0x1157c
Func_1157c: ; 1157c (4:557c)
ld a, c
@@ -1223,7 +1340,7 @@ MainMenu_NewGame: ; 12704 (4:6704)
call EnableSRAM
ld a, [sAnimationsDisabled]
ld [wAnimationsDisabled], a
- ld a, [s0a006]
+ ld a, [sTextSpeed]
ld [wTextSpeed], a
call DisableSRAM
ld a, MUSIC_STOP
diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm
index fb5b6b6..f756533 100644
--- a/src/engine/bank06.asm
+++ b/src/engine/bank06.asm
@@ -1501,7 +1501,7 @@ Func_1996e: ; 1996e (6:596e)
ld a, $2
ld [s0a003], a
ld a, $2
- ld [s0a006], a
+ ld [sTextSpeed], a
ld [wTextSpeed], a
xor a
ld [sAnimationsDisabled], a
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index 02590a8..e2922bb 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -1709,7 +1709,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
call Func_1d705
call Func_1c858
xor a
- ld [wd324], a
+ ld [wd323 + 1], a
ld a, MUSIC_CREDITS
call PlaySong
farcall Func_10031
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index 078d4b2..2ff90f4 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -804,13 +804,553 @@ CopyPaletteDataToBuffer: ; 80456 (20:4456)
INCROM $8047b, $80480
Func_80480: ; 80480 (20:4480)
- INCROM $80480, $804d8
+ push hl
+ push bc
+ ld a, [wCurMap]
+ add a
+ add a ; *4
+ ld c, a
+ ld a, [wConsole]
+ cp CONSOLE_CGB
+ jr nz, .not_cgb
+ ld a, c
+ add 2
+ ld c, a
+.not_cgb
+ ld b, $00
+ ld hl, Data_805d6
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Func_804a2
+ pop bc
+ pop hl
+ ret
+; 0x804a2
+
+; hl written to wd318
+Func_804a2: ; 804a2 (20:44a2)
+ push hl
+ push bc
+ ld a, l
+ ld [wd318], a
+ ld a, h
+ ld [wd318 + 1], a
+ xor a
+ ld [wd322], a
+ call Func_8059a
+ ld c, 0
+.asm_804b5
+ call Func_805aa
+ call Func_804f3
+ ld a, [wd320]
+ cp $ff
+ jr z, .asm_804cf
+ ld a, [wd322]
+ inc a
+ ld [wd322], a
+ call Func_8050c
+ call Func_805c1
+.asm_804cf
+ inc c
+ ld a, c
+ cp 3
+ jr c, .asm_804b5
+ pop bc
+ pop hl
+ ret
+; 0x804d8
Func_804d8: ; 804d8 (20:44d8)
- INCROM $804d8, $80b7a
+ ld a, [wd322]
+ or a
+ ret z
+ ld c, $00
+.asm_804df
+ call Func_805aa
+ cp $ff
+ jr z, .asm_804ec
+ call Func_8050c
+ call Func_805c1
+.asm_804ec
+ inc c
+ ld a, c
+ cp $03
+ jr c, .asm_804df
+ ret
+; 0x804f3
+; c added to hl
+Func_804f3: ; 804f3 (20:44f3)
+ push hl
+ push bc
+ push hl
+ ld b, $00
+ add hl, bc
+ ld c, [hl]
+ pop hl
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_80509
+ ld a, c
+ ld [wd320], a
+ xor a
+ ld [wd321], a
+.asm_80509
+ pop bc
+ pop hl
+ ret
+; 0x8050c
+
+Func_8050c: ; 8050c (20:450c)
+ ld a, [wd321]
+ or a
+ jr z, .asm_80517
+ dec a
+ ld [wd321], a
+ ret
+
+.asm_80517
+ push hl
+ push de
+ push bc
+ ; add wd320 to pointer in wd318
+ ld a, [wd320]
+ ld c, a
+ ld a, [wd318]
+ add c
+ ld l, a
+ ld a, [wd318 + 1]
+ adc 0
+ ld h, a
+
+ ld a, [hl]
+ ld [wd321], a
+.asm_8052d
+ call .Func_8055c
+ ld de, $8
+ add hl, de
+ ld a, c
+ add e
+ ld c, a
+ ld a, [hl]
+ or a
+ jr z, .asm_8052d
+
+ cp -1
+ ld a, c
+ ld [wd320], a
+ jr nz, .asm_80558
+ pop bc
+ push bc
+ ld a, [wd321]
+ push af
+ ld a, [wd318]
+ ld l, a
+ ld a, [wd318 + 1]
+ ld h, a
+ call Func_804f3
+ pop af
+ ld [wd321], a
+.asm_80558
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.Func_8055c
+ push hl
+ push bc
+ push de
+ ldh a, [hBankVRAM]
+ push af
+ inc hl
+ ld a, [hli]
+ xor $80
+ ld e, a
+ ld a, [hli]
+
+; get tile offset of register e
+; and load its address in de
+ push hl
+ call BankswitchVRAM
+ ld h, $00
+ ld l, e
+ add hl, hl ; *2
+ add hl, hl ; *4
+ add hl, hl ; *8
+ add hl, hl ; *16
+ ld de, v0Tiles1
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+
+ ld a, [hli]
+ add $20
+ ld [wTempPointerBank], a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, hl ; *2
+ add hl, hl ; *4
+ add hl, hl ; *8
+ add hl, hl ; *16
+ add hl, bc
+ lb bc, 1, TILE_SIZE
+ call CopyGfxDataFromTempBank
+ pop af
+ call BankswitchVRAM
+ pop de
+ pop bc
+ pop hl
+ ret
+; 0x8059a
+
+; fills wd31a with $ff
+Func_8059a: ; 8059a (20:459a)
+ push hl
+ push bc
+ ld hl, wd31a
+ ld c, 3 * 2
+ ld a, $ff
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop bc
+ pop hl
+ ret
+; 0x805aa
+
+; copies wd31a + 2*c
+; to wd320 and wd321
+Func_805aa: ; 805aa (20:45aa)
+ push hl
+ push bc
+ ld hl, wd31a
+ sla c
+ ld b, $00
+ add hl, bc
+ ld a, [hli]
+ ld [wd320], a
+ push af
+ ld a, [hl]
+ ld [wd321], a
+ pop af
+ pop bc
+ pop hl
+ ret
+; 0x805c1
+
+; copies wd320 and wd321
+; to wd31a + 2*c
+Func_805c1: ; 805c1 (20:45c1)
+ push hl
+ push bc
+ ld hl, wd31a
+ sla c
+ ld b, $00
+ add hl, bc
+ ld a, [wd320]
+ ld [hli], a
+ ld a, [wd321]
+ ld [hl], a
+ pop bc
+ pop hl
+ ret
+; 0x805d6
+
+Data_805d6: ; 805d6 (20:45d6)
+; non-cgb, cgb
+ dw Data_80662, Data_80696 ; OVERWORLD_MAP
+ dw Data_80742, Data_80742 ; MASON_LABORATORY
+ dw Data_80786, Data_8080a ; DECK_MACHINE_ROOM
+ dw Data_8055e, Data_8055e ; ISHIHARAS_HOUSE
+ dw Data_8055e, Data_8055e ; FIGHTING_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; FIGHTING_CLUB_LOBBY
+ dw Data_8055e, Data_8055e ; FIGHTING_CLUB
+ dw Data_8055e, Data_8055e ; ROCK_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; ROCK_CLUB_LOBBY
+ dw Data_8055e, Data_8055e ; ROCK_CLUB
+ dw Data_8055e, Data_8055e ; WATER_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; WATER_CLUB_LOBBY
+ dw Data_80996, Data_80996 ; WATER_CLUB
+ dw Data_8055e, Data_8055e ; LIGHTNING_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; LIGHTNING_CLUB_LOBBY
+ dw Data_80a5a, Data_80a5a ; LIGHTNING_CLUB
+ dw Data_8055e, Data_8055e ; GRASS_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; GRASS_CLUB_LOBBY
+ dw Data_8055e, Data_8055e ; GRASS_CLUB
+ dw Data_8055e, Data_8055e ; PSYCHIC_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; PSYCHIC_CLUB_LOBBY
+ dw Data_8055e, Data_8055e ; PSYCHIC_CLUB
+ dw Data_8055e, Data_8055e ; SCIENCE_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; SCIENCE_CLUB_LOBBY
+ dw Data_80b1e, Data_80b1e ; SCIENCE_CLUB
+ dw Data_8055e, Data_8055e ; FIRE_CLUB_ENTRANCE
+ dw Data_8055e, Data_8055e ; FIRE_CLUB_LOBBY
+ dw Data_8088e, Data_80912 ; FIRE_CLUB
+ dw Data_8055e, Data_8055e ; CHALLENGE_HALL_ENTRANCE
+ dw Data_8055e, Data_8055e ; CHALLENGE_HALL_LOBBY
+ dw Data_80b32, Data_80b32 ; CHALLENGE_HALL
+ dw Data_8055e, Data_8055e ; POKEMON_DOME_ENTRANCE
+ dw Data_8055e, Data_8055e ; POKEMON_DOME
+ dw Data_80b36, Data_80b36 ; HALL_OF_HONOR
+; 0x8065e
+
+; \1 = unknown
+; \2 = VRAM tile offset
+; \3 = VRAM
+; \4 = tileset
+; \5 = tileset offset
+macro_8055e: MACRO
+ db \1
+ db \2
+ db \3
+ dbw BANK(\4) - BANK(Data_805d6), \4 + $2
+ dw \5
+ENDM
+
+Data_8055e: ; 8055e (20:455e)
+ db $3, $3, $3
+ db -1 ; end
+
+Data_80662: ; 80662 (20:4662)
+ db $3, $33, $33
+
+ macro_8055e 7, $f3, 0, OverworldMapTiles, $73
+ macro_8055e 7, $f4, 0, OverworldMapTiles, $74
+ macro_8055e 7, $f3, 0, OverworldMapTiles, $74
+ macro_8055e 7, $f4, 0, OverworldMapTiles, $75
+ macro_8055e 7, $f3, 0, OverworldMapTiles, $75
+ macro_8055e 7, $f4, 0, OverworldMapTiles, $73
+ db -1 ; end
+
+Data_80696: ; 80696 (20:4696)
+ db $3, $ab, $ab
+
+ macro_8055e 4, $f3, 0, OverworldMapTiles, $73
+ macro_8055e 4, $f4, 0, OverworldMapTiles, $74
+ macro_8055e 4, $18, 1, OverworldMapTiles, $98
+ macro_8055e 0, $19, 1, OverworldMapTiles, $99
+ macro_8055e 0, $1a, 1, OverworldMapTiles, $9a
+ macro_8055e 0, $1b, 1, OverworldMapTiles, $9b
+ macro_8055e 0, $1c, 1, OverworldMapTiles, $9c
+ macro_8055e 4, $f3, 0, OverworldMapTiles, $74
+ macro_8055e 4, $f4, 0, OverworldMapTiles, $75
+ macro_8055e 4, $18, 1, OverworldMapTiles, $9d
+ macro_8055e 0, $19, 1, OverworldMapTiles, $9e
+ macro_8055e 0, $1a, 1, OverworldMapTiles, $9f
+ macro_8055e 0, $1b, 1, OverworldMapTiles, $a0
+ macro_8055e 0, $1c, 1, OverworldMapTiles, $a1
+ macro_8055e 7, $f3, 0, OverworldMapTiles, $75
+ macro_8055e 7, $f4, 0, OverworldMapTiles, $73
+ macro_8055e 4, $18, 1, OverworldMapTiles, $a2
+ macro_8055e 0, $19, 1, OverworldMapTiles, $a3
+ macro_8055e 0, $1a, 1, OverworldMapTiles, $a4
+ macro_8055e 0, $1b, 1, OverworldMapTiles, $a5
+ macro_8055e 0, $1c, 1, OverworldMapTiles, $a6
+ db -1 ; end
+
+Data_80742: ; 80742 (20:4742)
+ db $3, $43, $43
+
+ macro_8055e 3, $dc, 0, MasonLaboratoryTilesetGfx, $5c
+ macro_8055e 0, $dd, 0, MasonLaboratoryTilesetGfx, $5d
+ macro_8055e 3, $de, 0, MasonLaboratoryTilesetGfx, $5e
+ macro_8055e 0, $df, 0, MasonLaboratoryTilesetGfx, $5f
+ macro_8055e 3, $dc, 0, MasonLaboratoryTilesetGfx, $60
+ macro_8055e 0, $dd, 0, MasonLaboratoryTilesetGfx, $61
+ macro_8055e 3, $de, 0, MasonLaboratoryTilesetGfx, $62
+ macro_8055e 0, $df, 0, MasonLaboratoryTilesetGfx, $63
+ db -1 ; end
+
+Data_80786: ; 80786 (20:4786)
+ db $3, $83, $83
+
+ macro_8055e 3, $dc, 0, MasonLaboratoryTilesetGfx, $5c
+ macro_8055e 0, $dd, 0, MasonLaboratoryTilesetGfx, $5d
+ macro_8055e 3, $de, 0, MasonLaboratoryTilesetGfx, $5e
+ macro_8055e 0, $df, 0, MasonLaboratoryTilesetGfx, $5f
+ macro_8055e 5, $e4, 0, MasonLaboratoryTilesetGfx, $64
+ macro_8055e 0, $e5, 0, MasonLaboratoryTilesetGfx, $65
+ macro_8055e 0, $e6, 0, MasonLaboratoryTilesetGfx, $66
+ macro_8055e 0, $e7, 0, MasonLaboratoryTilesetGfx, $67
+ macro_8055e 3, $dc, 0, MasonLaboratoryTilesetGfx, $60
+ macro_8055e 0, $dd, 0, MasonLaboratoryTilesetGfx, $61
+ macro_8055e 3, $de, 0, MasonLaboratoryTilesetGfx, $62
+ macro_8055e 0, $df, 0, MasonLaboratoryTilesetGfx, $63
+ macro_8055e 5, $e4, 0, MasonLaboratoryTilesetGfx, $68
+ macro_8055e 0, $e5, 0, MasonLaboratoryTilesetGfx, $69
+ macro_8055e 0, $e6, 0, MasonLaboratoryTilesetGfx, $6a
+ macro_8055e 0, $e7, 0, MasonLaboratoryTilesetGfx, $6b
+ db -1 ; end
+
+Data_8080a: ; 8080a (20:480a)
+ db $3, $83, $83
+
+ macro_8055e 3, $dc, 0, MasonLaboratoryTilesetGfx, $5c
+ macro_8055e 0, $dd, 0, MasonLaboratoryTilesetGfx, $5d
+ macro_8055e 3, $de, 0, MasonLaboratoryTilesetGfx, $5e
+ macro_8055e 0, $df, 0, MasonLaboratoryTilesetGfx, $5f
+ macro_8055e 5, $03, 1, MasonLaboratoryTilesetGfx, $83
+ macro_8055e 0, $04, 1, MasonLaboratoryTilesetGfx, $84
+ macro_8055e 0, $05, 1, MasonLaboratoryTilesetGfx, $85
+ macro_8055e 0, $06, 1, MasonLaboratoryTilesetGfx, $86
+ macro_8055e 3, $dc, 0, MasonLaboratoryTilesetGfx, $60
+ macro_8055e 0, $dd, 0, MasonLaboratoryTilesetGfx, $61
+ macro_8055e 3, $de, 0, MasonLaboratoryTilesetGfx, $62
+ macro_8055e 0, $df, 0, MasonLaboratoryTilesetGfx, $63
+ macro_8055e 5, $03, 1, MasonLaboratoryTilesetGfx, $87
+ macro_8055e 0, $04, 1, MasonLaboratoryTilesetGfx, $88
+ macro_8055e 0, $05, 1, MasonLaboratoryTilesetGfx, $89
+ macro_8055e 0, $06, 1, MasonLaboratoryTilesetGfx, $8a
+ db -1 ; end
+
+Data_8088e: ; 8088e (20:488e)
+ db $3, $83, $83
+
+ macro_8055e 5, $9f, 0, FireClubTilesetGfx, $1f
+ macro_8055e 0, $a0, 0, FireClubTilesetGfx, $20
+ macro_8055e 0, $a1, 0, FireClubTilesetGfx, $21
+ macro_8055e 0, $a2, 0, FireClubTilesetGfx, $22
+ macro_8055e 6, $a3, 0, FireClubTilesetGfx, $23
+ macro_8055e 0, $a4, 0, FireClubTilesetGfx, $24
+ macro_8055e 0, $a5, 0, FireClubTilesetGfx, $25
+ macro_8055e 0, $a6, 0, FireClubTilesetGfx, $26
+ macro_8055e 5, $9f, 0, FireClubTilesetGfx, $27
+ macro_8055e 0, $a0, 0, FireClubTilesetGfx, $28
+ macro_8055e 0, $a1, 0, FireClubTilesetGfx, $29
+ macro_8055e 0, $a2, 0, FireClubTilesetGfx, $2a
+ macro_8055e 6, $a3, 0, FireClubTilesetGfx, $2b
+ macro_8055e 0, $a4, 0, FireClubTilesetGfx, $2c
+ macro_8055e 0, $a5, 0, FireClubTilesetGfx, $2d
+ macro_8055e 0, $a6, 0, FireClubTilesetGfx, $2e
+ db -1 ; end
+
+Data_80912: ; 80912 (20:4912)
+ db $3, $83, $83
+
+ macro_8055e 5, $bb, 0, FireClubTilesetGfx, $3b
+ macro_8055e 0, $bc, 0, FireClubTilesetGfx, $3c
+ macro_8055e 0, $bd, 0, FireClubTilesetGfx, $3d
+ macro_8055e 0, $be, 0, FireClubTilesetGfx, $3e
+ macro_8055e 6, $bf, 0, FireClubTilesetGfx, $3f
+ macro_8055e 0, $c0, 0, FireClubTilesetGfx, $40
+ macro_8055e 0, $c1, 0, FireClubTilesetGfx, $41
+ macro_8055e 0, $c2, 0, FireClubTilesetGfx, $42
+ macro_8055e 5, $bb, 0, FireClubTilesetGfx, $43
+ macro_8055e 0, $bc, 0, FireClubTilesetGfx, $44
+ macro_8055e 0, $bd, 0, FireClubTilesetGfx, $45
+ macro_8055e 0, $be, 0, FireClubTilesetGfx, $46
+ macro_8055e 6, $bf, 0, FireClubTilesetGfx, $47
+ macro_8055e 0, $c0, 0, FireClubTilesetGfx, $48
+ macro_8055e 0, $c1, 0, FireClubTilesetGfx, $49
+ macro_8055e 0, $c2, 0, FireClubTilesetGfx, $4a
+ db -1 ; end
+
+Data_80996: ; 80996 (20:4996)
+ db $3, $c3, $c3
+
+ macro_8055e 1, $e2, 0, WaterClubTilesetGfx, $62
+ macro_8055e 1, $e3, 0, WaterClubTilesetGfx, $63
+ macro_8055e 3, $e4, 0, WaterClubTilesetGfx, $64
+ macro_8055e 0, $e5, 0, WaterClubTilesetGfx, $65
+ macro_8055e 3, $e6, 0, WaterClubTilesetGfx, $66
+ macro_8055e 0, $e7, 0, WaterClubTilesetGfx, $67
+ macro_8055e 1, $e2, 0, WaterClubTilesetGfx, $68
+ macro_8055e 1, $e3, 0, WaterClubTilesetGfx, $69
+ macro_8055e 3, $e4, 0, WaterClubTilesetGfx, $6a
+ macro_8055e 0, $e5, 0, WaterClubTilesetGfx, $6b
+ macro_8055e 3, $e6, 0, WaterClubTilesetGfx, $6c
+ macro_8055e 0, $e7, 0, WaterClubTilesetGfx, $6d
+ macro_8055e 1, $e2, 0, WaterClubTilesetGfx, $62
+ macro_8055e 1, $e3, 0, WaterClubTilesetGfx, $63
+ macro_8055e 3, $e4, 0, WaterClubTilesetGfx, $64
+ macro_8055e 0, $e5, 0, WaterClubTilesetGfx, $65
+ macro_8055e 3, $e6, 0, WaterClubTilesetGfx, $66
+ macro_8055e 0, $e7, 0, WaterClubTilesetGfx, $67
+ macro_8055e 1, $e2, 0, WaterClubTilesetGfx, $6e
+ macro_8055e 1, $e3, 0, WaterClubTilesetGfx, $6f
+ macro_8055e 3, $e4, 0, WaterClubTilesetGfx, $70
+ macro_8055e 0, $e5, 0, WaterClubTilesetGfx, $71
+ macro_8055e 3, $e6, 0, WaterClubTilesetGfx, $72
+ macro_8055e 0, $e7, 0, WaterClubTilesetGfx, $73
+ db -1 ; end
+
+Data_80a5a: ; 80a5a (20:4a5a)
+ db $3, $c3, $c3
+
+ macro_8055e 10, $a2, 0, LightningClubTilesetGfx, $22
+ macro_8055e 0, $a3, 0, LightningClubTilesetGfx, $23
+ macro_8055e 0, $aa, 0, LightningClubTilesetGfx, $2a
+ macro_8055e 0, $ab, 0, LightningClubTilesetGfx, $2b
+ macro_8055e 4, $a5, 0, LightningClubTilesetGfx, $25
+ macro_8055e 0, $a6, 0, LightningClubTilesetGfx, $26
+ macro_8055e 0, $ac, 0, LightningClubTilesetGfx, $2c
+ macro_8055e 0, $ad, 0, LightningClubTilesetGfx, $2d
+ macro_8055e 4, $a7, 0, LightningClubTilesetGfx, $27
+ macro_8055e 0, $a8, 0, LightningClubTilesetGfx, $28
+ macro_8055e 0, $b0, 0, LightningClubTilesetGfx, $30
+ macro_8055e 0, $b1, 0, LightningClubTilesetGfx, $31
+ macro_8055e 10, $a2, 0, LightningClubTilesetGfx, $2a
+ macro_8055e 0, $a3, 0, LightningClubTilesetGfx, $2b
+ macro_8055e 0, $aa, 0, LightningClubTilesetGfx, $22
+ macro_8055e 0, $ab, 0, LightningClubTilesetGfx, $23
+ macro_8055e 4, $a5, 0, LightningClubTilesetGfx, $2d
+ macro_8055e 0, $a6, 0, LightningClubTilesetGfx, $2e
+ macro_8055e 0, $ac, 0, LightningClubTilesetGfx, $24
+ macro_8055e 0, $ad, 0, LightningClubTilesetGfx, $25
+ macro_8055e 4, $a7, 0, LightningClubTilesetGfx, $2f
+ macro_8055e 0, $a8, 0, LightningClubTilesetGfx, $30
+ macro_8055e 0, $b0, 0, LightningClubTilesetGfx, $28
+ macro_8055e 0, $b1, 0, LightningClubTilesetGfx, $29
+ db -1 ; end
+
+Data_80b1e: ; 80b1e (20:4b1e)
+ db $3, $13, $13
+ macro_8055e 11, $c7, 0, ScienceClubTilesetGfx, $47
+ macro_8055e 11, $c7, 0, ScienceClubTilesetGfx, $48
+ db -1 ; end
+
+Data_80b32: ; 80b32 (20:4b32)
+ db $3, $3, $3
+ db -1 ; end
+
+Data_80b36: ; 80b36 (20:4b36)
+ db $3, $43, $43
+ macro_8055e 11, $a4, 0, HallOfHonorTilesetGfx, $28
+ macro_8055e 0, $a5, 0, HallOfHonorTilesetGfx, $29
+ macro_8055e 0, $a6, 0, HallOfHonorTilesetGfx, $2a
+ macro_8055e 0, $a7, 0, HallOfHonorTilesetGfx, $2b
+ macro_8055e 11, $a4, 0, HallOfHonorTilesetGfx, $2c
+ macro_8055e 0, $a5, 0, HallOfHonorTilesetGfx, $2d
+ macro_8055e 0, $a6, 0, HallOfHonorTilesetGfx, $2e
+ macro_8055e 0, $a7, 0, HallOfHonorTilesetGfx, $2f
+ db -1 ; end
+
+; clears wd323
Func_80b7a: ; 80b7a (20:4b7a)
- INCROM $80b7a, $80b89
+ push hl
+ push bc
+ ld c, $b
+ ld hl, wd323
+ xor a
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop bc
+ pop hl
+ ret
+; 0x80b89
Func_80b89: ; 80b89 (20:4b89)
push hl
@@ -866,7 +1406,7 @@ Func_80baa: ; 80baa (20:4baa)
add a
ld c, a
ld b, $0
- ld hl, Unknown_80c21
+ ld hl, .unknown_80c21
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -884,13 +1424,13 @@ Func_80baa: ; 80baa (20:4baa)
ld a, [hl]
ld [wCurTilemap], a
push bc
- farcall Func_80082
+ farcall Func_80082 ; unnecessary farcall
pop bc
srl b
ld a, c
rrca
- and $f
- swap a
+ and $0f
+ swap a ; * $10
add b
ld c, a
ld b, $0
@@ -914,8 +1454,43 @@ Func_80baa: ; 80baa (20:4baa)
pop hl
ret
-Unknown_80c21: ; 80c21 (20:4c21)
- INCROM $80c21, $80e5a
+.unknown_80c21
+ dw .data_1
+ dw .data_2
+ dw .data_3
+ dw .data_4
+ dw .data_5
+ dw .data_6
+ dw .data_7
+ dw .data_8
+ dw .data_9
+ dw .data_10
+ dw .data_11
+
+.data_1
+ db $16, $00, TILEMAP_UNUSED_5, TILEMAP_UNUSED_6
+.data_2
+ db $0e, $00, TILEMAP_UNUSED_7, TILEMAP_UNUSED_8
+.data_3
+ db $06, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_4
+ db $0a, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_5
+ db $0e, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_6
+ db $12, $02, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_7
+ db $0e, $0a, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_8
+ db $12, $0a, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_9
+ db $0e, $12, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_10
+ db $12, $12, TILEMAP_UNUSED_3, TILEMAP_UNUSED_4
+.data_11
+ db $0a, $00, TILEMAP_UNUSED_1, TILEMAP_UNUSED_2
+
+ INCROM $80c63, $80e5a
SpriteNullAnimationPointer: ; 80e5a (20:4e5a)
dw SpriteNullAnimationFrame
diff --git a/src/sram.asm b/src/sram.asm
index 512d96a..fc044c2 100644
--- a/src/sram.asm
+++ b/src/sram.asm
@@ -9,7 +9,7 @@ s0a004:: ; a004
ds $1
s0a005:: ; a005
ds $1
-s0a006:: ; a006
+sTextSpeed:: ; a006
ds $1
; store settings for animation enabled/disabled
@@ -78,7 +78,108 @@ sb701:: ; b701
sb703:: ; b703
ds $1
- ds $340
+ ds $fc
+
+sb800:: ; b800
+ ds $8
+
+sb808:: ; b808
+ ds $1
+
+sb809:: ; b809
+ ds $1
+
+sPlayTimeCounter:: ; b80a
+ ds $5
+
+sb80f:: ; b80f
+ ds $1
+
+sTempMap:: ; b810
+ ds $1
+
+sTempPlayerXCoord:: ; b811
+ ds $1
+
+sTempPlayerYCoord:: ; b812
+ ds $1
+
+sTempPlayerDirection:: ; b813
+ ds $1
+
+sb814:: ; b814
+ ds $1
+
+sDuelResult:: ; b815
+ ds $1
+
+sb816:: ; b816
+ ds $1
+
+sb817:: ; b817
+ ds $1
+
+sb818:: ; b818
+ ds $4
+
+sb81c:: ; b81c
+ ds $b
+
+sb827:: ; b827
+ ds $1
+
+sb828:: ; b828
+ ds $1
+
+sb829:: ; b829
+ ds $1
+
+sb82a:: ; b82a
+ ds $1
+
+sb82b:: ; b82b
+ ds $1
+
+sPCPackSelection:: ; b82c
+ ds $1
+
+sPCPacks:: ; b82d
+ ds $f
+
+sb83c:: ; b83c
+ ds $1
+
+sb83d:: ; b83d
+ ds $1
+
+sb83e:: ; b83e
+ ds $1
+
+sb83f:: ; b83f
+ ds $a
+
+sb849:: ; b849
+ ds $1
+
+sMultichoiceTextboxResult_ChooseDeckToDuelAgainst:: ; b84a
+ ds $1
+
+sb84b:: ; b84b
+ ds $1
+
+sb84c:: ; b84c
+ ds $f
+
+sb85b:: ; b85b
+ ds $10
+
+sb86b:: ; b86b
+ ds $10
+
+sEventFlags:: ; b87b
+ ds $40
+
+ ds $189
sba44:: ; ba44
ds $1
diff --git a/src/wram.asm b/src/wram.asm
index 0e10d26..8ce82ae 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -2178,15 +2178,25 @@ wBGMapCopyMode:: ; d292
wTempBackgroundPalettesCGB:: ; d297
ds 8 palettes
- ds $4c
+ ds $41
-wd323:: ; d323
+wd318:: ; d318
+ ds $2
+
+wd31a:: ; d31a
+ ds 3 * $2
+
+wd320:: ; d320
ds $1
-wd324:: ; d324
+wd321:: ; d321
ds $1
- ds $9
+wd322:: ; d322
+ ds $1
+
+wd323:: ; d323
+ ds $b
wd32e:: ; d32e
ds $1
@@ -2328,7 +2338,15 @@ wd3b9:: ; d3b9
wd3bb:: ; d3bb
ds $a
- ds $b
+ ds $6
+
+wd3cb:: ; d3cb
+ ds $1
+
+wd3cc:: ; d3cc
+ ds $1
+
+ ds $3
wd3d0:: ; d3d0
ds $1
@@ -2727,16 +2745,7 @@ wd697:: ; d697
ds $1
wd698:: ; d698
- ds $1
-
-wd699:: ; d699
- ds $1
-
-wd69a:: ; d69a
- ds $1
-
-wd69b:: ; d69b
- ds $1
+ ds $4
ds $6e4