From 2c6fc430112e0f39e91645c6b05a26b3f51b67eb Mon Sep 17 00:00:00 2001 From: Martha Schilling Date: Wed, 15 May 2024 20:46:36 +0100 Subject: [PATCH] Title screen + Diploma improvements - An interesting thing I decided to implement here; every time the title screen gets loaded, it loads a random choice between Red and Green, as well as Scream Tail and Sandy Shocks. This effectively gives 4 different starting title screens. - Made the EXPN. PAK text on the title screen more centered. - Green now appears on the diploma instead of Red if you're playing as her. --- data/pokemon/title_mons.asm | 12 +++---- engine/events/diploma.asm | 11 ++++++- engine/movie/title.asm | 64 ++++++++++++++++++++++++++++++++---- gfx/title/fplayer.png | Bin 0 -> 803 bytes gfx/title/kep_version.png | Bin 449 -> 489 bytes gfx/trainer_card.asm | 3 ++ ram/wram.asm | 1 + 7 files changed, 78 insertions(+), 13 deletions(-) create mode 100644 gfx/title/fplayer.png diff --git a/data/pokemon/title_mons.asm b/data/pokemon/title_mons.asm index 08a7b64f..5142abb5 100644 --- a/data/pokemon/title_mons.asm +++ b/data/pokemon/title_mons.asm @@ -1,5 +1,7 @@ TitleMons: ; mons on the title screen are randomly chosen from here + db SCREAM_TAIL ; Mascots + db SANDY_SHOCKS db TOTARTLE ; New Starters db GOROCHU db SYLVEON @@ -9,10 +11,8 @@ TitleMons: db BELLIGNAN ; GS Betas db LUXWAN db PORYGON2 ; Post-Gen 1 Evos - db MAGNEZONE - db ANNIHILAPE - db SCREAM_TAIL ; LGPE and SV - db WUGTRIO - db MELTAN - db EXEGGUTOR_A ; Regional Variants + db TANGROWTH + db ANNIHILAPE + db EXEGGUTOR_A ; Regional Variants & Convergents db TAUROS_PB + db WUGTRIO diff --git a/engine/events/diploma.asm b/engine/events/diploma.asm index e08b1f24..be211b16 100644 --- a/engine/events/diploma.asm +++ b/engine/events/diploma.asm @@ -39,9 +39,18 @@ DisplayDiploma:: hlcoord 10, 4 ld de, wPlayerName call PlaceString + ld a, [wPlayerSex] + and a ; are you playing as Red + jr z, .red ; if yes, Red appears on the diploma + jr nz, .green ; if no, Green replaces him +.green + farcall DrawFPlayerCharacter + jr .skip +.red farcall DrawPlayerCharacter +.skip -; Move the player 33 pixels right and set the priority bit so he appears +; Move the player 33 pixels right and set the priority bit so they appear ; behind the background layer. ld hl, wShadowOAMSprite00XCoord lb bc, $80, $28 diff --git a/engine/movie/title.asm b/engine/movie/title.asm index f5bab4be..9120396d 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -91,8 +91,15 @@ DisplayTitleScreen: inc a dec b jr nz, .pokemonLogoLastTileRowLoop - + call Random + ldh a, [hRandomAdd] + cp 129 + jr c, .male + call DrawFPlayerCharacter + jr .playerskip +.male call DrawPlayerCharacter +.playerskip ; put a pokeball in the player's hand ld hl, wShadowOAMSprite10 @@ -119,11 +126,19 @@ DisplayTitleScreen: call SaveScreenTilesToBuffer2 call LoadScreenTilesFromBuffer2 call EnableLCD - + call Random + ldh a, [hRandomSub] + cp 129 + jr c, .notshocks + ld a, SANDY_SHOCKS + ld [wTitleMonSpecies], a + call LoadTitleMonSprite + jr .skip +.notshocks ld a, SCREAM_TAIL ld [wTitleMonSpecies], a call LoadTitleMonSprite - +.skip ld a, HIGH(vBGMap0 + $300) call TitleScreenCopyTileMapToVRAM call SaveScreenTilesToBuffer1 @@ -347,6 +362,43 @@ DrawPlayerCharacter: jr nz, .loop ret +DrawFPlayerCharacter: + ld hl, FPlayerCharacterTitleGraphics + ld de, vSprites + ld bc, FPlayerCharacterTitleGraphicsEnd - FPlayerCharacterTitleGraphics + ld a, BANK(FPlayerCharacterTitleGraphics) + call FarCopyData2 + call ClearSprites + xor a + ld [wFPlayerCharacterOAMTile], a + ld hl, wShadowOAM + lb de, $60, $5a + ld b, 7 +.loop2 + push de + ld c, 5 +.innerLoop2 + ld a, d + ld [hli], a ; Y + ld a, e + ld [hli], a ; X + add 8 + ld e, a + ld a, [wFPlayerCharacterOAMTile] + ld [hli], a ; tile + inc a + ld [wFPlayerCharacterOAMTile], a + inc hl + dec c + jr nz, .innerLoop2 + pop de + ld a, 8 + add d + ld d, a + dec b + jr nz, .loop2 + ret + ClearBothBGMaps: ld hl, vBGMap0 ld bc, $400 * 2 @@ -387,15 +439,15 @@ CopyrightTextString: INCLUDE "data/pokemon/title_mons.asm" -; prints version text (red, blue) +; prints version text PrintGameVersionOnTitleScreen: - hlcoord 7, 8 + hlcoord 6, 8 ld de, VersionOnTitleScreenText jp PlaceString ; these point to special tiles specifically loaded for that purpose and are not usual text VersionOnTitleScreenText: - db $61,$62,$63,$64,$65,$66,$67,$68,"@" ; "Blue Version" + db $61,$62,$63,$64,$65,$66,$67,$68,"@" DebugNewGamePlayerName: db "NINTEN@" diff --git a/gfx/title/fplayer.png b/gfx/title/fplayer.png new file mode 100644 index 0000000000000000000000000000000000000000..2a9ae1848eae70d0f1faa51edb25892be3ee44ea GIT binary patch literal 803 zcmeAS@N?(olHy`uVBq!ia0vp^8bEBp1SA+9eE!=Fq!f}pf_xbms?-=58d?|_egTCV zUNA6}8Za=tN?>5Hn!&&zUNC1@pbb!hDaqU2g@M_)rKkhQ<1FxqEM{QfI}E~%$MaXD z00r4gJbhi+U$F9Xi-^8VD=-5JG3FQfg)p99R6YyHQ7v(eC`m~yNwrEYN(E93Mg~SE zx(24YhNdBghE_%fK%{M8U}a!%a>fgggAp2X^HVa@DsgMraWvo^P=f~ChLX(O)Z&uF z+yX3m3?Y_yF0X0@>WNB?@J#ddWzYh$IT%>x%B zs2X5kG6^Hp1J#0n2M_~wLumP+?iGmc`s7K(VKZL%)`_{4evtoczu2)&#Ua z`;t6Ea$aQ`gE;fQf|5rU`P@1dcxFa!aLx>!a4E;vU{dg_S95&M&5uoaHYYQx)vMSp z?xd(xx%iv;YNn5hzJECUzG%y;lHhx5F8OvH{wDP+Y}RB?ozivc8jc3WInTF+K5BgM z^TsWmJ!+dm&(-voToZ21ZfR6g)^^oUHK^-;+pHO$US5m6 zsJvUTN!LbbPGOzi3Z9rKev28c~vxSdwa0l9`)YT#}eu zz+hxxgr>&=V&ZeLsI`-s7&D_>JzX3_IIbuE;AiDwuaSEGC%?v~{o$XPmbU+&&zWS1)|fUQGx&f delta 204 zcmaFKe2{s93NK5#qpu?a!^VE@KZ&dp6&pI|g@r>) zn@Cms|>mo