summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2021-05-21 11:40:26 +0100
committerElectroDeoxys <ElectroDeoxys@gmail.com>2021-05-21 11:40:26 +0100
commitf765580db088c82c58e95e87d57eea8732355ff1 (patch)
tree28ee89e745b749906555a1882bb95df8f7833c38 /src
parent96a93f444cff3df152a03d3722080600dc3a9e88 (diff)
Extract Credits sequence
Diffstat (limited to 'src')
-rw-r--r--src/constants/npc_constants.asm2
-rw-r--r--src/engine/bank04.asm127
-rw-r--r--src/engine/bank07.asm943
-rw-r--r--src/macros/credits_sequence.asm99
-rw-r--r--src/macros/opening_sequence.asm6
-rw-r--r--src/text/text9.asm4
-rw-r--r--src/text/text_offsets.asm4
-rw-r--r--src/wram.asm19
8 files changed, 1163 insertions, 41 deletions
diff --git a/src/constants/npc_constants.asm b/src/constants/npc_constants.asm
index 76fb3ed..1aac946 100644
--- a/src/constants/npc_constants.asm
+++ b/src/constants/npc_constants.asm
@@ -191,7 +191,7 @@ NPC_DATA_LENGTH EQU const_value
const NPC_MURRAY2 ; $70
const NPC_RONALD2 ; $71
const NPC_RONALD3 ; $72
- const NPC_73 ; $73 (unused)
+ const NPC_PLAYER_CREDITS ; $73
; flags in LOADED_NPC_FLAGS
const_def 4
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index e3e8734..0fcf6d6 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -381,10 +381,55 @@ Func_10a9b: ; 10a9b (4:4a9b)
; 0x10ab4
Func_10ab4: ; 10ab4 (4:4ab4)
- INCROM $10ab4, $10af9
+ ld a, [wLCDC]
+ bit 7, a
+ jr z, .lcd_off
+ ld a, [wd293]
+ ld [wd294], a
+ ld [wd295], a
+ ld [wd296], a
+ ld de, PALRGB_WHITE
+ ld hl, wTempBackgroundPalettesCGB
+ ld bc, NUM_BACKGROUND_PALETTES palettes
+ call FillMemoryWithDE
+ call RestoreFirstColorInOBPals
+ call Func_10b5e
+ call DisableLCD
+ ret
+
+.lcd_off
+ ld a, [wd293]
+ ld [wBGP], a
+ ld [wOBP0], a
+ ld [wOBP1], a
+ ld de, PALRGB_WHITE
+ ld hl, wBackgroundPalettesCGB
+ ld bc, NUM_BACKGROUND_PALETTES palettes
+ call FillMemoryWithDE
+ call FlushAllPalettes
+ ret
+; 0x10af9
Func_10af9: ; 10af9 (4:4af9)
- INCROM $10af9, $10b28
+ call BackupPalsAndSetWhite
+ call RestoreFirstColorInOBPals
+ call FlushAllPalettes
+ call EnableLCD
+ jp Func_10b5e
+; 0x10b08
+
+BackupPalsAndSetWhite: ; 10b08 (4:4b08)
+ ld a, [wBGP]
+ ld [wd294], a
+ ld a, [wOBP0]
+ ld [wd295], a
+ ld a, [wOBP1]
+ ld [wd296], a
+ ld hl, wBackgroundPalettesCGB
+ ld de, wTempBackgroundPalettesCGB
+ ld bc, NUM_BACKGROUND_PALETTES palettes + NUM_OBJECT_PALETTES palettes
+ call CopyDataHLtoDE_SaveRegisters
+ jr Func_10b28 ; can be fallthrough
; fills wBackgroundPalettesCGB with white pal
Func_10b28: ; 10b28 (4:4b28)
@@ -399,7 +444,57 @@ Func_10b28: ; 10b28 (4:4b28)
ret
; 0x10b41
- INCROM $10b41, $10b85
+; gets from backup OB pals the first color
+; of each pal and writes them in wObjectPalettesCGB
+RestoreFirstColorInOBPals: ; 10b41 (4:4b41)
+ ld hl, wTempObjectPalettesCGB
+ ld de, wObjectPalettesCGB
+ ld c, NUM_OBJECT_PALETTES
+.loop_pals
+ push bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ld bc, CGB_PAL_SIZE - 1
+ add hl, bc
+ ld a, c
+ add e
+ ld e, a
+ ld a, b
+ adc d
+ ld d, a
+ pop bc
+ dec c
+ jr nz, .loop_pals
+ ret
+; 0x10b5e
+
+Func_10b5e: ; 10b5e (4:4b5e)
+ ld a, [wVBlankCounter]
+ push af
+ ld c, $10
+.loop
+ push bc
+ ld a, c
+ and $03
+ cp $00
+ call z, Func_10b85
+ call FadeBGPalIntoTemp3
+ call FadeOBPalIntoTemp
+ call FlushAllPalettes
+ call DoFrameIfLCDEnabled
+ pop bc
+ dec c
+ dec c
+ jr nz, .loop
+ pop af
+ ld b, a
+ ld a, [wVBlankCounter]
+ sub b
+ ret
+; 0x10b85
; does something with wBGP given wd294
; mixes them into a single value?
@@ -488,7 +583,13 @@ Func_10b85: ; 10b85 (4:4b85)
db %11 ; b = %11 | c = %11
; 0x10be1
- INCROM $10be1, $10bec
+FadeOBPalIntoTemp: ; 10be1 (4:4be1)
+ push bc
+ ld c, 4 palettes
+ ld hl, wObjectPalettesCGB
+ ld de, wTempObjectPalettesCGB
+ jr FadePalIntoAnother
+; 0x10bec
FadeBGPalIntoTemp1: ; 10bec (4:4bec)
push bc
@@ -504,6 +605,7 @@ FadeBGPalIntoTemp2: ; 10bf7 (4:4bf7)
ld de, wTempBackgroundPalettesCGB + 4 palettes
jr FadePalIntoAnother
+FadeBGPalIntoTemp3: ; 10c02 (4:4c02)
push bc
ld c, 4 palettes
ld hl, wBackgroundPalettesCGB
@@ -3823,7 +3925,22 @@ Func_12871: ; 12871 (4:6871)
INCROM $12871, $1288c
Func_1288c: ; 1288c (4:688c)
- INCROM $1288c, $128a9
+ push hl
+ push bc
+ push de
+ ld a, %11100100
+ ld [wBGP], a
+ ld [wOBP0], a
+ ld [wOBP1], a
+ ld a, 4
+ ld [wTextBoxFrameType], a
+ bank1call SetDefaultPalettes
+ call FlushAllPalettes
+ pop de
+ pop bc
+ pop hl
+ ret
+; 0x128a9
DisplayPlayerNamingScreen:: ; 128a9 (4:68a9)
; clear the name buffer.
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index ce48b81..ff8fc9a 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -2446,7 +2446,7 @@ OpeningSequenceCmd_WaitOrbsAnimation: ; 1d444 (7:5444)
ret
; 0x1d460
-OpeningSequenceCmd_Delay: ; 1d460 (7:5460)
+OpeningSequenceCmd_Wait: ; 1d460 (7:5460)
ld a, c
ld [wd633], a
call AdvanceOpeningSequenceCmdPtrBy3
@@ -2728,31 +2728,31 @@ OpeningSequence: ; 1d59d (7:559d)
opening_seq_play_sfx SFX_58
opening_seq_set_orbs_coordinates OpeningOrbCoordinates_CharizardScene
opening_seq_set_orbs_animations OpeningOrbAnimations_CharizardScene
- opening_seq_delay 44
+ opening_seq_wait 44
opening_seq_fade_in
- opening_seq_delay 44
+ opening_seq_wait 44
opening_seq_fade_out
- opening_seq_delay 30
+ 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_delay 44
+ opening_seq_wait 44
opening_seq_fade_in
- opening_seq_delay 44
+ opening_seq_wait 44
opening_seq_fade_out
- opening_seq_delay 30
+ 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_delay 44
+ opening_seq_wait 44
opening_seq_fade_in
- opening_seq_delay 100
+ opening_seq_wait 100
opening_seq_fade_out
- opening_seq_delay 60
+ opening_seq_wait 60
opening_seq_load_title_screen_scene
opening_seq_play_sfx SFX_5A
@@ -2760,13 +2760,13 @@ OpeningSequence: ; 1d59d (7:559d)
opening_seq_set_orbs_animations OpeningOrbAnimations_InitialTitleScreen
opening_seq_wait_orbs_animation
opening_seq_fade_in
- opening_seq_delay 16
+ 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_delay 60
+ opening_seq_wait 60
opening_seq_end
; 0x1d614
@@ -2815,7 +2815,102 @@ Func_1d758: ; 1d758 (7:5758)
INCROM $1d758, $1d765
Func_1d765: ; 1d765 (7:5765)
- INCROM $1d765, $1d7fc
+ push hl
+ push bc
+ push de
+ xor a
+ ldh [hWY], a
+
+ ld hl, wd659
+ ld de, wd65f
+ ld a, [wd648]
+ or a
+ jr nz, .asm_1d785
+ ld a, $a7
+ ldh [hWX], a
+ ld [hli], a
+ push hl
+ ld hl, wLCDC
+ set 1, [hl]
+ pop hl
+ jr .asm_1d7e2
+
+.asm_1d785
+ ld a, [wd647]
+ or a
+ jr z, .asm_1d79e
+ dec a
+ ld [de], a
+ inc de
+ ld a, $a7
+ ldh [hWX], a
+ ld [hli], a
+ push hl
+ ld hl, wLCDC
+ set 1, [hl]
+ pop hl
+ ld a, $07
+ jr .asm_1d7a9
+
+.asm_1d79e
+ ld a, $07
+ ldh [hWX], a
+ push hl
+ ld hl, wLCDC
+ res 1, [hl]
+ pop hl
+.asm_1d7a9
+ ld [hli], a
+ ld a, [wd647]
+ dec a
+ ld c, a
+ ld a, [wd648]
+ add c
+ ld c, a
+ ld a, [wd649]
+ dec a
+ cp c
+ jr c, .asm_1d7d4
+ jr z, .asm_1d7d4
+ ld a, c
+ ld [de], a
+ inc de
+ push af
+ ld a, $a7
+ ld [hli], a
+ pop bc
+ ld a, [wd64a]
+ or a
+ jr z, .asm_1d7e2
+ ld a, [wd649]
+ dec a
+ ld [de], a
+ inc de
+ ld a, $07
+ ld [hli], a
+
+.asm_1d7d4
+ ld a, [wd649]
+ dec a
+ ld c, a
+ ld a, [wd64a]
+ add c
+ ld [de], a
+ inc de
+ ld a, $a7
+ ld [hli], a
+.asm_1d7e2
+ ld a, $ff
+ ld [de], a
+ ld a, $01
+ ld [wd665], a
+ pop de
+ pop bc
+ pop hl
+ ret
+; 0x1d7ee
+
+ INCROM $1d7ee, $1d7fc
Func_1d7fc: ; 1d7fc (7:57fc)
ld a, LOW(CreditsSequence)
@@ -2828,7 +2923,39 @@ Func_1d7fc: ; 1d7fc (7:57fc)
; 0x1d80b
Func_1d80b: ; 1d80b (7:580b)
- INCROM $1d80b, $1d835
+ 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
@@ -2862,20 +2989,216 @@ AdvanceCreditsSequenceCmdPtr: ; 1d847 (7:5847)
ret
; 0x1d853
- INCROM $1d853, $1d9a6
+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
-Func_1d9a6: ; 1d9a6 (7:59a6)
+.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
@@ -2883,26 +3206,596 @@ Func_1d9a6: ; 1d9a6 (7:59a6)
xor a
ld [wd4ca], a
ld [wd4cb], a
- ld a, $1d
+ ld a, PALETTE_29
farcall LoadPaletteData
ret
; 0x1d9d5
-Func_1d9d5: ; 1d9d5 (7:59d5)
- call Func_1d9a6
+CreditsSequenceCmd_LoadOWMap: ; 1d9d5 (7:59d5)
+ call LoadOWMapForCreditsSequence
jp AdvanceCreditsSequenceCmdPtrBy5
; 0x1d9db
-Func_1d9db: ; 1d9db (7:59db)
+CreditsSequenceCmd_DisableLCD: ; 1d9db (7:59db)
call DisableLCD
jp AdvanceCreditsSequenceCmdPtrBy2
; 0x1d9e1
- INCROM $1d9e1, $1daef
+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)
- dw Func_1d9db
- dw Func_1d9d5
-; 0x1daf3
+ 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, Text07b3
+ 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, Text07b4
+ 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, Text07b5
+ 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, Text07b6
+ 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, Text07b7
+ 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, Text07b8
+ 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, Text07b9
+ 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, Text07ba
+ 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, Text07bb
+ 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, Text07bc
+ 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, Text07bd
+ 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, Text07be
+ 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, Text07bf
+ 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, Text07c0
+ 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, Text07c1
+ 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, Text07c2
+ 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, Text07c3
+ 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, Text07c4
+ 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, Text07c5
+ 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, Text07c6
+ 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, Text07c7
+ 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, Text07c8
+ 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, Text07c9
+ 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, Text07ca
+ 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, Text07cb
+ 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, Text07cc
+ 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, Text07cd
+ 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, Text07ce
+ 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, Text07cf
+ 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, Text07d0
+ 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, Text07d1
+ 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, Text07d2
+ 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, Text07d3
+ 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 $1daf3, $1e1c4
+ INCROM $1e1c4, $1e1c4
diff --git a/src/macros/credits_sequence.asm b/src/macros/credits_sequence.asm
new file mode 100644
index 0000000..62e789e
--- /dev/null
+++ b/src/macros/credits_sequence.asm
@@ -0,0 +1,99 @@
+credits_seq_disable_lcd: MACRO
+ dw CreditsSequenceCmd_DisableLCD
+ENDM
+
+; x coordinate
+; y coordinate
+; OVERWORLD_* constant
+credits_seq_load_ow_map: MACRO
+ dw CreditsSequenceCmd_LoadOWMap
+ db \1, \2, \3
+ENDM
+
+credits_seq_init_volcano_sprite: MACRO
+ dw CreditsSequenceCmd_InitVolcanoSprite
+ENDM
+
+credits_seq_init_overlay: MACRO
+ dw CreditsSequenceCmd_InitOverlay
+ db \1, \2, \3, \4
+ENDM
+
+credits_seq_transform_overlay: MACRO
+ dw CreditsSequenceCmd_TransformOverlay
+ db \1, \2, \3, \4
+ENDM
+
+; x coordinate
+; y coordinate
+; text ID
+credits_seq_print_text: MACRO
+ dw CreditsSequenceCmd_PrintText
+ db \1, \2
+ tx \3
+ENDM
+
+; x coordinate
+; y coordinate
+; text ID
+credits_seq_print_text_special: MACRO
+ dw CreditsSequenceCmd_PrintTextSpecial
+ db \1, \2
+ tx \3
+ENDM
+
+credits_seq_fade_in: MACRO
+ dw CreditsSequenceCmd_FadeIn
+ENDM
+
+credits_seq_fade_out: MACRO
+ dw CreditsSequenceCmd_FadeOut
+ENDM
+
+; frames to wait
+credits_seq_wait: MACRO
+ dw CreditsSequenceCmd_Wait
+ db \1
+ENDM
+
+; x coordinate
+; y coordinate
+; direction
+; NPC ID
+credits_seq_load_npc: MACRO
+ dw CreditsSequenceCmd_LoadNPC
+ db \1, \2, \3, \4
+ENDM
+
+; y offset
+; heigh
+credits_seq_draw_rectangle: MACRO
+ dw CreditsSequenceCmd_DrawRectangle
+ db \1, \2
+ENDM
+
+; x coordinate
+; y coordinate
+; scene ID
+credits_seq_load_scene: MACRO
+ dw CreditsSequenceCmd_LoadScene
+ db \1, \2, \3
+ENDM
+
+; x coordinate
+; y coordinate
+; booster scene ID
+credits_seq_load_booster: MACRO
+ dw CreditsSequenceCmd_LoadBooster
+ db \1, \2, \3
+ENDM
+
+; index of beaten Club Master
+credits_seq_load_club_map: MACRO
+ dw CreditsSequenceCmd_LoadClubMap
+ db \1
+ENDM
+
+credits_seq_end: MACRO
+ credits_seq_wait $ff
+ENDM
diff --git a/src/macros/opening_sequence.asm b/src/macros/opening_sequence.asm
index 7b72d13..a19fc6d 100644
--- a/src/macros/opening_sequence.asm
+++ b/src/macros/opening_sequence.asm
@@ -3,8 +3,8 @@ opening_seq_wait_orbs_animation: MACRO
ENDM
; argument = frames to delay
-opening_seq_delay: MACRO
- dw OpeningSequenceCmd_Delay
+opening_seq_wait: MACRO
+ dw OpeningSequenceCmd_Wait
db \1
ENDM
@@ -59,5 +59,5 @@ opening_seq_load_title_screen_scene: MACRO
ENDM
opening_seq_end: MACRO
- opening_seq_delay $ff
+ opening_seq_wait $ff
ENDM
diff --git a/src/text/text9.asm b/src/text/text9.asm
index 9bd93af..95ea006 100644
--- a/src/text/text9.asm
+++ b/src/text/text9.asm
@@ -719,13 +719,13 @@ Text07b0: ; 56478 (15:6478)
line "when we Duel again!"
done
-Text07b1: ; 564db (15:64db)
+PokemonTradingCardGameStaffText: ; 564db (15:64db)
text ""
line " Pokémon Trading Card Game "
line " Staff"
done
-Text07b2: ; 56518 (15:6518)
+ProducersText: ; 56518 (15:6518)
text ""
line " Producers"
line ""
diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm
index 10a58e8..a7f727e 100644
--- a/src/text/text_offsets.asm
+++ b/src/text/text_offsets.asm
@@ -1970,8 +1970,8 @@ TextOffsets:: ; 34000 (d:4000)
textpointer Text07ae ; 0x07ae
textpointer Text07af ; 0x07af
textpointer Text07b0 ; 0x07b0
- textpointer Text07b1 ; 0x07b1
- textpointer Text07b2 ; 0x07b2
+ textpointer PokemonTradingCardGameStaffText ; 0x07b1
+ textpointer ProducersText ; 0x07b2
textpointer Text07b3 ; 0x07b3
textpointer Text07b4 ; 0x07b4
textpointer Text07b5 ; 0x07b5
diff --git a/src/wram.asm b/src/wram.asm
index 8195f2e..7cfb777 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -2512,9 +2512,12 @@ wd296:: ; d296
; temporarily holds the palettes from
; wBackgroundPalettesCGB
wTempBackgroundPalettesCGB:: ; d297
- ds 8 palettes
+ ds NUM_BACKGROUND_PALETTES palettes
- ds $40
+; temporarily holds the palettes from
+; wObjectPalettesCGB
+wTempObjectPalettesCGB:: ; d2d7
+ ds NUM_OBJECT_PALETTES palettes
wd317:: ; d317
ds $1
@@ -3054,7 +3057,17 @@ wd635:: ; d635
wStartMenuParams:: ; d636
ds $11
- ds $4
+wd647:: ; d647
+ ds $1
+
+wd648:: ; d648
+ ds $1
+
+wd649:: ; d649
+ ds $1
+
+wd64a:: ; d64a
+ ds $1
; wd64b to wd665 used by Func_3e44
wd64b:: ; d64b