summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/constants/map_constants.asm14
-rw-r--r--src/constants/printer_constants.asm9
-rw-r--r--src/constants/tilemap_constants.asm212
-rw-r--r--src/data/maps/permissions/challenge_machine_map_event.bin (renamed from src/data/maps/permissions/unknown1.bin)0
-rw-r--r--src/data/maps/permissions/challenge_machine_map_event_cgb.bin (renamed from src/data/maps/permissions/unknown1_cgb.bin)0
-rw-r--r--src/data/maps/permissions/deck_machine_map_event.bin (renamed from src/data/maps/permissions/unknown_2.bin)0
-rw-r--r--src/data/maps/permissions/deck_machine_map_event_cgb.bin (renamed from src/data/maps/permissions/unknown_2_cgb.bin)0
-rw-r--r--src/data/maps/permissions/hall_of_honor_door_map_event.bin (renamed from src/data/maps/permissions/unknown_3.bin)bin3 -> 3 bytes
-rw-r--r--src/data/maps/permissions/hall_of_honor_door_map_event_cgb.bin (renamed from src/data/maps/permissions/unknown_3_cgb.bin)bin3 -> 3 bytes
-rw-r--r--src/data/maps/permissions/pokemon_dome_door_map_event.bin (renamed from src/data/maps/permissions/unknown_4.bin)bin3 -> 3 bytes
-rw-r--r--src/data/maps/permissions/pokemon_dome_door_map_event_cgb.bin (renamed from src/data/maps/permissions/unknown_4_cgb.bin)bin3 -> 3 bytes
-rw-r--r--src/data/maps/tiles/challenge_machine_map_event.bin (renamed from src/data/maps/tiles/unknown1.bin)0
-rw-r--r--src/data/maps/tiles/challenge_machine_map_event_cgb.bin (renamed from src/data/maps/tiles/unknown1_cgb.bin)0
-rw-r--r--src/data/maps/tiles/deck_machine_map_event.bin (renamed from src/data/maps/tiles/unknown_2.bin)0
-rw-r--r--src/data/maps/tiles/deck_machine_map_event_cgb.bin (renamed from src/data/maps/tiles/unknown_2_cgb.bin)0
-rw-r--r--src/data/maps/tiles/hall_of_honor_door_map_event.bin (renamed from src/data/maps/tiles/unknown_4.bin)0
-rw-r--r--src/data/maps/tiles/hall_of_honor_door_map_event_cgb.bin (renamed from src/data/maps/tiles/unknown_4_cgb.bin)0
-rw-r--r--src/data/maps/tiles/pokemon_dome_door_map_event.bin (renamed from src/data/maps/tiles/unknown_3.bin)bin10 -> 10 bytes
-rw-r--r--src/data/maps/tiles/pokemon_dome_door_map_event_cgb.bin (renamed from src/data/maps/tiles/unknown_3_cgb.bin)bin15 -> 15 bytes
-rw-r--r--src/engine/bank01.asm108
-rw-r--r--src/engine/bank03.asm52
-rw-r--r--src/engine/bank04.asm543
-rw-r--r--src/engine/bank07.asm2
-rw-r--r--src/engine/bank20.asm716
-rw-r--r--src/engine/effect_functions.asm4
-rw-r--r--src/engine/home.asm12
-rw-r--r--src/macros/scripts.asm1
-rw-r--r--src/sram.asm4
-rw-r--r--src/text/text1.asm2
-rw-r--r--src/text/text3.asm6
-rw-r--r--src/text/text_offsets.asm8
-rw-r--r--src/wram.asm13
32 files changed, 1303 insertions, 403 deletions
diff --git a/src/constants/map_constants.asm b/src/constants/map_constants.asm
index be5ee7d..a2654f8 100644
--- a/src/constants/map_constants.asm
+++ b/src/constants/map_constants.asm
@@ -78,3 +78,17 @@ MAP_SCRIPT_CLOSE_TEXTBOX EQU $0e
const MAP_SGB_PALS_8 ; $8
const MAP_SGB_PALS_9 ; $9
const MAP_SGB_PALS_10 ; $a
+
+ const_def 0
+ const MAP_EVENT_POKEMON_DOME_DOOR ; $0
+ const MAP_EVENT_HALL_OF_HONOR_DOOR ; $1
+ const MAP_EVENT_FIGHTING_DECK_MACHINE ; $2
+ const MAP_EVENT_ROCK_DECK_MACHINE ; $3
+ const MAP_EVENT_WATER_DECK_MACHINE ; $4
+ const MAP_EVENT_LIGHTNING_DECK_MACHINE ; $5
+ const MAP_EVENT_GRASS_DECK_MACHINE ; $6
+ const MAP_EVENT_PSYCHIC_DECK_MACHINE ; $7
+ const MAP_EVENT_SCIENCE_DECK_MACHINE ; $8
+ const MAP_EVENT_FIRE_DECK_MACHINE ; $9
+ const MAP_EVENT_CHALLENGE_MACHINE ; $a
+NUM_MAP_EVENTS EQU const_value
diff --git a/src/constants/printer_constants.asm b/src/constants/printer_constants.asm
new file mode 100644
index 0000000..ed6b663
--- /dev/null
+++ b/src/constants/printer_constants.asm
@@ -0,0 +1,9 @@
+; wPrinterStatus
+ const_def 1
+ const PRINTER_STATUS_CHECKING
+ const PRINTER_STATUS_TRANSMITTING
+ const PRINTER_STATUS_PRINTING
+ const PRINTER_ERROR_1
+ const PRINTER_ERROR_PAPER_JAMMED
+ const PRINTER_ERROR_CABLE_PRINTER_SWITCH
+ const PRINTER_ERROR_BATTERIES_LOST_CHARGE
diff --git a/src/constants/tilemap_constants.asm b/src/constants/tilemap_constants.asm
index 4a64930..a3a1538 100644
--- a/src/constants/tilemap_constants.asm
+++ b/src/constants/tilemap_constants.asm
@@ -1,107 +1,107 @@
const_def
- const TILEMAP_OVERWORLD_MAP ; $00
- const TILEMAP_OVERWORLD_MAP_CGB ; $01
- const TILEMAP_MASON_LABORATORY ; $02
- const TILEMAP_MASON_LABORATORY_CGB ; $03
- const TILEMAP_UNKNOWN_1 ; $04
- const TILEMAP_UNKNOWN_1_CGB ; $05
- const TILEMAP_DECK_MACHINE_ROOM ; $06
- const TILEMAP_DECK_MACHINE_ROOM_CGB ; $07
- const TILEMAP_UNKNOWN_2 ; $08
- const TILEMAP_UNKNOWN_2_CGB ; $09
- const TILEMAP_ISHIHARA ; $0a
- const TILEMAP_ISHIHARA_CGB ; $0b
- const TILEMAP_FIGHTING_CLUB_ENTRANCE ; $0c
- const TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB ; $0d
- const TILEMAP_ROCK_CLUB_ENTRANCE ; $0e
- const TILEMAP_ROCK_CLUB_ENTRANCE_CGB ; $0f
- const TILEMAP_WATER_CLUB_ENTRANCE ; $10
- const TILEMAP_WATER_CLUB_ENTRANCE_CGB ; $11
- const TILEMAP_LIGHTNING_CLUB_ENTRANCE ; $12
- const TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB ; $13
- const TILEMAP_GRASS_CLUB_ENTRANCE ; $14
- const TILEMAP_GRASS_CLUB_ENTRANCE_CGB ; $15
- const TILEMAP_PSYCHIC_CLUB_ENTRANCE ; $16
- const TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB ; $17
- const TILEMAP_SCIENCE_CLUB_ENTRANCE ; $18
- const TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB ; $19
- const TILEMAP_FIRE_CLUB_ENTRANCE ; $1a
- const TILEMAP_FIRE_CLUB_ENTRANCE_CGB ; $1b
- const TILEMAP_CHALLENGE_HALL_ENTRANCE ; $1c
- const TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB ; $1d
- const TILEMAP_CLUB_LOBBY ; $1e
- const TILEMAP_CLUB_LOBBY_CGB ; $1f
- const TILEMAP_FIGHTING_CLUB ; $20
- const TILEMAP_FIGHTING_CLUB_CGB ; $21
- const TILEMAP_ROCK_CLUB ; $22
- const TILEMAP_ROCK_CLUB_CGB ; $23
- const TILEMAP_WATER_CLUB ; $24
- const TILEMAP_WATER_CLUB_CGB ; $25
- const TILEMAP_LIGHTNING_CLUB ; $26
- const TILEMAP_LIGHTNING_CLUB_CGB ; $27
- const TILEMAP_GRASS_CLUB ; $28
- const TILEMAP_GRASS_CLUB_CGB ; $29
- const TILEMAP_PSYCHIC_CLUB ; $2a
- const TILEMAP_PSYCHIC_CLUB_CGB ; $2b
- const TILEMAP_SCIENCE_CLUB ; $2c
- const TILEMAP_SCIENCE_CLUB_CGB ; $2d
- const TILEMAP_FIRE_CLUB ; $2e
- const TILEMAP_FIRE_CLUB_CGB ; $2f
- const TILEMAP_CHALLENGE_HALL ; $30
- const TILEMAP_CHALLENGE_HALL_CGB ; $31
- const TILEMAP_POKEMON_DOME_ENTRANCE ; $32
- const TILEMAP_POKEMON_DOME_ENTRANCE_CGB ; $33
- const TILEMAP_UNKNOWN_3 ; $34
- const TILEMAP_UNKNOWN_3_CGB ; $35
- const TILEMAP_POKEMON_DOME ; $36
- const TILEMAP_POKEMON_DOME_CGB ; $37
- const TILEMAP_UNKNOWN_4 ; $38
- const TILEMAP_UNKNOWN_4_CGB ; $39
- const TILEMAP_HALL_OF_HONOR ; $3a
- const TILEMAP_HALL_OF_HONOR_CGB ; $3b
- const TILEMAP_CARD_POP_CGB ; $3c
- const TILEMAP_CARD_POP ; $3d
- const TILEMAP_GRASS_MEDAL ; $3e
- const TILEMAP_SCIENCE_MEDAL ; $3f
- const TILEMAP_FIRE_MEDAL ; $40
- const TILEMAP_WATER_MEDAL ; $41
- const TILEMAP_LIGHTNING_MEDAL ; $42
- const TILEMAP_FIGHTING_MEDAL ; $43
- const TILEMAP_ROCK_MEDAL ; $44
- const TILEMAP_PSYCHIC_MEDAL ; $45
- const TILEMAP_GAMEBOY_LINK_CGB ; $46
- const TILEMAP_GAMEBOY_LINK ; $47
- const TILEMAP_GAMEBOY_LINK_CONNECTING_CGB ; $48
- const TILEMAP_GAMEBOY_LINK_CONNECTING ; $49
- const TILEMAP_GAMEBOY_PRINTER_CGB ; $4a
- const TILEMAP_GAMEBOY_PRINTER ; $4b
- const TILEMAP_COLOSSEUM ; $4c
- const TILEMAP_COLOSSEUM_CGB ; $4d
- const TILEMAP_EVOLUTION ; $4e
- const TILEMAP_EVOLUTION_CGB ; $4f
- const TILEMAP_MYSTERY ; $50
- const TILEMAP_MYSTERY_CGB ; $51
- const TILEMAP_LABORATORY ; $52
- const TILEMAP_LABORATORY_CGB ; $53
- const TILEMAP_CHARIZARD_INTRO ; $54
- const TILEMAP_CHARIZARD_INTRO_CGB ; $55
- const TILEMAP_SCYTHER_INTRO ; $56
- const TILEMAP_SCYTHER_INTRO_CGB ; $57
- const TILEMAP_AERODACTYL_INTRO ; $58
- const TILEMAP_AERODACTYL_INTRO_CGB ; $59
- const TILEMAP_JAPANESE_TITLE_SCREEN ; $5a
- const TILEMAP_JAPANESE_TITLE_SCREEN_CGB ; $5b
- const TILEMAP_SOLID_TILES_1 ; $5c
- const TILEMAP_SOLID_TILES_2 ; $5d
- const TILEMAP_SOLID_TILES_3 ; $5e
- const TILEMAP_JAPANESE_TITLE_SCREEN_2 ; $5f
- const TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB ; $60
- const TILEMAP_SOLID_TILES_4 ; $61
- const TILEMAP_PLAYER ; $62
- const TILEMAP_OPPONENT ; $63
- const TILEMAP_TITLE_SCREEN ; $64
- const TILEMAP_TITLE_SCREEN_CGB ; $65
- const TILEMAP_COPYRIGHT ; $66
- const TILEMAP_COPYRIGHT_CGB ; $67
- const TILEMAP_NINTENDO ; $68
- const TILEMAP_COMPANIES ; $69
+ const TILEMAP_OVERWORLD_MAP ; $00
+ const TILEMAP_OVERWORLD_MAP_CGB ; $01
+ const TILEMAP_MASON_LABORATORY ; $02
+ const TILEMAP_MASON_LABORATORY_CGB ; $03
+ const TILEMAP_CHALLENGE_MACHINE_MAP_EVENT ; $04
+ const TILEMAP_CHALLENGE_MACHINE_MAP_EVENT_CGB ; $05
+ const TILEMAP_DECK_MACHINE_ROOM ; $06
+ const TILEMAP_DECK_MACHINE_ROOM_CGB ; $07
+ const TILEMAP_DECK_MACHINE_MAP_EVENT ; $08
+ const TILEMAP_DECK_MACHINE_MAP_EVENT_CGB ; $09
+ const TILEMAP_ISHIHARA ; $0a
+ const TILEMAP_ISHIHARA_CGB ; $0b
+ const TILEMAP_FIGHTING_CLUB_ENTRANCE ; $0c
+ const TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB ; $0d
+ const TILEMAP_ROCK_CLUB_ENTRANCE ; $0e
+ const TILEMAP_ROCK_CLUB_ENTRANCE_CGB ; $0f
+ const TILEMAP_WATER_CLUB_ENTRANCE ; $10
+ const TILEMAP_WATER_CLUB_ENTRANCE_CGB ; $11
+ const TILEMAP_LIGHTNING_CLUB_ENTRANCE ; $12
+ const TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB ; $13
+ const TILEMAP_GRASS_CLUB_ENTRANCE ; $14
+ const TILEMAP_GRASS_CLUB_ENTRANCE_CGB ; $15
+ const TILEMAP_PSYCHIC_CLUB_ENTRANCE ; $16
+ const TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB ; $17
+ const TILEMAP_SCIENCE_CLUB_ENTRANCE ; $18
+ const TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB ; $19
+ const TILEMAP_FIRE_CLUB_ENTRANCE ; $1a
+ const TILEMAP_FIRE_CLUB_ENTRANCE_CGB ; $1b
+ const TILEMAP_CHALLENGE_HALL_ENTRANCE ; $1c
+ const TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB ; $1d
+ const TILEMAP_CLUB_LOBBY ; $1e
+ const TILEMAP_CLUB_LOBBY_CGB ; $1f
+ const TILEMAP_FIGHTING_CLUB ; $20
+ const TILEMAP_FIGHTING_CLUB_CGB ; $21
+ const TILEMAP_ROCK_CLUB ; $22
+ const TILEMAP_ROCK_CLUB_CGB ; $23
+ const TILEMAP_WATER_CLUB ; $24
+ const TILEMAP_WATER_CLUB_CGB ; $25
+ const TILEMAP_LIGHTNING_CLUB ; $26
+ const TILEMAP_LIGHTNING_CLUB_CGB ; $27
+ const TILEMAP_GRASS_CLUB ; $28
+ const TILEMAP_GRASS_CLUB_CGB ; $29
+ const TILEMAP_PSYCHIC_CLUB ; $2a
+ const TILEMAP_PSYCHIC_CLUB_CGB ; $2b
+ const TILEMAP_SCIENCE_CLUB ; $2c
+ const TILEMAP_SCIENCE_CLUB_CGB ; $2d
+ const TILEMAP_FIRE_CLUB ; $2e
+ const TILEMAP_FIRE_CLUB_CGB ; $2f
+ const TILEMAP_CHALLENGE_HALL ; $30
+ const TILEMAP_CHALLENGE_HALL_CGB ; $31
+ const TILEMAP_POKEMON_DOME_ENTRANCE ; $32
+ const TILEMAP_POKEMON_DOME_ENTRANCE_CGB ; $33
+ const TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT ; $34
+ const TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT_CGB ; $35
+ const TILEMAP_POKEMON_DOME ; $36
+ const TILEMAP_POKEMON_DOME_CGB ; $37
+ const TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT ; $38
+ const TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT_CGB ; $39
+ const TILEMAP_HALL_OF_HONOR ; $3a
+ const TILEMAP_HALL_OF_HONOR_CGB ; $3b
+ const TILEMAP_CARD_POP_CGB ; $3c
+ const TILEMAP_CARD_POP ; $3d
+ const TILEMAP_GRASS_MEDAL ; $3e
+ const TILEMAP_SCIENCE_MEDAL ; $3f
+ const TILEMAP_FIRE_MEDAL ; $40
+ const TILEMAP_WATER_MEDAL ; $41
+ const TILEMAP_LIGHTNING_MEDAL ; $42
+ const TILEMAP_FIGHTING_MEDAL ; $43
+ const TILEMAP_ROCK_MEDAL ; $44
+ const TILEMAP_PSYCHIC_MEDAL ; $45
+ const TILEMAP_GAMEBOY_LINK_CGB ; $46
+ const TILEMAP_GAMEBOY_LINK ; $47
+ const TILEMAP_GAMEBOY_LINK_CONNECTING_CGB ; $48
+ const TILEMAP_GAMEBOY_LINK_CONNECTING ; $49
+ const TILEMAP_GAMEBOY_PRINTER_CGB ; $4a
+ const TILEMAP_GAMEBOY_PRINTER ; $4b
+ const TILEMAP_COLOSSEUM ; $4c
+ const TILEMAP_COLOSSEUM_CGB ; $4d
+ const TILEMAP_EVOLUTION ; $4e
+ const TILEMAP_EVOLUTION_CGB ; $4f
+ const TILEMAP_MYSTERY ; $50
+ const TILEMAP_MYSTERY_CGB ; $51
+ const TILEMAP_LABORATORY ; $52
+ const TILEMAP_LABORATORY_CGB ; $53
+ const TILEMAP_CHARIZARD_INTRO ; $54
+ const TILEMAP_CHARIZARD_INTRO_CGB ; $55
+ const TILEMAP_SCYTHER_INTRO ; $56
+ const TILEMAP_SCYTHER_INTRO_CGB ; $57
+ const TILEMAP_AERODACTYL_INTRO ; $58
+ const TILEMAP_AERODACTYL_INTRO_CGB ; $59
+ const TILEMAP_JAPANESE_TITLE_SCREEN ; $5a
+ const TILEMAP_JAPANESE_TITLE_SCREEN_CGB ; $5b
+ const TILEMAP_SOLID_TILES_1 ; $5c
+ const TILEMAP_SOLID_TILES_2 ; $5d
+ const TILEMAP_SOLID_TILES_3 ; $5e
+ const TILEMAP_JAPANESE_TITLE_SCREEN_2 ; $5f
+ const TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB ; $60
+ const TILEMAP_SOLID_TILES_4 ; $61
+ const TILEMAP_PLAYER ; $62
+ const TILEMAP_OPPONENT ; $63
+ const TILEMAP_TITLE_SCREEN ; $64
+ const TILEMAP_TITLE_SCREEN_CGB ; $65
+ const TILEMAP_COPYRIGHT ; $66
+ const TILEMAP_COPYRIGHT_CGB ; $67
+ const TILEMAP_NINTENDO ; $68
+ const TILEMAP_COMPANIES ; $69
diff --git a/src/data/maps/permissions/unknown1.bin b/src/data/maps/permissions/challenge_machine_map_event.bin
index 26b782d..26b782d 100644
--- a/src/data/maps/permissions/unknown1.bin
+++ b/src/data/maps/permissions/challenge_machine_map_event.bin
diff --git a/src/data/maps/permissions/unknown1_cgb.bin b/src/data/maps/permissions/challenge_machine_map_event_cgb.bin
index 26b782d..26b782d 100644
--- a/src/data/maps/permissions/unknown1_cgb.bin
+++ b/src/data/maps/permissions/challenge_machine_map_event_cgb.bin
diff --git a/src/data/maps/permissions/unknown_2.bin b/src/data/maps/permissions/deck_machine_map_event.bin
index 7f65eeb..7f65eeb 100644
--- a/src/data/maps/permissions/unknown_2.bin
+++ b/src/data/maps/permissions/deck_machine_map_event.bin
diff --git a/src/data/maps/permissions/unknown_2_cgb.bin b/src/data/maps/permissions/deck_machine_map_event_cgb.bin
index 7f65eeb..7f65eeb 100644
--- a/src/data/maps/permissions/unknown_2_cgb.bin
+++ b/src/data/maps/permissions/deck_machine_map_event_cgb.bin
diff --git a/src/data/maps/permissions/unknown_3.bin b/src/data/maps/permissions/hall_of_honor_door_map_event.bin
index 10bc8da..10bc8da 100644
--- a/src/data/maps/permissions/unknown_3.bin
+++ b/src/data/maps/permissions/hall_of_honor_door_map_event.bin
Binary files differ
diff --git a/src/data/maps/permissions/unknown_3_cgb.bin b/src/data/maps/permissions/hall_of_honor_door_map_event_cgb.bin
index 10bc8da..10bc8da 100644
--- a/src/data/maps/permissions/unknown_3_cgb.bin
+++ b/src/data/maps/permissions/hall_of_honor_door_map_event_cgb.bin
Binary files differ
diff --git a/src/data/maps/permissions/unknown_4.bin b/src/data/maps/permissions/pokemon_dome_door_map_event.bin
index 10bc8da..10bc8da 100644
--- a/src/data/maps/permissions/unknown_4.bin
+++ b/src/data/maps/permissions/pokemon_dome_door_map_event.bin
Binary files differ
diff --git a/src/data/maps/permissions/unknown_4_cgb.bin b/src/data/maps/permissions/pokemon_dome_door_map_event_cgb.bin
index 10bc8da..10bc8da 100644
--- a/src/data/maps/permissions/unknown_4_cgb.bin
+++ b/src/data/maps/permissions/pokemon_dome_door_map_event_cgb.bin
Binary files differ
diff --git a/src/data/maps/tiles/unknown1.bin b/src/data/maps/tiles/challenge_machine_map_event.bin
index 1793914..1793914 100644
--- a/src/data/maps/tiles/unknown1.bin
+++ b/src/data/maps/tiles/challenge_machine_map_event.bin
diff --git a/src/data/maps/tiles/unknown1_cgb.bin b/src/data/maps/tiles/challenge_machine_map_event_cgb.bin
index 2a021bb..2a021bb 100644
--- a/src/data/maps/tiles/unknown1_cgb.bin
+++ b/src/data/maps/tiles/challenge_machine_map_event_cgb.bin
diff --git a/src/data/maps/tiles/unknown_2.bin b/src/data/maps/tiles/deck_machine_map_event.bin
index 7fb778f..7fb778f 100644
--- a/src/data/maps/tiles/unknown_2.bin
+++ b/src/data/maps/tiles/deck_machine_map_event.bin
diff --git a/src/data/maps/tiles/unknown_2_cgb.bin b/src/data/maps/tiles/deck_machine_map_event_cgb.bin
index ccd413f..ccd413f 100644
--- a/src/data/maps/tiles/unknown_2_cgb.bin
+++ b/src/data/maps/tiles/deck_machine_map_event_cgb.bin
diff --git a/src/data/maps/tiles/unknown_4.bin b/src/data/maps/tiles/hall_of_honor_door_map_event.bin
index e5fa7a6..e5fa7a6 100644
--- a/src/data/maps/tiles/unknown_4.bin
+++ b/src/data/maps/tiles/hall_of_honor_door_map_event.bin
diff --git a/src/data/maps/tiles/unknown_4_cgb.bin b/src/data/maps/tiles/hall_of_honor_door_map_event_cgb.bin
index 89b40ac..89b40ac 100644
--- a/src/data/maps/tiles/unknown_4_cgb.bin
+++ b/src/data/maps/tiles/hall_of_honor_door_map_event_cgb.bin
diff --git a/src/data/maps/tiles/unknown_3.bin b/src/data/maps/tiles/pokemon_dome_door_map_event.bin
index b861de6..b861de6 100644
--- a/src/data/maps/tiles/unknown_3.bin
+++ b/src/data/maps/tiles/pokemon_dome_door_map_event.bin
Binary files differ
diff --git a/src/data/maps/tiles/unknown_3_cgb.bin b/src/data/maps/tiles/pokemon_dome_door_map_event_cgb.bin
index f621932..f621932 100644
--- a/src/data/maps/tiles/unknown_3_cgb.bin
+++ b/src/data/maps/tiles/pokemon_dome_door_map_event_cgb.bin
Binary files differ
diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm
index 2d0ca69..82ccfc5 100644
--- a/src/engine/bank01.asm
+++ b/src/engine/bank01.asm
@@ -8184,6 +8184,11 @@ Func_7344: ; 7344 (1:7344)
BuildVersion: ; 7354 (1:7354)
db "VER 12/20 09:36", TX_END
+; possibly unreferenced, used for testing
+; enters computer opponent selection screen
+; handles input to select/cancel/scroll through deck IDs
+; loads the NPC duel configurations if one was selected
+; returns carry if selection was cancelled
Func_7364: ; 7364 (1:7364)
xor a
ld [wTileMapFill], a
@@ -8194,75 +8199,91 @@ Func_7364: ; 7364 (1:7364)
call SetupText
call DrawWideTextBox
call EnableLCD
+
xor a
ld [wOpponentDeckID], a
- call Func_73d8
-.asm_7384
+ call DrawOpponentSelectionScreen
+.wait_input
call DoFrame
ldh a, [hDPadHeld]
or a
- jr z, .asm_7384
+ jr z, .wait_input
ld b, a
+
+ ; handle selection/cancellation buttons
and A_BUTTON | START
- jr nz, .asm_73cd
+ jr nz, .select_opp
bit B_BUTTON_F, b
- jr nz, .asm_73cb
+ jr nz, .cancel
+
+; handle D-pad inputs
+; check right
ld a, [wOpponentDeckID]
bit D_RIGHT_F, b
- jr z, .asm_73a2
- inc a
- cp $35
- jr c, .asm_73a2
- xor a
-.asm_73a2
+ jr z, .check_left
+ inc a ; next deck ID
+ cp DECK_IDS_END + 1
+ jr c, .check_left
+ xor a ; wrap around to first deck ID
+
+.check_left
bit D_LEFT_F, b
- jr z, .asm_73ae
+ jr z, .check_up
or a
- jr nz, .asm_73ad
- ld a, IMAKUNI_DECK_ID
- jr .asm_73ae
-.asm_73ad
- dec a
-.asm_73ae
+ jr nz, .not_first_deck_id
+ ld a, DECK_IDS_END ; wrap around to last deck ID
+ jr .check_up
+.not_first_deck_id
+ dec a ; previous deck ID
+
+.check_up
bit D_UP_F, b
- jr z, .asm_73b9
- add $0a
- cp $35
- jr c, .asm_73b9
- xor a
-.asm_73b9
+ jr z, .check_down
+ add 10
+ cp DECK_IDS_END + 1
+ jr c, .check_down
+ xor a ; wrap around to first deck ID
+
+.check_down
bit D_DOWN_F, b
- jr z, .asm_73c3
- sub $0a
- jr nc, .asm_73c3
- ld a, IMAKUNI_DECK_ID
-.asm_73c3
+ jr z, .got_deck_id
+ sub 10
+ jr nc, .got_deck_id
+ ld a, DECK_IDS_END ; wrap around to last deck ID
+
+.got_deck_id
ld [wOpponentDeckID], a
- call Func_73d8
- jr .asm_7384
-.asm_73cb
+ call DrawOpponentSelectionScreen
+ jr .wait_input
+
+.cancel
scf
ret
-.asm_73cd
+.select_opp
ld a, [wOpponentDeckID]
ld [wNPCDuelDeckID], a
- call Func_3ae8
+ call GetNPCDuelConfigurations
or a
ret
; 0x73d8
-Func_73d8: ; 73d8 (1:73d8)
+; draws the current opponent to be selected
+; (his/her portrait and name)
+; and prints text box for selection
+DrawOpponentSelectionScreen: ; 73d8 (1:73d8)
ld a, [wOpponentDeckID]
ld [wNPCDuelDeckID], a
- call Func_3ae8
- jr c, .asm_73ec
+ call GetNPCDuelConfigurations
+ jr c, .ok
+ ; duel configuration not found for the NPC
+ ; so load a default portrait and name
xor a
ld [wOpponentPortrait], a
ld hl, wOpponentName
ld [hli], a
ld [hl], a
-.asm_73ec
- ld hl, Data_7408
+.ok
+ ld hl, SelectComputerOpponentData
call PlaceTextItems
call DrawDuelistPortraitsAndNames
ld a, [wOpponentDeckID]
@@ -8272,9 +8293,14 @@ Func_73d8: ; 73d8 (1:73d8)
lb bc, 15, 10
call WriteTwoByteNumberInTxSymbolFormat
ret
+; 0x7408
-Data_7408: ; 7408 (1:7408)
- INCROM $7408, $7415
+SelectComputerOpponentData: ; 7408 (1:7408)
+ textitem 10, 0, Text0089
+ textitem 10, 10, NumberOfPrizesText
+ textitem 3, 14, SelectComputerOpponentText
+ db $ff
+; 0x7415
Func_7415: ; 7415 (1:7415)
xor a
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm
index c29f75a..d2065ae 100644
--- a/src/engine/bank03.asm
+++ b/src/engine/bank03.asm
@@ -38,7 +38,7 @@ LoadMap: ; c000 (3:4000)
call Func_c36a
call Func_c184
call Func_c49c
- farcall Func_80000
+ farcall LoadMapGfxAndPermissions
call Func_c4b9
call Func_c943
call Func_c158
@@ -147,7 +147,7 @@ CloseAdvancedDialogueBox: ; c111 (3:4111)
; redraws the background and removes textbox control
CloseTextBox: ; c135 (3:4135)
push hl
- farcall Func_80028
+ farcall ReloadMapAfterTextClose
ld hl, wd0c1
res 0, [hl]
pop hl
@@ -402,7 +402,7 @@ Func_c2db: ; c2db (3:42db)
call EmptyScreen
ld a, [wDefaultSong]
push af
- farcall Func_80000
+ farcall LoadMapGfxAndPermissions
pop af
ld [wDefaultSong], a
ld hl, wd0c1
@@ -459,12 +459,12 @@ Func_c34e: ; c34e (3:434e)
Func_c36a: ; c36a (3:436a)
xor a
- ld [wd323], a
+ ld [wOWMapEvents], a
ld a, [wCurMap]
cp POKEMON_DOME_ENTRANCE
jr nz, .asm_c379
xor a
- ld [wd323 + 1], a
+ ld [wOWMapEvents + 1], a
.asm_c379
ret
@@ -566,17 +566,19 @@ Func_c3ca: ; c3ca (3:43ca)
pop hl
ret
+; removes flag in whole wPermissionMap
+; most likely relate to menu and text boxes
Func_c3ee: ; c3ee (3:43ee)
push hl
push bc
ld c, $00
- ld hl, wBoosterViableCardList
-.asm_c3f5
+ ld hl, wPermissionMap
+.loop
ld a, [hl]
- and $ef
+ and ~$10 ; removes this flag
ld [hli], a
dec c
- jr nz, .asm_c3f5
+ jr nz, .loop
pop bc
pop hl
ret
@@ -3451,7 +3453,7 @@ MasonLabLoadMap: ; d549 (3:5549)
jp SetNextNPCAndScript
MasonLabCloseTextBox: ; d55e (3:555e)
- ld a, $0a
+ ld a, MAP_EVENT_CHALLENGE_MACHINE
farcall Func_80b89
ret
@@ -3943,13 +3945,13 @@ DeckMachineRoomAfterDuel: ; d89f (3:589f)
db $00
DeckMachineRoomCloseTextBox: ; d8ad (3:58ad)
- ld a, $02
+ ld a, MAP_EVENT_FIGHTING_DECK_MACHINE
.asm_d8af
push af
farcall Func_80b89
pop af
inc a
- cp $0a
+ cp MAP_EVENT_FIRE_DECK_MACHINE + 1
jr c, .asm_d8af
ret
@@ -4044,7 +4046,7 @@ Script_d93f: ; d93f (3:593f)
.ows_d95a
play_sfx SFX_5A
max_out_event_value EVENT_FIGHTING_DECK_MACHINE_ACTIVE
- replace_map_blocks $02
+ replace_map_blocks MAP_EVENT_FIGHTING_DECK_MACHINE
print_text Text060a
.ows_d963
ask_question_jump_default_yes Text060b, .ows_d969
@@ -4097,7 +4099,7 @@ Script_d995: ; d995 (3:5995)
.ows_d9b0
play_sfx SFX_5A
max_out_event_value EVENT_ROCK_DECK_MACHINE_ACTIVE
- replace_map_blocks $03
+ replace_map_blocks MAP_EVENT_ROCK_DECK_MACHINE
print_text Text060a
.ows_d9b9
ask_question_jump_default_yes Text060b, .ows_d9bf
@@ -4125,7 +4127,7 @@ Script_d9c2: ; d9c2 (3:59c2)
.ows_d9dd
play_sfx SFX_5A
max_out_event_value EVENT_WATER_DECK_MACHINE_ACTIVE
- replace_map_blocks $04
+ replace_map_blocks MAP_EVENT_WATER_DECK_MACHINE
print_text Text060a
.ows_d9e6
ask_question_jump_default_yes Text060b, .ows_d9ec
@@ -4153,7 +4155,7 @@ Script_d9ef: ; d9ef (3:59ef)
.ows_da0a
play_sfx SFX_5A
max_out_event_value EVENT_LIGHTNING_DECK_MACHINE_ACTIVE
- replace_map_blocks $05
+ replace_map_blocks MAP_EVENT_LIGHTNING_DECK_MACHINE
print_text Text060a
.ows_da13
ask_question_jump_default_yes Text060b, .ows_da19
@@ -4181,7 +4183,7 @@ Script_da1c: ; da1c (3:5a1c)
.ows_da37
play_sfx SFX_5A
max_out_event_value EVENT_GRASS_DECK_MACHINE_ACTIVE
- replace_map_blocks $06
+ replace_map_blocks MAP_EVENT_GRASS_DECK_MACHINE
print_text Text060a
.ows_da40
ask_question_jump_default_yes Text060b, .ows_da46
@@ -4209,7 +4211,7 @@ Script_da49: ; da49 (3:5a49)
.ows_da64
play_sfx SFX_5A
max_out_event_value EVENT_PSYCHIC_DECK_MACHINE_ACTIVE
- replace_map_blocks $07
+ replace_map_blocks MAP_EVENT_PSYCHIC_DECK_MACHINE
print_text Text060a
.ows_da6d
ask_question_jump_default_yes Text060b, .ows_da73
@@ -4237,7 +4239,7 @@ Script_da76: ; da76 (3:5a76)
.ows_da91
play_sfx SFX_5A
max_out_event_value EVENT_SCIENCE_DECK_MACHINE_ACTIVE
- replace_map_blocks $08
+ replace_map_blocks MAP_EVENT_SCIENCE_DECK_MACHINE
print_text Text060a
.ows_da9a
ask_question_jump_default_yes Text060b, .ows_daa0
@@ -4265,7 +4267,7 @@ Script_daa3: ; daa3 (3:5aa3)
.ows_dabe
play_sfx SFX_5A
max_out_event_value EVENT_FIRE_DECK_MACHINE_ACTIVE
- replace_map_blocks $09
+ replace_map_blocks MAP_EVENT_FIRE_DECK_MACHINE
print_text Text060a
.ows_dac7
ask_question_jump_default_yes Text060b, .ows_dacd
@@ -8385,7 +8387,7 @@ PokemonDomeEntranceLoadMap: ; f607 (3:7607)
ret
PokemonDomeEntranceCloseTextBox: ; f62a (3:762a)
- ld a, $00
+ ld a, MAP_EVENT_POKEMON_DOME_DOOR
farcall Func_80b89
ret
@@ -8477,7 +8479,7 @@ Script_f6af: ; f6af (3:76af)
.ows_f6b9
print_npc_text Text0559
play_sfx SFX_0F
- replace_map_blocks $00
+ replace_map_blocks MAP_EVENT_POKEMON_DOME_DOOR
do_frames 30
move_player NORTH, 1
quit_script_fully
@@ -8538,7 +8540,7 @@ PokemonDomeLoadMap: ; f706 (3:7706)
jp SetNextScript
PokemonDomeCloseTextBox: ; f718 (3:7718)
- ld a, $01
+ ld a, MAP_EVENT_HALL_OF_HONOR_DOOR
farcall Func_80b89
ret
@@ -9038,7 +9040,7 @@ Script_BeatRod: ; faae (3:7aae)
move_active_npc NPCMovement_fb96
set_active_npc_direction SOUTH
play_sfx SFX_0F
- replace_map_blocks $01
+ replace_map_blocks MAP_EVENT_HALL_OF_HONOR_DOOR
set_event EVENT_POKEMON_DOME_STATE, POKEMON_DOME_DEFEATED
max_out_event_value EVENT_HALL_OF_HONOR_DOORS_OPEN
print_text_quit_fully Text05a4
@@ -9048,7 +9050,7 @@ Script_BeatRod: ; faae (3:7aae)
override_song MUSIC_STOP
set_event EVENT_RONALD_POKEMON_DOME_STATE, RONALD_CHALLENGED
play_sfx SFX_0F
- replace_map_blocks $01
+ replace_map_blocks MAP_EVENT_HALL_OF_HONOR_DOOR
move_active_npc NPCMovement_fbd2
set_default_song MUSIC_RONALD
play_default_song
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index 90f04c3..7a6c0b5 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -1194,7 +1194,7 @@ Func_11430: ; 11430 (4:5430)
dw wNPCDuelist, 1, $ff00 ; sNPCDuelist
dw wChallengeHallNPC, 1, $ff00 ; sChallengeHallNPC
dw wd698, 4, $ff00 ; sb818
- dw wd323, 11, $ff00 ; sb81c
+ dw wOWMapEvents, 11, $ff00 ; sOWMapEvents
dw Data_1156c, 1, $ff00 ; sb827
dw wd0b8, 1, $ff00 ; sb828
dw wd0b9, 1, $ff00 ; sb829
@@ -1379,8 +1379,543 @@ SetNPCMatchStartTheme: ; 118d3 (4:58d3)
INCLUDE "data/npcs.asm"
-Func_11f4e: ; 11f4e (4:5f4e)
- INCROM $11f4e, $1217b
+_GetNPCDuelConfigurations: ; 11f4e (4:5f4e)
+ push hl
+ push bc
+ push de
+ ld a, [wNPCDuelDeckID]
+ ld e, a
+ ld bc, 9 ; size of struct - 1
+ ld hl, DeckIDDuelConfigurations
+.loop_deck_ids
+ ld a, [hli]
+ cp -1 ; end of list?
+ jr z, .done
+ cp e
+ jr nz, .next_deck_id
+ ld a, [hli]
+ ld [wOpponentPortrait], a
+ ld a, [hli]
+ ld [wOpponentName], a
+ ld a, [hli]
+ ld [wOpponentName + 1], a
+ ld a, [hl]
+ ld [wNPCDuelPrizes], a
+ scf
+ jr .done
+.next_deck_id
+ add hl, bc
+ jr .loop_deck_ids
+.done
+ pop de
+ pop bc
+ pop hl
+ ret
+; 0x11f7d
+
+; this is most likely unreferenced
+; since it expects the duel theme song
+; to be stored in the duel configuration
+; associated with the NPC deck ID,
+; but this isn't found in the actual data
+Func_11f7d: ; 11f7d (4:5f7d)
+ push bc
+ push de
+ ld a, [wNPCDuelDeckID]
+ ld e, a
+ ld bc, 9 ; size of struct - 1
+ ld hl, DeckIDDuelConfigurations
+.loop_deck_ids
+ ld a, [hli]
+ cp -1 ; end of list?
+ jr z, .done
+ cp e
+ jr nz, .next_deck_id
+ push hl
+ ld a, [hli]
+ ld [wOpponentPortrait], a
+ ld a, [hli]
+ ld [wOpponentName], a
+ ld a, [hli]
+ ld [wOpponentName + 1], a
+ inc hl
+ ld a, [hli]
+ ld [wDuelTheme], a
+ pop hl
+ dec hl
+ scf
+ jr .done
+.next_deck_id
+ add hl, bc
+ jr .loop_deck_ids
+.done
+ pop de
+ pop bc
+ ret
+; 0x11fae
+
+DeckIDDuelConfigurations: ; 11fae (4:5fae)
+ db SAMS_PRACTICE_DECK_ID ; deck ID
+ db SAM_PIC ; NPC portrait
+ tx SamNPCName ; name text ID
+ db 2 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db SAMS_NORMAL_DECK_ID ; deck ID
+ db SAM_PIC ; NPC portrait
+ tx SamNPCName ; name text ID
+ db 2 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LIGHTNING_AND_FIRE_DECK_ID ; deck ID
+ db AARON_PIC ; NPC portrait
+ tx AaronNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $eb ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db WATER_AND_FIGHTING_DECK_ID ; deck ID
+ db AARON_PIC ; NPC portrait
+ tx AaronNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $eb ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db GRASS_AND_PSYCHIC_DECK_ID ; deck ID
+ db AARON_PIC ; NPC portrait
+ tx AaronNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $eb ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_MOLTRES_DECK_ID ; deck ID
+ db COURTNEY_PIC ; NPC portrait
+ tx CourtneyNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_ZAPDOS_DECK_ID ; deck ID
+ db STEVE_PIC ; NPC portrait
+ tx SteveNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_ARTICUNO_DECK_ID ; deck ID
+ db JACK_PIC ; NPC portrait
+ tx JackNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_DRAGONITE_DECK_ID ; deck ID
+ db ROD_PIC ; NPC portrait
+ tx RodNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $04 ; unknown
+ db $ed ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db FIRST_STRIKE_DECK_ID ; deck ID
+ db MITCH_PIC ; NPC portrait
+ tx MitchNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db ROCK_CRUSHER_DECK_ID ; deck ID
+ db GENE_PIC ; NPC portrait
+ tx GeneNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db GO_GO_RAIN_DANCE_DECK_ID ; deck ID
+ db AMY_PIC ; NPC portrait
+ tx AmyNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db ZAPPING_SELFDESTRUCT_DECK_ID ; deck ID
+ db ISAAC_PIC ; NPC portrait
+ tx IsaacNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db FLOWER_POWER_DECK_ID ; deck ID
+ db NIKKI_PIC ; NPC portrait
+ tx NikkiNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db STRANGE_PSYSHOCK_DECK_ID ; deck ID
+ db MURRAY_PIC ; NPC portrait
+ tx MurrayNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db WONDERS_OF_SCIENCE_DECK_ID ; deck ID
+ db RICK_PIC ; NPC portrait
+ tx RickNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db FIRE_CHARGE_DECK_ID ; deck ID
+ db KEN_PIC ; NPC portrait
+ tx KenNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $03 ; unknown
+ db $ea ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db IM_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db POWERFUL_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db INVINCIBLE_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db LEGENDARY_RONALD_DECK_ID ; deck ID
+ db RONALD_PIC ; NPC portrait
+ tx RonaldNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db MUSCLES_FOR_BRAINS_DECK_ID ; deck ID
+ db CHRIS_PIC ; NPC portrait
+ tx ChrisNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db HEATED_BATTLE_DECK_ID ; deck ID
+ db MICHAEL_PIC ; NPC portrait
+ tx MichaelNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db LOVE_TO_BATTLE_DECK_ID ; deck ID
+ db JESSICA_PIC ; NPC portrait
+ tx JessicaNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db EXCAVATION_DECK_ID ; deck ID
+ db RYAN_PIC ; NPC portrait
+ tx RyanNPCName ; name text ID
+ db 3 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db BLISTERING_POKEMON_DECK_ID ; deck ID
+ db ANDREW_PIC ; NPC portrait
+ tx AndrewNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db HARD_POKEMON_DECK_ID ; deck ID
+ db MATTHEW_PIC ; NPC portrait
+ tx MatthewNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f9 ; unknown
+ db $07 ; unknown
+
+ db WATERFRONT_POKEMON_DECK_ID ; deck ID
+ db SARA_PIC ; NPC portrait
+ tx SaraNPCName ; name text ID
+ db 2 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db LONELY_FRIENDS_DECK_ID ; deck ID
+ db AMANDA_PIC ; NPC portrait
+ tx AmandaNPCName ; name text ID
+ db 3 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db SOUND_OF_THE_WAVES_DECK_ID ; deck ID
+ db JOSHUA_PIC ; NPC portrait
+ tx JoshuaNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f8 ; unknown
+ db $07 ; unknown
+
+ db PIKACHU_DECK_ID ; deck ID
+ db JENNIFER_PIC ; NPC portrait
+ tx JenniferNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db BOOM_BOOM_SELFDESTRUCT_DECK_ID ; deck ID
+ db NICHOLAS_PIC ; NPC portrait
+ tx NicholasNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db POWER_GENERATOR_DECK_ID ; deck ID
+ db BRANDON_PIC ; NPC portrait
+ tx BrandonNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f7 ; unknown
+ db $07 ; unknown
+
+ db ETCETERA_DECK_ID ; deck ID
+ db BRITTANY_PIC ; NPC portrait
+ tx BrittanyNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db FLOWER_GARDEN_DECK_ID ; deck ID
+ db KRISTIN_PIC ; NPC portrait
+ tx KristinNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db KALEIDOSCOPE_DECK_ID ; deck ID
+ db HEATHER_PIC ; NPC portrait
+ tx HeatherNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db GHOST_DECK_ID ; deck ID
+ db ROBERT_PIC ; NPC portrait
+ tx RobertNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db NAP_TIME_DECK_ID ; deck ID
+ db DANIEL_PIC ; NPC portrait
+ tx DanielNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db STRANGE_POWER_DECK_ID ; deck ID
+ db STEPHANIE_PIC ; NPC portrait
+ tx StephanieNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fa ; unknown
+ db $07 ; unknown
+
+ db FLYIN_POKEMON_DECK_ID ; deck ID
+ db JOSEPH_PIC ; NPC portrait
+ tx JosephNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db LOVELY_NIDORAN_DECK_ID ; deck ID
+ db DAVID_PIC ; NPC portrait
+ tx DavidNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db POISON_DECK_ID ; deck ID
+ db ERIK_PIC ; NPC portrait
+ tx ErikNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $fb ; unknown
+ db $07 ; unknown
+
+ db ANGER_DECK_ID ; deck ID
+ db JOHN_PIC ; NPC portrait
+ tx JohnNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db FLAMETHROWER_DECK_ID ; deck ID
+ db ADAM_PIC ; NPC portrait
+ tx AdamNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db RESHUFFLE_DECK_ID ; deck ID
+ db JONATHAN_PIC ; NPC portrait
+ tx JonathanNPCName ; name text ID
+ db 4 ; number of prize cards
+ db $02 ; unknown
+ db $e9 ; unknown
+ db $07 ; unknown
+ db $f6 ; unknown
+ db $07 ; unknown
+
+ db IMAKUNI_DECK_ID ; deck ID
+ db IMAKUNI_PIC ; NPC portrait
+ tx ImakuniNPCName ; name text ID
+ db 6 ; number of prize cards
+ db $10 ; unknown
+ db $ec ; unknown
+ db $07 ; unknown
+ db $00 ; unknown
+ db $00 ; unknown
+
+ db -1 ; end
OverworldScriptTable: ; 1217b (4:617b)
dw ScriptCommand_EndScript
@@ -2979,7 +3514,7 @@ _LoadScene: ; 12c7f (4:6c7f)
ld [wd4cb], a ; palette offset
ld [wd291], a ; palette offset
pop af ; palette
- farcall Func_803c9 ; load palette
+ farcall SetBGPAndLoadedPal ; load palette
ld a, [wConsole]
cp CONSOLE_CGB
ld a, [hli]
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index 018787e..85de56b 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -1710,7 +1710,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
call Func_1d705
call Func_1c858
xor a
- ld [wd323 + 1], a
+ ld [wOWMapEvents + 1], a
ld a, MUSIC_CREDITS
call PlaySong
farcall Func_10031
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index 8460836..951a699 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -1,8 +1,12 @@
-Func_80000: ; 80000 (20:4000)
+; loads the graphics and permissions for the current map
+; according to its Map Header configurations
+; if it's the Overworld Map, also prints the map name
+; and sets up the volcano animation
+LoadMapGfxAndPermissions: ; 80000 (20:4000)
call ClearSRAMBGMaps
xor a
ld [wTextBoxFrameType], a
- call Func_8003d
+ call LoadMapTilesAndPals
farcall LoadPermissionMap
farcall Func_c9c7
call SafelyCopyBGMapFromSRAMToVRAM
@@ -15,9 +19,11 @@ Func_80000: ; 80000 (20:4000)
ret
; 0x80028
-Func_80028: ; 80028 (20:4028)
+; reloads the map tiles and permissions
+; after a textbox has been closed
+ReloadMapAfterTextClose: ; 80028 (20:4028)
call ClearSRAMBGMaps
- ld bc, $0000
+ lb bc, 0, 0
call LoadTilemap_ToSRAM
farcall Func_c9c7
call SafelyCopyBGMapFromSRAMToVRAM
@@ -25,10 +31,9 @@ Func_80028: ; 80028 (20:4028)
ret
; 0x8003d
-Func_8003d: ; 8003d (20:403d)
+LoadMapTilesAndPals: ; 8003d (20:403d)
farcall LoadMapHeader
farcall SetSGB2AndSGB3MapPalette
-
lb bc, 0, 0
call LoadTilemap_ToSRAM
@@ -43,22 +48,26 @@ Func_8003d: ; 8003d (20:403d)
ld a, [wd291]
ld [wd4cb], a
ld a, [wd28f]
- call Func_803c9
+ call SetBGPAndLoadedPal
ld a, [wd291]
ld [wd4cb], a
ld a, [wd290]
or a
jr z, .asm_80076
- call Func_803c9
+ call SetBGPAndLoadedPal
.asm_80076
ret
; 0x80077
+; loads the BG map corresponding to wCurTilemap to SRAM
+; bc = starting coordinates
LoadTilemap_ToSRAM: ; 80077 (20:4077)
ld a, TRUE
ld [wWriteBGMapToSRAM], a
jr LoadTilemap
+; loads the BG map corresponding to wCurTilemap to VRAM
+; bc = starting coordinates
LoadTilemap_ToVRAM: ; 8007e (20:407e)
xor a ; FALSE
ld [wWriteBGMapToSRAM], a
@@ -394,7 +403,25 @@ LoadGraphicsPointerFromHL: ; 80229 (20:4229)
ret
; 0x80238
- INCROM $80238, $8025b
+; unreferenced?
+Func_80238: ; 80238 (20:4238)
+ push hl
+ ld l, $2
+ ld a, [wCurTileset]
+ call GetMapDataPointer
+ call LoadGraphicsPointerFromHL
+ ld a, [hl]
+ ld [wTotalNumTiles], a
+ ld a, $10
+ ld [wCurSpriteTileSize], a
+ xor a
+ ld [wd4cb], a
+ ld a, $80
+ ld [wd4ca], a
+ call LoadGfxDataFromTempPointerToVRAMBank_Tiles0ToTiles2
+ pop hl
+ ret
+; 0x8025b
; loads graphics data from third map data pointers
; input:
@@ -422,8 +449,9 @@ LoadGfxDataFromTempPointerToVRAMBank: ; 80274 (20:4274)
call GetTileOffsetPointerAndSwitchVRAM
jr LoadGfxDataFromTempPointer
-Func_80279: ; 80279 (20:4279)
+LoadGfxDataFromTempPointerToVRAMBank_Tiles0ToTiles2: ; 80279 (20:4279)
call GetTileOffsetPointerAndSwitchVRAM_Tiles0ToTiles2
+; fallthrough
; loads graphics data pointed by wTempPointer in wTempPointerBank
; to wVRAMPointer
@@ -670,8 +698,10 @@ Func_803b9: ; 803b9 (20:43b9)
ret
; 0x803c9
+; sets BGP in wLoadedPalData (if any)
+; then loads the rest of the palette data
; a = palette index to load
-Func_803c9: ; 803c9 (20:43c9)
+SetBGPAndLoadedPal: ; 803c9 (20:43c9)
push hl
push bc
push de
@@ -837,7 +867,12 @@ LoadPaletteDataToBuffer: ; 80456 (20:4456)
ret
; 0x8047b
- INCROM $8047b, $80480
+; unreferenced?
+Func_8047b: ; 8047b (20:447b)
+ xor a
+ ld [wNumLoadedFramesetSubgroups], a
+ ret
+; 0x80480
; for the current map, process the animation
; data of its corresponding OW tiles
@@ -877,7 +912,7 @@ ProcessOWFrameset: ; 804a2 (20:44a2)
ld a, h
ld [wCurMapOWFrameset + 1], a
xor a
- ld [wumLoadedFramesetSubgroups], a
+ ld [wNumLoadedFramesetSubgroups], a
call ClearOWFramesetSubgroups
ld c, 0
.loop_subgroups
@@ -886,9 +921,9 @@ ProcessOWFrameset: ; 804a2 (20:44a2)
ld a, [wCurOWFrameDataOffset]
cp -1
jr z, .next_subgroup
- ld a, [wumLoadedFramesetSubgroups]
+ ld a, [wNumLoadedFramesetSubgroups]
inc a
- ld [wumLoadedFramesetSubgroups], a
+ ld [wNumLoadedFramesetSubgroups], a
call LoadOWFrameTiles
call StoreOWFramesetSubgroup
.next_subgroup
@@ -904,7 +939,7 @@ ProcessOWFrameset: ; 804a2 (20:44a2)
; for each of the loaded frameset subgroups
; load their tiles and advance their durations
DoLoadedFramesetSubgroupsFrame: ; 804d8 (20:44d8)
- ld a, [wumLoadedFramesetSubgroups]
+ ld a, [wNumLoadedFramesetSubgroups]
or a
ret z
ld c, 0
@@ -1125,12 +1160,12 @@ StoreOWFramesetSubgroup: ; 805c1 (20:45c1)
INCLUDE "data/map_ow_framesets.asm"
-; clears wd323
+; clears wOWMapEvents
Func_80b7a: ; 80b7a (20:4b7a)
push hl
push bc
ld c, $b
- ld hl, wd323
+ ld hl, wOWMapEvents
xor a
.loop
ld [hli], a
@@ -1141,6 +1176,7 @@ Func_80b7a: ; 80b7a (20:4b7a)
ret
; 0x80b89
+; a = MAP_EVENT_* constant
Func_80b89: ; 80b89 (20:4b89)
push hl
push bc
@@ -1148,8 +1184,8 @@ Func_80b89: ; 80b89 (20:4b89)
ld c, a
ld a, TRUE
ld [wWriteBGMapToSRAM], a
- ld b, $00
- ld hl, wd323
+ ld b, $0
+ ld hl, wOWMapEvents
add hl, bc
ld a, [hl]
or a
@@ -1188,7 +1224,7 @@ Func_80baa: ; 80baa (20:4baa)
push af
ld b, $0
- ld hl, wd323
+ ld hl, wOWMapEvents
add hl, bc
ld a, $1
ld [hl], a
@@ -1197,7 +1233,7 @@ Func_80baa: ; 80baa (20:4baa)
add a
ld c, a
ld b, $0
- ld hl, .unknown_80c21
+ ld hl, .tilemap_pointers
add hl, bc
ld a, [hli]
ld h, [hl]
@@ -1206,14 +1242,15 @@ Func_80baa: ; 80baa (20:4baa)
inc hl
ld c, [hl]
inc hl
+
ld a, [wConsole]
cp CONSOLE_CGB
- jr nz, .asm_80be7
+ jr nz, .got_tilemap
inc hl
-
-.asm_80be7
+.got_tilemap
ld a, [hl]
ld [wCurTilemap], a
+
push bc
farcall LoadTilemap ; unnecessary farcall
pop bc
@@ -1245,43 +1282,306 @@ Func_80baa: ; 80baa (20:4baa)
pop hl
ret
-.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_UNKNOWN_3, TILEMAP_UNKNOWN_3_CGB
-.data_2
- db $0e, $00, TILEMAP_UNKNOWN_4, TILEMAP_UNKNOWN_4_CGB
-.data_3
- db $06, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_4
- db $0a, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_5
- db $0e, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_6
- db $12, $02, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_7
- db $0e, $0a, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_8
- db $12, $0a, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_9
- db $0e, $12, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_10
- db $12, $12, TILEMAP_UNKNOWN_2, TILEMAP_UNKNOWN_2_CGB
-.data_11
- db $0a, $00, TILEMAP_UNKNOWN_1, TILEMAP_UNKNOWN_1_CGB
-
- INCROM $80c63, $80e5a
+.tilemap_pointers
+ dw .PokemonDomeDoor ; MAP_EVENT_POKEMON_DOME_DOOR
+ dw .HallOfHonorDoor ; MAP_EVENT_HALL_OF_HONOR_DOOR
+ dw .FightingDeckMachine ; MAP_EVENT_FIGHTING_DECK_MACHINE
+ dw .RockDeckMachine ; MAP_EVENT_ROCK_DECK_MACHINE
+ dw .WaterDeckMachine ; MAP_EVENT_WATER_DECK_MACHINE
+ dw .LightningDeckMachine ; MAP_EVENT_LIGHTNING_DECK_MACHINE
+ dw .GrassDeckMachine ; MAP_EVENT_GRASS_DECK_MACHINE
+ dw .PsychicDeckMachine ; MAP_EVENT_PSYCHIC_DECK_MACHINE
+ dw .ScienceDeckMachine ; MAP_EVENT_SCIENCE_DECK_MACHINE
+ dw .FireDeckMachine ; MAP_EVENT_FIRE_DECK_MACHINE
+ dw .ChallengeMachine ; MAP_EVENT_CHALLENGE_MACHINE
+
+; x coordinate, y coordinate, non-cgb tilemap, cgb tilemap
+.PokemonDomeDoor
+ db $16, $00, TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT, TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT_CGB
+.HallOfHonorDoor
+ db $0e, $00, TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT, TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT_CGB
+.FightingDeckMachine
+ db $06, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.RockDeckMachine
+ db $0a, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.WaterDeckMachine
+ db $0e, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.LightningDeckMachine
+ db $12, $02, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.GrassDeckMachine
+ db $0e, $0a, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.PsychicDeckMachine
+ db $12, $0a, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.ScienceDeckMachine
+ db $0e, $12, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.FireDeckMachine
+ db $12, $12, TILEMAP_DECK_MACHINE_MAP_EVENT, TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+.ChallengeMachine
+ db $0a, $00, TILEMAP_CHALLENGE_MACHINE_MAP_EVENT, TILEMAP_CHALLENGE_MACHINE_MAP_EVENT_CGB
+
+ ret ; unreferenced stray ret?
+
+; unreferenced?
+Func_80c64: ; 80c64 (20:4c64)
+ ld a, [wLineSeparation]
+ push af
+ ld a, $01 ; no line separatior
+ ld [wLineSeparation], a
+ ; load opponent's name
+ ld a, [wOpponentName]
+ ld [wTxRam2], a
+ ld a, [wOpponentName + 1]
+ ld [wTxRam2 + 1], a
+ ld a, [wNPCDuelistCopy]
+ ld [wTxRam3_b], a
+ xor a
+ ld [wTxRam3_b + 1], a
+ ; load number of duel prizes
+ ld a, [wNPCDuelPrizes]
+ ld [wTxRam3], a
+ xor a
+ ld [wTxRam3 + 1], a
+
+ lb de, 2, 13
+ call InitTextPrinting
+ ldtx hl, WinLosePrizesDuelWithText
+ call PrintTextNoDelay
+
+ ld a, [wNPCDuelDeckID]
+ ld [wTxRam3], a
+ xor a
+ ld [wTxRam3 + 1], a
+ lb de, 2, 15
+ call InitTextPrinting
+ ldtx hl, UseDuelistsDeckText
+ call PrintTextNoDelay
+
+ pop af
+ ld [wLineSeparation], a
+ xor a
+ ld hl, .menu_parameters
+ call InitializeMenuParameters
+ ret
+
+.menu_parameters ; 80cbb (20:4cbb)
+ db 1, 13 ; cursor x, cursor y
+ db 1 ; y displacement between items
+ db 2 ; number of items
+ db SYM_CURSOR_R ; cursor tile number
+ db SYM_SPACE ; tile behind cursor
+ dw NULL ; function pointer if non-0
+
+; unreferenced?
+; fills Tiles0 with random bytes
+Func_80cc3: ; 80cc3 (20:4cc3)
+ call DisableLCD
+ ld hl, v0Tiles0
+ ld bc, $800
+.loop
+ call UpdateRNGSources
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+; 0x80cd6
+
+ ret ; stray ret
+
+; unreferenced?
+; seems to be used to look at each OW NPC sprites
+; with functions to rotate NPC and animate them
+Func_80cd7: ; 80cd7 (20:4cd7)
+ call DisableLCD
+ call EmptyScreen
+ call Func_3ca4
+ xor a
+ ld [wd4ca], a
+ ld [wd4cb], a
+ ld a, PALETTE_0
+ farcall SetBGPAndLoadedPal
+ xor a
+ ld [wd4ca], a
+ ld [wd4cb], a
+ ld a, PALETTE_29
+ farcall LoadPaletteData
+ ld a, SOUTH
+ ld [wLoadNPCDirection], a
+ ld a, $01
+ ld [wLoadedNPCTempIndex], a
+ call .DrawNPCSprite
+ call .PrintNPCInfo
+ call EnableLCD
+.loop
+ call DoFrameIfLCDEnabled
+ call .HandleInput
+ call Func_3cb4
+ ldh a, [hKeysPressed]
+ and SELECT ; if select is pressed, exit
+ jr z, .loop
+ ret
+
+ ret ; stray ret
+
+; A button makes NPC rotate
+; D-pad scrolls through the NPCs
+; from $01 to $2c
+; these are not aligned with the regular NPC indices
+.HandleInput
+ ldh a, [hKeysPressed]
+ and A_BUTTON
+ jr z, .no_a_button
+ ld a, [wLoadNPCDirection]
+ inc a ; rotate NPC
+ and %11
+ ld [wLoadNPCDirection], a
+ call Func_3ca4
+ call .DrawNPCSprite
+.no_a_button
+ ldh a, [hKeysPressed]
+ and D_PAD
+ ret z
+ farcall GetDirectionFromDPad
+ ld hl, .func_table
+ jp JumpToFunctionInTable
+
+.func_table
+ dw .up ; D_UP
+ dw .right ; D_RIGHT
+ dw .down ; D_DOWN
+ dw .left ; D_LEFT
+.up
+ ld a, 10
+ jr .decr_npc_id
+.down
+ ld a, 10
+ jr .incr_npc_id
+.right
+ ld a, 1
+ jr .incr_npc_id
+.left
+ ld a, 1
+ jr .decr_npc_id
+
+.incr_npc_id
+ ld c, a
+ ld a, [wLoadedNPCTempIndex]
+ cp $2c
+ jr z, .load_first_npc
+ add c
+ jr c, .load_last_npc
+ cp $2c
+ jr nc, .load_last_npc
+ jr .got_npc
+
+.decr_npc_id
+ ld c, a
+ ld a, [wLoadedNPCTempIndex]
+ cp $01
+ jr z, .load_last_npc
+ sub c
+ jr c, .load_first_npc
+ cp $01
+ jr c, .load_first_npc
+ jr .got_npc
+.load_first_npc
+ ld a, $01
+ jr .got_npc
+.load_last_npc
+ ld a, $2c
+
+.got_npc
+ ld [wLoadedNPCTempIndex], a
+ call Func_3ca4
+ call .DrawNPCSprite
+ jr .PrintNPCInfo
+
+.PrintNPCInfo
+ lb de, 0, 4
+ call InitTextPrinting
+ ldtx hl, SPRText
+ call ProcessTextFromID
+ ld bc, FlushAllPalettes
+ ld a, [wLoadedNPCTempIndex]
+ farcall WriteTwoByteNumberInTxSymbolFormat
+ ret
+
+.DrawNPCSprite
+ ld a, [wLoadedNPCTempIndex]
+ ld c, a
+ add a
+ add c ; *3
+ ld c, a
+ ld b, $0
+ ld hl, .NPCSpriteAnimData - 3
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr z, .skip_draw_sprite
+ farcall CreateSpriteAndAnimBufferEntry
+ ld a, [wConsole]
+ cp CONSOLE_CGB
+ jr nz, .not_cgb
+ inc hl
+.not_cgb
+ ld a, [wLoadNPCDirection]
+ add [hl]
+ farcall StartNewSpriteAnimation
+ ld c, SPRITE_ANIM_COORD_X
+ call GetSpriteAnimBufferProperty
+ ld a, $48
+ ld [hli], a
+ ld a, $40
+ ld [hl], a ; SPRITE_ANIM_COORD_Y
+.skip_draw_sprite
+ ret
+
+.NPCSpriteAnimData
+ db SPRITE_OW_PLAYER, $00, $1e ; $01
+ db $ff, $00, $00 ; $02
+ db SPRITE_OW_RONALD, $04, $0e ; $03
+ db $ff, $00, $00 ; $04
+ db SPRITE_OW_DRMASON, $00, $26 ; $05
+ db SPRITE_OW_ISHIHARA, $04, $22 ; $06
+ db SPRITE_OW_IMAKUNI, $00, $0e ; $07
+ db SPRITE_OW_NIKKI, $00, $1a ; $08
+ db SPRITE_OW_RICK, $00, $0e ; $09
+ db SPRITE_OW_KEN, $04, $1e ; $0a
+ db SPRITE_OW_AMY, $04, $0e ; $0b
+ db SPRITE_OW_ISAAC, $00, $16 ; $0c
+ db SPRITE_OW_MITCH, $00, $0e ; $0d
+ db SPRITE_OW_GENE, $04, $22 ; $0e
+ db SPRITE_OW_MURRAY, $00, $12 ; $0f
+ db SPRITE_OW_COURTNEY, $00, $12 ; $10
+ db $ff, $00, $00 ; $11
+ db SPRITE_OW_STEVE, $00, $2a ; $12
+ db $ff, $00, $00 ; $13
+ db SPRITE_OW_JACK, $00, $26 ; $14
+ db $ff, $00, $00 ; $15
+ db SPRITE_OW_ROD, $00, $0e ; $16
+ db $ff, $00, $00 ; $17
+ db SPRITE_OW_BOY, $04, $16 ; $18
+ db SPRITE_OW_LAD, $04, $1a ; $19
+ db SPRITE_OW_SPECS, $00, $22 ; $1a
+ db SPRITE_OW_BUTCH, $00, $16 ; $1b
+ db SPRITE_OW_MANIA, $00, $26 ; $1c
+ db SPRITE_OW_JOSHUA, $00, $26 ; $1d
+ db SPRITE_OW_HOOD, $04, $1e ; $1e
+ db SPRITE_OW_TECH, $00, $0e ; $1f
+ db SPRITE_OW_CHAP, $00, $1a ; $20
+ db SPRITE_OW_MAN, $00, $16 ; $21
+ db SPRITE_OW_PAPPY, $00, $22 ; $22
+ db SPRITE_OW_GIRL, $04, $0e ; $23
+ db SPRITE_OW_LASS1, $04, $22 ; $24
+ db SPRITE_OW_LASS2, $00, $1e ; $25
+ db SPRITE_OW_LASS3, $04, $1a ; $26
+ db SPRITE_OW_SWIMMER, $00, $16 ; $27
+ db SPRITE_OW_CLERK, $0a, $30 ; $28
+ db SPRITE_OW_GAL, $00, $16 ; $29
+ db SPRITE_OW_WOMAN, $04, $1e ; $2a
+ db SPRITE_OW_GRANNY, $00, $16 ; $2b
+ db SPRITE_OW_AMY, $08, $2e ; $2c
SpriteNullAnimationPointer: ; 80e5a (20:4e5a)
dw SpriteNullAnimationFrame
@@ -1305,112 +1605,112 @@ tilemap: MACRO
ENDM
Tilemaps: ; 80e67 (20:4e67)
- tilemap OverworldMapTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP
- tilemap OverworldMapCGBTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP_CGB
- tilemap MasonLaboratoryTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY
- tilemap MasonLaboratoryCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY_CGB
- tilemap Unknown1Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_1
- tilemap Unknown1CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_1_CGB
- tilemap DeckMachineRoomTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM
- tilemap DeckMachineRoomCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM_CGB
- tilemap Unknown2Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_2
- tilemap Unknown2CGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNKNOWN_2_CGB
- tilemap IshiharaTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA
- tilemap IshiharaCGBTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA_CGB
- tilemap FightingClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE
- tilemap FightingClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB
- tilemap RockClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE
- tilemap RockClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE_CGB
- tilemap WaterClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE
- tilemap WaterClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE_CGB
- tilemap LightningClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE
- tilemap LightningClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB
- tilemap GrassClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE
- tilemap GrassClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE_CGB
- tilemap PsychicClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE
- tilemap PsychicClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB
- tilemap ScienceClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE
- tilemap ScienceClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB
- tilemap FireClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE
- tilemap FireClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE_CGB
- tilemap ChallengeHallEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE
- tilemap ChallengeHallEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB
- tilemap ClubLobbyTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY
- tilemap ClubLobbyCGBTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY_CGB
- tilemap FightingClubTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB
- tilemap FightingClubCGBTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB_CGB
- tilemap RockClubTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB
- tilemap RockClubCGBTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB_CGB
- tilemap WaterClubTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB
- tilemap WaterClubCGBTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB_CGB
- tilemap LightningClubTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB
- tilemap LightningClubCGBTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB_CGB
- tilemap GrassClubTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB
- tilemap GrassClubCGBTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB_CGB
- tilemap PsychicClubTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB
- tilemap PsychicClubCGBTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB_CGB
- tilemap ScienceClubTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB
- tilemap ScienceClubCGBTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB_CGB
- tilemap FireClubTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB
- tilemap FireClubCGBTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB_CGB
- tilemap ChallengeHallTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL
- tilemap ChallengeHallCGBTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL_CGB
- tilemap PokemonDomeEntranceTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE
- tilemap PokemonDomeEntranceCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE_CGB
- tilemap Unknown3Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNKNOWN_3
- tilemap Unknown3CGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNKNOWN_3_CGB
- tilemap PokemonDomeTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME
- tilemap PokemonDomeCGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME_CGB
- tilemap Unknown4Tilemap, TILESET_POKEMON_DOME ; TILEMAP_UNKNOWN_4
- tilemap Unknown4CGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_UNKNOWN_4_CGB
- tilemap HallOfHonorTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR
- tilemap HallOfHonorCGBTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR_CGB
- tilemap CardPopCGBTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP_CGB
- tilemap CardPopTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP
- tilemap GrassMedalTilemap, TILESET_MEDAL ; TILEMAP_GRASS_MEDAL
- tilemap ScienceMedalTilemap, TILESET_MEDAL ; TILEMAP_SCIENCE_MEDAL
- tilemap FireMedalTilemap, TILESET_MEDAL ; TILEMAP_FIRE_MEDAL
- tilemap WaterMedalTilemap, TILESET_MEDAL ; TILEMAP_WATER_MEDAL
- tilemap LightningMedalTilemap, TILESET_MEDAL ; TILEMAP_LIGHTNING_MEDAL
- tilemap FightingMedalTilemap, TILESET_MEDAL ; TILEMAP_FIGHTING_MEDAL
- tilemap RockMedalTilemap, TILESET_MEDAL ; TILEMAP_ROCK_MEDAL
- tilemap PsychicMedalTilemap, TILESET_MEDAL ; TILEMAP_PSYCHIC_MEDAL
- tilemap GameBoyLinkCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CGB
- tilemap GameBoyLinkTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK
- tilemap GameBoyLinkConnectingCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING_CGB
- tilemap GameBoyLinkConnectingTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING
- tilemap GameBoyPrinterCGBTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER_CGB
- tilemap GameBoyPrinterTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER
- tilemap ColosseumTilemap, TILESET_COLOSSEUM_1 ; TILEMAP_COLOSSEUM
- tilemap ColosseumCGBTilemap, TILESET_COLOSSEUM_2 ; TILEMAP_COLOSSEUM_CGB
- tilemap EvolutionTilemap, TILESET_EVOLUTION_1 ; TILEMAP_EVOLUTION
- tilemap EvolutionCGBTilemap, TILESET_EVOLUTION_2 ; TILEMAP_EVOLUTION_CGB
- tilemap MysteryTilemap, TILESET_MYSTERY_1 ; TILEMAP_MYSTERY
- tilemap MysteryCGBTilemap, TILESET_MYSTERY_2 ; TILEMAP_MYSTERY_CGB
- tilemap LaboratoryTilemap, TILESET_LABORATORY_1 ; TILEMAP_LABORATORY
- tilemap LaboratoryCGBTilemap, TILESET_LABORATORY_2 ; TILEMAP_LABORATORY_CGB
- tilemap CharizardIntroTilemap, TILESET_CHARIZARD_INTRO_1 ; TILEMAP_CHARIZARD_INTRO
- tilemap CharizardIntroCGBTilemap, TILESET_CHARIZARD_INTRO_2 ; TILEMAP_CHARIZARD_INTRO_CGB
- tilemap ScytherIntroTilemap, TILESET_SCYTHER_INTRO_1 ; TILEMAP_SCYTHER_INTRO
- tilemap ScytherIntroCGBTilemap, TILESET_SCYTHER_INTRO_2 ; TILEMAP_SCYTHER_INTRO_CGB
- tilemap AerodactylIntroTilemap, TILESET_AERODACTYL_INTRO_1 ; TILEMAP_AERODACTYL_INTRO
- tilemap AerodactylIntroCGBTilemap, TILESET_AERODACTYL_INTRO_2 ; TILEMAP_AERODACTYL_INTRO_CGB
- tilemap JapaneseTitleScreenTilemap, TILESET_JAPANESE_TITLE_SCREEN ; TILEMAP_JAPANESE_TITLE_SCREEN
- tilemap JapaneseTitleScreenCGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_CGB
- tilemap SolidTiles1Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_1
- tilemap SolidTiles2Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_2
- tilemap SolidTiles3Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_3
- tilemap JapaneseTitleScreen2Tilemap, TILESET_JAPANESE_TITLE_SCREEN_2 ; TILEMAP_JAPANESE_TITLE_SCREEN_2
- tilemap JapaneseTitleScreen2CGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_2_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB
- tilemap SolidTiles4Tilemap, TILESET_SOLID_TILES_2 ; TILEMAP_SOLID_TILES_4
- tilemap PlayerTilemap, TILESET_PLAYER ; TILEMAP_PLAYER
- tilemap OpponentTilemap, TILESET_RONALD ; TILEMAP_OPPONENT
- tilemap TitleScreenTilemap, TILESET_TITLE_SCREEN ; TILEMAP_TITLE_SCREEN
- tilemap TitleScreenCGBTilemap, TILESET_TITLE_SCREEN_CGB ; TILEMAP_TITLE_SCREEN_CGB
- tilemap CopyrightTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT
- tilemap CopyrightCGBTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT_CGB
- tilemap NintendoTilemap, TILESET_NINTENDO ; TILEMAP_NINTENDO
- tilemap CompaniesTilemap, TILESET_COMPANIES ; TILEMAP_COMPANIES
+ tilemap OverworldMapTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP
+ tilemap OverworldMapCGBTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP_CGB
+ tilemap MasonLaboratoryTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY
+ tilemap MasonLaboratoryCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY_CGB
+ tilemap ChallengeMachineMapEventTilemap, TILESET_MASON_LABORATORY ; TILEMAP_CHALLENGE_MACHINE_MAP_EVENT
+ tilemap ChallengeMachineMapEventCGBTilemap,TILESET_MASON_LABORATORY ; TILEMAP_CHALLENGE_MACHINE_MAP_EVENT_CGB
+ tilemap DeckMachineRoomTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM
+ tilemap DeckMachineRoomCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM_CGB
+ tilemap DeckMachineMapEventTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_MAP_EVENT
+ tilemap DeckMachineMapEventCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_MAP_EVENT_CGB
+ tilemap IshiharaTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA
+ tilemap IshiharaCGBTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA_CGB
+ tilemap FightingClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE
+ tilemap FightingClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB
+ tilemap RockClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE
+ tilemap RockClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE_CGB
+ tilemap WaterClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE
+ tilemap WaterClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE_CGB
+ tilemap LightningClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE
+ tilemap LightningClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB
+ tilemap GrassClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE
+ tilemap GrassClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE_CGB
+ tilemap PsychicClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE
+ tilemap PsychicClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB
+ tilemap ScienceClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE
+ tilemap ScienceClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB
+ tilemap FireClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE
+ tilemap FireClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE_CGB
+ tilemap ChallengeHallEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE
+ tilemap ChallengeHallEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB
+ tilemap ClubLobbyTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY
+ tilemap ClubLobbyCGBTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY_CGB
+ tilemap FightingClubTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB
+ tilemap FightingClubCGBTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB_CGB
+ tilemap RockClubTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB
+ tilemap RockClubCGBTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB_CGB
+ tilemap WaterClubTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB
+ tilemap WaterClubCGBTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB_CGB
+ tilemap LightningClubTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB
+ tilemap LightningClubCGBTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB_CGB
+ tilemap GrassClubTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB
+ tilemap GrassClubCGBTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB_CGB
+ tilemap PsychicClubTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB
+ tilemap PsychicClubCGBTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB_CGB
+ tilemap ScienceClubTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB
+ tilemap ScienceClubCGBTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB_CGB
+ tilemap FireClubTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB
+ tilemap FireClubCGBTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB_CGB
+ tilemap ChallengeHallTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL
+ tilemap ChallengeHallCGBTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL_CGB
+ tilemap PokemonDomeEntranceTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE
+ tilemap PokemonDomeEntranceCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE_CGB
+ tilemap PokemonDomeDoorMapEventTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT
+ tilemap PokemonDomeDoorMapEventCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_DOOR_MAP_EVENT_CGB
+ tilemap PokemonDomeTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME
+ tilemap PokemonDomeCGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME_CGB
+ tilemap HallOfHonorDoorMapEventTilemap, TILESET_POKEMON_DOME ; TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT
+ tilemap HallOfHonorDoorMapEventCGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_HALL_OF_HONOR_DOOR_MAP_EVENT_CGB
+ tilemap HallOfHonorTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR
+ tilemap HallOfHonorCGBTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR_CGB
+ tilemap CardPopCGBTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP_CGB
+ tilemap CardPopTilemap, TILESET_CARD_POP ; TILEMAP_CARD_POP
+ tilemap GrassMedalTilemap, TILESET_MEDAL ; TILEMAP_GRASS_MEDAL
+ tilemap ScienceMedalTilemap, TILESET_MEDAL ; TILEMAP_SCIENCE_MEDAL
+ tilemap FireMedalTilemap, TILESET_MEDAL ; TILEMAP_FIRE_MEDAL
+ tilemap WaterMedalTilemap, TILESET_MEDAL ; TILEMAP_WATER_MEDAL
+ tilemap LightningMedalTilemap, TILESET_MEDAL ; TILEMAP_LIGHTNING_MEDAL
+ tilemap FightingMedalTilemap, TILESET_MEDAL ; TILEMAP_FIGHTING_MEDAL
+ tilemap RockMedalTilemap, TILESET_MEDAL ; TILEMAP_ROCK_MEDAL
+ tilemap PsychicMedalTilemap, TILESET_MEDAL ; TILEMAP_PSYCHIC_MEDAL
+ tilemap GameBoyLinkCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CGB
+ tilemap GameBoyLinkTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK
+ tilemap GameBoyLinkConnectingCGBTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING_CGB
+ tilemap GameBoyLinkConnectingTilemap, TILESET_GAMEBOY_LINK ; TILEMAP_GAMEBOY_LINK_CONNECTING
+ tilemap GameBoyPrinterCGBTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER_CGB
+ tilemap GameBoyPrinterTilemap, TILESET_GAMEBOY_PRINTER ; TILEMAP_GAMEBOY_PRINTER
+ tilemap ColosseumTilemap, TILESET_COLOSSEUM_1 ; TILEMAP_COLOSSEUM
+ tilemap ColosseumCGBTilemap, TILESET_COLOSSEUM_2 ; TILEMAP_COLOSSEUM_CGB
+ tilemap EvolutionTilemap, TILESET_EVOLUTION_1 ; TILEMAP_EVOLUTION
+ tilemap EvolutionCGBTilemap, TILESET_EVOLUTION_2 ; TILEMAP_EVOLUTION_CGB
+ tilemap MysteryTilemap, TILESET_MYSTERY_1 ; TILEMAP_MYSTERY
+ tilemap MysteryCGBTilemap, TILESET_MYSTERY_2 ; TILEMAP_MYSTERY_CGB
+ tilemap LaboratoryTilemap, TILESET_LABORATORY_1 ; TILEMAP_LABORATORY
+ tilemap LaboratoryCGBTilemap, TILESET_LABORATORY_2 ; TILEMAP_LABORATORY_CGB
+ tilemap CharizardIntroTilemap, TILESET_CHARIZARD_INTRO_1 ; TILEMAP_CHARIZARD_INTRO
+ tilemap CharizardIntroCGBTilemap, TILESET_CHARIZARD_INTRO_2 ; TILEMAP_CHARIZARD_INTRO_CGB
+ tilemap ScytherIntroTilemap, TILESET_SCYTHER_INTRO_1 ; TILEMAP_SCYTHER_INTRO
+ tilemap ScytherIntroCGBTilemap, TILESET_SCYTHER_INTRO_2 ; TILEMAP_SCYTHER_INTRO_CGB
+ tilemap AerodactylIntroTilemap, TILESET_AERODACTYL_INTRO_1 ; TILEMAP_AERODACTYL_INTRO
+ tilemap AerodactylIntroCGBTilemap, TILESET_AERODACTYL_INTRO_2 ; TILEMAP_AERODACTYL_INTRO_CGB
+ tilemap JapaneseTitleScreenTilemap, TILESET_JAPANESE_TITLE_SCREEN ; TILEMAP_JAPANESE_TITLE_SCREEN
+ tilemap JapaneseTitleScreenCGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_CGB
+ tilemap SolidTiles1Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_1
+ tilemap SolidTiles2Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_2
+ tilemap SolidTiles3Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_3
+ tilemap JapaneseTitleScreen2Tilemap, TILESET_JAPANESE_TITLE_SCREEN_2 ; TILEMAP_JAPANESE_TITLE_SCREEN_2
+ tilemap JapaneseTitleScreen2CGBTilemap, TILESET_JAPANESE_TITLE_SCREEN_2_CGB ; TILEMAP_JAPANESE_TITLE_SCREEN_2_CGB
+ tilemap SolidTiles4Tilemap, TILESET_SOLID_TILES_2 ; TILEMAP_SOLID_TILES_4
+ tilemap PlayerTilemap, TILESET_PLAYER ; TILEMAP_PLAYER
+ tilemap OpponentTilemap, TILESET_RONALD ; TILEMAP_OPPONENT
+ tilemap TitleScreenTilemap, TILESET_TITLE_SCREEN ; TILEMAP_TITLE_SCREEN
+ tilemap TitleScreenCGBTilemap, TILESET_TITLE_SCREEN_CGB ; TILEMAP_TITLE_SCREEN_CGB
+ tilemap CopyrightTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT
+ tilemap CopyrightCGBTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT_CGB
+ tilemap NintendoTilemap, TILESET_NINTENDO ; TILEMAP_NINTENDO
+ tilemap CompaniesTilemap, TILESET_COMPANIES ; TILEMAP_COMPANIES
; \1 = pointer
; \2 = number of tiles
@@ -2059,23 +2359,23 @@ MasonLaboratoryCGBTilemap:: ; 81d2e (20:5d2e)
MasonLaboratoryCGBPermissions:
INCBIN "data/maps/permissions/mason_laboratory_cgb.bin"
-Unknown1Tilemap:: ; 81ed1 (20:5ed1)
+ChallengeMachineMapEventTilemap:: ; 81ed1 (20:5ed1)
db $04 ; width
db $06 ; height
- dw Unknown1Permissions
+ dw ChallengeMachineMapEventPermissions
db FALSE ; cgb mode
- INCBIN "data/maps/tiles/unknown1.bin"
-Unknown1Permissions:
- INCBIN "data/maps/permissions/unknown1.bin"
+ INCBIN "data/maps/tiles/challenge_machine_map_event.bin"
+ChallengeMachineMapEventPermissions:
+ INCBIN "data/maps/permissions/challenge_machine_map_event.bin"
-Unknown1CGBTilemap:: ; 81ef5 (20:5ef5)
+ChallengeMachineMapEventCGBTilemap:: ; 81ef5 (20:5ef5)
db $04 ; width
db $06 ; height
- dw Unknown1CGBPermissions
+ dw ChallengeMachineMapEventCGBPermissions
db TRUE ; cgb mode
- INCBIN "data/maps/tiles/unknown1_cgb.bin"
-Unknown1CGBPermissions:
- INCBIN "data/maps/permissions/unknown1_cgb.bin"
+ INCBIN "data/maps/tiles/challenge_machine_map_event_cgb.bin"
+ChallengeMachineMapEventCGBPermissions:
+ INCBIN "data/maps/permissions/challenge_machine_map_event_cgb.bin"
DeckMachineRoomTilemap:: ; 81f26 (20:5f26)
db $18 ; width
@@ -2095,23 +2395,23 @@ DeckMachineRoomCGBTilemap:: ; 81feb (20:5feb)
DeckMachineRoomCGBPermissions:
INCBIN "data/maps/permissions/deck_machine_room_cgb.bin"
-Unknown2Tilemap:: ; 82143 (20:6143)
+DeckMachineMapEventTilemap:: ; 82143 (20:6143)
db $04 ; width
db $01 ; height
- dw Unknown2Permissions
+ dw DeckMachineMapEventPermissions
db FALSE ; cgb mode
- INCBIN "data/maps/tiles/unknown_2.bin"
-Unknown2Permissions:
- INCBIN "data/maps/permissions/unknown_2.bin"
+ INCBIN "data/maps/tiles/deck_machine_map_event.bin"
+DeckMachineMapEventPermissions:
+ INCBIN "data/maps/permissions/deck_machine_map_event.bin"
-Unknown2CGBTilemap:: ; 82150 (20:6150)
+DeckMachineMapEventCGBTilemap:: ; 82150 (20:6150)
db $04 ; width
db $01 ; height
- dw Unknown2CGBPermissions
+ dw DeckMachineMapEventCGBPermissions
db TRUE ; cgb mode
- INCBIN "data/maps/tiles/unknown_2_cgb.bin"
-Unknown2CGBPermissions:
- INCBIN "data/maps/permissions/unknown_2_cgb.bin"
+ INCBIN "data/maps/tiles/deck_machine_map_event_cgb.bin"
+DeckMachineMapEventCGBPermissions:
+ INCBIN "data/maps/permissions/deck_machine_map_event_cgb.bin"
IshiharaTilemap:: ; 82160 (20:6160)
db $14 ; width
@@ -2347,41 +2647,41 @@ RockClubCGBTilemap:: ; 839d6 (20:79d6)
RockClubCGBPermissions:
INCBIN "data/maps/permissions/rock_club_cgb.bin"
-Unknown3Tilemap:: ; 83bf1 (20:7bf1)
+PokemonDomeDoorMapEventTilemap:: ; 83bf1 (20:7bf1)
db $04 ; width
db $03 ; height
- dw Unknown3Permissions
+ dw PokemonDomeDoorMapEventPermissions
db FALSE ; cgb mode
- INCBIN "data/maps/tiles/unknown_3.bin"
-Unknown3Permissions:
- INCBIN "data/maps/permissions/unknown_3.bin"
+ INCBIN "data/maps/tiles/pokemon_dome_door_map_event.bin"
+PokemonDomeDoorMapEventPermissions:
+ INCBIN "data/maps/permissions/pokemon_dome_door_map_event.bin"
-Unknown3CGBTilemap:: ; 83c03 (20:7c03)
+PokemonDomeDoorMapEventCGBTilemap:: ; 83c03 (20:7c03)
db $04 ; width
db $03 ; height
- dw Unknown3CGBPermissions
+ dw PokemonDomeDoorMapEventCGBPermissions
db TRUE ; cgb mode
- INCBIN "data/maps/tiles/unknown_3_cgb.bin"
-Unknown3CGBPermissions:
- INCBIN "data/maps/permissions/unknown_3_cgb.bin"
+ INCBIN "data/maps/tiles/pokemon_dome_door_map_event_cgb.bin"
+PokemonDomeDoorMapEventCGBPermissions:
+ INCBIN "data/maps/permissions/pokemon_dome_door_map_event_cgb.bin"
-Unknown4Tilemap:: ; 83c1a (20:7c1a)
+HallOfHonorDoorMapEventTilemap:: ; 83c1a (20:7c1a)
db $04 ; width
db $03 ; height
- dw Unknown4Permissions
+ dw HallOfHonorDoorMapEventPermissions
db FALSE ; cgb mode
- INCBIN "data/maps/tiles/unknown_4.bin"
-Unknown4Permissions:
- INCBIN "data/maps/permissions/unknown_4.bin"
+ INCBIN "data/maps/tiles/hall_of_honor_door_map_event.bin"
+HallOfHonorDoorMapEventPermissions:
+ INCBIN "data/maps/permissions/hall_of_honor_door_map_event.bin"
-Unknown4CGBTilemap:: ; 83c26 (20:7c26)
+HallOfHonorDoorMapEventCGBTilemap:: ; 83c26 (20:7c26)
db $04 ; width
db $03 ; height
- dw Unknown4CGBPermissions
+ dw HallOfHonorDoorMapEventCGBPermissions
db TRUE ; cgb mode
- INCBIN "data/maps/tiles/unknown_4_cgb.bin"
-Unknown4CGBPermissions:
- INCBIN "data/maps/permissions/unknown_4_cgb.bin"
+ INCBIN "data/maps/tiles/hall_of_honor_door_map_event_cgb.bin"
+HallOfHonorDoorMapEventCGBPermissions:
+ INCBIN "data/maps/permissions/hall_of_honor_door_map_event_cgb.bin"
GrassMedalTilemap:: ; 83c36 (20:7c36)
db $03 ; width
diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm
index cfed469..b8b4914 100644
--- a/src/engine/effect_functions.asm
+++ b/src/engine/effect_functions.asm
@@ -1335,8 +1335,8 @@ HandleColorChangeScreen: ; 2c588 (b:4588)
ld a, [wConsole]
cp CONSOLE_CGB
jr nz, .skip_vram1
- pop hl ; unnecessary
- push hl ; unnecessary
+ pop hl
+ push hl
call BankswitchVRAM1
ld a, [hl]
lb hl, 0, 0
diff --git a/src/engine/home.asm b/src/engine/home.asm
index 5a8c822..0651e8d 100644
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -11084,8 +11084,16 @@ GetMapScriptPointer: ; 3abd (0:3abd)
pop bc
ret
-Func_3ae8: ; 3ae8 (0:3ae8)
- farcall Func_11f4e
+; loads some configurations for the duel against
+; the NPC whose deck ID is stored in wNPCDuelDeckID
+; this includes NPC portrait, his/her name text ID,
+; and the number of prize cards
+; this was used in testing since these configurations
+; are stored in the script-related NPC data for normal gameplay
+; returns carry if a duel configuration was found
+; for the given NPC deck ID
+GetNPCDuelConfigurations: ; 3ae8 (0:3ae8)
+ farcall _GetNPCDuelConfigurations
ret
; finds a Script from the first byte and puts the next two bytes (usually arguments?) into cb
diff --git a/src/macros/scripts.asm b/src/macros/scripts.asm
index bd500a2..10336ef 100644
--- a/src/macros/scripts.asm
+++ b/src/macros/scripts.asm
@@ -461,6 +461,7 @@ ENDM
; Replaces map blocks
; used for deck machines, challenge machine, Pokemon Dome doors, Hall of Honor doors etc
+; accepts as argument any of MAP_EVENT_* constants
replace_map_blocks: MACRO
run_command ScriptCommand_ReplaceMapBlocks
db \1 ; id
diff --git a/src/sram.asm b/src/sram.asm
index f2ffbf2..dfcf9c9 100644
--- a/src/sram.asm
+++ b/src/sram.asm
@@ -122,8 +122,8 @@ sChallengeHallNPC:: ; b817
sb818:: ; b818
ds $4
-sb81c:: ; b81c
- ds $b
+sOWMapEvents:: ; b81c
+ ds NUM_MAP_EVENTS
sb827:: ; b827
ds $1
diff --git a/src/text/text1.asm b/src/text/text1.asm
index bdc5fa9..e94cb49 100644
--- a/src/text/text1.asm
+++ b/src/text/text1.asm
@@ -620,7 +620,7 @@ SelectComputerOpponentText: ; 36f65 (d:6f65)
text "Select a computer opponent."
done
-Text008b: ; 36f82 (d:6f82)
+NumberOfPrizesText: ; 36f82 (d:6f82)
text "Number of Prizes"
done
diff --git a/src/text/text3.asm b/src/text/text3.asm
index 96e039a..4fccc9c 100644
--- a/src/text/text3.asm
+++ b/src/text/text3.asm
@@ -1450,16 +1450,16 @@ Text0383: ; 3f2b9 (f:72b9)
text "Right"
done
-Text0384: ; 3f2c0 (f:72c0)
+SPRText: ; 3f2c0 (f:72c0)
text "SPR_"
done
-Text0385: ; 3f2c6 (f:72c6)
+WinLosePrizesDuelWithText: ; 3f2c6 (f:72c6)
text "WIN <RAMNUM> Prizes Duel"
line "LOSE with <RAMTEXT>(<RAMNUM>)"
done
-Text0386: ; 3f2f1 (f:72f1)
+UseDuelistsDeckText: ; 3f2f1 (f:72f1)
text " Use <RAMNUM>'s Deck"
done
diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm
index 3f1d87d..a62e8e7 100644
--- a/src/text/text_offsets.asm
+++ b/src/text/text_offsets.asm
@@ -140,7 +140,7 @@ TextOffsets:: ; 34000 (d:4000)
textpointer DuelistIsThinkingText ; 0x0088
textpointer Text0089 ; 0x0089
textpointer SelectComputerOpponentText ; 0x008a
- textpointer Text008b ; 0x008b
+ textpointer NumberOfPrizesText ; 0x008b
textpointer Text008c ; 0x008c
textpointer Text008d ; 0x008d
textpointer Text008e ; 0x008e
@@ -901,9 +901,9 @@ TextOffsets:: ; 34000 (d:4000)
textpointer Text0381 ; 0x0381
textpointer Text0382 ; 0x0382
textpointer Text0383 ; 0x0383
- textpointer Text0384 ; 0x0384
- textpointer Text0385 ; 0x0385
- textpointer Text0386 ; 0x0386
+ textpointer SPRText ; 0x0384
+ textpointer WinLosePrizesDuelWithText ; 0x0385
+ textpointer UseDuelistsDeckText ; 0x0386
textpointer ReceivedBoosterPackText ; 0x0387
textpointer AndAnotherBoosterPackText ; 0x0388
textpointer CheckedCardsInBoosterPackText ; 0x0389
diff --git a/src/wram.asm b/src/wram.asm
index 15910e7..9a6dffb 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -28,7 +28,7 @@ NEXTU
; before $ef is initialized to 0 when starting decompression.
wDecompressionSecondaryBuffer:: ; c000
ds $ef
-wDecompressionSecondaryBufferStart:: ; ; c0ef
+wDecompressionSecondaryBufferStart:: ; c0ef
ds $11
ENDU
@@ -2137,6 +2137,7 @@ NEXTU
; permission map of the current room with impassable objects (walls, NPCs, etc).
; $00: passable (floor)
+; $10: text/menu box tile
; $40: impassable and talkable (NPC or talkable wall)
; $80: impassable and untalkable (wall)
wPermissionMap:: ; d133
@@ -2242,11 +2243,15 @@ wCurOWFrameDuration:: ; d321
; number of valid subgroups
; that are currently loaded in wOWFramesetSubgroups
-wumLoadedFramesetSubgroups:: ; d322
+wNumLoadedFramesetSubgroups:: ; d322
ds $1
-wd323:: ; d323
- ds $b
+; holds the current state of each event
+; each corresponding to a MAP_EVENT_* constant
+; if $0, doors are closed / deck machines are deactivated
+; if $1, doors are open / deck machines are activated
+wOWMapEvents:: ; d323
+ ds NUM_MAP_EVENTS
; the OWMAP_* value for the current overworld map selection
wOverworldMapSelection:: ; d32e