summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2Tie <foxman95@ymail.com>2018-06-23 10:19:49 -0600
committer2Tie <foxman95@ymail.com>2018-06-23 10:19:49 -0600
commit0369ef51b4461cf516488c2e13b24ad6d5c13d65 (patch)
tree68942d2a398044b2eba34ed09809c07386bfc8af
parent26edac4db6b17102822aa67791178d5fe2505d36 (diff)
split the oak speeches and game setup into two files
-rw-r--r--engine/Intro.asm800
-rw-r--r--engine/menu/main_menu.asm797
2 files changed, 801 insertions, 796 deletions
diff --git a/engine/Intro.asm b/engine/Intro.asm
new file mode 100644
index 0000000..fb26d95
--- /dev/null
+++ b/engine/Intro.asm
@@ -0,0 +1,800 @@
+include "constants.asm"
+
+SECTION "Oak Intro and Game Setup", ROMX[$558D], BANK[$01]
+
+DemoStart:: ; 558D
+ ld de, OakPic
+ lb bc, BANK(OakPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ call FadeInIntroPic
+ ld hl, OakSpeechDemo
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ld de, ProtagonistPic
+ lb bc, BANK(ProtagonistPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ call MovePicLeft
+ ld a, %11010000
+ ldh [rOBP0], a
+ call DemoSetUpPlayer
+ jp IntroCleanup
+
+GameStart:: ; 55BB
+ ld de, OakPic
+ lb bc, BANK(OakPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ call FadeInIntroPic
+ ld hl, OakSpeech1
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ld a, DEX_YADOKING
+ ld [wCurSpecies], a
+ ld [wMonDexIndex], a
+ call GetMonHeader
+ hlcoord 6, 4
+ hlcoord 6, 4
+ call PrepMonFrontpic
+ call MovePicLeft
+ ld hl, OakSpeech2
+ call PrintText
+ ld a, DEX_YADOKING
+ call PlayCry
+ ld hl, OakSpeech3
+ call PrintText
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ld de, ProtagonistPic
+ lb bc, BANK(ProtagonistPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ call MovePicLeft
+ ld hl, OakSpeech4
+ call PrintText
+ call ChoosePlayerName
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ld de, RivalPic
+ lb bc, BANK(RivalPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ call FadeInIntroPic
+ ld hl, OakSpeech5
+ call PrintText
+ call ChooseRivalName
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ld de, OakPic
+ lb bc, BANK(OakPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ call FadeInIntroPic
+ ld hl, OakSpeech6
+ call PrintText
+ callba SetClockDialog
+ call Function04ac
+ call RotateThreePalettesRight
+ call ClearTileMap
+ ld de, ProtagonistPic
+ lb bc, BANK(ProtagonistPic), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ call RotateThreePalettesLeft
+ ld hl, OakSpeech7
+ call PrintText
+ ldh a, [hROMBank]
+ push af
+ ld a, $20
+ ld [wMusicFade], a
+ ld de, MUSIC_NONE
+ ld a, e
+ ld [wMusicFadeIDLow], a
+ ld a, d
+ ld [wMusicFadeIDHigh], a
+ ld de, $000B ; should be a constant - shrink noise?
+ call PlaySFX
+ pop af
+ call Bankswitch
+ ld c, $04
+ call DelayFrames
+
+IntroCleanup:: ; 568E
+ ld de, ShrinkPic1
+ lb bc, BANK(ShrinkPic1), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ ld c, $04
+ call DelayFrames
+ ld de, ShrinkPic2
+ lb bc, BANK(ShrinkPic2), $00
+ call IntroDisplayPicCenteredOrUpperRight
+ ld c, $14
+ call DelayFrames
+ hlcoord 6, 5
+ ld b, $07
+ ld c, $07
+ call ClearBox
+ ld c, $14
+ call DelayFrames
+ call LoadStartingSprites
+ call LoadFontExtra
+ ld c, $32
+ call DelayFrames
+ call RotateThreePalettesRight
+ call ClearTileMap
+ call Function0502
+ ld a, $00
+ ld [wd638], a
+ ld [wd637], a
+
+OverworldStart::
+ call SetUpGameEntry
+ ld hl, wDebugFlags
+ bit CONTINUED_F, [hl]
+ call z, Function15b5
+ ld hl, wd4a9
+ set 0, [hl]
+ jp Function2a85
+
+SetUpGameEntry:: ; 56E8
+ ld a, $04
+ ld [wd65e], a
+ ld a, $F2
+ ldh [hMapEntryMethod], a
+ ld hl, wDebugFlags
+ bit CONTINUED_F, [hl] ; if we loaded a game
+ ret nz
+ ld a, $F1
+ ldh [hMapEntryMethod], a
+ ld a, $00
+ ld [wDebugWarpSelection], a
+ ld hl, GameStartPlacement
+ ld de, wMapGroup
+ ld bc, wd65e - wMapGroup
+ call CopyBytes
+ ret
+
+GameStartPlacement:: ; 570D
+ db $01 ; map group
+ db PLAYER_HOUSE_2F+1 ; map
+ dwcoord 15, 45 ; screen anchor
+ db $04 ; metatile x
+ db $04 ; metatile y
+ db $00 ; in-metatile x
+ db $01 ; in-metatile y
+
+DebugSetUpPlayer:: ; 5715
+ call SetPlayerNamesDebug
+ ld a, $0F
+ ld [wd15d], a
+ ld a, $42
+ ld [wd15e], a
+ ld a, $3F
+ ld [wd15f], a
+ ld a, $FF
+ ld [wd163], a
+ ld [wd164], a
+ call GiveRandomJohto
+ ld a, $03
+ call AddRandomPokemonToBox
+ call FillTMs
+ ld de, DebugBagItems
+ call FillBagWithList
+ ld hl, wPokedexOwned
+ call DebugFillPokedex
+ ld hl, wPokedexSeen
+ call DebugFillPokedex
+ ld hl, wAnnonDex
+ ld [hl], $01
+ call Function40fd
+ ret
+
+DebugFillPokedex:: ; 5755
+ ld b, $1F
+ ld a, $FF
+.loop
+ ld [hl+], a
+ dec b
+ jr nz, .loop
+ ld [hl], $07
+ ret
+
+FillBagWithList:: ; 5760
+ ld hl, wNumBagItems
+.loop
+ ld a, [de]
+ cp $FF
+ jr z, .yump
+ ld [wCurItem], a
+ inc de
+ ld a, [de]
+ inc de
+ ld [wItemQuantity], a
+ call AddItemToInventory
+ jr .loop
+.yump
+ ret
+
+DebugBagItems:: ; 5777
+ db ITEM_IMPORTANT_BAG, $01
+ db ITEM_BAG, $01
+ db ITEM_TM_HOLDER, $01
+ db ITEM_BALL_HOLDER, $01
+ db ITEM_BICYCLE, $01
+ db ITEM_MAIL, $06
+ db ITEM_ULTRA_BALL, $1E
+ db ITEM_POKE_BALL, $63
+ db ITEM_POTION, $1E
+ db ITEM_RARE_CANDY, $14
+ db ITEM_MOON_STONE, $63
+ db ITEM_FULL_HEAL, $63
+ db ITEM_PROTEIN, $63
+ db ITEM_QUICK_NEEDLE, $63
+ db ITEM_SNAKESKIN, $63
+ db ITEM_KINGS_ROCK, $63
+ db ITEM_FLEE_FEATHER, $63
+ db ITEM_FOCUS_ORB, $63
+ db ITEM_SHARP_SCYTHE, $63
+ db ITEM_DETECT_ORB, $63
+ db $FF
+
+GiveRandomPokemon:: ; 57A0
+ and a
+ ret z
+.loop
+ push af
+ call RandomUnder246
+ ld b, $0A
+ call GivePokemon
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+
+GiveRandomJohto:: ; 57B0
+.loop
+ call Random
+ and $03
+ jr z, .loop
+ dec a
+ ld b, a
+ add a, a
+ add a, b
+ add a, $98 ; maybe should be a constant - 152, aka the number of kanto pokes
+ ld b, $08
+ call GivePokemon
+ ld a, $8D
+ ld [wPartyMon1 + 1], a
+ ret
+
+GiveKantoStarters:: ; 57C8
+ ld a, $03
+ ld b, $20
+ call GivePokemon
+ ld a, $06
+ ld b, $24
+ call GivePokemon
+ ld a, $09
+ ld b, $24
+ call GivePokemon
+ ret
+
+GivePokemon:: ; 57DE
+ ld [wMonDexIndex], a
+ ld a, b
+ ld [wCurPartyLevel], a
+ ld a, $10
+ call Predef
+ ret
+
+AddRandomPokemonToBox: ; 57EB
+ and a
+ ret z
+.loop
+ push af
+ xor a
+ ld [wca44], a
+ call RandomUnder246
+ ld [wcdd7], a
+ ld a, $05
+ ld [wCurPartyLevel], a
+ callab AddPokemonToBox
+ ld a, [wcdd7]
+ ld [wMonDexIndex], a
+ callab Functiondd5c
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+
+RandomUnder246:: ; 5818
+.loop
+ call Random
+ and a
+ jr z, .loop
+ cp $F6
+ jr nc, .loop
+ ret
+
+FillTMs:: ; 5823
+ ld b, $39
+ ld a, $01
+ ld hl, wTMsHMs
+.loop
+ ld [hl+], a
+ dec b
+ jr nz, .loop
+ ret
+
+DebugGiveKeyItems:: ; 582F
+ ld hl, DebugKeyItemsList
+ ld de, wKeyItems
+ ld c, $FF
+.loop
+ inc c
+ ld a, [hl+]
+ ld [de], a
+ inc de
+ cp $FF
+ jr nz, .loop
+ ld a, c
+ ld [wNumKeyItems], a
+ ret
+
+DebugKeyItemsList:: ; 5844
+ db ITEM_TM_HOLDER
+ db ITEM_BALL_HOLDER
+ db ITEM_BAG
+ db ITEM_BICYCLE
+ db $FF
+
+DemoSetUpPlayer:: ; 5849
+ ld hl, wPlayerName
+ ld de, DemoPlayerName
+ call CopyString
+ ld hl, wRivalName
+ ld de, DemoRivalName
+ call CopyString
+ call Function40fd
+ ld de, DemoItemList
+ call FillBagWithList
+ call GiveRandomJohto
+ ret
+
+DemoItemList:: ; 5868
+ db ITEM_POKE_BALL, $05
+ db ITEM_POTION, $0A
+ db ITEM_FULL_HEAL, $0A
+ db ITEM_STIMULUS_ORB, $01
+ db ITEM_FOCUS_ORB, $01
+ db $FF
+
+DemoPlayerName:: ; 5873
+ db "サトシ@"
+
+DemoRivalName:: ; 5877
+ db "シゲル@"
+
+OakSpeechDemo:: ; 587B
+ text "ようこそ"
+ line "ポケット モンスターの せかいへ!"
+ cont "ごぞんじ わしが オーキドじゃ!"
+
+ para "きょう きみに きてもらったのは"
+ line "ほかでもない"
+ cont "あたらしい ずかんづくりを"
+ cont "てつだって ほしいのじゃ!"
+
+ para "もちろん"
+ line "きみの パートナーとなる ポケモンと"
+ cont "りュックは ようい しておる"
+
+ para "りュックの なかには"
+ line "キズぐすりと"
+ cont "モンスターボールが"
+ cont "はいっておるから あんしんじゃ!"
+
+ para "すでに きみの ライバルは"
+ line "しゅっぱつ しとる"
+
+ para "まけないよう がんばって くれい!"
+ prompt
+
+OakSpeech1:: ; 5956
+ text "いやあ またせた!"
+
+ para "ポケット モンスターの せかいへ"
+ line "ようこそ!"
+
+ para "わたしの なまえは オーキド"
+
+ para "みんなからは # はかせと"
+ line "したわれて おるよ"
+ prompt
+
+OakSpeech2:: ; 599F
+ text "きみも もちろん"
+ line "しっているとは おもうが"
+
+ para "この せかいには"
+ line "ポケット モンスターと よばれる"
+ cont "いきもの たちが"
+ cont "いたるところに すんでいる!"
+ prompt
+
+OakSpeech3:: ; 59E8
+ text "その # という いきものを"
+ line "ひとは ぺットに したり"
+ cont "しょうぶに つかったり"
+ cont "そして・・・"
+
+ para "わたしは この #の"
+ line "けんきゅうを してる というわけだ"
+ prompt
+
+OakSpeech4:: ; 5A35
+ text "では はじめに きみの なまえを"
+ line "おしえて もらおう!"
+ prompt
+
+OakSpeech5:: ; 5A52
+ text "そして この しょうねんは"
+ line "きみの おさななじみであり"
+ cont"ライバルである"
+
+ para "・・・えーと?"
+ line "なまえは なんて いったかな?"
+ prompt
+
+OakSpeech6:: ; 5A8F
+ text "さて きみの きねんすべき"
+ line "たびだちのひを"
+ cont "きろくしておこう!"
+
+ para "じかんも なるべく せいかくにな!"
+ prompt
+
+OakSpeech7:: ; 5AC2
+ text "<PLAYER>!"
+
+ para "いよいよ これから"
+ line "きみの ものがたりの はじまりだ!"
+
+ para "ゆめと ぼうけんと!"
+ line "ポケット モンスターの せかいへ!"
+
+ para "レッツ ゴー!"
+ done
+
+SetPlayerNamesDebug:: ; 5B07
+ ld hl, DebugPlayerName
+ ld de, wPlayerName
+ call CopyNameDebug
+ ld hl, DebugRivalName
+ ld de, wRivalName
+
+CopyNameDebug:
+ ld bc, PLAYER_NAME_LENGTH
+ call CopyBytes
+ ret
+
+DebugPlayerName: ; 5B1D
+ db "コージ@"
+
+DebugRivalName: ; 5B21
+ db "レッド@"
+
+ChoosePlayerName:: ; 5B25
+ call PanPortraitRight
+ ld hl, PlayerNameMenuHeader
+ call NamingWindow
+ ld a, [wMenuCursorY]
+ dec a
+ jr z, .loop
+ ld de, wPlayerName
+ call SaveCustomName
+ jr .farjump
+
+.loop
+ ld b, $01
+ ld de, wPlayerName
+ callba Function113f4
+ ld a, [wPlayerName]
+ cp "@"
+ jr z, .loop
+
+ call RotateThreePalettesRight
+ call ClearTileMap
+ call LoadFontExtra
+ call WaitBGMap
+ ld de, $4D10
+ ld bc, $1200
+ call IntroDisplayPicCenteredOrUpperRight
+ call RotateThreePalettesLeft
+.farjump
+ ld hl, ChoosePlayerNameEndText
+ call PrintText
+ ret
+
+ChoosePlayerNameEndText: ; 5B6F
+ text "ふむ・・・"
+ line "<PLAYER> と いうんだな!"
+ prompt
+
+PlayerNameMenuHeader: ; 5B81
+ db MENU_BACKUP_TILES ; flags
+ menu_coords 00, 00, 10, 11
+ dw PlayerNameMenuData
+ db 01 ; initial selection
+
+PlayerNameMenuData; 5B89
+ db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B
+ db 04 ; items
+ db "じぶんできめる@"
+ db "ゴールド@"
+ db "サトシ@"
+ db "ジャック@"
+ db 3 ; x offset for the title string
+ db "なまえこうほ@"
+
+ChooseRivalName:: ; 5BA9
+ call PanPortraitRight
+ ld hl, RivalNameMenuHeader
+ call NamingWindow
+ ld a, [wMenuCursorY]
+ dec a
+ jr z, .loop
+ ld de, wRivalName
+ call SaveCustomName
+ jr .farjump
+
+.loop
+ ld b, $02
+ ld de, wRivalName
+ callba Function113f4 ; manual text entry box?
+ ld a, [wRivalName]
+ cp "@"
+ jr z, .loop
+
+ call RotateThreePalettesRight
+ call ClearTileMap
+ call LoadFontExtra
+ call WaitBGMap
+ ld de, $4BD4
+ ld bc, $1200
+ call IntroDisplayPicCenteredOrUpperRight
+ call RotateThreePalettesLeft
+.farjump
+ ld hl, ChooseRivalNameEndText
+ call PrintText
+ ret
+
+ChooseRivalNameEndText: ; 5BF3
+ text "そうか そうだったな"
+ line "<RIVAL> という なまえだ"
+ prompt
+
+RivalNameMenuHeader: ; 5C0A
+ db MENU_BACKUP_TILES ; flags
+ menu_coords 00, 00, 10, 11
+ dw RivalNameMenuData
+ db 01 ; initial selection
+
+RivalNameMenuData: ; 5C12
+ db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B
+ db 04 ; items
+ db "じぶんできめる@"
+ db "シルバー@"
+ db "シゲル@"
+ db "ジョン@"
+ db 3
+ db "なまえこうほ@"
+
+MomNamePrompt:: ; 5C31
+ ld hl, MomNameMenuHeader
+ call NamingWindow
+ ld a, [wMenuCursorY]
+ dec a
+ jr z, .loop
+ ld de, wMomsName
+ call SaveCustomName
+ jr .escape
+
+.loop
+ ld b, $03
+ ld de, wMomsName
+ callba Function113f4
+ ld a, [wMomsName]
+ cp "@"
+ jr z, .loop
+
+ call ClearPalettes
+ call ClearTileMap
+ callab Function140d9
+ call LoadFontExtra
+ call GetMemSGBLayout
+ call WaitBGMap
+.escape
+ ret
+
+MomNameMenuHeader: ; 5C71
+ db MENU_BACKUP_TILES ; flags
+ menu_coords 00, 00, 10, 11
+ dw .MomNameMenuData
+ db 01 ; initial selection
+
+.MomNameMenuData: ; 5C79
+ db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B
+ db 04 ; items
+ db "じぶんで きめる@"
+ db "おかあさん@"
+ db "ママ@"
+ db "かあちゃん@"
+ db 3
+ db "なまえこうほ@"
+
+NamingWindow:: ; 5C9B
+ ; loads the menu header put into hl
+ call LoadMenuHeader
+ call VerticalMenu
+ ld a, [wMenuCursorY]
+ dec a
+ call CopyNameFromMenu
+ call CloseWindow
+ ret
+
+SaveCustomName:: ; 5CAC
+ ld hl, wcd31
+ ld bc, PLAYER_NAME_LENGTH
+ call CopyBytes
+ ret
+
+PanPortraitRight:: ; 5CB6
+ hlcoord 5, 4
+ ld d, $06
+ ld e, $7E
+ ld b, d
+ ld c, e
+ ld d, $00
+ add hl, de
+.loop
+ xor a
+ ldh [hBGMapMode], a
+ push hl
+ push bc
+.innerLoop
+ ;pans all the tiles onscreen to the right one
+ ld a, [hl+]
+ ld [hl-], a
+ dec hl
+ dec c
+ jr nz, .innerLoop
+
+ call WaitBGMap
+ pop bc
+ pop hl
+ inc hl
+ dec b ; passed c - how many tiles right to pan?
+ jr nz, .loop
+ ret
+
+PanPortraitLeft:: ; 5CD7
+ hlcoord 12, 4
+ ld b, $06
+ ld c, $7E
+.loop
+ xor a
+ ldh [hBGMapMode], a
+ push hl
+ push bc
+.innerloop
+ ld a, [hl-]
+ ld [hl+], a
+ inc hl
+ dec c
+ jr nz, .innerloop
+
+ call WaitBGMap
+ pop bc
+ pop hl
+ inc hl
+ dec b
+ jr nz, .loop
+ ret
+
+MenuCallSettings:: ; 5CF3
+ call SettingsScreen
+ ret
+
+FadeInIntroPic: ; 5CF7
+ ld hl, IntroFadePalettes
+ ld b, 6
+.next
+ ld a, [hl+]
+ ldh [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: ; 5D0E
+ ld a, 119
+ ldh [hWX], a
+ call DelayFrame
+
+ ld a, %11100100
+ ldh [rBGP], a
+.next
+ call DelayFrame
+ ldh a, [hWX]
+ sub 8
+ cp $FF
+ ret z
+ ldh [hWX], a
+ jr .next
+
+IntroDisplayPicCenteredOrUpperRight:: ; 5D27
+; b = bank
+; de = address of compressed pic
+; c: 0 = centred, non-zero = upper-right
+ ld a, c
+ and a
+ hlcoord 13, 4
+ jr nz, .skip
+ hlcoord 6, 4
+.skip
+ push hl
+ ld a, b
+ call UncompressSpriteFromDE
+ ld a, $00
+ call OpenSRAM
+ ld hl, sSpriteBuffer1
+ ld de, sSpriteBuffer0
+ ld bc, DOUBLESPRITEBUFFERSIZE
+ call CopyBytes
+ call CloseSRAM
+ ld de, VRAM_Begin + $1000
+ call InterlaceMergeSpriteBuffers
+ pop hl
+ xor a
+ ldh [hGraphicStartTile], a
+ ld bc, $0707
+ predef PlaceGraphic
+ ret
+
+LoadStartingSprites: ; 5D5D
+ ld de, GoldSpriteGFX
+ lb bc, BANK(GoldSpriteGFX), $0C
+ ld hl, VRAM_Begin
+ call Request2bpp
+ ld hl, wVirtualOAM
+ ld de, GameStartSprites
+ ld c, $04
+.loop
+ ld a, [de]
+ inc de
+ ld [hl+], a
+ ld a, [de]
+ inc de
+ ld [hl+], a
+ ld a, [de]
+ inc de
+ ld [hl+], a
+ xor a
+ ld [hl+], a
+ dec c
+ jr nz, .loop
+ ret
+
+GameStartSprites: ; 5D80
+ db $50, $48, $00
+ db $50, $50, $01
+ db $58, $48, $02
+ db $58, $50, $03
+
+; 5D8C \ No newline at end of file
diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm
index 4bd4a45..5cc6177 100644
--- a/engine/menu/main_menu.asm
+++ b/engine/menu/main_menu.asm
@@ -208,799 +208,4 @@ StartNewGame:: ; 555C
call DebugSetUpPlayer
jp IntroCleanup
-DemoStart:: ; 558D
- ld de, OakPic
- lb bc, BANK(OakPic), $00
- call IntroDisplayPicCenteredOrUpperRight
- call FadeInIntroPic
- ld hl, OakSpeechDemo
- call PrintText
- call RotateThreePalettesRight
- call ClearTileMap
- ld de, ProtagonistPic
- lb bc, BANK(ProtagonistPic), $00
- call IntroDisplayPicCenteredOrUpperRight
- call MovePicLeft
- ld a, %11010000
- ldh [rOBP0], a
- call DemoSetUpPlayer
- jp IntroCleanup
-
-GameStart:: ; 55BB
- ld de, OakPic
- lb bc, BANK(OakPic), $00
- call IntroDisplayPicCenteredOrUpperRight
- call FadeInIntroPic
- ld hl, OakSpeech1
- call PrintText
- call RotateThreePalettesRight
- call ClearTileMap
- ld a, DEX_YADOKING
- ld [wCurSpecies], a
- ld [wMonDexIndex], a
- call GetMonHeader
- hlcoord 6, 4
- hlcoord 6, 4
- call PrepMonFrontpic
- call MovePicLeft
- ld hl, OakSpeech2
- call PrintText
- ld a, DEX_YADOKING
- call PlayCry
- ld hl, OakSpeech3
- call PrintText
- call RotateThreePalettesRight
- call ClearTileMap
- ld de, ProtagonistPic
- lb bc, BANK(ProtagonistPic), $00
- call IntroDisplayPicCenteredOrUpperRight
- call MovePicLeft
- ld hl, OakSpeech4
- call PrintText
- call ChoosePlayerName
- call RotateThreePalettesRight
- call ClearTileMap
- ld de, RivalPic
- lb bc, BANK(RivalPic), $00
- call IntroDisplayPicCenteredOrUpperRight
- call FadeInIntroPic
- ld hl, OakSpeech5
- call PrintText
- call ChooseRivalName
- call RotateThreePalettesRight
- call ClearTileMap
- ld de, OakPic
- lb bc, BANK(OakPic), $00
- call IntroDisplayPicCenteredOrUpperRight
- call FadeInIntroPic
- ld hl, OakSpeech6
- call PrintText
- callba SetClockDialog
- call Function04ac
- call RotateThreePalettesRight
- call ClearTileMap
- ld de, ProtagonistPic
- lb bc, BANK(ProtagonistPic), $00
- call IntroDisplayPicCenteredOrUpperRight
- call RotateThreePalettesLeft
- ld hl, OakSpeech7
- call PrintText
- ldh a, [hROMBank]
- push af
- ld a, $20
- ld [wMusicFade], a
- ld de, MUSIC_NONE
- ld a, e
- ld [wMusicFadeIDLow], a
- ld a, d
- ld [wMusicFadeIDHigh], a
- ld de, $000B ; should be a constant - shrink noise?
- call PlaySFX
- pop af
- call Bankswitch
- ld c, $04
- call DelayFrames
-
-IntroCleanup:: ; 568E
- ld de, ShrinkPic1
- lb bc, BANK(ShrinkPic1), $00
- call IntroDisplayPicCenteredOrUpperRight
- ld c, $04
- call DelayFrames
- ld de, ShrinkPic2
- lb bc, BANK(ShrinkPic2), $00
- call IntroDisplayPicCenteredOrUpperRight
- ld c, $14
- call DelayFrames
- hlcoord 6, 5
- ld b, $07
- ld c, $07
- call ClearBox
- ld c, $14
- call DelayFrames
- call LoadStartingSprites
- call LoadFontExtra
- ld c, $32
- call DelayFrames
- call RotateThreePalettesRight
- call ClearTileMap
- call Function0502
- ld a, $00
- ld [wd638], a
- ld [wd637], a
-
-OverworldStart::
- call SetUpGameEntry
- ld hl, wDebugFlags
- bit CONTINUED_F, [hl]
- call z, Function15b5
- ld hl, wd4a9
- set 0, [hl]
- jp Function2a85
-
-SetUpGameEntry:: ; 56E8
- ld a, $04
- ld [wd65e], a
- ld a, $F2
- ldh [hMapEntryMethod], a
- ld hl, wDebugFlags
- bit CONTINUED_F, [hl] ; if we loaded a game
- ret nz
- ld a, $F1
- ldh [hMapEntryMethod], a
- ld a, $00
- ld [wDebugWarpSelection], a
- ld hl, GameStartPlacement
- ld de, wMapGroup
- ld bc, wd65e - wMapGroup
- call CopyBytes
- ret
-
-GameStartPlacement:: ; 570D
- db $01 ; map group
- db PLAYER_HOUSE_2F+1 ; map
- dwcoord 15, 45 ; screen anchor
- db $04 ; metatile x
- db $04 ; metatile y
- db $00 ; in-metatile x
- db $01 ; in-metatile y
-
-DebugSetUpPlayer:: ; 5715
- call SetPlayerNamesDebug
- ld a, $0F
- ld [wd15d], a
- ld a, $42
- ld [wd15e], a
- ld a, $3F
- ld [wd15f], a
- ld a, $FF
- ld [wd163], a
- ld [wd164], a
- call GiveRandomJohto
- ld a, $03
- call AddRandomPokemonToBox
- call FillTMs
- ld de, DebugBagItems
- call FillBagWithList
- ld hl, wPokedexOwned
- call DebugFillPokedex
- ld hl, wPokedexSeen
- call DebugFillPokedex
- ld hl, wAnnonDex
- ld [hl], $01
- call Function40fd
- ret
-
-DebugFillPokedex:: ; 5755
- ld b, $1F
- ld a, $FF
-.loop
- ld [hl+], a
- dec b
- jr nz, .loop
- ld [hl], $07
- ret
-
-FillBagWithList:: ; 5760
- ld hl, wNumBagItems
-.loop
- ld a, [de]
- cp $FF
- jr z, .yump
- ld [wCurItem], a
- inc de
- ld a, [de]
- inc de
- ld [wItemQuantity], a
- call AddItemToInventory
- jr .loop
-.yump
- ret
-
-DebugBagItems:: ; 5777
- db ITEM_IMPORTANT_BAG, $01
- db ITEM_BAG, $01
- db ITEM_TM_HOLDER, $01
- db ITEM_BALL_HOLDER, $01
- db ITEM_BICYCLE, $01
- db ITEM_MAIL, $06
- db ITEM_ULTRA_BALL, $1E
- db ITEM_POKE_BALL, $63
- db ITEM_POTION, $1E
- db ITEM_RARE_CANDY, $14
- db ITEM_MOON_STONE, $63
- db ITEM_FULL_HEAL, $63
- db ITEM_PROTEIN, $63
- db ITEM_QUICK_NEEDLE, $63
- db ITEM_SNAKESKIN, $63
- db ITEM_KINGS_ROCK, $63
- db ITEM_FLEE_FEATHER, $63
- db ITEM_FOCUS_ORB, $63
- db ITEM_SHARP_SCYTHE, $63
- db ITEM_DETECT_ORB, $63
- db $FF
-
-GiveRandomPokemon:: ; 57A0
- and a
- ret z
-.loop
- push af
- call RandomUnder246
- ld b, $0A
- call GivePokemon
- pop af
- dec a
- jr nz, .loop
- ret
-
-GiveRandomJohto:: ; 57B0
-.loop
- call Random
- and $03
- jr z, .loop
- dec a
- ld b, a
- add a, a
- add a, b
- add a, $98 ; maybe should be a constant - 152, aka the number of kanto pokes
- ld b, $08
- call GivePokemon
- ld a, $8D
- ld [wPartyMon1 + 1], a
- ret
-
-GiveKantoStarters:: ; 57C8
- ld a, $03
- ld b, $20
- call GivePokemon
- ld a, $06
- ld b, $24
- call GivePokemon
- ld a, $09
- ld b, $24
- call GivePokemon
- ret
-
-GivePokemon:: ; 57DE
- ld [wMonDexIndex], a
- ld a, b
- ld [wCurPartyLevel], a
- ld a, $10
- call Predef
- ret
-
-AddRandomPokemonToBox: ; 57EB
- and a
- ret z
-.loop
- push af
- xor a
- ld [wca44], a
- call RandomUnder246
- ld [wcdd7], a
- ld a, $05
- ld [wCurPartyLevel], a
- callab AddPokemonToBox
- ld a, [wcdd7]
- ld [wMonDexIndex], a
- callab Functiondd5c
- pop af
- dec a
- jr nz, .loop
- ret
-
-RandomUnder246:: ; 5818
-.loop
- call Random
- and a
- jr z, .loop
- cp $F6
- jr nc, .loop
- ret
-
-FillTMs:: ; 5823
- ld b, $39
- ld a, $01
- ld hl, wTMsHMs
-.loop
- ld [hl+], a
- dec b
- jr nz, .loop
- ret
-
-DebugGiveKeyItems:: ; 582F
- ld hl, DebugKeyItemsList
- ld de, wKeyItems
- ld c, $FF
-.loop
- inc c
- ld a, [hl+]
- ld [de], a
- inc de
- cp $FF
- jr nz, .loop
- ld a, c
- ld [wNumKeyItems], a
- ret
-
-DebugKeyItemsList:: ; 5844
- db ITEM_TM_HOLDER
- db ITEM_BALL_HOLDER
- db ITEM_BAG
- db ITEM_BICYCLE
- db $FF
-
-DemoSetUpPlayer:: ; 5849
- ld hl, wPlayerName
- ld de, DemoPlayerName
- call CopyString
- ld hl, wRivalName
- ld de, DemoRivalName
- call CopyString
- call Function40fd
- ld de, DemoItemList
- call FillBagWithList
- call GiveRandomJohto
- ret
-
-DemoItemList:: ; 5868
- db ITEM_POKE_BALL, $05
- db ITEM_POTION, $0A
- db ITEM_FULL_HEAL, $0A
- db ITEM_STIMULUS_ORB, $01
- db ITEM_FOCUS_ORB, $01
- db $FF
-
-DemoPlayerName:: ; 5873
- db "サトシ@"
-
-DemoRivalName:: ; 5877
- db "シゲル@"
-
-OakSpeechDemo:: ; 587B
- text "ようこそ"
- line "ポケット モンスターの せかいへ!"
- cont "ごぞんじ わしが オーキドじゃ!"
-
- para "きょう きみに きてもらったのは"
- line "ほかでもない"
- cont "あたらしい ずかんづくりを"
- cont "てつだって ほしいのじゃ!"
-
- para "もちろん"
- line "きみの パートナーとなる ポケモンと"
- cont "りュックは ようい しておる"
-
- para "りュックの なかには"
- line "キズぐすりと"
- cont "モンスターボールが"
- cont "はいっておるから あんしんじゃ!"
-
- para "すでに きみの ライバルは"
- line "しゅっぱつ しとる"
-
- para "まけないよう がんばって くれい!"
- prompt
-
-OakSpeech1:: ; 5956
- text "いやあ またせた!"
-
- para "ポケット モンスターの せかいへ"
- line "ようこそ!"
-
- para "わたしの なまえは オーキド"
-
- para "みんなからは # はかせと"
- line "したわれて おるよ"
- prompt
-
-OakSpeech2:: ; 599F
- text "きみも もちろん"
- line "しっているとは おもうが"
-
- para "この せかいには"
- line "ポケット モンスターと よばれる"
- cont "いきもの たちが"
- cont "いたるところに すんでいる!"
- prompt
-
-OakSpeech3:: ; 59E8
- text "その # という いきものを"
- line "ひとは ぺットに したり"
- cont "しょうぶに つかったり"
- cont "そして・・・"
-
- para "わたしは この #の"
- line "けんきゅうを してる というわけだ"
- prompt
-
-OakSpeech4:: ; 5A35
- text "では はじめに きみの なまえを"
- line "おしえて もらおう!"
- prompt
-
-OakSpeech5:: ; 5A52
- text "そして この しょうねんは"
- line "きみの おさななじみであり"
- cont"ライバルである"
-
- para "・・・えーと?"
- line "なまえは なんて いったかな?"
- prompt
-
-OakSpeech6:: ; 5A8F
- text "さて きみの きねんすべき"
- line "たびだちのひを"
- cont "きろくしておこう!"
-
- para "じかんも なるべく せいかくにな!"
- prompt
-
-OakSpeech7:: ; 5AC2
- text "<PLAYER>!"
-
- para "いよいよ これから"
- line "きみの ものがたりの はじまりだ!"
-
- para "ゆめと ぼうけんと!"
- line "ポケット モンスターの せかいへ!"
-
- para "レッツ ゴー!"
- done
-
-SetPlayerNamesDebug:: ; 5B07
- ld hl, DebugPlayerName
- ld de, wPlayerName
- call CopyNameDebug
- ld hl, DebugRivalName
- ld de, wRivalName
-
-CopyNameDebug:
- ld bc, PLAYER_NAME_LENGTH
- call CopyBytes
- ret
-
-DebugPlayerName: ; 5B1D
- db "コージ@"
-
-DebugRivalName: ; 5B21
- db "レッド@"
-
-ChoosePlayerName:: ; 5B25
- call PanPortraitRight
- ld hl, PlayerNameMenuHeader
- call NamingWindow
- ld a, [wMenuCursorY]
- dec a
- jr z, .loop
- ld de, wPlayerName
- call SaveCustomName
- jr .farjump
-
-.loop
- ld b, $01
- ld de, wPlayerName
- callba Function113f4
- ld a, [wPlayerName]
- cp "@"
- jr z, .loop
-
- call RotateThreePalettesRight
- call ClearTileMap
- call LoadFontExtra
- call WaitBGMap
- ld de, $4D10
- ld bc, $1200
- call IntroDisplayPicCenteredOrUpperRight
- call RotateThreePalettesLeft
-.farjump
- ld hl, ChoosePlayerNameEndText
- call PrintText
- ret
-
-ChoosePlayerNameEndText: ; 5B6F
- text "ふむ・・・"
- line "<PLAYER> と いうんだな!"
- prompt
-
-PlayerNameMenuHeader: ; 5B81
- db MENU_BACKUP_TILES ; flags
- menu_coords 00, 00, 10, 11
- dw PlayerNameMenuData
- db 01 ; initial selection
-
-PlayerNameMenuData; 5B89
- db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B
- db 04 ; items
- db "じぶんできめる@"
- db "ゴールド@"
- db "サトシ@"
- db "ジャック@"
- db 3 ; x offset for the title string
- db "なまえこうほ@"
-
-ChooseRivalName:: ; 5BA9
- call PanPortraitRight
- ld hl, RivalNameMenuHeader
- call NamingWindow
- ld a, [wMenuCursorY]
- dec a
- jr z, .loop
- ld de, wRivalName
- call SaveCustomName
- jr .farjump
-
-.loop
- ld b, $02
- ld de, wRivalName
- callba Function113f4 ; manual text entry box?
- ld a, [wRivalName]
- cp "@"
- jr z, .loop
-
- call RotateThreePalettesRight
- call ClearTileMap
- call LoadFontExtra
- call WaitBGMap
- ld de, $4BD4
- ld bc, $1200
- call IntroDisplayPicCenteredOrUpperRight
- call RotateThreePalettesLeft
-.farjump
- ld hl, ChooseRivalNameEndText
- call PrintText
- ret
-
-ChooseRivalNameEndText: ; 5BF3
- text "そうか そうだったな"
- line "<RIVAL> という なまえだ"
- prompt
-
-RivalNameMenuHeader: ; 5C0A
- db MENU_BACKUP_TILES ; flags
- menu_coords 00, 00, 10, 11
- dw RivalNameMenuData
- db 01 ; initial selection
-
-RivalNameMenuData: ; 5C12
- db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B
- db 04 ; items
- db "じぶんできめる@"
- db "シルバー@"
- db "シゲル@"
- db "ジョン@"
- db 3
- db "なまえこうほ@"
-
-MomNamePrompt:: ; 5C31
- ld hl, MomNameMenuHeader
- call NamingWindow
- ld a, [wMenuCursorY]
- dec a
- jr z, .loop
- ld de, wMomsName
- call SaveCustomName
- jr .escape
-
-.loop
- ld b, $03
- ld de, wMomsName
- callba Function113f4
- ld a, [wMomsName]
- cp "@"
- jr z, .loop
-
- call ClearPalettes
- call ClearTileMap
- callab Function140d9
- call LoadFontExtra
- call GetMemSGBLayout
- call WaitBGMap
-.escape
- ret
-
-MomNameMenuHeader: ; 5C71
- db MENU_BACKUP_TILES ; flags
- menu_coords 00, 00, 10, 11
- dw .MomNameMenuData
- db 01 ; initial selection
-
-.MomNameMenuData: ; 5C79
- db STATICMENU_CURSOR | STATICMENU_PLACE_TITLE | STATICMENU_DISABLE_B
- db 04 ; items
- db "じぶんで きめる@"
- db "おかあさん@"
- db "ママ@"
- db "かあちゃん@"
- db 3
- db "なまえこうほ@"
-
-NamingWindow:: ; 5C9B
- ; loads the menu header put into hl
- call LoadMenuHeader
- call VerticalMenu
- ld a, [wMenuCursorY]
- dec a
- call CopyNameFromMenu
- call CloseWindow
- ret
-
-SaveCustomName:: ; 5CAC
- ld hl, wcd31
- ld bc, PLAYER_NAME_LENGTH
- call CopyBytes
- ret
-
-PanPortraitRight:: ; 5CB6
- hlcoord 5, 4
- ld d, $06
- ld e, $7E
- ld b, d
- ld c, e
- ld d, $00
- add hl, de
-.loop
- xor a
- ldh [hBGMapMode], a
- push hl
- push bc
-.innerLoop
- ;pans all the tiles onscreen to the right one
- ld a, [hl+]
- ld [hl-], a
- dec hl
- dec c
- jr nz, .innerLoop
-
- call WaitBGMap
- pop bc
- pop hl
- inc hl
- dec b ; passed c - how many tiles right to pan?
- jr nz, .loop
- ret
-
-PanPortraitLeft:: ; 5CD7
- hlcoord 12, 4
- ld b, $06
- ld c, $7E
-.loop
- xor a
- ldh [hBGMapMode], a
- push hl
- push bc
-.innerloop
- ld a, [hl-]
- ld [hl+], a
- inc hl
- dec c
- jr nz, .innerloop
-
- call WaitBGMap
- pop bc
- pop hl
- inc hl
- dec b
- jr nz, .loop
- ret
-
-MenuCallSettings:: ; 5CF3
- call SettingsScreen
- ret
-
-FadeInIntroPic: ; 5CF7
- ld hl, IntroFadePalettes
- ld b, 6
-.next
- ld a, [hl+]
- ldh [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: ; 5D0E
- ld a, 119
- ldh [hWX], a
- call DelayFrame
-
- ld a, %11100100
- ldh [rBGP], a
-.next
- call DelayFrame
- ldh a, [hWX]
- sub 8
- cp $FF
- ret z
- ldh [hWX], a
- jr .next
-
-IntroDisplayPicCenteredOrUpperRight:: ; 5D27
-; b = bank
-; de = address of compressed pic
-; c: 0 = centred, non-zero = upper-right
- ld a, c
- and a
- hlcoord 13, 4
- jr nz, .skip
- hlcoord 6, 4
-.skip
- push hl
- ld a, b
- call UncompressSpriteFromDE
- ld a, $00
- call OpenSRAM
- ld hl, sSpriteBuffer1
- ld de, sSpriteBuffer0
- ld bc, DOUBLESPRITEBUFFERSIZE
- call CopyBytes
- call CloseSRAM
- ld de, VRAM_Begin + $1000
- call InterlaceMergeSpriteBuffers
- pop hl
- xor a
- ldh [hGraphicStartTile], a
- ld bc, $0707
- predef PlaceGraphic
- ret
-
-LoadStartingSprites: ; 5D5D
- ld de, GoldSpriteGFX
- lb bc, BANK(GoldSpriteGFX), $0C
- ld hl, VRAM_Begin
- call Request2bpp
- ld hl, wVirtualOAM
- ld de, GameStartSprites
- ld c, $04
-.loop
- ld a, [de]
- inc de
- ld [hl+], a
- ld a, [de]
- inc de
- ld [hl+], a
- ld a, [de]
- inc de
- ld [hl+], a
- xor a
- ld [hl+], a
- dec c
- jr nz, .loop
- ret
-
-GameStartSprites: ; 5D80
- db $50, $48, $00
- db $50, $50, $01
- db $58, $48, $02
- db $58, $50, $03
-
-; 5D8C \ No newline at end of file
+; 558D \ No newline at end of file