diff options
Diffstat (limited to 'engine/titlescreen.asm')
-rwxr-xr-x | engine/titlescreen.asm | 403 |
1 files changed, 0 insertions, 403 deletions
diff --git a/engine/titlescreen.asm b/engine/titlescreen.asm deleted file mode 100755 index 03a5832d..00000000 --- a/engine/titlescreen.asm +++ /dev/null @@ -1,403 +0,0 @@ -; copy text of fixed length NAME_LENGTH (like player name, rival name, mon names, ...) -CopyFixedLengthText: - ld bc, NAME_LENGTH - jp CopyData - -SetDefaultNamesBeforeTitlescreen: - ld hl, NintenText - ld de, wPlayerName - call CopyFixedLengthText - ld hl, SonyText - ld de, wRivalName - call CopyFixedLengthText - xor a - ld [hWY], a - ld [wLetterPrintingDelayFlags], a - ld hl, wd732 - ld [hli], a - ld [hli], a - ld [hl], a - ld a, BANK(Music_TitleScreen) - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - -DisplayTitleScreen: - call GBPalWhiteOut - ld a, $1 - ld [H_AUTOBGTRANSFERENABLED], a - xor a - ld [hTilesetType], a - ld [hSCX], a - ld a, $40 - ld [hSCY], a - ld a, $90 - ld [hWY], a - call ClearScreen - call DisableLCD - call LoadFontTilePatterns - ld hl, NintendoCopyrightLogoGraphics - ld de, vTitleLogo2 + $100 - ld bc, $50 - ld a, BANK(NintendoCopyrightLogoGraphics) - call FarCopyData2 - ld hl, GamefreakLogoGraphics - ld de, vTitleLogo2 + $100 + $50 - ld bc, $90 - ld a, BANK(GamefreakLogoGraphics) - call FarCopyData2 - ld hl, PokemonLogoGraphics - ld de, vTitleLogo - ld bc, $600 - ld a, BANK(PokemonLogoGraphics) - call FarCopyData2 ; first chunk - ld hl, PokemonLogoGraphics+$600 - ld de, vTitleLogo2 - ld bc, $100 - ld a, BANK(PokemonLogoGraphics) - call FarCopyData2 ; second chunk - ld hl, Version_GFX - ld de, vChars2 + $600 - (Version_GFXEnd - Version_GFX - $50) - ld bc, Version_GFXEnd - Version_GFX - ld a, BANK(Version_GFX) - call FarCopyDataDouble - call ClearBothBGMaps - -; place tiles for pokemon logo (except for the last row) - coord hl, 2, 1 - ld a, $80 - ld de, SCREEN_WIDTH - ld c, 6 -.pokemonLogoTileLoop - ld b, $10 - push hl -.pokemonLogoTileRowLoop ; place tiles for one row - ld [hli], a - inc a - dec b - jr nz, .pokemonLogoTileRowLoop - pop hl - add hl, de - dec c - jr nz, .pokemonLogoTileLoop - -; place tiles for the last row of the pokemon logo - coord hl, 2, 7 - ld a, $31 - ld b, $10 -.pokemonLogoLastTileRowLoop - ld [hli], a - inc a - dec b - jr nz, .pokemonLogoLastTileRowLoop - - call DrawPlayerCharacter - -; put a pokeball in the player's hand - ld hl, wOAMBuffer + $28 - ld a, $74 - ld [hl], a - -; place tiles for title screen copyright - coord hl, 2, 17 - ld de, .tileScreenCopyrightTiles - ld b, $10 -.tileScreenCopyrightTilesLoop - ld a, [de] - ld [hli], a - inc de - dec b - jr nz, .tileScreenCopyrightTilesLoop - - jr .next - -.tileScreenCopyrightTiles - db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc. - -.next - call SaveScreenTilesToBuffer2 - call LoadScreenTilesFromBuffer2 - call EnableLCD -IF DEF(_RED) - ld a, CHARMANDER ; which Pokemon to show first on the title screen -ENDC -IF DEF(_BLUE) - ld a, SQUIRTLE ; which Pokemon to show first on the title screen -ENDC - - ld [wTitleMonSpecies], a - call LoadTitleMonSprite - ld a, (vBGMap0 + $300) / $100 - call TitleScreenCopyTileMapToVRAM - call SaveScreenTilesToBuffer1 - ld a, $40 - ld [hWY], a - call LoadScreenTilesFromBuffer2 - ld a, vBGMap0 / $100 - call TitleScreenCopyTileMapToVRAM - ld b, SET_PAL_TITLE_SCREEN - call RunPaletteCommand - call GBPalNormal - ld a, %11100100 - ld [rOBP0], a - -; make pokemon logo bounce up and down - ld bc, hSCY ; background scroll Y - ld hl, .TitleScreenPokemonLogoYScrolls -.bouncePokemonLogoLoop - ld a, [hli] - and a - jr z, .finishedBouncingPokemonLogo - ld d, a - cp -3 - jr nz, .skipPlayingSound - ld a, SFX_INTRO_CRASH - call PlaySound -.skipPlayingSound - ld a, [hli] - ld e, a - call .ScrollTitleScreenPokemonLogo - jr .bouncePokemonLogoLoop - -.TitleScreenPokemonLogoYScrolls: -; Controls the bouncing effect of the Pokemon logo on the title screen - db -4,16 ; y scroll amount, number of times to scroll - db 3,4 - db -3,4 - db 2,2 - db -2,2 - db 1,2 - db -1,2 - db 0 ; terminate list with 0 - -.ScrollTitleScreenPokemonLogo: -; Scrolls the Pokemon logo on the title screen to create the bouncing effect -; Scrolls d pixels e times - call DelayFrame - ld a, [bc] ; background scroll Y - add d - ld [bc], a - dec e - jr nz, .ScrollTitleScreenPokemonLogo - ret - -.finishedBouncingPokemonLogo - call LoadScreenTilesFromBuffer1 - ld c, 36 - call DelayFrames - ld a, SFX_INTRO_WHOOSH - call PlaySound - -; scroll game version in from the right - call PrintGameVersionOnTitleScreen - ld a, SCREEN_HEIGHT_PIXELS - ld [hWY], a - ld d, 144 -.scrollTitleScreenGameVersionLoop - ld h, d - ld l, 64 - call ScrollTitleScreenGameVersion - ld h, 0 - ld l, 80 - call ScrollTitleScreenGameVersion - ld a, d - add 4 - ld d, a - and a - jr nz, .scrollTitleScreenGameVersionLoop - - ld a, vBGMap1 / $100 - call TitleScreenCopyTileMapToVRAM - call LoadScreenTilesFromBuffer2 - call PrintGameVersionOnTitleScreen - call Delay3 - call WaitForSoundToFinish - ld a, MUSIC_TITLE_SCREEN - ld [wNewSoundID], a - call PlaySound - xor a - ld [wUnusedCC5B], a - -; Keep scrolling in new mons indefinitely until the user performs input. -.awaitUserInterruptionLoop - ld c, 200 - call CheckForUserInterruption - jr c, .finishedWaiting - call TitleScreenScrollInMon - ld c, 1 - call CheckForUserInterruption - jr c, .finishedWaiting - callba TitleScreenAnimateBallIfStarterOut - call TitleScreenPickNewMon - jr .awaitUserInterruptionLoop - -.finishedWaiting - ld a, [wTitleMonSpecies] - call PlayCry - call WaitForSoundToFinish - call GBPalWhiteOutWithDelay3 - call ClearSprites - xor a - ld [hWY], a - inc a - ld [H_AUTOBGTRANSFERENABLED], a - call ClearScreen - ld a, vBGMap0 / $100 - call TitleScreenCopyTileMapToVRAM - ld a, vBGMap1 / $100 - call TitleScreenCopyTileMapToVRAM - call Delay3 - call LoadGBPal - ld a, [hJoyHeld] - ld b, a - and D_UP | SELECT | B_BUTTON - cp D_UP | SELECT | B_BUTTON - jp z, .doClearSaveDialogue - jp MainMenu - -.doClearSaveDialogue - jpba DoClearSaveDialogue - -TitleScreenPickNewMon: - ld a, vBGMap0 / $100 - call TitleScreenCopyTileMapToVRAM - -.loop -; Keep looping until a mon different from the current one is picked. - call Random - and $f - ld c, a - ld b, 0 - ld hl, TitleMons - add hl, bc - ld a, [hl] - ld hl, wTitleMonSpecies - -; Can't be the same as before. - cp [hl] - jr z, .loop - - ld [hl], a - call LoadTitleMonSprite - - ld a, $90 - ld [hWY], a - ld d, 1 ; scroll out - callba TitleScroll - ret - -TitleScreenScrollInMon: - ld d, 0 ; scroll in - callba TitleScroll - xor a - ld [hWY], a - ret - -ScrollTitleScreenGameVersion: -.wait - ld a, [rLY] - cp l - jr nz, .wait - - ld a, h - ld [rSCX], a - -.wait2 - ld a, [rLY] - cp h - jr z, .wait2 - ret - -DrawPlayerCharacter: - ld hl, PlayerCharacterTitleGraphics - ld de, vSprites - ld bc, PlayerCharacterTitleGraphicsEnd - PlayerCharacterTitleGraphics - ld a, BANK(PlayerCharacterTitleGraphics) - call FarCopyData2 - call ClearSprites - xor a - ld [wPlayerCharacterOAMTile], a - ld hl, wOAMBuffer - ld de, $605a - ld b, 7 -.loop - push de - ld c, 5 -.innerLoop - ld a, d - ld [hli], a ; Y - ld a, e - ld [hli], a ; X - add 8 - ld e, a - ld a, [wPlayerCharacterOAMTile] - ld [hli], a ; tile - inc a - ld [wPlayerCharacterOAMTile], a - inc hl - dec c - jr nz, .innerLoop - pop de - ld a, 8 - add d - ld d, a - dec b - jr nz, .loop - ret - -ClearBothBGMaps: - ld hl, vBGMap0 - ld bc, $400 * 2 - ld a, " " - jp FillMemory - -LoadTitleMonSprite: - ld [wcf91], a - ld [wd0b5], a - coord hl, 5, 10 - call GetMonHeader - jp LoadFrontSpriteByMonIndex - -TitleScreenCopyTileMapToVRAM: - ld [H_AUTOBGTRANSFERDEST + 1], a - jp Delay3 - -LoadCopyrightAndTextBoxTiles: - xor a - ld [hWY], a - call ClearScreen - call LoadTextBoxTilePatterns - -LoadCopyrightTiles: - ld de, NintendoCopyrightLogoGraphics - ld hl, vChars2 + $600 - lb bc, BANK(NintendoCopyrightLogoGraphics), (GamefreakLogoGraphicsEnd - NintendoCopyrightLogoGraphics) / $10 - call CopyVideoData - coord hl, 2, 7 - ld de, CopyrightTextString - jp PlaceString - -CopyrightTextString: - db $60,$61,$62,$61,$63,$61,$64,$7F,$65,$66,$67,$68,$69,$6A ; ©'95.'96.'98 Nintendo - next $60,$61,$62,$61,$63,$61,$64,$7F,$6B,$6C,$6D,$6E,$6F,$70,$71,$72 ; ©'95.'96.'98 Creatures inc. - next $60,$61,$62,$61,$63,$61,$64,$7F,$73,$74,$75,$76,$77,$78,$79,$7A,$7B ; ©'95.'96.'98 GAME FREAK inc. - db "@" - -INCLUDE "data/title_mons.asm" - -; prints version text (red, blue) -PrintGameVersionOnTitleScreen: - coord hl, 7, 8 - ld de, VersionOnTitleScreenText - jp PlaceString - -; these point to special tiles specifically loaded for that purpose and are not usual text -VersionOnTitleScreenText: -IF DEF(_RED) - db $60,$61,$7F,$65,$66,$67,$68,$69,"@" ; "Red Version" -ENDC -IF DEF(_BLUE) - db $61,$62,$63,$64,$65,$66,$67,$68,"@" ; "Blue Version" -ENDC - -NintenText: db "NINTEN@" -SonyText: db "SONY@" |