SetDefaultNames: ld a, [wLetterPrintingDelayFlags] push af ld a, [wOptions] push af ld a, [wd732] push af ld hl, wPlayerName ld bc, wBoxDataEnd - wPlayerName xor a call FillMemory ld hl, wSpriteStateData1 ld bc, $200 xor a call FillMemory 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 jp CopyData OakSpeech: ld a, SFX_STOP_ALL_MUSIC call PlaySound 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, NIDORINO 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, [hLoadedROMBank] push af ld a, SFX_SHRINK call PlaySound pop af ld [hLoadedROMBank], a ld [MBC1RomBank], a ld c, 4 call DelayFrames ld de, RedSprite ld hl, vSprites lb bc, BANK(RedSprite), $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, [hLoadedROMBank] push af ld a, BANK(Music_PalletTown) ld [wAudioROMBank], a ld [wAudioSavedROMBank], a ld a, 10 ld [wAudioFadeOutControl], a ld a, SFX_STOP_ALL_MUSIC ld [wNewSoundID], a call PlaySound pop af ld [hLoadedROMBank], a ld [MBC1RomBank], a ld c, 20 call DelayFrames coord hl, 6, 5 ld b, 7 ld c, 7 call ClearScreenArea call LoadTextBoxTilePatterns ld a, 1 ld [wUpdateSpritesEnabled], a ld c, 50 call DelayFrames call GBFadeOutToWhite jp ClearScreen OakSpeechText1: TX_FAR _OakSpeechText1 db "@" OakSpeechText2: TX_FAR _OakSpeechText2A TX_CRY_NIDORINA TX_FAR _OakSpeechText2B db "@" IntroducePlayerText: TX_FAR _IntroducePlayerText db "@" IntroduceRivalText: TX_FAR _IntroduceRivalText db "@" OakSpeechText3: TX_FAR _OakSpeechText3 db "@" FadeInIntroPic: ld hl, IntroFadePalettes ld b, 6 .next ld a, [hli] ld [rBGP], a ld c, 10 call DelayFrames dec b jr nz, .next ret IntroFadePalettes: db %01010100 db %10101000 db %11111100 db %11111000 db %11110100 db %11100100 MovePicLeft: ld a, 119 ld [rWX], a call DelayFrame ld a, %11100100 ld [rBGP], a .next call DelayFrame ld a, [rWX] sub 8 cp $FF ret z ld [rWX], a jr .next DisplayPicCenteredOrUpperRight: call GetPredefRegisters IntroDisplayPicCenteredOrUpperRight: ; b = bank ; de = address of compressed pic ; c: 0 = centred, non-zero = upper-right push bc ld a, b call UncompressSpriteFromDE ld hl, sSpriteBuffer1 ld de, sSpriteBuffer0 ld bc, $310 call CopyData 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