diff options
author | ehw <Knuckles500@gmail.com> | 2018-06-04 00:51:46 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-04 00:51:46 -0400 |
commit | 77d75a00c5df0bac4cdc7e63cd157d734a6ce79b (patch) | |
tree | 9c83fdd91d2e38f68e9aaca1f39bb99e08f699f1 | |
parent | 427d4a8436fd9f7ba69525d6c154b26af6ebc36e (diff) |
Title screen disassembled (new pr)
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | engine/title.asm | 637 | ||||
-rw-r--r-- | gfx.asm | 25 | ||||
-rw-r--r-- | gfx/title/title.png | bin | 0 -> 265 bytes | |||
-rw-r--r-- | gfx/title/title_gold_version.png | bin | 0 -> 276 bytes | |||
-rw-r--r-- | gfx/title/title_goldlogo.png | bin | 0 -> 225 bytes | |||
-rw-r--r-- | gfx/title/title_hooh.png | bin | 0 -> 488 bytes | |||
-rw-r--r-- | gfx/title/title_logo.png | bin | 0 -> 618 bytes | |||
-rw-r--r-- | gfx/title/title_silver_version.png | bin | 0 -> 282 bytes | |||
-rw-r--r-- | gfx/title/title_silverlogo.png | bin | 0 -> 243 bytes | |||
-rw-r--r-- | gfx/title/titlebgdecoration.png | bin | 0 -> 145 bytes | |||
-rw-r--r-- | home/init.asm | 2 | ||||
-rw-r--r-- | shim.sym | 94 | ||||
-rw-r--r-- | wram.asm | 57 |
14 files changed, 731 insertions, 86 deletions
@@ -84,8 +84,6 @@ $(BUILD)/%.o: %.asm | $$(dir $$@) $(BUILD)/gfx/sgb/sgb_border_alt.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/sgb/sgb_border_gold.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/sgb/sgb_border_silver.2bpp: tools/gfx += --trim-whitespace -$(BUILD)/gfx/title/title_gold.2bpp: tools/gfx += --trim-whitespace -$(BUILD)/gfx/title/title_silver.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/trainer_card/leaders.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/trainer_card/trainer_card.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/pokegear/town_map.2bpp: tools/gfx += --trim-trailing diff --git a/engine/title.asm b/engine/title.asm index 961b83b..e141096 100644 --- a/engine/title.asm +++ b/engine/title.asm @@ -1,19 +1,648 @@ INCLUDE "constants.asm" +INCLUDE "vram.asm" SECTION "Title screen", ROMX[$5D8C], BANK[$01] -IntroSequence:: ; 5d8c - ; TODO +IntroSequence:: ; 5D8C + callfar GameFreakIntro, $39 + jr c, TitleSequenceStart ; 5DAE + ld a, [wTitleSequenceOpeningType] ; CC38 + and a + jr z, .opening_sequence + +.pikachu_minigame + callfar PikachuMiniGame, $38 + jr TitleSequenceStart ; 5DAE +.opening_sequence + callfar OpeningCutscene, $39 + +TitleSequenceStart:: + call TitleSequenceInit + callfar SetTitleBGDecorationBorder, $02 + +.loop + call TitleScreenMain ; 5FB8 + jr nc, .loop + + call ClearPalettesAndWait ; 361E + call ClearSprites + ld a, $01 + ldh [hBGMapMode], a + call ClearTileMap + call ResetPalette ;33a + + ld a, [wJumptableIndex + 1] ; CB5F + ld e, a + ld d, 0 + ld hl, TitleScreenJumpTable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + + jp hl + +TitleScreenJumpTable:: + dw MainMenu + dw DebugMenu ; 4031 + dw SRAMClearMenu ; 61C6 + dw IntroSequence + +TitleSequenceInit:: + call ClearPalettes + + xor a + ldh [hMapAnims], a + ldh [hSCY], a + ldh [hSCX], a + + ld de, MUSIC_NONE ; Stop the music. + call PlayMusic + + call ClearTileMap + call DisableLCD + call ClearSprites + + ld a, $23 + ld hl, InitEffectObject ; 8CCFD - create another object? + call FarCall_hl + ld hl, vChars0 + ld bc, vBGMap0 - vChars0 + +.clear_loop + ld [hl], $00 + inc hl + dec bc + ld a, b + or c + jr nz, .clear_loop + + ld hl, TitleScreenGFX ; 107CF + ld de, $9410 + ld bc, 13 tiles + ld a, BANK(TitleScreenGFX) + call FarCopyData + + ld hl, TitleScreenVersionGFX ; 1095F + ld de, $9600 + ld bc, 24 tiles + ld a, BANK(TitleScreenVersionGFX) + call FarCopyData + + ld hl, TitleScreenHoOhGFX ; 10ADF + ld de, $9000 + ld bc, 49 tiles + ld a, BANK(TitleScreenHoOhGFX) + call FarCopyData + + ld hl, TitleScreenLogoGFX ; 10DEF + ld de, $8800 + ld bc, 58 tiles + ld a, BANK(TitleScreenLogoGFX) + call FarCopyData + + ld hl, TitleScreenGoldLogoGFX ; 1118F + ld de, $8BA0 + ld bc, 20 tiles + ld a, BANK(TitleScreenGoldLogoGFX) + call FarCopyData + + call SetTitleGfx ; 6288 + ld hl, wTileMapBackup ; C408 + ld a, $24 + ld [hli], a + ld a, $00 + ld [hli], a + + ld hl, vBGMap0 + ld bc, $0800 + ld a, " " + call ByteFill + + ld b, $06 + call GetSGBLayout + call EnableLCD + ld a, $01 + ldh [hBGMapMode], a + call WaitBGMap + xor a + ldh [hBGMapMode], a + ld hl, wJumptableIndex ; CB5E + ld [hli], a ; (Possibly wJumptableIndex from Crystal) + ld [hli], a ; (Possibly wIntroSceneFrameCounter from Crystal) + ld [hli], a ; (Possibly wTitleScreenTimer from Crystal) + ld [hl], a ; (Possibly wTitleScreenTimer + 1 from Crystal) + + call .load_position_table + + + ld a, %00011010 + ldh [rBGP], a + ld a, %11100100 + ldh [rOBP0], a + ret + +.load_position_table: + ld hl, FirePositionTable + ld c, 6 ; Load 6 flying objects on the screen. + +.set_fire_note_loop + push bc + ld e, [hl] + inc hl + ld d, [hl] + inc hl + push hl + ld a, $2E ; Title fire/note object effect type? + call InitSpriteAnimStruct ; 3CA8 + pop hl + pop bc + dec c + jr nz, .set_fire_note_loop + ret + +FirePositionTable:: ; 5EAC-5EB7 + dw $4CE0 + dw $58A0 + dw $6490 + dw $70D0 + dw $7CB0 + dw $8800 + +TitleFireGFX:: INCBIN "gfx/title/fire.2bpp" ; 5EB8-5F37 +TitleNotesGFX:: INCBIN "gfx/title/notes.2bpp" ; 5F38=5FB7 + +TitleScreenMain:: ; 5FB8 + ld a, [wJumptableIndex] ; CB5E + bit 7, a + jr nz, .exit + call TitleScreenSequence + ld a, $23 + ld hl, EffectObjectJumpNoDelay ; 8CD13 + call FarCall_hl + call DelayFrame + and a + ret + +.exit + scf + ret + +TitleScreenSequence:: + ld e, a + ld d, 0 + ld hl, TitleScreenSequenceTable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +TitleScreenSequenceTable:: + dw TitleSeq_Start + dw TitleSeq_LoadPokemonLogo + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_MoveTitle + dw TitleSeq_MoveTitleEnd + dw TitleSeq_InitFlashTitle + dw TitleSeq_FlashTitle + + dw TitleSeq_PMJapaneseChara + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_WaitForNextSequence + dw TitleSeq_PMSubtitle + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_WaitForNextSequence + dw TitleSeq_Version + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_WaitForNextSequence + dw TitleSeq_CopyRight + + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_WaitForNextSequence + dw TitleSeq_HoOh + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + dw TitleSeq_IncreaseJumpTableIndex + + dw TitleSeq_WaitForNextSequence + dw TitleSeq_PressButtonInit + dw TitleSeq_TitleScreenInputAndTimeout + dw TitleSeq_FadeMusicOut + +TitleSeq_IncreaseJumpTableIndex:: ; 6025 + ld hl, wJumptableIndex ; CB5E + inc [hl] + ret + +TitleSeq_WaitForNextSequence:: ; 602A + xor a + ldh [hBGMapMode], a + ld hl, wJumptableIndex + 2 + ld a, [hl] + and a + jr z, .next_seq + dec [hl] + ret + +.next_seq + call TitleSeq_IncreaseJumpTableIndex + ret + +TitleSeq_LoadPokemonLogo:: ; 603a + call PrintPokemonLogo ; 6196 + call TitleSeq_IncreaseJumpTableIndex ; 6025 + ld a, $01 + ldh [hBGMapMode], a + ret + +TitleSeq_Start:: ; 6045 + call TitleSeq_IncreaseJumpTableIndex + push de + ld de, $002D + call PlaySFX ; Play "Swish" sound + pop de + ld a, $80 + ld [wJumptableIndex + 2], a + call SetLYOverrides + ld a, $43 + ldh [hLCDCPointer], a + ret + +TitleSeq_MoveTitle:: ; 605d + xor a + ldh [hBGMapMode], a + ld hl, wJumptableIndex + 2 + ld a, [hl] + and a + jr z, .nextseq + add $04 + ld [hl], a + ld e, a +.wait + ldh a, [rLY] + cp $40 + jr c, .wait + ld a, e + call SetLYOverrides + ret + +.nextseq + call TitleSeq_IncreaseJumpTableIndex + ret + +TitleSeq_MoveTitleEnd:: ; 607A + xor a + ldh [hLCDCPointer], a + call TitleSeq_IncreaseJumpTableIndex + ld de, MUSIC_TITLE + call PlayMusic ; Play "Title Theme" + ret + +TitleSeq_InitFlashTitle:: ; 6087 + call TitleSeq_IncreaseJumpTableIndex + ld a, %00011010 + ld [wJumptableIndex + 2], a + ld a, 6 + ld [wJumptableIndex + 3], a + ret + +TitleSeq_FlashTitle:: ; 6095 + ld hl, wJumptableIndex + 3 + ld a, [hl] + and a + jr z, .exit + dec [hl] + ld a, [wJumptableIndex + 2] + xor %00011010 + ld [wJumptableIndex +2 ], a + ldh [rBGP], a + call DelayFrame + call DelayFrame + ret + +.exit + call TitleSeq_IncreaseJumpTableIndex + ld a, %11100100 + ldh [rBGP], a + ret + +TitleSeq_PMJapaneseChara:: ; 60B6 + call PrintPMJapaneseChara + ld a, $10 + ld [wJumptableIndex + 2], a + call TitleSeq_IncreaseJumpTableIndex + ld a, $01 + ldh [hBGMapMode], a + ret + +TitleSeq_PMSubtitle:: ; 60C6 + call PrintPMSubtitle + ld a, $10 + ld [wJumptableIndex + 2], a + call TitleSeq_IncreaseJumpTableIndex + ld a, $01 + ldh [hBGMapMode], a + ret + +TitleSeq_Version:: ; 60D6 + call PrintVersion + ld a, $10 + ld [wJumptableIndex + 2], a + call TitleSeq_IncreaseJumpTableIndex + ld a, $01 + ldh [hBGMapMode], a + ret + +TitleSeq_CopyRight:: ; 60e6 + call PrintCopyRight + ld a, $10 + ld [wJumptableIndex + 2], a + call TitleSeq_IncreaseJumpTableIndex + ld a, $01 + ldh [hBGMapMode], a + ret + +TitleSeq_HoOh:: ; 60f6 + call Set_HoOh + ld a, $10 + ld [wJumptableIndex + 2], a + call TitleSeq_IncreaseJumpTableIndex + ld a, $01 + ldh [hBGMapMode], a + ret + +TitleSeq_PressButtonInit:: ; 6106 + ld hl, wJumptableIndex + inc [hl] + ld hl, wJumptableIndex + 2 + ld de, DecodeNybble0Table - 3 ; DecodeNybble0Table - 3 = $0C00 + ld [hl], e + inc hl + ld [hl], d + ret + +TitleSeq_TitleScreenInputAndTimeout:: ; 6114 + ld hl, wJumptableIndex + 2 + ld e, [hl] + inc hl + ld d, [hl] + ld a, e + or d + jr z, .psbtn_reset + dec de + ld [hl], d + dec hl + ld [hl], e + call GetJoypad + ld hl, hJoyState ; hJoyState = $FFA3 + ld a, [hl] + and D_UP | B_BUTTON | SELECT ; UP + B + SELECT brings you to the SRAM clear screen. + cp D_UP | B_BUTTON | SELECT + jr z, .psbtn_sramclear + ld a, [hl] + and SELECT ; SELECT will bring you to the debug menu. + jr nz, .psbtn_gotodebug + ld a, [hl] + and $09 + ret z + +.psbtn_play + ld a, $00 ; MainMenu + jr .psbtn_nextseq + +.psbtn_gotodebug +if DEBUG + ld a, $01 ; DebugMenu + jr .psbtn_nextseq +else + ret +endc + +.psbtn_sramclear + ld a, $02 ; SRAMClearMenu + +.psbtn_nextseq + ld [wJumptableIndex + 1], a + ld hl, wJumptableIndex + set 7, [hl] + ret + +.psbtn_reset + ld hl, wJumptableIndex + inc [hl] + xor a + ld [wNextBGM], a ; C1A7 + ld [wNextBGM + 1], a + ld hl, wSoundFade ; C1A5 + ld [hl], 8 + ret + +TitleSeq_FadeMusicOut:: ; 615C + ld a, [wSoundFade] + and a + ret nz + ld a, 3 + ld [wJumptableIndex + 1], a + ld hl, wJumptableIndex + set 7, [hl] + ret + +SetLYOverrides:: ; 616C + ld hl, wLYOverrides + ld c, $30 +.setly_loop + ld [hli], a + dec c + jr nz, .setly_loop + ret + +PrintPMSubtitle:: ; 6176 + coord hl, 2, 6 + ld b, 15 + ld a, $69 + jr LoadPrintArea ; 6186 + +PrintVersion:: ; 617f + coord hl, 4, 1 + ld b, $09 + ld a, $60 + +LoadPrintArea:: ; 6186 + ld [hli], a + inc a + dec b + jr nz, LoadPrintArea + ret + +PrintPMJapaneseChara:: ; 618C + coord hl, 15, 2 + ld a, "こ" + lb bc, 4, 4 + jr PrintBoxArea + +PrintPokemonLogo:: ; 6196 + coord hl, 15, 3 + ld [hl], $B8 + coord hl, 15, 4 + ld [hl], $B9 + coord hl, 1, 2 + ld a, $80 + ld bc, $0E04 + +PrintBoxArea:: + ld de, SCREEN_WIDTH + push bc + push hl + +.xloop + ld [hli], a + inc a + dec b + jr nz, .xloop + pop hl + add hl, de + pop bc + dec c + jr nz, PrintBoxArea + ret + +PrintCopyRight:: + coord hl, 3, 17 + ld a, $41 + ld b, $0D + +.loop + ld [hli], a + inc a + dec b + jr nz, .loop + ret + +SRAMClearMenu:: ; 61C6 + call ClearTileMap + call GetMemSGBLayout + call LoadFont + call LoadFontExtra + ld hl, SRAMClear_TextMsg1 + call PrintText ; E70 + ld hl, SRAMClear_WinPOS + call CopyMenuHeader ; 1D50 + call VerticalMenu ; 1D87 + jp c, Init + ld a, [wMenuCursorY] ; CC2A + cp $01 + jp z, Init + + callfar InitAllSRAMBanks, $05 + jp Init + +SRAMClear_TextMsg1:: +db "<NULL>すべての セーブデータエりアを" +db "<LINE>クりア しますか?<DONE>" + +SRAMClear_WinPOS:: +db 0 +db 7,14,11,19 +dw SRAMClear_TextChoice ; menu data +db 1 ; default option + +SRAMClear_TextChoice:: +db %11000000 +db 2 +db "いいえ@" +db "はい@" + +IntroCopyRightInfo:: ; 6223 + call ClearTileMap + call LoadFontExtra + ld de, TitleScreenGFX + ld hl, $9600 + lb bc, BANK(TitleScreenGFX), $19 + call CopyVideoData + + coord hl, 5, 7 + ld de, IntroCopyRightInfo_Text + jp PlaceString + +IntroCopyRightInfo_Text:: ; 623E +db $60, $61, $62, $63, $6D, $6E, $6F, $70, $71, $72, $4E ; "(C)1997 Nintendo\n" +db $60, $61, $62, $63, $73, $74, $75, $76, $77, $78, $6B, $6C, $4E ; "(C)1997 Creatures Inc.\n" +db $60, $61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $50 ; "(C)1997 GAME FREAK Inc.{EOL}" + +Set_HoOh:: ; 6264 + coord hl, 7, 9 + ld de, $000D + ld a, $00 + ld b, $07 +.loop + ld c, $07 +.loop2 + ld [hli], a + inc a + dec c + jr nz, .loop2 + add hl, de + dec b + jr nz, .loop + ret + +; Unused code, looks like it sets the font type for the logo? +SetTitleFont:: ; 627A + ld de, $8800 + ld hl, TitleScreenLogoGFX + ld bc, 130 tiles + ld a, $04 + jp FarCopyDataDouble ; 0D3E + +; Sets the type of art that will be displayed on the title screen +; depending on wTitleSequenceOpeningType. +SetTitleGfx:: ;6288 + ld hl, wTitleSequenceOpeningType ; CC38 + ld a, [hl] + xor $01 + ld [hl], a + jr nz, .flame + +.note + ld hl, TitleNotesGFX + jr SetTitleGfxNext + +.flame + ld hl, TitleFireGFX +SetTitleGfxNext:: + ld de, $8000 + ld c, $80 +.loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .loop + ret if DEBUG SECTION "Title screen TEMPORARY", ROMX[$62A5],BANK[1] ; TODO: merge this with the main section above else SECTION "Title screen TEMPORARY", ROMX[$62A2],BANK[1] ; TODO: merge this with the main section above endc + -GameInit:: ; 62a5 +GameInit:: ; 62A5 call ClearWindowData ld a, $23 ld [wce5f], a - jp IntroSequence + jp IntroSequence
\ No newline at end of file @@ -1,11 +1,5 @@ INCLUDE "constants.asm" -SECTION "Title Screen Sprites", ROMX[$5EB8], BANK[$01] -TitleFireGFX:: -INCBIN "gfx/title/fire.2bpp" -TitleNotesGFX:: -INCBIN "gfx/title/notes.2bpp" - SECTION "Mon Nest Icon", ROMX[$4A0F], BANK[$02] PokedexNestIconGFX:: INCBIN "gfx/pokegear/dexmap_nest_icon.1bpp" @@ -25,6 +19,10 @@ SECTION "Pokegear GFX", ROMX[$4F32], BANK[$02] PokegearGFX:: INCBIN "gfx/pokegear/pokegear.2bpp" +SECTION "Title Screen BG Decoration Border", ROMX[$51FB], BANK[$02] +TitleBGDecorationBorder:: +INCBIN "gfx/title/titlebgdecoration.2bpp" + SECTION "Super Palettes", ROMX[$5B4C], BANK[$02] INCLUDE "data/pokemon/palettes.inc" INCLUDE "data/super_palettes.inc" @@ -42,11 +40,18 @@ INCBIN "gfx/sgb/sgb_border_silver.2bpp" endc SECTION "Title Screen GFX", ROMX[$47CF], BANK[$04] -TitleScreenGFX:: if def(GOLD) -INCBIN "gfx/title/title_gold.2bpp" +TitleScreenGFX:: INCBIN "gfx/title/title.2bpp" +TitleScreenVersionGFX:: INCBIN "gfx/title/title_gold_version.2bpp" +TitleScreenHoOhGFX:: INCBIN "gfx/title/title_hooh.2bpp" +TitleScreenLogoGFX:: INCBIN "gfx/title/title_logo.2bpp" +TitleScreenGoldLogoGFX:: INCBIN "gfx/title/title_goldlogo.2bpp" else -INCBIN "gfx/title/title_silver.2bpp" +TitleScreenGFX:: INCBIN "gfx/title/title.2bpp" +TitleScreenVersionGFX:: INCBIN "gfx/title/title_silver_version.2bpp" +TitleScreenHoOhGFX:: INCBIN "gfx/title/title_hooh.2bpp" +TitleScreenLogoGFX:: INCBIN "gfx/title/title_logo.2bpp" +TitleScreenGoldLogoGFX:: INCBIN "gfx/title/title_silverlogo.2bpp" endc SECTION "Mail Icon GFX", ROMX[$5BB1], BANK[$04] @@ -58,7 +63,7 @@ TrainerCardGFX:: INCBIN "gfx/trainer_card/trainer_card.2bpp" TrainerCardColonGFX:: INCBIN "gfx/trainer_card/colon.2bpp" ; 0x013381--0x013391 TrainerCardIDNoGFX:: INCBIN "gfx/trainer_card/id_no.2bpp" ; 0x013391--0x0133B1 TrainerCardIDNoGFXEnd:: -TrainerCardLeadersGFX:: INCBIN "gfx/trainer_card/leaders.2bpp" ; 0x0133B1--0x013BA1 +TrainerCardLeadersGFX:: INCBIN "gfx/trainer_card/leaders.2bpp" ; 0x0133B1--0x133BA1 if DEBUG || def(GOLD) db $18, $00 ; leftover of previous graphics else diff --git a/gfx/title/title.png b/gfx/title/title.png Binary files differnew file mode 100644 index 0000000..58a8274 --- /dev/null +++ b/gfx/title/title.png diff --git a/gfx/title/title_gold_version.png b/gfx/title/title_gold_version.png Binary files differnew file mode 100644 index 0000000..e55f741 --- /dev/null +++ b/gfx/title/title_gold_version.png diff --git a/gfx/title/title_goldlogo.png b/gfx/title/title_goldlogo.png Binary files differnew file mode 100644 index 0000000..cb6b12d --- /dev/null +++ b/gfx/title/title_goldlogo.png diff --git a/gfx/title/title_hooh.png b/gfx/title/title_hooh.png Binary files differnew file mode 100644 index 0000000..c24e79b --- /dev/null +++ b/gfx/title/title_hooh.png diff --git a/gfx/title/title_logo.png b/gfx/title/title_logo.png Binary files differnew file mode 100644 index 0000000..79a7184 --- /dev/null +++ b/gfx/title/title_logo.png diff --git a/gfx/title/title_silver_version.png b/gfx/title/title_silver_version.png Binary files differnew file mode 100644 index 0000000..2d6d8d0 --- /dev/null +++ b/gfx/title/title_silver_version.png diff --git a/gfx/title/title_silverlogo.png b/gfx/title/title_silverlogo.png Binary files differnew file mode 100644 index 0000000..ffeda09 --- /dev/null +++ b/gfx/title/title_silverlogo.png diff --git a/gfx/title/titlebgdecoration.png b/gfx/title/titlebgdecoration.png Binary files differnew file mode 100644 index 0000000..c57bdd4 --- /dev/null +++ b/gfx/title/titlebgdecoration.png diff --git a/home/init.asm b/home/init.asm index ef4b745..d8ae530 100644 --- a/home/init.asm +++ b/home/init.asm @@ -40,7 +40,7 @@ Init: ; 052f ld [rOBP1], a ld [rTMA], a ld [rTAC], a - ld [wcc38], a ; Useless, since WRAM gets cleared right after + ld [wTitleSequenceOpeningType], a ; Useless, since WRAM gets cleared right after ld a, 1 << rTAC_ON | rTAC_4096_HZ ld [rTAC], a ld a, 1 << rLCDC_ENABLE @@ -1,22 +1,27 @@ -00:032B UpdateTimeOfDayPalettes +00:032b UpdateTimeOfDayPalettes +00:033a ResetPalette 00:0436 RTC 00:051C Reset -00:0D0A LoadFont 00:0D1A LoadFontExtra +00:0d0a LoadFont 00:0E2A ClearTileMap -00:0E3D DrawTextBox +00:0e3d DrawTextBox +00:0e70 PrintText 00:0E93 PlaceString 00:0E94 PlaceNextChar 00:0E9D CheckDict -00:1D49 LoadMenuHeader -00:1E58 OpenMenu +00:1d49 LoadMenuHeader +00:1d50 CopyMenuHeader +00:1d87 VerticalMenu +00:1e58 OpenMenu 00:1F9E ClearWindowData 00:1FCC ClearWindowData.bytefill -00:20FF RunMapScript -00:232C LoadMapWarp -00:23E5 OverworldFadeIn +00:20ff RunMapScript +00:232c LoadMapWarp +00:23e5 OverworldFadeIn 00:2C05 StartMenuCheck 00:3270 Random +00:361E ClearPalettesAndWait 00:3621 WaitBGMap 00:362B SetPalettes 00:3634 ClearPalettes @@ -27,6 +32,7 @@ 00:36C8 NamesPointers 00:36E0 GetName 00:39BA PlayCry +00:3CA8 InitSpriteAnimStruct 00:3D86 WaitSFX 00:3D87 WaitSFX.wait 00:3DA5 MaxVolume @@ -38,29 +44,30 @@ 00:3DE1 PlayMapMusic 00:3E00 PlayMapMusic.dontplay 00:3E05 SpecialMapMusic -00:3E14 SpecialMapMusic.state2 +00:3E14 SpecialMapMusic.state2 ; ? 00:3E19 SpecialMapMusic.normal 00:3E1B GetMapMusic 00:3E2E GetMapMusic.unk_3E2E 00:3E32 Unk_3E32 01:4031 Function_4031 -01:53CC MainMenu +01:4031 DebugMenu +01:53cc MainMenu 01:5D27 Function_5d27 -01:6114 TitleScreenInputAndTimeout 01:6445 Function_6445 01:66B1 Function_66b1 01:6713 Function_6713 02:4786 Function_8786 02:4856 DecompTownMapTilemap -02:48DA DecompTownMapTilemap.tilemap -02:4C7C DrawMap -02:4DC2 TownMapGfx +02:48da DecompTownMapTilemap.tilemap ; compressed +02:4c7c DrawMap +02:4dc2 TownMapGfx 02:4F32 PokegearRadioGfx +02:51D2 SetTitleBGDecorationBorder 02:528B Function_928b 02:5695 CheckSGB 02:5695 Function_9695 03:4791 DebugWarp -03:479F DebugWarp.Destinations +03:479f DebugWarp.Destinations 03:4AA1 AddItemToInventory_ 03:4D33 Function_cd33 03:4D6F Function_cd6f @@ -85,9 +92,10 @@ 04:528F Function_1128f 04:52C1 Function_112c1 04:5677 DoPlayerMovement -04:5DBE DisplayStartMenu +04:5dbe DisplayStartMenu 04:640B Function_1240b -04:6C58 CheckRegisteredItem +04:6c58 CheckRegisteredItem +05:43B6 InitAllSRAMBanks 05:43E0 Function_143e0 05:457A Function_1457a 05:45B8 Function_145b8 @@ -97,9 +105,9 @@ 0A:4D6E Function_28d6e 0A:4DA4 Function_28da4 0B:5663 Function_2d663 -0E:4B78 LoadTrainerClassName -0E:4BA0 LoadTrainerClassName.got_name -0E:4BA9 LoadTrainerClass +0E:4b78 LoadTrainerClassName +0E:4ba0 LoadTrainerClassName.got_name +0E:4ba9 LoadTrainerClass 0F:508C Function_3d08c 0F:55CE Function_3d5ce 0F:567C Function_3d67c @@ -140,7 +148,9 @@ 23:44BE Function_8c4be 23:4940 Function_8c940 23:49C6 Function_8c9c6 -23:60CC MenuMonIconGfx +23:4CFD InitEffectObject +23:4d13 EffectObjectJumpNoDelay +23:60cc MenuMonIconGfx 24:4000 SetClockDialog 24:4239 SlotMachineGame 32:4000 Function_c8000 @@ -150,13 +160,9 @@ 33:4000 Function_cc000 33:4000 Function_cc000_2 33:4001 Function_cc001 -3A:4307 Function_e8307 -3A:4352 Function_e8352 -3A:441D Function_e841d -3A:45D8 Function_e85d8 -3A:47F9 Function_e87f9 -3A:4839 Function_e8839 -3A:484F Function_e884f +38:4000 PikachuMiniGame +39:4000 GameFreakIntro +39:432F OpeningCutscene 3A:4D9D _PlayCryHeader 3A:4E22 _PlaySFX 3A:4F11 LoadChannel @@ -164,27 +170,27 @@ 3A:52C7 Music 3F:40E9 InGameDebugMenu 3F:5B66 Function_fdb66 -3F:64CE MonsterTest -3F:654E PicTest -3F:6750 PicTestMenu -3F:6755 PicTestMenu.loop -00:C5E8 wMapScriptNumber -00:CA22 wTrainerClass +3f:64ce MonsterTest +3f:654e PicTest +3f:6750 PicTestMenu +3f:6755 PicTestMenu.loop +00:c5e8 wMapScriptNumber +00:ca22 wTrainerClass 00:CBF2 wWindowData 00:CBF2 wWindowStackPointer 00:CC02 wMenuDataHeader 00:CC12 wMenuData2 00:CC22 wMenuData3 -00:CDBE wTargetMapUnk -00:CDBF wTargetMapGroup -00:CDC0 wTargetMapId -00:CE67 wPlayerName -01:D165 wTMCounts -01:D19E wItems -01:D258 wRivalName +00:cdbe wTargetMapUnk +00:cdbf wTargetMapGroup +00:cdc0 wTargetMapId +00:ce67 wPlayerName +01:d165 wTMCounts +01:d19e wItems +01:d258 wRivalName 01:D264 wPlayerBikeSurfState -01:D656 wMapGroup -01:D657 wMapId -01:D66A wMapScriptPtr +01:d656 wMapGroup +01:d657 wMapId +01:d66a wMapScriptPtr 01:D7D2 wPartyMonOT 01:DA3B wUnk_DA3B @@ -17,43 +17,46 @@ wChannel6:: channel_struct wChannel6 ; c0fa wChannel7:: channel_struct wChannel7 ; c12c wChannel8:: channel_struct wChannel8 ; c15e - ds 1 ; c190 + ds 8 ; TODO -wCurTrackDuty:: db ; c191 -wCurTrackIntensity:: db ; c192 -wCurTrackFrequency:: dw ; c193 -wc195:: db ; c195 - - ds 2 ; TODO +wCurChannel:: ; c198 + db -wCurChannel:: db ; c198 -wVolume:: db ; c199 -wSoundOutput:: db ; c19a +wVolume:: ; c199 + db - ds 1 ; TODO + ds 2 ; TODO -wMusicID:: dw ; c19c -wMusicBank:: db ; c19e +wMusicID:: ; c19c + dw +wMusicBank:: ; c19e + db + ds 6 ; TODO + +wSoundFade:: ; c1a5 + db + + ds 1 -wMusicFade:: ; c1a5 -; fades volume over x frames -; bit 7: fade in/out -; bit 0-6: number of frames for each volume level -; $00 = none (default) +wNextBGM:: ; c1a7 db -wMusicFadeCount:: db ; c1a6 -wMusicFadeID:: dw ; c1a7 + + ds 5 + +wMapMusic:: ; c1ad + db - ds 4 ; TODO +wCryPitch:: ; c1ae + dw -wMapMusic:: db ; c1ad -wCryPitch:: dw ; c1ae -wCryLength:: dw ; c1b0 +wCryLength:: ; c1b0 + dw ds 10 ; TODO + ; either wChannelsEnd or wMusicEnd, unsure wMusicInitEnd:: ; c1bc @@ -110,6 +113,9 @@ SECTION "CB56", WRAM0[$CB5B] wcb5b:: ds 1 ; multipurpose, also wName, wMonDexIndex2 wNameCategory:: ds 1 +SECTION "CB5E", WRAM0[$CB5E] +wJumptableIndex:: ds 4 + SECTION "CB62", WRAM0[$CB62] wVBCopySize:: ds 1 ; cb62 @@ -149,7 +155,8 @@ wVBlankOccurred: db ; cc33 ds 4 -wcc38:: ; cc38 ; TODO: wceeb in pokegold, what is this? +;Controls what type of opening (fire/notes) you get. +wTitleSequenceOpeningType:: ; cc38 db wDebugWarpSelection:: ; cc39 |