summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/data/sequences/credits_sequence.asm401
-rw-r--r--src/data/sequences/opening_sequence.asm48
-rw-r--r--src/engine/bank07.asm1289
-rw-r--r--src/engine/bank20.asm3
-rw-r--r--src/engine/sequences/credits_sequence_commands.asm483
-rw-r--r--src/engine/sequences/opening_sequence_commands.asm349
-rw-r--r--src/macros/credits_sequence.asm8
-rw-r--r--src/main.asm2
8 files changed, 1291 insertions, 1292 deletions
diff --git a/src/data/sequences/credits_sequence.asm b/src/data/sequences/credits_sequence.asm
new file mode 100644
index 0000000..bccfd1b
--- /dev/null
+++ b/src/data/sequences/credits_sequence.asm
@@ -0,0 +1,401 @@
+INCLUDE "macros/credits_sequence.asm"
+
+CreditsSequence: ; 1daef (7:5aef)
+ credits_seq_disable_lcd
+ credits_seq_load_ow_map 0, 0, OVERWORLD_MAP
+ credits_seq_init_volcano_sprite
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_print_text_box 2, 1, OverworldMapPokemonDomeText
+ credits_seq_print_text 0, 0, PokemonTradingCardGameStaffText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 32, 144, 0
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_ow_map 0, 0, MASON_LABORATORY
+ credits_seq_load_npc 14, 6, SOUTH, NPC_DRMASON
+ credits_seq_load_npc 4, 14, EAST, NPC_SAM
+ credits_seq_load_npc 6, 4, SOUTH, NPC_TECH5
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 3
+ credits_seq_print_text 0, 0, ProducersText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_ow_map 0, 0, DECK_MACHINE_ROOM
+ credits_seq_load_npc 6, 8, SOUTH, NPC_TECH6
+ credits_seq_load_npc 6, 22, WEST, NPC_TECH7
+ credits_seq_load_npc 10, 18, WEST, NPC_TECH8
+ credits_seq_load_npc 12, 12, WEST, NPC_AARON
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, DirectorText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 0
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 5
+ credits_seq_print_text 0, 0, ProgrammersText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 1
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, GBGraphicDesigners1Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_draw_rectangle 4, 3
+ credits_seq_print_text 0, 4, GBGraphicDesigners2Text
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_draw_rectangle 4, 3
+ credits_seq_print_text 0, 4, GBGraphicDesigners3Text
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 2
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, MusicText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 5
+ credits_seq_print_text 0, 0, SoundEffectsText
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 3
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, SoundDirectorText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 5
+ credits_seq_print_text 0, 0, SoundSystemSupportText
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 112, 32
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_booster 6, 3, SCENE_CHARIZARD_INTRO
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 6
+ credits_seq_print_text 0, 0, CardGameCreator1Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_booster 6, 3, SCENE_SCYTHER_INTRO
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 5
+ credits_seq_print_text 0, 0, CardGameCreator2Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_booster 6, 3, SCENE_AERODACTYL_INTRO
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 5
+ credits_seq_print_text 0, 0, CardGameCreator3Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_ow_map 0, 0, ISHIHARAS_HOUSE
+ credits_seq_load_npc 8, 8, SOUTH, NPC_ISHIHARA
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 8
+ credits_seq_print_text 0, 0, CardIllustrators1Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 96, 48
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_draw_rectangle 4, 4
+ credits_seq_print_text 0, 4, CardIllustrators2Text
+ credits_seq_transform_overlay 0, 24, 96, 48
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_ow_map 16, 8, LIGHTNING_CLUB_LOBBY
+ credits_seq_load_npc 6, 4, SOUTH, NPC_CLERK10
+ credits_seq_load_npc 10, 4, SOUTH, NPC_GIFT_CENTER_CLERK
+ credits_seq_load_npc 18, 16, WEST, NPC_CHAP2
+ credits_seq_load_npc 18, 2, NORTH, NPC_IMAKUNI
+ credits_seq_load_npc 8, 12, SOUTH, NPC_LASS4
+ credits_seq_load_npc 20, 8, SOUTH, NPC_HOOD1
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 8
+ credits_seq_print_text 0, 0, SpecialAppearances1Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 112, 32
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_draw_rectangle 4, 4
+ credits_seq_print_text 0, 4, SpecialAppearances2Text
+ credits_seq_transform_overlay 0, 24, 112, 32
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_ow_map 48, 0, CHALLENGE_HALL
+ credits_seq_load_npc 14, 4, SOUTH, NPC_HOST
+ credits_seq_load_npc 18, 8, WEST, NPC_RONALD1
+ credits_seq_load_npc 12, 8, EAST, NPC_PLAYER_CREDITS
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, USCoordination1Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 32, 144, 0
+ credits_seq_transform_overlay 0, 32, 112, 32
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 32, 144, 0
+ credits_seq_draw_rectangle 4, 4
+ credits_seq_print_text 0, 5, USCoordination2Text
+ credits_seq_transform_overlay 0, 32, 112, 32
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 32, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, USCoordination3Text
+ credits_seq_transform_overlay 0, 40, 144, 0
+ credits_seq_transform_overlay 0, 40, 112, 32
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 40, 144, 0
+ credits_seq_draw_rectangle 6, 4
+ credits_seq_print_text 0, 6, USCoordination4Text
+ credits_seq_transform_overlay 0, 40, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 40, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_booster 6, 3, SCENE_COLOSSEUM_BOOSTER
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 8
+ credits_seq_print_text 0, 0, TranslationDraftText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_booster 6, 3, SCENE_EVOLUTION_BOOSTER
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 6
+ credits_seq_print_text 0, 0, MasteringText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_booster 6, 3, SCENE_MYSTERY_BOOSTER
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 6
+ credits_seq_print_text 0, 0, ManualCreationText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_booster 6, 3, SCENE_LABORATORY_BOOSTER
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 6
+ credits_seq_print_text 0, 0, ManualIllustrationsText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 4
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, PokemonOriginalStoryText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, CreatedInCooperationWithText
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 5
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, WithCooperation1Text
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_draw_rectangle 4, 5
+ credits_seq_print_text 0, 4, WithCooperation2Text
+ credits_seq_transform_overlay 0, 24, 96, 48
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_draw_rectangle 4, 4
+ credits_seq_print_text 0, 4, WithCooperation3Text
+ credits_seq_transform_overlay 0, 24, 96, 48
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 6
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 8
+ credits_seq_print_text 0, 0, ProjectManagerText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 120, 24
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 7
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, SupervisorText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_club_map 8
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, ExecutiveProducerText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_ow_map 16, 16, HALL_OF_HONOR
+ credits_seq_load_npc 10, 8, NORTH, NPC_LEGENDARY_CARD_TOP_LEFT
+ credits_seq_load_npc 12, 8, NORTH, NPC_LEGENDARY_CARD_TOP_RIGHT
+ credits_seq_load_npc 8, 10, NORTH, NPC_LEGENDARY_CARD_LEFT_SPARK
+ credits_seq_load_npc 10, 10, NORTH, NPC_LEGENDARY_CARD_BOTTOM_LEFT
+ credits_seq_load_npc 12, 10, NORTH, NPC_LEGENDARY_CARD_BOTTOM_RIGHT
+ credits_seq_load_npc 14, 10, NORTH, NPC_LEGENDARY_CARD_RIGHT_SPARK
+ credits_seq_init_overlay 0, 0, 144, 0
+ credits_seq_draw_rectangle 0, 7
+ credits_seq_print_text 0, 0, CreatedByText
+ credits_seq_fade_in
+ credits_seq_wait 60
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 24, 104, 40
+ credits_seq_wait 225
+ credits_seq_transform_overlay 0, 24, 144, 0
+ credits_seq_transform_overlay 0, 0, 144, 0
+ credits_seq_fade_out
+
+ credits_seq_load_scene 0, 0, SCENE_COMPANIES
+ credits_seq_init_overlay 0, 0, 144, 0
+
+ credits_seq_fade_in
+ credits_seq_wait 225
+ credits_seq_end
+; 0x1e1c4
diff --git a/src/data/sequences/opening_sequence.asm b/src/data/sequences/opening_sequence.asm
new file mode 100644
index 0000000..1a25c31
--- /dev/null
+++ b/src/data/sequences/opening_sequence.asm
@@ -0,0 +1,48 @@
+INCLUDE "macros/opening_sequence.asm"
+
+OpeningSequence: ; 1d59d (7:559d)
+ opening_seq_load_charizard_scene
+ opening_seq_play_sfx SFX_58
+ opening_seq_set_orbs_coordinates OpeningOrbCoordinates_CharizardScene
+ opening_seq_set_orbs_animations OpeningOrbAnimations_CharizardScene
+ opening_seq_wait 44
+ opening_seq_fade_in
+ opening_seq_wait 44
+ opening_seq_fade_out
+ opening_seq_wait 30
+
+ opening_seq_load_scyther_scene
+ opening_seq_play_sfx SFX_58
+ opening_seq_set_orbs_coordinates OpeningOrbCoordinates_ScytherScene
+ opening_seq_set_orbs_animations OpeningOrbAnimations_ScytherScene
+ opening_seq_wait 44
+ opening_seq_fade_in
+ opening_seq_wait 44
+ opening_seq_fade_out
+ opening_seq_wait 30
+
+ opening_seq_load_aerodactyl_scene
+ opening_seq_play_sfx SFX_59
+ opening_seq_set_orbs_coordinates OpeningOrbCoordinates_AerodactylScene
+ opening_seq_set_orbs_animations OpeningOrbAnimations_AerodactylScene
+ opening_seq_wait 44
+ opening_seq_fade_in
+ opening_seq_wait 100
+ opening_seq_fade_out
+ opening_seq_wait 60
+
+ opening_seq_load_title_screen_scene
+ opening_seq_play_sfx SFX_5A
+ opening_seq_set_orbs_coordinates OpeningOrbCoordinates_InitialTitleScreen
+ opening_seq_set_orbs_animations OpeningOrbAnimations_InitialTitleScreen
+ opening_seq_wait_orbs_animation
+ opening_seq_fade_in
+ opening_seq_wait 16
+ opening_seq_play_sfx SFX_5B
+ opening_seq_set_orbs_coordinates OpeningOrbCoordinates_InTitleScreen
+ opening_seq_set_orbs_animations OpeningOrbAnimations_InTitleScreen
+ opening_seq_wait_sfx
+ opening_seq_play_title_screen_music
+ opening_seq_wait 60
+ opening_seq_end
+; 0x1d614
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index 1f7c97f..8c98a87 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -2371,404 +2371,9 @@ LoadTitleScreenSprites: ; 1d3ce (7:53ce)
db SPRITE_FIGHTING
; 0x1d408
-Func_1d408: ; 1d408 (7:5408)
- ld a, [wd633]
- or a
- jr z, .call_function
- cp $ff
- ret z
- dec a
- ld [wd633], a
- ret
-
-.call_function
- ld a, [wSequenceCmdPtr + 0]
- ld l, a
- ld a, [wSequenceCmdPtr + 1]
- ld h, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld l, e
- ld h, d
- call CallHL2
- jr c, Func_1d408
- ret
-; 0x1d42e
-
-AdvanceOpeningSequenceCmdPtrBy2: ; 1d42e (7:542e)
- ld a, 2
- jr AdvanceOpeningSequenceCmdPtr
-
-AdvanceOpeningSequenceCmdPtrBy3: ; 1d432 (7:5432)
- ld a, 3
- jr AdvanceOpeningSequenceCmdPtr
-
-AdvanceOpeningSequenceCmdPtrBy4: ; 1d436 (7:5436)
- ld a, 4
-; fallthrough
-
-AdvanceOpeningSequenceCmdPtr: ; 1d438 (7:5438)
- push hl
- ld hl, wSequenceCmdPtr
- add [hl]
- ld [hli], a
- ld a, [hl]
- adc 0
- ld [hl], a
- pop hl
- ret
-; 0x1d444
-
-OpeningSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444)
- ld c, $7
- ld de, wTitleScreenSprites
-.loop
- ld a, [de]
- ld [wWhichSprite], a
- farcall GetSpriteAnimCounter
- cp $ff
- jr nz, .no_carry
- inc de
- dec c
- jr nz, .loop
- call AdvanceOpeningSequenceCmdPtrBy2
- scf
- ret
-
-.no_carry
- or a
- ret
-; 0x1d460
-
-OpeningSequenceCmd_Wait: ; 1d460 (7:5460)
- ld a, c
- ld [wd633], a
- call AdvanceOpeningSequenceCmdPtrBy3
- scf
- ret
-; 0x1d469
-
-OpeningSequenceCmd_SetOrbsAnimations: ; 1d469 (7:5469)
- ld l, c
- ld h, b
-
- ld c, $7
- ld de, wTitleScreenSprites
-.loop
- push bc
- push de
- ld a, [de]
- ld [wWhichSprite], a
- ld a, [hli]
- farcall StartSpriteAnimation
- pop de
- pop bc
- inc de
- dec c
- jr nz, .loop
-
- call AdvanceOpeningSequenceCmdPtrBy4
- scf
- ret
-; 0x1d486
-
-OpeningSequenceCmd_SetOrbsCoordinates: ; 1d486 (7:5486)
- ld l, c
- ld h, b
-
- ld c, $7
- ld de, wTitleScreenSprites
-.loop
- push bc
- push de
- ld a, [de]
- ld [wWhichSprite], a
- push hl
- ld c, SPRITE_ANIM_COORD_X
- call GetSpriteAnimBufferProperty
- ld e, l
- ld d, h
- pop hl
- ld a, [hli]
- add 8
- ld [de], a ; x
- inc de
- ld a, [hli]
- add 16
- ld [de], a ; y
- pop de
- pop bc
- inc de
- dec c
- jr nz, .loop
-
- call AdvanceOpeningSequenceCmdPtrBy4
- scf
- ret
-; 0x1d4b0
-
-OpeningOrbAnimations_CharizardScene: ; 1d4b0 (7:54b0)
- db $c0 ; GRASS
- db $c1 ; FIRE
- db $c1 ; WATER
- db $c0 ; COLORLESS
- db $c1 ; LIGHTNING
- db $c0 ; PSYCHIC
- db $c1 ; FIGHTING
-; 0x1d4b7
-
-OpeningOrbCoordinates_CharizardScene: ; 1d4b7 (7:54b7)
- ; x coord, y coord
- db 240, 28 ; GRASS
- db 160, 120 ; FIRE
- db 160, 8 ; WATER
- db 240, 64 ; COLORLESS
- db 160, 84 ; LIGHTNING
- db 240, 100 ; PSYCHIC
- db 160, 44 ; FIGHTING
-; 0x1d4c5
-
-OpeningOrbAnimations_ScytherScene: ; 1d4c5 (7:54c5)
- db $c1 ; GRASS
- db $c0 ; FIRE
- db $c0 ; WATER
- db $c1 ; COLORLESS
- db $c0 ; LIGHTNING
- db $c1 ; PSYCHIC
- db $c0 ; FIGHTING
-; 0x1d4cc
-
-OpeningOrbCoordinates_ScytherScene: ; 1d4cc (7:54cc)
- ; x coord, y coord
- db 160, 28 ; GRASS
- db 240, 120 ; FIRE
- db 240, 8 ; WATER
- db 160, 64 ; COLORLESS
- db 240, 84 ; LIGHTNING
- db 160, 100 ; PSYCHIC
- db 240, 44 ; FIGHTING
-; 0x1d4da
-
-OpeningOrbAnimations_AerodactylScene: ; 1d4da (7:54da)
- db $c2 ; GRASS
- db $c5 ; FIRE
- db $c8 ; WATER
- db $cb ; COLORLESS
- db $ce ; LIGHTNING
- db $d1 ; PSYCHIC
- db $d4 ; FIGHTING
-; 0x1d4e1
-
-OpeningOrbCoordinates_AerodactylScene: ; 1d4e1 (7:54e1)
- ; x coord, y coord
- db 240, 32 ; GRASS
- db 160, 112 ; FIRE
- db $A0, 16 ; WATER
- db 240, 64 ; COLORLESS
- db 160, 80 ; LIGHTNING
- db 240, 96 ; PSYCHIC
- db 160, 48 ; FIGHTING
-; 0x1d4ef
-
-OpeningOrbAnimations_InitialTitleScreen: ; 1d4ef (7:54ef)
- db $c3 ; GRASS
- db $c6 ; FIRE
- db $c9 ; WATER
- db $cc ; COLORLESS
- db $cf ; LIGHTNING
- db $d2 ; PSYCHIC
- db $d5 ; FIGHTING
-; 0x1d4f6
-
-OpeningOrbCoordinates_InitialTitleScreen: ; 1d4f6 (7:54f6)
- ; x coord, y coord
- db 112, 144 ; GRASS
- db 12, 144 ; FIRE
- db 32, 144 ; WATER
- db 92, 144 ; COLORLESS
- db 52, 144 ; LIGHTNING
- db 132, 144 ; PSYCHIC
- db 72, 144 ; FIGHTING
-; 0x1d504
-
-OpeningOrbAnimations_InTitleScreen: ; 1d504 (7:5504)
- db $c4 ; GRASS
- db $c7 ; FIRE
- db $ca ; WATER
- db $cd ; COLORLESS
- db $d0 ; LIGHTNING
- db $d3 ; PSYCHIC
- db $d6 ; FIGHTING
-; 0x1d50b
-
-OpeningOrbCoordinates_InTitleScreen: ; 1d50b (7:550b)
- ; x coord, y coord
- db 112, 76 ; GRASS
- db 0, 28 ; FIRE
- db 32, 76 ; WATER
- db 92, 252 ; COLORLESS
- db 52, 252 ; LIGHTNING
- db 144, 28 ; PSYCHIC
- db 72, 76 ; FIGHTING
-; 0x1d519
-
-OpeningSequenceCmd_PlayTitleScreenMusic: ; 1d519 (7:5519)
- ld a, MUSIC_TITLESCREEN
- call PlaySong
- call AdvanceOpeningSequenceCmdPtrBy2
- scf
- ret
-; 0x1d523
-
-OpeningSequenceCmd_WaitSFX: ; 1d523 (7:5523)
- call AssertSFXFinished
- or a
- jr nz, .no_carry
- call AdvanceOpeningSequenceCmdPtrBy2
- scf
- ret
-
-.no_carry
- or a
- ret
-; 0x1d530
-
-OpeningSequenceCmd_PlaySFX: ; 1d530 (7:5530)
- ld a, c
- call PlaySFX
- call AdvanceOpeningSequenceCmdPtrBy3
- scf
- ret
-; 0x1d539
-
-OpeningSequenceCmd_FadeIn: ; 1d539 (7:5539)
- ld a, $01
- ld [wd634], a
- call AdvanceOpeningSequenceCmdPtrBy2
- scf
- ret
-; 0x1d543
-
-OpeningSequenceCmd_FadeOut: ; 1d543 (7:5543)
- farcall Func_10d50
- ld a, $01
- ld [wd634], a
- call AdvanceOpeningSequenceCmdPtrBy2
- scf
- ret
-; 0x1d551
-
-OpeningSequenceCmd_LoadCharizardScene: ; 1d551 (7:5551)
- lb bc, 6, 3
- ld a, SCENE_CHARIZARD_INTRO
- jr LoadOpeningSceneAndUpdateSGBBorder
-
-OpeningSequenceCmd_LoadScytherScene: ; 1d558 (7:5558)
- lb bc, 6, 3
- ld a, SCENE_SCYTHER_INTRO
- jr LoadOpeningSceneAndUpdateSGBBorder
-
-OpeningSequenceCmd_LoadAerodactylScene: ; 1d55f (7:555f)
- lb bc, 6, 3
- ld a, SCENE_AERODACTYL_INTRO
-; fallthrough
-
-LoadOpeningSceneAndUpdateSGBBorder: ; 1d564 (7:5564)
- call LoadOpeningScene
- ld l, %001010
- lb bc, 0, 0
- lb de, 20, 18
- farcall Func_70498
- scf
- ret
-; 0x1d575
-
-OpeningSequenceCmd_LoadTitleScreenScene: ; 1d575 (7:5575)
- lb bc, 0, 0
- ld a, SCENE_TITLE_SCREEN
- call LoadOpeningScene
- call Func_1d59c
- scf
- ret
-; 0x1d582
-
-; a = scene ID
-; bc = coordinates for scene
-LoadOpeningScene: ; 1d582 (7:5582)
- push af
- push bc
- call DisableLCD
- pop bc
- pop af
-
- farcall _LoadScene ; TODO change func name?
- farcall Func_10d17
-
- xor a
- ld [wd634], a
- call AdvanceOpeningSequenceCmdPtrBy2
- call EnableLCD
- ret
-; 0x1d59c
-
-Func_1d59c: ; 1d59c (7:559c)
- ret
-; 0x1d59d
-
-INCLUDE "macros/opening_sequence.asm"
-
-OpeningSequence: ; 1d59d (7:559d)
- opening_seq_load_charizard_scene
- opening_seq_play_sfx SFX_58
- opening_seq_set_orbs_coordinates OpeningOrbCoordinates_CharizardScene
- opening_seq_set_orbs_animations OpeningOrbAnimations_CharizardScene
- opening_seq_wait 44
- opening_seq_fade_in
- opening_seq_wait 44
- opening_seq_fade_out
- opening_seq_wait 30
-
- opening_seq_load_scyther_scene
- opening_seq_play_sfx SFX_58
- opening_seq_set_orbs_coordinates OpeningOrbCoordinates_ScytherScene
- opening_seq_set_orbs_animations OpeningOrbAnimations_ScytherScene
- opening_seq_wait 44
- opening_seq_fade_in
- opening_seq_wait 44
- opening_seq_fade_out
- opening_seq_wait 30
-
- opening_seq_load_aerodactyl_scene
- opening_seq_play_sfx SFX_59
- opening_seq_set_orbs_coordinates OpeningOrbCoordinates_AerodactylScene
- opening_seq_set_orbs_animations OpeningOrbAnimations_AerodactylScene
- opening_seq_wait 44
- opening_seq_fade_in
- opening_seq_wait 100
- opening_seq_fade_out
- opening_seq_wait 60
-
- opening_seq_load_title_screen_scene
- opening_seq_play_sfx SFX_5A
- opening_seq_set_orbs_coordinates OpeningOrbCoordinates_InitialTitleScreen
- opening_seq_set_orbs_animations OpeningOrbAnimations_InitialTitleScreen
- opening_seq_wait_orbs_animation
- opening_seq_fade_in
- opening_seq_wait 16
- opening_seq_play_sfx SFX_5B
- opening_seq_set_orbs_coordinates OpeningOrbCoordinates_InTitleScreen
- opening_seq_set_orbs_animations OpeningOrbAnimations_InTitleScreen
- opening_seq_wait_sfx
- opening_seq_play_title_screen_music
- opening_seq_wait 60
- opening_seq_end
-; 0x1d614
+; TODO place in main.asm when possible
+INCLUDE "engine/sequences/opening_sequence_commands.asm"
+INCLUDE "data/sequences/opening_sequence.asm"
Func_1d614: ; 1d614 (7:5614)
INCROM $1d614, $1d6ad
@@ -2911,891 +2516,3 @@ Func_1d765: ; 1d765 (7:5765)
; 0x1d7ee
INCROM $1d7ee, $1d7fc
-
-Func_1d7fc: ; 1d7fc (7:57fc)
- ld a, LOW(CreditsSequence)
- ld [wSequenceCmdPtr + 0], a
- ld a, HIGH(CreditsSequence)
- ld [wSequenceCmdPtr + 1], a
- xor a
- ld [wd633], a
- ret
-; 0x1d80b
-
-Func_1d80b: ; 1d80b (7:580b)
- ld a, [wd633]
- or a
- jr z, .call_func
- cp $ff
- ret z
- dec a
- ld [wd633], a
- ret
-
-.call_func
- ld a, [wSequenceCmdPtr + 0]
- ld l, a
- ld a, [wSequenceCmdPtr + 1]
- ld h, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- pop hl
- call CallHL2
- jr Func_1d80b
-; 0x1d834
-
- ret ; stray ret
-
-AdvanceCreditsSequenceCmdPtrBy2: ; 1d835 (7:5835)
- ld a, 2
- jr AdvanceCreditsSequenceCmdPtr
-
-AdvanceCreditsSequenceCmdPtrBy3: ; 1d839 (7:5839)
- ld a, 3
- jr AdvanceCreditsSequenceCmdPtr
-
-AdvanceCreditsSequenceCmdPtrBy5: ; 1d83d (7:583d)
- ld a, 5
- jr AdvanceCreditsSequenceCmdPtr
-
-AdvanceCreditsSequenceCmdPtrBy6: ; 1d841 (7:5841)
- ld a, 6
- jr AdvanceCreditsSequenceCmdPtr
-
-AdvanceCreditsSequenceCmdPtrBy4: ; 1d845 (7:5845)
- ld a, 4
-; fallthrough
-
-AdvanceCreditsSequenceCmdPtr: ; 1d847 (7:5847)
- push hl
- ld hl, wSequenceCmdPtr
- add [hl]
- ld [hli], a
- ld a, [hl]
- adc 0
- ld [hl], a
- pop hl
- ret
-; 0x1d853
-
-CreditsSequenceCmd_Wait: ; 1d853 (7:5853)
- ld a, c
- ld [wd633], a
- jp AdvanceCreditsSequenceCmdPtrBy3
-; 0x1d85a
-
-CreditsSequenceCmd_LoadScene: ; 1d85a (7:585a)
- push bc
- push de
- farcall Func_8047b
- call EmptyScreen
- xor a
- ldh [hSCX], a
- ldh [hSCY], a
- farcall Func_1288c
- pop de
- pop bc
- ld a, c
- ld c, b
- ld b, a
- ld a, e
- call LoadScene
- jp AdvanceCreditsSequenceCmdPtrBy5
-; 0x1d878
-
-CreditsSequenceCmd_LoadBooster: ; 1d878 (7:5878)
- push bc
- push de
- farcall Func_8047b
- call EmptyScreen
- xor a
- ldh [hSCX], a
- ldh [hSCY], a
- farcall Func_1288c
- pop de
- pop bc
- ld a, c
- ld c, b
- ld b, a
- ld a, e
- farcall LoadBoosterGfx
- jp AdvanceCreditsSequenceCmdPtrBy5
-; 0x1d897
-
-CreditsSequenceCmd_LoadClubMap: ; 1d897 (7:5897)
- ld b, $00
- ld hl, wMastersBeatenList
- add hl, bc
- ld a, [hl]
- or a
- jr nz, .at_least_1
- inc a
-.at_least_1
- dec a
- ld c, a
- add a
- add a
- add c ; *5
- ld c, a
- ld hl, .CreditsOWClubMaps
- add hl, bc
- ld a, [hli] ; map x coord
- ld c, a
- ld a, [hli] ; map y coord
- ld b, a
- ld a, [hli] ; map ID
- ld e, a
- push hl
- call LoadOWMapForCreditsSequence
- pop hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- or h
- jr z, .done
-
-.loop_npcs
- ld a, [hli] ; NPC ID
- or a
- jr z, .done
- ld d, a
- ld a, [hli] ; NPC x coord
- ld c, a
- ld a, [hli] ; NPC y coord
- ld b, a
- ld a, [hli] ; NPC direction
- ld e, a
- push hl
- call LoadNPCForCreditsSequence
- pop hl
- jr .loop_npcs
-
-.done
- jp AdvanceCreditsSequenceCmdPtrBy3
-
-credits_club_map: MACRO
- db \1 ; x
- db \2 ; y
- db \3 ; OW map
- dw \4 ; list of NPCs to load
-ENDM
-
-.CreditsOWClubMaps
- credits_club_map 16, 0, FIGHTING_CLUB, .CreditsNPCs_FightingClub
- credits_club_map 32, 0, ROCK_CLUB, .CreditsNPCs_RockClub
- credits_club_map 64, 0, WATER_CLUB, .CreditsNPCs_WaterClub
- credits_club_map 32, 0, LIGHTNING_CLUB, .CreditsNPCs_LightningClub
- credits_club_map 32, 0, GRASS_CLUB, .CreditsNPCs_GrassClub
- credits_club_map 32, 16, PSYCHIC_CLUB, .CreditsNPCs_PsychicClub
- credits_club_map 0, 0, SCIENCE_CLUB, .CreditsNPCs_ScienceClub
- credits_club_map 32, 0, FIRE_CLUB, .CreditsNPCs_FireClub
- credits_club_map 32, 0, CHALLENGE_HALL, .CreditsNPCs_ChallengeHall
- credits_club_map 48, 0, POKEMON_DOME, .CreditsNPCs_PokemonDome
-
-.CreditsNPCs_FightingClub
- ; NPC ID, x, y, direction
- db NPC_CHRIS, 4, 8, SOUTH
- db NPC_MICHAEL, 14, 10, SOUTH
- db NPC_JESSICA, 18, 6, EAST
- db NPC_MITCH, 10, 4, SOUTH
- db NPC_PLAYER_CREDITS, 10, 6, NORTH
- db $00
-
-.CreditsNPCs_RockClub
- ; NPC ID, x, y, direction
- db NPC_RYAN, 20, 14, EAST
- db NPC_GENE, 12, 6, SOUTH
- db NPC_PLAYER_CREDITS, 12, 8, NORTH
- db $00
-
-.CreditsNPCs_WaterClub
- ; NPC ID, x, y, direction
- db NPC_JOSHUA, 22, 8, SOUTH
- db NPC_AMY, 22, 4, NORTH
- db NPC_PLAYER_CREDITS, 18, 10, NORTH
- db $00
-
-.CreditsNPCs_LightningClub
- ; NPC ID, x, y, direction
- db NPC_NICHOLAS, 6, 10, SOUTH
- db NPC_BRANDON, 22, 12, NORTH
- db NPC_ISAAC, 12, 4, NORTH
- db NPC_PLAYER_CREDITS, 12, 10, NORTH
- db $00
-
-.CreditsNPCs_GrassClub
- ; NPC ID, x, y, direction
- db NPC_KRISTIN, 4, 10, EAST
- db NPC_HEATHER, 14, 16, SOUTH
- db NPC_NIKKI, 12, 4, SOUTH
- db NPC_PLAYER_CREDITS, 12, 6, NORTH
- db $00
-
-.CreditsNPCs_PsychicClub
- ; NPC ID, x, y, direction
- db NPC_DANIEL, 8, 8, NORTH
- db NPC_STEPHANIE, 22, 12, EAST
- db NPC_MURRAY1, 12, 6, SOUTH
- db NPC_PLAYER_CREDITS, 12, 8, NORTH
- db $00
-
-.CreditsNPCs_ScienceClub
- ; NPC ID, x, y, direction
- db NPC_JOSEPH, 10, 10, WEST
- db NPC_RICK, 4, 4, SOUTH
- db NPC_PLAYER_CREDITS, 4, 6, NORTH
- db $00
-
-.CreditsNPCs_FireClub
- ; NPC ID, x, y, direction
- db NPC_ADAM, 8, 14, SOUTH
- db NPC_JONATHAN, 18, 10, SOUTH
- db NPC_KEN, 14, 4, SOUTH
- db NPC_PLAYER_CREDITS, 14, 6, NORTH
- db $00
-
-.CreditsNPCs_ChallengeHall
- ; NPC ID, x, y, direction
- db NPC_HOST, 14, 4, SOUTH
- db NPC_RONALD1, 18, 8, WEST
- db NPC_PLAYER_CREDITS, 12, 8, EAST
- db $00
-
-.CreditsNPCs_PokemonDome
- ; NPC ID, x, y, direction
- db NPC_COURTNEY, 18, 4, SOUTH
- db NPC_STEVE, 22, 4, SOUTH
- db NPC_JACK, 8, 4, SOUTH
- db NPC_ROD, 14, 6, SOUTH
- db NPC_PLAYER_CREDITS, 14, 10, NORTH
- db $00
-; 0x1d9a6
-
-; bc = coordinates
-; e = OW map
-LoadOWMapForCreditsSequence: ; 1d9a6 (7:59a6)
- push bc
- push de
- call EmptyScreen
- pop de
- pop bc
-
- ; set input coordinates and map
- ld a, c
- ldh [hSCX], a
- ld a, b
- ldh [hSCY], a
- ld a, e
- ld [wCurMap], a
-
- farcall LoadMapTilesAndPals
- farcall Func_c9c7
- farcall SafelyCopyBGMapFromSRAMToVRAM
- farcall DoMapOWFrame
- xor a
- ld [wd4ca], a
- ld [wd4cb], a
- ld a, PALETTE_29
- farcall LoadPaletteData
- ret
-; 0x1d9d5
-
-CreditsSequenceCmd_LoadOWMap: ; 1d9d5 (7:59d5)
- call LoadOWMapForCreditsSequence
- jp AdvanceCreditsSequenceCmdPtrBy5
-; 0x1d9db
-
-CreditsSequenceCmd_DisableLCD: ; 1d9db (7:59db)
- call DisableLCD
- jp AdvanceCreditsSequenceCmdPtrBy2
-; 0x1d9e1
-
-CreditsSequenceCmd_FadeIn: ; 1d9e1 (7:59e1)
- call DisableLCD
- call Set_WD_on
- farcall Func_10af9
- jp AdvanceCreditsSequenceCmdPtrBy2
-; 0x1d9ee
-
-CreditsSequenceCmd_FadeOut: ; 1d9ee (7:59ee)
- farcall Func_10ab4
- call Func_3ca4
- call EnableLCD
- call DoFrameIfLCDEnabled
- call DisableLCD
- call Set_WD_off
- jp AdvanceCreditsSequenceCmdPtrBy2
-; 0x1da04
-
-CreditsSequenceCmd_DrawRectangle: ; 1da04 (7:5a04)
- ld a, c
- or $20
- ld e, a
- ld d, $00
- ld c, b
- ld b, 20
- xor a
- lb hl, 0, 0
- call FillRectangle
- jp AdvanceCreditsSequenceCmdPtrBy4
-; 0x1da17
-
-CreditsSequenceCmd_PrintTextSpecial: ; 1da17 (7:5a17)
- ld a, $01
- ld [wLineSeparation], a
- push de
- ld d, c
- ld a, b
- or $20
- ld e, a
- call InitTextPrinting
- pop hl
- call PrintTextNoDelay
- jp AdvanceCreditsSequenceCmdPtrBy6
-; 0x1da2c
-
-CreditsSequenceCmd_PrintText: ; 1da2c (7:5a2c)
- ld a, $01
- ld [wLineSeparation], a
- push de
- ld d, c
- ld e, b
- call InitTextPrinting
- pop hl
- call PrintTextNoDelay
- jp AdvanceCreditsSequenceCmdPtrBy6
-; 0x1da3e
-
-CreditsSequenceCmd_InitOverlay: ; 1da3e (7:5a3e)
- ld a, c
- ld [wd647], a
- ld a, b
- ld [wd648], a
- ld a, e
- ld [wd649], a
- ld a, d
- ld [wd64a], a
- call Func_1d765
- jp AdvanceCreditsSequenceCmdPtrBy6
-; 0x1da54
-
-CreditsSequenceCmd_LoadNPC: ; 1da54 (7:5a54)
- call LoadNPCForCreditsSequence
- jp AdvanceCreditsSequenceCmdPtrBy6
-; 0x1da5a
-
-; bc = coordinates
-; e = direction
-; d = NPC ID
-LoadNPCForCreditsSequence: ; 1da5a (7:5a5a)
- ld a, c
- ld [wLoadNPCXPos], a
- ld a, b
- ld [wLoadNPCYPos], a
- ld a, e
- ld [wLoadNPCDirection], a
- ld a, d
- farcall LoadNPCSpriteData
- ld a, [wNPCSpriteID]
- farcall CreateSpriteAndAnimBufferEntry
-
- ld c, SPRITE_ANIM_COORD_X
- call GetSpriteAnimBufferProperty
- ldh a, [hSCX]
- ld c, a
- ld a, [wLoadNPCXPos]
- add a
- add a
- add a ; *8
- add 8
- sub c
- ld [hli], a ; x
- ldh a, [hSCY]
- ld c, a
- ld a, [wLoadNPCYPos]
- add a
- add a
- add a ; *8
- add 16
- sub c
- ld [hli], a ; y
-
- ld a, [wNPCAnim]
- ld c, a
- ld a, [wLoadNPCDirection]
- add c
- farcall StartNewSpriteAnimation
- ret
-; 0x1da9e
-
-CreditsSequenceCmd_InitVolcanoSprite: ; 1da9e (7:5a9e)
- farcall OverworldMap_InitVolcanoSprite
- jp AdvanceCreditsSequenceCmdPtrBy2
-; 0x1daa5
-
-CreditsSequenceCmd_TransformOverlay: ; 1daa5 (7:5aa5)
-; either stretches or shrinks overlay
-; to the input configurations
- ld l, $00
- ld a, [wd647]
- call .Func_1dade
- ld [wd647], a
- ld a, [wd648]
- ld c, b
- call .Func_1dade
- ld [wd648], a
- ld a, [wd649]
- ld c, e
- call .Func_1dade
- ld [wd649], a
- ld a, [wd64a]
- ld c, d
- call .Func_1dade
- ld [wd64a], a
- ld a, l
- or a
- jr z, .advance_sequence
- ld a, $01
- ld [wd633], a
- ret
-
-.advance_sequence
- call Func_1d765
- jp AdvanceCreditsSequenceCmdPtrBy6
-
-; compares a with c
-; if it's smaller: increase by 2 and increment l
-; if it's larger: decrease by 2 and increment l
-; if it's equal or $ff: do nothing
-.Func_1dade
- cp $ff
- jr z, .done
- cp c
- jr z, .done
- inc l
- jr c, .incr_a
-; decr a
- dec a
- dec a
- jr .done
-.incr_a
- inc a
- inc a
-.done
- ret
-; 0x1daef
-
-INCLUDE "macros/credits_sequence.asm"
-
-CreditsSequence: ; 1daef (7:5aef)
- credits_seq_disable_lcd
- credits_seq_load_ow_map 0, 0, OVERWORLD_MAP
- credits_seq_init_volcano_sprite
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_print_text 2, 1, OverworldMapPokemonDomeText
- credits_seq_print_text_special 0, 0, PokemonTradingCardGameStaffText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 32, 144, 0
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_ow_map 0, 0, MASON_LABORATORY
- credits_seq_load_npc 14, 6, SOUTH, NPC_DRMASON
- credits_seq_load_npc 4, 14, EAST, NPC_SAM
- credits_seq_load_npc 6, 4, SOUTH, NPC_TECH5
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 3
- credits_seq_print_text_special 0, 0, ProducersText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_ow_map 0, 0, DECK_MACHINE_ROOM
- credits_seq_load_npc 6, 8, SOUTH, NPC_TECH6
- credits_seq_load_npc 6, 22, WEST, NPC_TECH7
- credits_seq_load_npc 10, 18, WEST, NPC_TECH8
- credits_seq_load_npc 12, 12, WEST, NPC_AARON
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, DirectorText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 0
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 5
- credits_seq_print_text_special 0, 0, ProgrammersText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 1
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, GBGraphicDesigners1Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_draw_rectangle 4, 3
- credits_seq_print_text_special 0, 4, GBGraphicDesigners2Text
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_draw_rectangle 4, 3
- credits_seq_print_text_special 0, 4, GBGraphicDesigners3Text
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 2
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, MusicText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 5
- credits_seq_print_text_special 0, 0, SoundEffectsText
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 3
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, SoundDirectorText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 5
- credits_seq_print_text_special 0, 0, SoundSystemSupportText
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 112, 32
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_booster 6, 3, SCENE_CHARIZARD_INTRO
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 6
- credits_seq_print_text_special 0, 0, CardGameCreator1Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_booster 6, 3, SCENE_SCYTHER_INTRO
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 5
- credits_seq_print_text_special 0, 0, CardGameCreator2Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_booster 6, 3, SCENE_AERODACTYL_INTRO
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 5
- credits_seq_print_text_special 0, 0, CardGameCreator3Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_ow_map 0, 0, ISHIHARAS_HOUSE
- credits_seq_load_npc 8, 8, SOUTH, NPC_ISHIHARA
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 8
- credits_seq_print_text_special 0, 0, CardIllustrators1Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 96, 48
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_draw_rectangle 4, 4
- credits_seq_print_text_special 0, 4, CardIllustrators2Text
- credits_seq_transform_overlay 0, 24, 96, 48
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_ow_map 16, 8, LIGHTNING_CLUB_LOBBY
- credits_seq_load_npc 6, 4, SOUTH, NPC_CLERK10
- credits_seq_load_npc 10, 4, SOUTH, NPC_GIFT_CENTER_CLERK
- credits_seq_load_npc 18, 16, WEST, NPC_CHAP2
- credits_seq_load_npc 18, 2, NORTH, NPC_IMAKUNI
- credits_seq_load_npc 8, 12, SOUTH, NPC_LASS4
- credits_seq_load_npc 20, 8, SOUTH, NPC_HOOD1
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 8
- credits_seq_print_text_special 0, 0, SpecialAppearances1Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 112, 32
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_draw_rectangle 4, 4
- credits_seq_print_text_special 0, 4, SpecialAppearances2Text
- credits_seq_transform_overlay 0, 24, 112, 32
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_ow_map 48, 0, CHALLENGE_HALL
- credits_seq_load_npc 14, 4, SOUTH, NPC_HOST
- credits_seq_load_npc 18, 8, WEST, NPC_RONALD1
- credits_seq_load_npc 12, 8, EAST, NPC_PLAYER_CREDITS
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, USCoordination1Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 32, 144, 0
- credits_seq_transform_overlay 0, 32, 112, 32
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 32, 144, 0
- credits_seq_draw_rectangle 4, 4
- credits_seq_print_text_special 0, 5, USCoordination2Text
- credits_seq_transform_overlay 0, 32, 112, 32
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 32, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, USCoordination3Text
- credits_seq_transform_overlay 0, 40, 144, 0
- credits_seq_transform_overlay 0, 40, 112, 32
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 40, 144, 0
- credits_seq_draw_rectangle 6, 4
- credits_seq_print_text_special 0, 6, USCoordination4Text
- credits_seq_transform_overlay 0, 40, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 40, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_booster 6, 3, SCENE_COLOSSEUM_BOOSTER
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 8
- credits_seq_print_text_special 0, 0, TranslationDraftText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_booster 6, 3, SCENE_EVOLUTION_BOOSTER
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 6
- credits_seq_print_text_special 0, 0, MasteringText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_booster 6, 3, SCENE_MYSTERY_BOOSTER
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 6
- credits_seq_print_text_special 0, 0, ManualCreationText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_booster 6, 3, SCENE_LABORATORY_BOOSTER
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 6
- credits_seq_print_text_special 0, 0, ManualIllustrationsText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 4
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, PokemonOriginalStoryText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, CreatedInCooperationWithText
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 5
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, WithCooperation1Text
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_draw_rectangle 4, 5
- credits_seq_print_text_special 0, 4, WithCooperation2Text
- credits_seq_transform_overlay 0, 24, 96, 48
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_draw_rectangle 4, 4
- credits_seq_print_text_special 0, 4, WithCooperation3Text
- credits_seq_transform_overlay 0, 24, 96, 48
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 6
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 8
- credits_seq_print_text_special 0, 0, ProjectManagerText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 120, 24
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 7
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, SupervisorText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_club_map 8
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, ExecutiveProducerText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_ow_map 16, 16, HALL_OF_HONOR
- credits_seq_load_npc 10, 8, NORTH, NPC_LEGENDARY_CARD_TOP_LEFT
- credits_seq_load_npc 12, 8, NORTH, NPC_LEGENDARY_CARD_TOP_RIGHT
- credits_seq_load_npc 8, 10, NORTH, NPC_LEGENDARY_CARD_LEFT_SPARK
- credits_seq_load_npc 10, 10, NORTH, NPC_LEGENDARY_CARD_BOTTOM_LEFT
- credits_seq_load_npc 12, 10, NORTH, NPC_LEGENDARY_CARD_BOTTOM_RIGHT
- credits_seq_load_npc 14, 10, NORTH, NPC_LEGENDARY_CARD_RIGHT_SPARK
- credits_seq_init_overlay 0, 0, 144, 0
- credits_seq_draw_rectangle 0, 7
- credits_seq_print_text_special 0, 0, CreatedByText
- credits_seq_fade_in
- credits_seq_wait 60
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 24, 104, 40
- credits_seq_wait 225
- credits_seq_transform_overlay 0, 24, 144, 0
- credits_seq_transform_overlay 0, 0, 144, 0
- credits_seq_fade_out
-
- credits_seq_load_scene 0, 0, SCENE_COMPANIES
- credits_seq_init_overlay 0, 0, 144, 0
-
- credits_seq_fade_in
- credits_seq_wait 225
- credits_seq_end
-; 0x1e1c4
-
- INCROM $1e1c4, $1e1c4
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index 6d84675..5481d17 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -867,8 +867,7 @@ LoadPaletteDataToBuffer: ; 80456 (20:4456)
ret
; 0x8047b
-; unreferenced?
-Func_8047b: ; 8047b (20:447b)
+ClearNumLoadedFramesetSubgroups: ; 8047b (20:447b)
xor a
ld [wNumLoadedFramesetSubgroups], a
ret
diff --git a/src/engine/sequences/credits_sequence_commands.asm b/src/engine/sequences/credits_sequence_commands.asm
new file mode 100644
index 0000000..630760e
--- /dev/null
+++ b/src/engine/sequences/credits_sequence_commands.asm
@@ -0,0 +1,483 @@
+Func_1d7fc: ; 1d7fc (7:57fc)
+ ld a, LOW(CreditsSequence)
+ ld [wSequenceCmdPtr + 0], a
+ ld a, HIGH(CreditsSequence)
+ ld [wSequenceCmdPtr + 1], a
+ xor a
+ ld [wd633], a
+ ret
+; 0x1d80b
+
+Func_1d80b: ; 1d80b (7:580b)
+ ld a, [wd633]
+ or a
+ jr z, .call_func
+ cp $ff
+ ret z
+ dec a
+ ld [wd633], a
+ ret
+
+.call_func
+ ld a, [wSequenceCmdPtr + 0]
+ ld l, a
+ ld a, [wSequenceCmdPtr + 1]
+ ld h, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ pop hl
+ call CallHL2
+ jr Func_1d80b
+; 0x1d834
+
+ ret ; stray ret
+
+AdvanceCreditsSequenceCmdPtrBy2: ; 1d835 (7:5835)
+ ld a, 2
+ jr AdvanceCreditsSequenceCmdPtr
+
+AdvanceCreditsSequenceCmdPtrBy3: ; 1d839 (7:5839)
+ ld a, 3
+ jr AdvanceCreditsSequenceCmdPtr
+
+AdvanceCreditsSequenceCmdPtrBy5: ; 1d83d (7:583d)
+ ld a, 5
+ jr AdvanceCreditsSequenceCmdPtr
+
+AdvanceCreditsSequenceCmdPtrBy6: ; 1d841 (7:5841)
+ ld a, 6
+ jr AdvanceCreditsSequenceCmdPtr
+
+AdvanceCreditsSequenceCmdPtrBy4: ; 1d845 (7:5845)
+ ld a, 4
+; fallthrough
+
+AdvanceCreditsSequenceCmdPtr: ; 1d847 (7:5847)
+ push hl
+ ld hl, wSequenceCmdPtr
+ add [hl]
+ ld [hli], a
+ ld a, [hl]
+ adc 0
+ ld [hl], a
+ pop hl
+ ret
+; 0x1d853
+
+CreditsSequenceCmd_Wait: ; 1d853 (7:5853)
+ ld a, c
+ ld [wd633], a
+ jp AdvanceCreditsSequenceCmdPtrBy3
+; 0x1d85a
+
+CreditsSequenceCmd_LoadScene: ; 1d85a (7:585a)
+ push bc
+ push de
+ farcall ClearNumLoadedFramesetSubgroups
+ call EmptyScreen
+ xor a
+ ldh [hSCX], a
+ ldh [hSCY], a
+ farcall Func_1288c
+ pop de
+ pop bc
+ ld a, c
+ ld c, b
+ ld b, a
+ ld a, e
+ call LoadScene
+ jp AdvanceCreditsSequenceCmdPtrBy5
+; 0x1d878
+
+CreditsSequenceCmd_LoadBooster: ; 1d878 (7:5878)
+ push bc
+ push de
+ farcall ClearNumLoadedFramesetSubgroups
+ call EmptyScreen
+ xor a
+ ldh [hSCX], a
+ ldh [hSCY], a
+ farcall Func_1288c
+ pop de
+ pop bc
+ ld a, c
+ ld c, b
+ ld b, a
+ ld a, e
+ farcall LoadBoosterGfx
+ jp AdvanceCreditsSequenceCmdPtrBy5
+; 0x1d897
+
+CreditsSequenceCmd_LoadClubMap: ; 1d897 (7:5897)
+ ld b, $00
+ ld hl, wMastersBeatenList
+ add hl, bc
+ ld a, [hl]
+ or a
+ jr nz, .at_least_1
+ inc a
+.at_least_1
+ dec a
+ ld c, a
+ add a
+ add a
+ add c ; *5
+ ld c, a
+ ld hl, .CreditsOWClubMaps
+ add hl, bc
+ ld a, [hli] ; map x coord
+ ld c, a
+ ld a, [hli] ; map y coord
+ ld b, a
+ ld a, [hli] ; map ID
+ ld e, a
+ push hl
+ call LoadOWMapForCreditsSequence
+ pop hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ jr z, .done
+
+.loop_npcs
+ ld a, [hli] ; NPC ID
+ or a
+ jr z, .done
+ ld d, a
+ ld a, [hli] ; NPC x coord
+ ld c, a
+ ld a, [hli] ; NPC y coord
+ ld b, a
+ ld a, [hli] ; NPC direction
+ ld e, a
+ push hl
+ call LoadNPCForCreditsSequence
+ pop hl
+ jr .loop_npcs
+
+.done
+ jp AdvanceCreditsSequenceCmdPtrBy3
+
+credits_club_map: MACRO
+ db \1 ; x
+ db \2 ; y
+ db \3 ; OW map
+ dw \4 ; list of NPCs to load
+ENDM
+
+.CreditsOWClubMaps
+ credits_club_map 16, 0, FIGHTING_CLUB, .CreditsNPCs_FightingClub
+ credits_club_map 32, 0, ROCK_CLUB, .CreditsNPCs_RockClub
+ credits_club_map 64, 0, WATER_CLUB, .CreditsNPCs_WaterClub
+ credits_club_map 32, 0, LIGHTNING_CLUB, .CreditsNPCs_LightningClub
+ credits_club_map 32, 0, GRASS_CLUB, .CreditsNPCs_GrassClub
+ credits_club_map 32, 16, PSYCHIC_CLUB, .CreditsNPCs_PsychicClub
+ credits_club_map 0, 0, SCIENCE_CLUB, .CreditsNPCs_ScienceClub
+ credits_club_map 32, 0, FIRE_CLUB, .CreditsNPCs_FireClub
+ credits_club_map 32, 0, CHALLENGE_HALL, .CreditsNPCs_ChallengeHall
+ credits_club_map 48, 0, POKEMON_DOME, .CreditsNPCs_PokemonDome
+
+.CreditsNPCs_FightingClub
+ ; NPC ID, x, y, direction
+ db NPC_CHRIS, 4, 8, SOUTH
+ db NPC_MICHAEL, 14, 10, SOUTH
+ db NPC_JESSICA, 18, 6, EAST
+ db NPC_MITCH, 10, 4, SOUTH
+ db NPC_PLAYER_CREDITS, 10, 6, NORTH
+ db $00
+
+.CreditsNPCs_RockClub
+ ; NPC ID, x, y, direction
+ db NPC_RYAN, 20, 14, EAST
+ db NPC_GENE, 12, 6, SOUTH
+ db NPC_PLAYER_CREDITS, 12, 8, NORTH
+ db $00
+
+.CreditsNPCs_WaterClub
+ ; NPC ID, x, y, direction
+ db NPC_JOSHUA, 22, 8, SOUTH
+ db NPC_AMY, 22, 4, NORTH
+ db NPC_PLAYER_CREDITS, 18, 10, NORTH
+ db $00
+
+.CreditsNPCs_LightningClub
+ ; NPC ID, x, y, direction
+ db NPC_NICHOLAS, 6, 10, SOUTH
+ db NPC_BRANDON, 22, 12, NORTH
+ db NPC_ISAAC, 12, 4, NORTH
+ db NPC_PLAYER_CREDITS, 12, 10, NORTH
+ db $00
+
+.CreditsNPCs_GrassClub
+ ; NPC ID, x, y, direction
+ db NPC_KRISTIN, 4, 10, EAST
+ db NPC_HEATHER, 14, 16, SOUTH
+ db NPC_NIKKI, 12, 4, SOUTH
+ db NPC_PLAYER_CREDITS, 12, 6, NORTH
+ db $00
+
+.CreditsNPCs_PsychicClub
+ ; NPC ID, x, y, direction
+ db NPC_DANIEL, 8, 8, NORTH
+ db NPC_STEPHANIE, 22, 12, EAST
+ db NPC_MURRAY1, 12, 6, SOUTH
+ db NPC_PLAYER_CREDITS, 12, 8, NORTH
+ db $00
+
+.CreditsNPCs_ScienceClub
+ ; NPC ID, x, y, direction
+ db NPC_JOSEPH, 10, 10, WEST
+ db NPC_RICK, 4, 4, SOUTH
+ db NPC_PLAYER_CREDITS, 4, 6, NORTH
+ db $00
+
+.CreditsNPCs_FireClub
+ ; NPC ID, x, y, direction
+ db NPC_ADAM, 8, 14, SOUTH
+ db NPC_JONATHAN, 18, 10, SOUTH
+ db NPC_KEN, 14, 4, SOUTH
+ db NPC_PLAYER_CREDITS, 14, 6, NORTH
+ db $00
+
+.CreditsNPCs_ChallengeHall
+ ; NPC ID, x, y, direction
+ db NPC_HOST, 14, 4, SOUTH
+ db NPC_RONALD1, 18, 8, WEST
+ db NPC_PLAYER_CREDITS, 12, 8, EAST
+ db $00
+
+.CreditsNPCs_PokemonDome
+ ; NPC ID, x, y, direction
+ db NPC_COURTNEY, 18, 4, SOUTH
+ db NPC_STEVE, 22, 4, SOUTH
+ db NPC_JACK, 8, 4, SOUTH
+ db NPC_ROD, 14, 6, SOUTH
+ db NPC_PLAYER_CREDITS, 14, 10, NORTH
+ db $00
+; 0x1d9a6
+
+; bc = coordinates
+; e = OW map
+LoadOWMapForCreditsSequence: ; 1d9a6 (7:59a6)
+ push bc
+ push de
+ call EmptyScreen
+ pop de
+ pop bc
+
+ ; set input coordinates and map
+ ld a, c
+ ldh [hSCX], a
+ ld a, b
+ ldh [hSCY], a
+ ld a, e
+ ld [wCurMap], a
+
+ farcall LoadMapTilesAndPals
+ farcall Func_c9c7
+ farcall SafelyCopyBGMapFromSRAMToVRAM
+ farcall DoMapOWFrame
+ xor a
+ ld [wd4ca], a
+ ld [wd4cb], a
+ ld a, PALETTE_29
+ farcall LoadPaletteData
+ ret
+; 0x1d9d5
+
+CreditsSequenceCmd_LoadOWMap: ; 1d9d5 (7:59d5)
+ call LoadOWMapForCreditsSequence
+ jp AdvanceCreditsSequenceCmdPtrBy5
+; 0x1d9db
+
+CreditsSequenceCmd_DisableLCD: ; 1d9db (7:59db)
+ call DisableLCD
+ jp AdvanceCreditsSequenceCmdPtrBy2
+; 0x1d9e1
+
+CreditsSequenceCmd_FadeIn: ; 1d9e1 (7:59e1)
+ call DisableLCD
+ call Set_WD_on
+ farcall Func_10af9
+ jp AdvanceCreditsSequenceCmdPtrBy2
+; 0x1d9ee
+
+CreditsSequenceCmd_FadeOut: ; 1d9ee (7:59ee)
+ farcall Func_10ab4
+ call Func_3ca4
+ call EnableLCD
+ call DoFrameIfLCDEnabled
+ call DisableLCD
+ call Set_WD_off
+ jp AdvanceCreditsSequenceCmdPtrBy2
+; 0x1da04
+
+CreditsSequenceCmd_DrawRectangle: ; 1da04 (7:5a04)
+ ld a, c
+ or $20
+ ld e, a
+ ld d, $00
+ ld c, b
+ ld b, 20
+ xor a
+ lb hl, 0, 0
+ call FillRectangle
+ jp AdvanceCreditsSequenceCmdPtrBy4
+; 0x1da17
+
+CreditsSequenceCmd_PrintText: ; 1da17 (7:5a17)
+ ld a, $01
+ ld [wLineSeparation], a
+ push de
+ ld d, c
+ ld a, b
+ or $20
+ ld e, a
+ call InitTextPrinting
+ pop hl
+ call PrintTextNoDelay
+ jp AdvanceCreditsSequenceCmdPtrBy6
+; 0x1da2c
+
+CreditsSequenceCmd_PrintTextBox: ; 1da2c (7:5a2c)
+ ld a, $01
+ ld [wLineSeparation], a
+ push de
+ ld d, c
+ ld e, b
+ call InitTextPrinting
+ pop hl
+ call PrintTextNoDelay
+ jp AdvanceCreditsSequenceCmdPtrBy6
+; 0x1da3e
+
+CreditsSequenceCmd_InitOverlay: ; 1da3e (7:5a3e)
+ ld a, c
+ ld [wd647], a
+ ld a, b
+ ld [wd648], a
+ ld a, e
+ ld [wd649], a
+ ld a, d
+ ld [wd64a], a
+ call Func_1d765
+ jp AdvanceCreditsSequenceCmdPtrBy6
+; 0x1da54
+
+CreditsSequenceCmd_LoadNPC: ; 1da54 (7:5a54)
+ call LoadNPCForCreditsSequence
+ jp AdvanceCreditsSequenceCmdPtrBy6
+; 0x1da5a
+
+; bc = coordinates
+; e = direction
+; d = NPC ID
+LoadNPCForCreditsSequence: ; 1da5a (7:5a5a)
+ ld a, c
+ ld [wLoadNPCXPos], a
+ ld a, b
+ ld [wLoadNPCYPos], a
+ ld a, e
+ ld [wLoadNPCDirection], a
+ ld a, d
+ farcall LoadNPCSpriteData
+ ld a, [wNPCSpriteID]
+ farcall CreateSpriteAndAnimBufferEntry
+
+ ld c, SPRITE_ANIM_COORD_X
+ call GetSpriteAnimBufferProperty
+ ldh a, [hSCX]
+ ld c, a
+ ld a, [wLoadNPCXPos]
+ add a
+ add a
+ add a ; *8
+ add 8
+ sub c
+ ld [hli], a ; x
+ ldh a, [hSCY]
+ ld c, a
+ ld a, [wLoadNPCYPos]
+ add a
+ add a
+ add a ; *8
+ add 16
+ sub c
+ ld [hli], a ; y
+
+ ld a, [wNPCAnim]
+ ld c, a
+ ld a, [wLoadNPCDirection]
+ add c
+ farcall StartNewSpriteAnimation
+ ret
+; 0x1da9e
+
+CreditsSequenceCmd_InitVolcanoSprite: ; 1da9e (7:5a9e)
+ farcall OverworldMap_InitVolcanoSprite
+ jp AdvanceCreditsSequenceCmdPtrBy2
+; 0x1daa5
+
+CreditsSequenceCmd_TransformOverlay: ; 1daa5 (7:5aa5)
+; either stretches or shrinks overlay
+; to the input configurations
+ ld l, $00
+ ld a, [wd647]
+ call .Func_1dade
+ ld [wd647], a
+ ld a, [wd648]
+ ld c, b
+ call .Func_1dade
+ ld [wd648], a
+ ld a, [wd649]
+ ld c, e
+ call .Func_1dade
+ ld [wd649], a
+ ld a, [wd64a]
+ ld c, d
+ call .Func_1dade
+ ld [wd64a], a
+ ld a, l
+ or a
+ jr z, .advance_sequence
+ ld a, $01
+ ld [wd633], a
+ ret
+
+.advance_sequence
+ call Func_1d765
+ jp AdvanceCreditsSequenceCmdPtrBy6
+
+; compares a with c
+; if it's smaller: increase by 2 and increment l
+; if it's larger: decrease by 2 and increment l
+; if it's equal or $ff: do nothing
+.Func_1dade
+ cp $ff
+ jr z, .done
+ cp c
+ jr z, .done
+ inc l
+ jr c, .incr_a
+; decr a
+ dec a
+ dec a
+ jr .done
+.incr_a
+ inc a
+ inc a
+.done
+ ret
+; 0x1daef
diff --git a/src/engine/sequences/opening_sequence_commands.asm b/src/engine/sequences/opening_sequence_commands.asm
new file mode 100644
index 0000000..6f82387
--- /dev/null
+++ b/src/engine/sequences/opening_sequence_commands.asm
@@ -0,0 +1,349 @@
+Func_1d408: ; 1d408 (7:5408)
+ ld a, [wd633]
+ or a
+ jr z, .call_function
+ cp $ff
+ ret z
+ dec a
+ ld [wd633], a
+ ret
+
+.call_function
+ ld a, [wSequenceCmdPtr + 0]
+ ld l, a
+ ld a, [wSequenceCmdPtr + 1]
+ ld h, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld l, e
+ ld h, d
+ call CallHL2
+ jr c, Func_1d408
+ ret
+; 0x1d42e
+
+AdvanceOpeningSequenceCmdPtrBy2: ; 1d42e (7:542e)
+ ld a, 2
+ jr AdvanceOpeningSequenceCmdPtr
+
+AdvanceOpeningSequenceCmdPtrBy3: ; 1d432 (7:5432)
+ ld a, 3
+ jr AdvanceOpeningSequenceCmdPtr
+
+AdvanceOpeningSequenceCmdPtrBy4: ; 1d436 (7:5436)
+ ld a, 4
+; fallthrough
+
+AdvanceOpeningSequenceCmdPtr: ; 1d438 (7:5438)
+ push hl
+ ld hl, wSequenceCmdPtr
+ add [hl]
+ ld [hli], a
+ ld a, [hl]
+ adc 0
+ ld [hl], a
+ pop hl
+ ret
+; 0x1d444
+
+OpeningSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444)
+ ld c, $7
+ ld de, wTitleScreenSprites
+.loop
+ ld a, [de]
+ ld [wWhichSprite], a
+ farcall GetSpriteAnimCounter
+ cp $ff
+ jr nz, .no_carry
+ inc de
+ dec c
+ jr nz, .loop
+ call AdvanceOpeningSequenceCmdPtrBy2
+ scf
+ ret
+
+.no_carry
+ or a
+ ret
+; 0x1d460
+
+OpeningSequenceCmd_Wait: ; 1d460 (7:5460)
+ ld a, c
+ ld [wd633], a
+ call AdvanceOpeningSequenceCmdPtrBy3
+ scf
+ ret
+; 0x1d469
+
+OpeningSequenceCmd_SetOrbsAnimations: ; 1d469 (7:5469)
+ ld l, c
+ ld h, b
+
+ ld c, $7
+ ld de, wTitleScreenSprites
+.loop
+ push bc
+ push de
+ ld a, [de]
+ ld [wWhichSprite], a
+ ld a, [hli]
+ farcall StartSpriteAnimation
+ pop de
+ pop bc
+ inc de
+ dec c
+ jr nz, .loop
+
+ call AdvanceOpeningSequenceCmdPtrBy4
+ scf
+ ret
+; 0x1d486
+
+OpeningSequenceCmd_SetOrbsCoordinates: ; 1d486 (7:5486)
+ ld l, c
+ ld h, b
+
+ ld c, $7
+ ld de, wTitleScreenSprites
+.loop
+ push bc
+ push de
+ ld a, [de]
+ ld [wWhichSprite], a
+ push hl
+ ld c, SPRITE_ANIM_COORD_X
+ call GetSpriteAnimBufferProperty
+ ld e, l
+ ld d, h
+ pop hl
+ ld a, [hli]
+ add 8
+ ld [de], a ; x
+ inc de
+ ld a, [hli]
+ add 16
+ ld [de], a ; y
+ pop de
+ pop bc
+ inc de
+ dec c
+ jr nz, .loop
+
+ call AdvanceOpeningSequenceCmdPtrBy4
+ scf
+ ret
+; 0x1d4b0
+
+OpeningOrbAnimations_CharizardScene: ; 1d4b0 (7:54b0)
+ db $c0 ; GRASS
+ db $c1 ; FIRE
+ db $c1 ; WATER
+ db $c0 ; COLORLESS
+ db $c1 ; LIGHTNING
+ db $c0 ; PSYCHIC
+ db $c1 ; FIGHTING
+; 0x1d4b7
+
+OpeningOrbCoordinates_CharizardScene: ; 1d4b7 (7:54b7)
+ ; x coord, y coord
+ db 240, 28 ; GRASS
+ db 160, 120 ; FIRE
+ db 160, 8 ; WATER
+ db 240, 64 ; COLORLESS
+ db 160, 84 ; LIGHTNING
+ db 240, 100 ; PSYCHIC
+ db 160, 44 ; FIGHTING
+; 0x1d4c5
+
+OpeningOrbAnimations_ScytherScene: ; 1d4c5 (7:54c5)
+ db $c1 ; GRASS
+ db $c0 ; FIRE
+ db $c0 ; WATER
+ db $c1 ; COLORLESS
+ db $c0 ; LIGHTNING
+ db $c1 ; PSYCHIC
+ db $c0 ; FIGHTING
+; 0x1d4cc
+
+OpeningOrbCoordinates_ScytherScene: ; 1d4cc (7:54cc)
+ ; x coord, y coord
+ db 160, 28 ; GRASS
+ db 240, 120 ; FIRE
+ db 240, 8 ; WATER
+ db 160, 64 ; COLORLESS
+ db 240, 84 ; LIGHTNING
+ db 160, 100 ; PSYCHIC
+ db 240, 44 ; FIGHTING
+; 0x1d4da
+
+OpeningOrbAnimations_AerodactylScene: ; 1d4da (7:54da)
+ db $c2 ; GRASS
+ db $c5 ; FIRE
+ db $c8 ; WATER
+ db $cb ; COLORLESS
+ db $ce ; LIGHTNING
+ db $d1 ; PSYCHIC
+ db $d4 ; FIGHTING
+; 0x1d4e1
+
+OpeningOrbCoordinates_AerodactylScene: ; 1d4e1 (7:54e1)
+ ; x coord, y coord
+ db 240, 32 ; GRASS
+ db 160, 112 ; FIRE
+ db $A0, 16 ; WATER
+ db 240, 64 ; COLORLESS
+ db 160, 80 ; LIGHTNING
+ db 240, 96 ; PSYCHIC
+ db 160, 48 ; FIGHTING
+; 0x1d4ef
+
+OpeningOrbAnimations_InitialTitleScreen: ; 1d4ef (7:54ef)
+ db $c3 ; GRASS
+ db $c6 ; FIRE
+ db $c9 ; WATER
+ db $cc ; COLORLESS
+ db $cf ; LIGHTNING
+ db $d2 ; PSYCHIC
+ db $d5 ; FIGHTING
+; 0x1d4f6
+
+OpeningOrbCoordinates_InitialTitleScreen: ; 1d4f6 (7:54f6)
+ ; x coord, y coord
+ db 112, 144 ; GRASS
+ db 12, 144 ; FIRE
+ db 32, 144 ; WATER
+ db 92, 144 ; COLORLESS
+ db 52, 144 ; LIGHTNING
+ db 132, 144 ; PSYCHIC
+ db 72, 144 ; FIGHTING
+; 0x1d504
+
+OpeningOrbAnimations_InTitleScreen: ; 1d504 (7:5504)
+ db $c4 ; GRASS
+ db $c7 ; FIRE
+ db $ca ; WATER
+ db $cd ; COLORLESS
+ db $d0 ; LIGHTNING
+ db $d3 ; PSYCHIC
+ db $d6 ; FIGHTING
+; 0x1d50b
+
+OpeningOrbCoordinates_InTitleScreen: ; 1d50b (7:550b)
+ ; x coord, y coord
+ db 112, 76 ; GRASS
+ db 0, 28 ; FIRE
+ db 32, 76 ; WATER
+ db 92, 252 ; COLORLESS
+ db 52, 252 ; LIGHTNING
+ db 144, 28 ; PSYCHIC
+ db 72, 76 ; FIGHTING
+; 0x1d519
+
+OpeningSequenceCmd_PlayTitleScreenMusic: ; 1d519 (7:5519)
+ ld a, MUSIC_TITLESCREEN
+ call PlaySong
+ call AdvanceOpeningSequenceCmdPtrBy2
+ scf
+ ret
+; 0x1d523
+
+OpeningSequenceCmd_WaitSFX: ; 1d523 (7:5523)
+ call AssertSFXFinished
+ or a
+ jr nz, .no_carry
+ call AdvanceOpeningSequenceCmdPtrBy2
+ scf
+ ret
+
+.no_carry
+ or a
+ ret
+; 0x1d530
+
+OpeningSequenceCmd_PlaySFX: ; 1d530 (7:5530)
+ ld a, c
+ call PlaySFX
+ call AdvanceOpeningSequenceCmdPtrBy3
+ scf
+ ret
+; 0x1d539
+
+OpeningSequenceCmd_FadeIn: ; 1d539 (7:5539)
+ ld a, $01
+ ld [wd634], a
+ call AdvanceOpeningSequenceCmdPtrBy2
+ scf
+ ret
+; 0x1d543
+
+OpeningSequenceCmd_FadeOut: ; 1d543 (7:5543)
+ farcall Func_10d50
+ ld a, $01
+ ld [wd634], a
+ call AdvanceOpeningSequenceCmdPtrBy2
+ scf
+ ret
+; 0x1d551
+
+OpeningSequenceCmd_LoadCharizardScene: ; 1d551 (7:5551)
+ lb bc, 6, 3
+ ld a, SCENE_CHARIZARD_INTRO
+ jr LoadOpeningSceneAndUpdateSGBBorder
+
+OpeningSequenceCmd_LoadScytherScene: ; 1d558 (7:5558)
+ lb bc, 6, 3
+ ld a, SCENE_SCYTHER_INTRO
+ jr LoadOpeningSceneAndUpdateSGBBorder
+
+OpeningSequenceCmd_LoadAerodactylScene: ; 1d55f (7:555f)
+ lb bc, 6, 3
+ ld a, SCENE_AERODACTYL_INTRO
+; fallthrough
+
+LoadOpeningSceneAndUpdateSGBBorder: ; 1d564 (7:5564)
+ call LoadOpeningScene
+ ld l, %001010
+ lb bc, 0, 0
+ lb de, 20, 18
+ farcall Func_70498
+ scf
+ ret
+; 0x1d575
+
+OpeningSequenceCmd_LoadTitleScreenScene: ; 1d575 (7:5575)
+ lb bc, 0, 0
+ ld a, SCENE_TITLE_SCREEN
+ call LoadOpeningScene
+ call Func_1d59c
+ scf
+ ret
+; 0x1d582
+
+; a = scene ID
+; bc = coordinates for scene
+LoadOpeningScene: ; 1d582 (7:5582)
+ push af
+ push bc
+ call DisableLCD
+ pop bc
+ pop af
+
+ farcall _LoadScene ; TODO change func name?
+ farcall Func_10d17
+
+ xor a
+ ld [wd634], a
+ call AdvanceOpeningSequenceCmdPtrBy2
+ call EnableLCD
+ ret
+; 0x1d59c
+
+Func_1d59c: ; 1d59c (7:559c)
+ ret
+; 0x1d59d
diff --git a/src/macros/credits_sequence.asm b/src/macros/credits_sequence.asm
index 62e789e..defe92e 100644
--- a/src/macros/credits_sequence.asm
+++ b/src/macros/credits_sequence.asm
@@ -27,8 +27,8 @@ ENDM
; x coordinate
; y coordinate
; text ID
-credits_seq_print_text: MACRO
- dw CreditsSequenceCmd_PrintText
+credits_seq_print_text_box: MACRO
+ dw CreditsSequenceCmd_PrintTextBox
db \1, \2
tx \3
ENDM
@@ -36,8 +36,8 @@ ENDM
; x coordinate
; y coordinate
; text ID
-credits_seq_print_text_special: MACRO
- dw CreditsSequenceCmd_PrintTextSpecial
+credits_seq_print_text: MACRO
+ dw CreditsSequenceCmd_PrintText
db \1, \2
tx \3
ENDM
diff --git a/src/main.asm b/src/main.asm
index 407ea58..646c60e 100644
--- a/src/main.asm
+++ b/src/main.asm
@@ -23,6 +23,8 @@ INCLUDE "engine/bank06.asm"
SECTION "Bank 7", ROMX
INCLUDE "engine/bank07.asm"
+INCLUDE "engine/sequences/credits_sequence_commands.asm"
+INCLUDE "data/sequences/credits_sequence.asm"
SECTION "Booster Packs", ROMX
INCLUDE "engine/booster_packs.asm"