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 00000000..2a9ae184 Binary files /dev/null and b/gfx/title/fplayer.png differ diff --git a/gfx/title/kep_version.png b/gfx/title/kep_version.png index a934906a..86550971 100644 Binary files a/gfx/title/kep_version.png and b/gfx/title/kep_version.png differ diff --git a/gfx/trainer_card.asm b/gfx/trainer_card.asm index 3eca64b9..dc573e2d 100644 --- a/gfx/trainer_card.asm +++ b/gfx/trainer_card.asm @@ -6,3 +6,6 @@ TrainerInfoTextBoxTileGraphicsEnd: CircleTile: INCBIN "gfx/trainer_card/circle_tile.2bpp" BadgeNumbersTileGraphics: INCBIN "gfx/trainer_card/badge_numbers.2bpp" + +FPlayerCharacterTitleGraphics: INCBIN "gfx/title/fplayer.2bpp" +FPlayerCharacterTitleGraphicsEnd: diff --git a/ram/wram.asm b/ram/wram.asm index d65f8e49..18e8fcbd 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -861,6 +861,7 @@ wNumShakes:: wWhichBadge:: wTitleMonSpecies:: wPlayerCharacterOAMTile:: +wFPlayerCharacterOAMTile:: ; the number of small stars OAM entries to move down wMoveDownSmallStarsOAMCount:: wChargeMoveNum::