SetDefaultNames: ; 5e27 (1:5e27) ld a, [wLetterPrintingDelayFlags] push af ld a, [wOptions] push af ld a, [wd732] push af ld a, [wPrinterSettings] push af ld hl, wPlayerName ld bc, wBoxDataEnd - wPlayerName xor a call FillMemory ld hl, wSpriteStateData1 ld bc, $200 xor a call FillMemory xor a ld [wSurfingMinigameHiScore], a ld [wSurfingMinigameHiScore + 1], a ld [wSurfingMinigameHiScore + 2], a pop af ld [wPrinterSettings], a pop af ld [wd732], a pop af ld [wOptions], a pop af ld [wLetterPrintingDelayFlags], a ld a, [wOptionsInitialized] and a call z, InitOptions ld hl, NintenText ld de, wPlayerName ld bc, NAME_LENGTH call CopyData ld hl, SonyText ld de, wRivalName ld bc, NAME_LENGTH call CopyData ; rip optimizations ret OakSpeech: ; 5e85 (1:5e85) call StopAllMusic ; stop music ld a, BANK(Music_Routes2) ld c,a ld a, MUSIC_ROUTES2 call PlayMusic call ClearScreen call LoadTextBoxTilePatterns call SetDefaultNames predef InitPlayerData2 ld hl,wNumBoxItems ld a,POTION ld [wcf91],a ld a,1 ld [wItemQuantity],a call AddItemToInventory ; give one potion ld a,[wDefaultMap] ld [wDestinationMap],a call SpecialWarpIn xor a ld [hTilesetType],a ld a,[wd732] bit 1,a ; possibly a debug mode bit jp nz,.skipChoosingNames ld de,ProfOakPic lb bc, Bank(ProfOakPic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl,OakSpeechText1 call PrintText call GBFadeOutToWhite call ClearScreen ld a,PIKACHU ld [wd0b5],a ld [wcf91],a call GetMonHeader coord hl, 6, 4 call LoadFlippedFrontSpriteByMonIndex call MovePicLeft ld hl,OakSpeechText2 call PrintText call GBFadeOutToWhite call ClearScreen ld de,RedPicFront lb bc, Bank(RedPicFront), $00 call IntroDisplayPicCenteredOrUpperRight call MovePicLeft ld hl,IntroducePlayerText call PrintText call ChoosePlayerName call GBFadeOutToWhite call ClearScreen ld de,Rival1Pic lb bc, Bank(Rival1Pic), $00 call IntroDisplayPicCenteredOrUpperRight call FadeInIntroPic ld hl,IntroduceRivalText call PrintText call ChooseRivalName .skipChoosingNames call GBFadeOutToWhite call ClearScreen ld de,RedPicFront lb bc, Bank(RedPicFront), $00 call IntroDisplayPicCenteredOrUpperRight call GBFadeInFromWhite ld a,[wd72d] and a jr nz,.next ld hl,OakSpeechText3 call PrintText .next ld a,[H_LOADEDROMBANK] push af ld a,SFX_SHRINK call PlaySound pop af call BankswitchCommon ld c,4 call DelayFrames ld hl,vSprites ld de,RedSprite ld b, BANK(RedSprite) ld c, $0C call CopyVideoData ld de,ShrinkPic1 lb bc, BANK(ShrinkPic1), $00 call IntroDisplayPicCenteredOrUpperRight ld c,4 call DelayFrames ld de,ShrinkPic2 lb bc, BANK(ShrinkPic2), $00 call IntroDisplayPicCenteredOrUpperRight call ResetPlayerSpriteData ld a,[H_LOADEDROMBANK] push af ld a, BANK(Music_PalletTown) ld [wAudioROMBank],a ld [wAudioSavedROMBank],a ld a, 10 ld [wAudioFadeOutControl],a call StopAllMusic ; stop music pop af call BankswitchCommon ld c,20 call DelayFrames coord hl, 6, 5 lb bc, 7, 7 call ClearScreenArea call LoadTextBoxTilePatterns ld a,1 ld [wUpdateSpritesEnabled],a ld c,50 call DelayFrames call GBFadeOutToWhite call ClearScreen ; rip more tail-end optimizations ret OakSpeechText1: ; 5fb9 (1:5fb9) TX_FAR _OakSpeechText1 db "@" OakSpeechText2: ; 5fbe (1:5fbe) TX_FAR _OakSpeechText2A db $14 ; play NIDORINA cry from TextCommandSounds TX_FAR _OakSpeechText2B db "@" IntroducePlayerText: ; 5fc8 (1:5fc8) TX_FAR _IntroducePlayerText db "@" IntroduceRivalText: ; 5fcd (1:5fcd) TX_FAR _IntroduceRivalText db "@" OakSpeechText3: ; 5fd2 (1:5fd2) TX_FAR _OakSpeechText3 db "@" FadeInIntroPic: ; 5fd7 (1:5fd7) ld hl,IntroFadePalettes ld b,6 .next ld a,[hli] ld [rBGP],a call UpdateGBCPal_BGP ld c,10 call DelayFrames dec b jr nz,.next ret IntroFadePalettes: ; 5feb (1:5feb) db %01010100 db %10101000 db %11111100 db %11111000 db %11110100 db %11100100 MovePicLeft: ; 5ff1 (1:5ff1) ld a,119 ld [rWX],a call DelayFrame ld a,%11100100 ld [rBGP],a call UpdateGBCPal_BGP .next call DelayFrame ld a,[rWX] sub 8 cp $FF ret z ld [rWX],a jr .next DisplayPicCenteredOrUpperRight: ; 600d (1:600d) call GetPredefRegisters IntroDisplayPicCenteredOrUpperRight: ; 6010 (1:6010) ; b = bank ; de = address of compressed pic ; c: 0 = centred, non-zero = upper-right push bc ld a,b call UncompressSpriteFromDE ld a, $0 call SwitchSRAMBankAndLatchClockData ld hl,sSpriteBuffer1 ld de,sSpriteBuffer0 ld bc,$310 call CopyData call PrepareRTCDataAndDisableSRAM ld de,vFrontPic call InterlaceMergeSpriteBuffers pop bc ld a,c and a coord hl, 15, 1 jr nz,.next coord hl, 6, 4 .next xor a ld [hStartTileID],a predef_jump CopyUncompressedPicToTilemap