mirror of
https://github.com/pret/pokegold-spaceworld.git
synced 2026-04-26 08:13:44 -05:00
split the oak speeches and game setup into two files
This commit is contained in:
parent
26edac4db6
commit
0369ef51b4
800
engine/Intro.asm
Normal file
800
engine/Intro.asm
Normal file
|
|
@ -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
|
||||
|
|
@ -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
|
||||
; 558D
|
||||
Loading…
Reference in New Issue
Block a user