diff options
Diffstat (limited to 'engine/credits.asm')
-rw-r--r-- | engine/credits.asm | 621 |
1 files changed, 0 insertions, 621 deletions
diff --git a/engine/credits.asm b/engine/credits.asm deleted file mode 100644 index 1aaecf64a..000000000 --- a/engine/credits.asm +++ /dev/null @@ -1,621 +0,0 @@ -INCLUDE "constants.asm" - - -SECTION "Credits", ROMX - -Credits:: ; 109847 - bit 6, b ; Hall Of Fame - ld a, $0 - jr z, .okay - ld a, $40 -.okay - ld [wJumptableIndex], a - - ld a, [rSVBK] - push af - ld a, BANK(wGBCPalettes) - ld [rSVBK], a - - call ClearBGPalettes - call ClearTileMap - call ClearSprites - - ld hl, wCreditsFaux2bpp - ld c, $80 - ld de, $ff00 - -.load_loop - ld a, e - ld [hli], a - ld a, d - ld [hli], a - dec c - jr nz, .load_loop - - ld de, CreditsBorderGFX - ld hl, vTiles2 tile $20 - lb bc, BANK(CreditsBorderGFX), 9 - call Request2bpp - - ld de, CopyrightGFX - ld hl, vTiles2 tile $60 - lb bc, BANK(CopyrightGFX), 29 - call Request2bpp - - ld de, TheEndGFX - ld hl, vTiles2 tile $40 - lb bc, BANK(TheEndGFX), 16 - call Request2bpp - - ld a, $ff - ld [wCreditsBorderFrame], a - xor a - ld [wCreditsBorderMon], a - - call Credits_LoadBorderGFX - ld e, l - ld d, h - ld hl, vTiles2 - lb bc, BANK(CreditsMonsGFX), 16 - call Request2bpp - - call ConstructCreditsTilemap - xor a - ld [wCreditsLYOverride], a - - ld hl, wLYOverrides - ld bc, $100 - xor a - call ByteFill - - ld a, rSCX - $ff00 - ld [hLCDCPointer], a - - call GetCreditsPalette - call SetPalettes - ld a, [hVBlank] - push af - ld a, $5 - ld [hVBlank], a - ld a, $1 - ld [hInMenu], a - xor a - ld [hBGMapMode], a - ld [wCreditsPos], a - ld [wCreditsUnusedCD21], a - ld [wCreditsTimer], a - -.execution_loop - call Credits_HandleBButton - call Credits_HandleAButton - jr nz, .exit_credits - - call Credits_Jumptable - call DelayFrame - jr .execution_loop - -.exit_credits - call ClearBGPalettes - xor a - ld [hLCDCPointer], a - ld [hBGMapAddress], a - pop af - ld [hVBlank], a - pop af - ld [rSVBK], a - ret -; 1098fd - -Credits_HandleAButton: ; 1098fd - ld a, [hJoypadDown] - and A_BUTTON - ret z - ld a, [wJumptableIndex] - bit 7, a - ret -; 109908 - -Credits_HandleBButton: ; 109908 - ld a, [hJoypadDown] - and B_BUTTON - ret z - ld a, [wJumptableIndex] - bit 6, a - ret z - ld hl, wCreditsPos - ld a, [hli] - cp $d - jr nc, .okay - ld a, [hli] - and a - ret z -.okay - ld hl, wCreditsTimer - ld a, [hl] - and a - ret z - dec [hl] - ret -; 109926 - -Credits_Jumptable: ; 109926 - ld a, [wJumptableIndex] - and $f - ld e, a - ld d, 0 - ld hl, .Jumptable - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl -; 109937 - -.Jumptable: ; 109937 (42:5937) - dw ParseCredits - dw Credits_Next - dw Credits_Next - dw Credits_PrepBGMapUpdate - dw Credits_UpdateGFXRequestPath - dw Credits_RequestGFX - dw Credits_LYOverride - dw Credits_Next - dw Credits_Next - dw Credits_Next - dw Credits_UpdateGFXRequestPath - dw Credits_RequestGFX - dw Credits_LoopBack - -Credits_Next: ; 109951 (42:5951) - ld hl, wJumptableIndex - inc [hl] - ret - -Credits_LoopBack: ; 109956 (42:5956) - ld hl, wJumptableIndex - ld a, [hl] - and $f0 - ld [hl], a - ret - -Credits_PrepBGMapUpdate: ; 10995e (42:595e) - xor a - ld [hBGMapMode], a - jp Credits_Next - -Credits_UpdateGFXRequestPath: ; 109964 (42:5964) - call Credits_LoadBorderGFX - ld a, l - ld [wRequested2bppSource], a - ld a, h - ld [wRequested2bppSource + 1], a - ld a, LOW(vTiles2) - ld [wRequested2bppDest], a - ld a, HIGH(vTiles2) - ld [wRequested2bppDest + 1], a - jr Credits_RequestGFX - -Credits_RequestGFX: ; 10997b (42:597b) - xor a - ld [hBGMapMode], a - ld a, $8 - ld [wRequested2bpp], a - jp Credits_Next - -Credits_LYOverride: ; 109986 (42:5986) - ld a, [rLY] - cp $30 - jr c, Credits_LYOverride - ld a, [wCreditsLYOverride] - dec a - dec a - ld [wCreditsLYOverride], a - ld hl, wLYOverrides + $1f - call .Fill - ld hl, wLYOverrides + $87 - call .Fill - jp Credits_Next - -.Fill: ; 1099a3 (42:59a3) - ld c, $8 -.loop - ld [hli], a - dec c - jr nz, .loop - ret -; 1099aa - - -ParseCredits: ; 1099aa - ld hl, wJumptableIndex - bit 7, [hl] - jp nz, .done - -; Wait until the timer has run out to parse the next command. - ld hl, wCreditsTimer - ld a, [hl] - and a - jr z, .parse - -; One tick has passed. - dec [hl] - jp .done - -.parse -; First, let's clear the current text display, -; starting from line 5. - xor a - ld [hBGMapMode], a - hlcoord 0, 5 - ld bc, 20 * 12 - ld a, " " - call ByteFill - -; Then read the script. - -.loop - call .get - -; Commands: - cp CREDITS_END - jp z, .end - cp CREDITS_WAIT - jr z, .wait - cp CREDITS_SCENE - jr z, .scene - cp CREDITS_CLEAR - jr z, .clear - cp CREDITS_MUSIC - jr z, .music - cp CREDITS_WAIT2 - jr z, .wait2 - cp CREDITS_THEEND - jr z, .theend - -; If it's not a command, it's a string identifier. - - push af - ld e, a - ld d, 0 - ld hl, CreditsStrings - add hl, de - add hl, de - ld a, [hli] - ld d, [hl] - ld e, a - pop af - -; Strings spanning multiple lines have special cases. - - cp COPYRIGHT - jr z, .copyright - - cp STAFF - jr c, .staff - -; The rest start from line 6. - - hlcoord 0, 6 - jr .print - -.copyright - hlcoord 2, 6 - jr .print - -.staff - hlcoord 0, 6 - -.print -; Print strings spaced every two lines. - call .get - ld bc, 20 * 2 - call AddNTimes - call PlaceString - jr .loop - -.theend -; Display "The End" graphic. - call Credits_TheEnd - jr .loop - -.scene -; Update the scene number and corresponding palette. - call .get - ld [wCreditsBorderMon], a ; scene - xor a - ld [wCreditsBorderFrame], a ; frame - call GetCreditsPalette - call SetPalettes ; update hw pal registers - jr .loop - -.clear -; Clear the banner. - ld a, $ff - ld [wCreditsBorderFrame], a ; frame - jr .loop - -.music -; Play the credits music. - ld de, MUSIC_CREDITS - push de - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - pop de - call PlayMusic - jp .loop - -.wait2 -; Wait for some amount of ticks. - call .get - ld [wCreditsTimer], a - jr .done - -.wait -; Wait for some amount of ticks, and do something else. - call .get - ld [wCreditsTimer], a - - xor a - ld [hBGMapThird], a - ld a, 1 - ld [hBGMapMode], a - -.done - jp Credits_Next - -.end -; Stop execution. - ld hl, wJumptableIndex - set 7, [hl] - ld a, 32 - ld [wMusicFade], a - ld a, LOW(MUSIC_POST_CREDITS) - ld [wMusicFadeID], a - ld a, HIGH(MUSIC_POST_CREDITS) - ld [wMusicFadeID + 1], a - ret - -.get -; Get byte wCreditsPos from CreditsScript - push hl - push de - ld a, [wCreditsPos] - ld e, a - ld a, [wCreditsPos+1] - ld d, a - ld hl, CreditsScript - add hl, de - - inc de - ld a, e - ld [wCreditsPos], a - ld a, d - ld [wCreditsPos+1], a - ld a, [hl] - pop de - pop hl - ret -; 109a95 - - -ConstructCreditsTilemap: ; 109a95 (42:5a95) - xor a - ld [hBGMapMode], a - ld a, $c - ld [hBGMapAddress], a - - ld a, $28 - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - call ByteFill - - ld a, $7f - hlcoord 0, 4 - ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH - call ByteFill - - hlcoord 0, 4 - ld a, $24 - call DrawCreditsBorder - - hlcoord 0, 17 - ld a, $20 - call DrawCreditsBorder - - hlcoord 0, 0, wAttrMap - ld bc, 4 * SCREEN_WIDTH - xor a - call ByteFill - - hlcoord 0, 4, wAttrMap - ld bc, SCREEN_WIDTH - ld a, $1 - call ByteFill - - hlcoord 0, 5, wAttrMap - ld bc, 12 * SCREEN_WIDTH - ld a, $2 - call ByteFill - - hlcoord 0, 17, wAttrMap - ld bc, SCREEN_WIDTH - ld a, $1 - call ByteFill - - call WaitBGMap2 - xor a - ld [hBGMapMode], a - ld [hBGMapAddress], a - hlcoord 0, 0 - call .InitTopPortion - call WaitBGMap2 - ret - -.InitTopPortion: ; 109aff (42:5aff) - ld b, 5 -.outer_loop - push hl - ld de, SCREEN_WIDTH - 3 - ld c, 4 - xor a -.inner_loop -rept 3 - ld [hli], a - inc a -endr - ld [hl], a - inc a - add hl, de - dec c - jr nz, .inner_loop - pop hl -rept 4 - inc hl -endr - dec b - jr nz, .outer_loop - ret - -DrawCreditsBorder: ; 109b1d (42:5b1d) - ld c, SCREEN_WIDTH / 4 -.loop - push af -rept 3 - ld [hli], a - inc a -endr - ld [hli], a - pop af - dec c - jr nz, .loop - ret - -GetCreditsPalette: ; 109b2c - call .GetPalAddress - - push hl - ld a, 0 - call .UpdatePals - pop hl - ret - -.GetPalAddress: -; Each set of palette data is 24 bytes long. - ld a, [wCreditsBorderMon] ; scene - and %11 - add a - add a ; * 8 - add a - ld e, a - ld d, 0 - ld hl, CreditsPalettes - add hl, de - add hl, de ; * 3 - add hl, de - ret - -.UpdatePals: -; Update the first three colors in both palette buffers. - push af - push hl - add LOW(wBGPals1) - ld e, a - ld a, 0 - adc HIGH(wBGPals1) - ld d, a - ld bc, 24 - call CopyBytes - - pop hl - pop af - add LOW(wBGPals2) - ld e, a - ld a, 0 - adc HIGH(wBGPals2) - ld d, a - ld bc, 24 - call CopyBytes - ret - -CreditsPalettes: -INCLUDE "gfx/credits/credits.pal" -; 109bca - -Credits_LoadBorderGFX: ; 109bca (42:5bca) - ld hl, wCreditsBorderFrame - ld a, [hl] - cp $ff - jr z, .init - - and %11 - ld e, a - inc a - and %11 - ld [hl], a - ld a, [wCreditsBorderMon] - and %11 - add a - add a - add e - add a - ld e, a - ld d, 0 - ld hl, .Frames - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ret - -.init - ld hl, wCreditsFaux2bpp - ret -; 109bf1 (42:5bf1) - -.Frames: ; 109bf1 - dw CreditsPichuGFX - dw CreditsPichuGFX + 16 tiles - dw CreditsPichuGFX + 32 tiles - dw CreditsPichuGFX + 48 tiles - dw CreditsSmoochumGFX - dw CreditsSmoochumGFX + 16 tiles - dw CreditsSmoochumGFX + 32 tiles - dw CreditsSmoochumGFX + 48 tiles - dw CreditsDittoGFX - dw CreditsDittoGFX + 16 tiles - dw CreditsDittoGFX + 32 tiles - dw CreditsDittoGFX + 48 tiles - dw CreditsIgglybuffGFX - dw CreditsIgglybuffGFX + 16 tiles - dw CreditsIgglybuffGFX + 32 tiles - dw CreditsIgglybuffGFX + 48 tiles -; 109c11 - -Credits_TheEnd: ; 109c11 (42:5c11) - ld a, $40 - hlcoord 6, 9 - call .Load - hlcoord 6, 10 -.Load: ; 109c1c (42:5c1c) - ld c, 8 -.loop - ld [hli], a - inc a - dec c - jr nz, .loop - ret -; 109c24 (42:5c24) - - -CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp" - -CreditsMonsGFX: -CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp" -CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp" -CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp" -CreditsIgglybuffGFX: INCBIN "gfx/credits/igglybuff.2bpp" - -INCLUDE "data/credits_script.asm" -INCLUDE "data/credits_strings.asm" |