Boy/Girl option

This adds the boy/girl selection from later generations, using the pret tutorial and a spriteset from Pokemon Anniversary Red. I made some alterations, namely inserting the option later into the speech to be less clunky, and having the Nidorino become a Nidorina if you pick the feminine option.

I decided to make the third name option Seren, a common Welsh name for girls. It means "star", which is really cute! But...most people will probably say it's a Panel de Pon reference, which is cool too.
This commit is contained in:
Llinos Evans 2023-05-13 00:08:39 +01:00
parent 3b16404a50
commit 36baa9e623
28 changed files with 225 additions and 35 deletions

View file

@ -85,6 +85,7 @@ Improved areas
QoL Enhancements QoL Enhancements
==== ====
- A girl option is now available, featuring the sprite from Pokemon Anniversary Red, which is based on Green's manga and later LGPE appearance (sort of).
- All 151 original Pokemon, plus an additional 100, can be obtained without the use of trading or glitches, including Mew! - All 151 original Pokemon, plus an additional 100, can be obtained without the use of trading or glitches, including Mew!
- New Pokedex entries for most Pokemon are available, sourced from the original 1996 Pokedex book by Creatures Inc., restoring a ton of old Kanto lore. Thanks to [Dr. Lava and Nob Ogasawara](http://lavacutcontent.com/1996-creatures-pokedex-translation-1/) for their incredible work translating and writing about it! - New Pokedex entries for most Pokemon are available, sourced from the original 1996 Pokedex book by Creatures Inc., restoring a ton of old Kanto lore. Thanks to [Dr. Lava and Nob Ogasawara](http://lavacutcontent.com/1996-creatures-pokedex-translation-1/) for their incredible work translating and writing about it!
- Pikachu and Eevee are now starters, featuring fully functional Rival lineups. If you pick Pikachu, he picks Eevee, and if you pick Eevee, he picks Pikachu! - Pikachu and Eevee are now starters, featuring fully functional Rival lineups. If you pick Pikachu, he picks Eevee, and if you pick Eevee, he picks Pikachu!
@ -290,6 +291,7 @@ Credits
* FrenchOrange - Reconstructions of various overworld beta sprites. * FrenchOrange - Reconstructions of various overworld beta sprites.
* Helix Chamber, RacieBeep, loumilouminosus, Orchid, GBCRetro, & catstorm26 - Prototype Pokémon sprites * Helix Chamber, RacieBeep, loumilouminosus, Orchid, GBCRetro, & catstorm26 - Prototype Pokémon sprites
* Vortiene - Reused a bit of code from their pureRGB hack. Assisted in bug fixes. * Vortiene - Reused a bit of code from their pureRGB hack. Assisted in bug fixes.
* Pigu-A, RevoSucks, walle303 - Contributors to Pokemon Anniversary Red, which we used as reference points for the Girl sprites and the Battle Tent.
* jojobear13 & Mateo - Move deleter & move relearner functionality from Shin Pokered, followed [this guide](https://github.com/jojobear13/shinpokered/blob/master/how%20to%20guides/how%20to%20add%20the%20move%20relearner%26deleter.txt). Tweaks were made to make it compatible with the pokered version we worked off of. * jojobear13 & Mateo - Move deleter & move relearner functionality from Shin Pokered, followed [this guide](https://github.com/jojobear13/shinpokered/blob/master/how%20to%20guides/how%20to%20add%20the%20move%20relearner%26deleter.txt). Tweaks were made to make it compatible with the pokered version we worked off of.
* Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld! * Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld!
* wrulfy - Technical advice * wrulfy - Technical advice

View file

@ -5,6 +5,13 @@ DefaultNamesPlayer:
next "JACK" next "JACK"
db "@" db "@"
DefaultNamesGirl:
db "NEW NAME"
next "GREEN"
next "LEAF"
next "SEREN"
db "@"
DefaultNamesRival: DefaultNamesRival:
db "NEW NAME" db "NEW NAME"
next "BLUE" next "BLUE"

View file

@ -4,6 +4,12 @@ DefaultNamesPlayerList:
db "ASH@" db "ASH@"
db "JACK@" db "JACK@"
DefaultNamesGirlList:
db "NEW NAME@"
db "GREEN@"
db "LEAF@"
db "SEREN@"
DefaultNamesRivalList: DefaultNamesRivalList:
db "NEW NAME@" db "NEW NAME@"
db "BLUE@" db "BLUE@"

View file

@ -1740,7 +1740,7 @@ _OakSpeechText2B::
prompt prompt
_IntroducePlayerText:: _IntroducePlayerText::
text "First, what is" text "Next, what is"
line "your name?" line "your name?"
prompt prompt
@ -1819,3 +1819,8 @@ _PromptToCutText::
text "Would you like to" text "Would you like to"
line "use CUT?" line "use CUT?"
done done
_BoyGirlText::
text "Firstly, are you a"
line "boy or a girl?"
done

View file

@ -8,7 +8,7 @@ TwoOptionMenuStrings:
table_width 5, TwoOptionMenuStrings table_width 5, TwoOptionMenuStrings
; width, height, blank line before first menu item?, text pointer ; width, height, blank line before first menu item?, text pointer
two_option_menu 4, 3, FALSE, .YesNoMenu two_option_menu 4, 3, FALSE, .YesNoMenu
two_option_menu 6, 3, FALSE, .NorthWestMenu two_option_menu 5, 3, FALSE, .BoyGirlMenu
two_option_menu 6, 3, FALSE, .SouthEastMenu two_option_menu 6, 3, FALSE, .SouthEastMenu
two_option_menu 6, 3, FALSE, .YesNoMenu two_option_menu 6, 3, FALSE, .YesNoMenu
two_option_menu 6, 3, FALSE, .NorthEastMenu two_option_menu 6, 3, FALSE, .NorthEastMenu
@ -25,9 +25,10 @@ TwoOptionMenuStrings:
db "YES" db "YES"
next "NO@" next "NO@"
.NorthWestMenu: ; There is probably a better way to word this...
db "NORTH" .BoyGirlMenu:
next "WEST@" db "BOY"
next "GIRL@"
.SouthEastMenu: .SouthEastMenu:
db "SOUTH" db "SOUTH"

View file

@ -6365,12 +6365,21 @@ SwapPlayerAndEnemyLevels:
LoadPlayerBackPic: LoadPlayerBackPic:
ld a, [wBattleType] ld a, [wBattleType]
dec a ; is it the old man tutorial? dec a ; is it the old man tutorial?
ld de, RedPicBack ld de, OldManPicBack ; Load the old man back sprite preemptively
jr nz, .next ld a, BANK(RedPicBack) ; Default Red back sprite will be used as a means to load in the Old Man back sprite
ld de, OldManPicBack jr z, .next
.next ld a, [wPlayerSex] ; do you think a republican will get off to this commit
and a
jr z, .RedBack
ld de, GreenPicBack
ld a, BANK(GreenPicBack) ; Load female back sprite
jr .next
.RedBack
ld de, RedPicBack ; Load default Red back sprite
ld a, BANK(RedPicBack) ld a, BANK(RedPicBack)
ASSERT BANK(RedPicBack) == BANK(OldManPicBack) .next
ASSERT BANK(GreenPicBack) == BANK(OldManPicBack) ; These two ASSERTs make sure to cover
ASSERT BANK(RedPicBack) == BANK(OldManPicBack) ; both sprite cases
call UncompressSpriteFromDE call UncompressSpriteFromDE
predef ScaleSpriteByTwo predef ScaleSpriteByTwo
ld hl, wShadowOAM ld hl, wShadowOAM

View file

@ -41,6 +41,10 @@ IF DEF(_DEBUG)
ld [wTownVisitedFlag], a ld [wTownVisitedFlag], a
ld [wTownVisitedFlag + 1], a ld [wTownVisitedFlag + 1], a
; This hack was coded by transfems.
ld a, 1
ld [wPlayerSex], a
; Get all badges except Earth Badge. ; Get all badges except Earth Badge.
ld a, ~(1 << BIT_EARTHBADGE) ld a, ~(1 << BIT_EARTHBADGE)
ld [wObtainedBadges], a ld [wObtainedBadges], a

View file

@ -486,6 +486,12 @@ StartMenu_TrainerInfo::
DrawTrainerInfo: DrawTrainerInfo:
ld de, RedPicFront ld de, RedPicFront
lb bc, BANK(RedPicFront), $01 lb bc, BANK(RedPicFront), $01
ld a, [wPlayerSex] ; guess what it's genital inspection time
and a
jr z, .AreBoy
ld de, GreenPicFront
lb bc, BANK(GreenPicFront), $01
.AreBoy
predef DisplayPicCenteredOrUpperRight predef DisplayPicCenteredOrUpperRight
call DisableLCD call DisableLCD
hlcoord 0, 2 hlcoord 0, 2

View file

@ -183,8 +183,16 @@ HoFMonInfoText:
next "TYPE2/@" next "TYPE2/@"
HoFLoadPlayerPics: HoFLoadPlayerPics:
ld a, [wPlayerSex] ; sex check
and a ; sex check
jr nz, .GirlStuff1
ld de, RedPicFront ld de, RedPicFront
ld a, BANK(RedPicFront) ld a, BANK(RedPicFront)
jr .Routine ; skip the girl stuff and go to main routine
.GirlStuff1
ld de, GreenPicFront
ld a, BANK(GreenPicFront)
.Routine ; resume original routine
call UncompressSpriteFromDE call UncompressSpriteFromDE
ld hl, sSpriteBuffer1 ld hl, sSpriteBuffer1
ld de, sSpriteBuffer0 ld de, sSpriteBuffer0
@ -192,8 +200,16 @@ HoFLoadPlayerPics:
call CopyData call CopyData
ld de, vFrontPic ld de, vFrontPic
call InterlaceMergeSpriteBuffers call InterlaceMergeSpriteBuffers
ld a, [wPlayerSex] ; sex check
and a ; maybe the tories are like this too
jr nz, .GirlStuff2
ld de, RedPicBack ld de, RedPicBack
ld a, BANK(RedPicBack) ld a, BANK(RedPicBack)
jr .routine2 ; skip the girl stuff and continue original routine if guy
.GirlStuff2
ld de, GreenPicBack
ld a, BANK(GreenPicBack)
.routine2 ; original routine
call UncompressSpriteFromDE call UncompressSpriteFromDE
predef ScaleSpriteByTwo predef ScaleSpriteByTwo
ld de, vBackPic ld de, vBackPic

View file

@ -58,14 +58,36 @@ OakSpeech:
ld a, [wd732] ld a, [wd732]
bit 1, a ; possibly a debug mode bit bit 1, a ; possibly a debug mode bit
jp nz, .skipChoosingNames jp nz, .skipChoosingNames
call ClearScreen ; clear the screen before resuming normal intro
ld de, ProfOakPic ld de, ProfOakPic
lb bc, BANK(ProfOakPic), $00 lb bc, BANK(ProfOakPic), $00
call IntroDisplayPicCenteredOrUpperRight call IntroDisplayPicCenteredOrUpperRight
call FadeInIntroPic call FadeInIntroPic
ld hl, OakSpeechText1 ld hl, OakSpeechText1
call PrintText call PrintText
ld hl, BoyGirlText ; added to the same file as the other oak text
call PrintText ; show this text
call BoyGirlChoice ; added routine at the end of this file
ld a, [wCurrentMenuItem]
ld [wPlayerSex], a ; store player's gender. 00 for boy, 01 for girl
call GBFadeOutToWhite call GBFadeOutToWhite
call ClearScreen call ClearScreen
ld a, [wPlayerSex] ; Let's change the Nidorins based on the choice. It's really cute and makes use of an unused command sound.
and a
jr z, .Nidorino
jr nz, .Nidorina
.Nidorina
ld a, NIDORINA
ld [wd0b5], a
ld [wcf91], a
call GetMonHeader
hlcoord 6, 4
call LoadFlippedFrontSpriteByMonIndex
call MovePicLeft
ld hl, OakSpeechText2Green
jr .cont
.Nidorino
ld a, NIDORINO ld a, NIDORINO
ld [wd0b5], a ld [wd0b5], a
ld [wcf91], a ld [wcf91], a
@ -73,12 +95,21 @@ OakSpeech:
hlcoord 6, 4 hlcoord 6, 4
call LoadFlippedFrontSpriteByMonIndex call LoadFlippedFrontSpriteByMonIndex
call MovePicLeft call MovePicLeft
ld hl, OakSpeechText2 ld hl, OakSpeechText2Red
jr .cont
.cont
call PrintText call PrintText
call GBFadeOutToWhite call GBFadeOutToWhite
call ClearScreen call ClearScreen
ld de, RedPicFront ld de, RedPicFront
lb bc, BANK(RedPicFront), $00 lb bc, BANK(RedPicFront), $00
ld a, [wPlayerSex] ; check sex
and a ; check sex
jr z, .NotGreen1
ld de, GreenPicFront
lb bc, BANK(GreenPicFront), $00
.NotGreen1:
call IntroDisplayPicCenteredOrUpperRight call IntroDisplayPicCenteredOrUpperRight
call MovePicLeft call MovePicLeft
ld hl, IntroducePlayerText ld hl, IntroducePlayerText
@ -98,6 +129,12 @@ OakSpeech:
call ClearScreen call ClearScreen
ld de, RedPicFront ld de, RedPicFront
lb bc, BANK(RedPicFront), $00 lb bc, BANK(RedPicFront), $00
ld a, [wPlayerSex] ; check sex
and a ; check sex
jr z, .NotGreen2
ld de, GreenPicFront
lb bc, Bank(GreenPicFront), $00
.NotGreen2:
call IntroDisplayPicCenteredOrUpperRight call IntroDisplayPicCenteredOrUpperRight
call GBFadeInFromWhite call GBFadeInFromWhite
ld a, [wd72d] ld a, [wd72d]
@ -118,10 +155,17 @@ OakSpeech:
ld de, RedSprite ld de, RedSprite
ld hl, vSprites ld hl, vSprites
lb bc, BANK(RedSprite), $0C lb bc, BANK(RedSprite), $0C
call CopyVideoData ld a, [wPlayerSex] ; check sex
ld de, ShrinkPic1 and a ; check sex
lb bc, BANK(ShrinkPic1), $00 jr z, .NotGreen3
call IntroDisplayPicCenteredOrUpperRight ld de,GreenSprite
lb bc, BANK(GreenSprite), $0C
.NotGreen3:
ld hl, vSprites
call CopyVideoData
ld de, ShrinkPic1
lb bc, BANK(ShrinkPic1), $00
call IntroDisplayPicCenteredOrUpperRight
ld c, 4 ld c, 4
call DelayFrames call DelayFrames
ld de, ShrinkPic2 ld de, ShrinkPic2
@ -158,11 +202,16 @@ OakSpeech:
OakSpeechText1: OakSpeechText1:
text_far _OakSpeechText1 text_far _OakSpeechText1
text_end text_end
OakSpeechText2: OakSpeechText2Red: ; this is such a clunky way to do it but the text_asm way caused crashes
text_far _OakSpeechText2A text_far _OakSpeechText2A
sound_cry_nidorino sound_cry_nidorino
text_far _OakSpeechText2B text_far _OakSpeechText2B
text_end text_end
OakSpeechText2Green:
text_far _OakSpeechText2A
sound_cry_nidorina
text_far _OakSpeechText2B
text_end
IntroducePlayerText: IntroducePlayerText:
text_far _IntroducePlayerText text_far _IntroducePlayerText
text_end text_end
@ -234,3 +283,26 @@ IntroDisplayPicCenteredOrUpperRight:
xor a xor a
ldh [hStartTileID], a ldh [hStartTileID], a
predef_jump CopyUncompressedPicToTilemap predef_jump CopyUncompressedPicToTilemap
; displays boy/girl choice
BoyGirlChoice::
call SaveScreenTilesToBuffer1
call InitBoyGirlTextBoxParameters
jr DisplayBoyGirlChoice
InitBoyGirlTextBoxParameters::
ld a, $1 ; loads the value for the unused North/West choice, that was changed to say Boy/Girl
ld [wTwoOptionMenuID], a
coord hl, 13, 7
ld bc, $80e
ret
DisplayBoyGirlChoice::
ld a, $14
ld [wTextBoxID], a
call DisplayTextBoxID
jp LoadScreenTilesFromBuffer1
BoyGirlText: ; This is new so we had to add a reference to get it to compile
text_far _BoyGirlText
text_end

View file

@ -1,7 +1,10 @@
ChoosePlayerName: ChoosePlayerName:
call OakSpeechSlidePicRight call OakSpeechSlidePicRight
ld de, DefaultNamesPlayer ld a, [wPlayerSex] ; load sex
call DisplayIntroNameTextBox and a
jr nz, .AreGirl ; Skip to girl names if you are a girl instead
ld de, DefaultNamesPlayer
call DisplayIntroNameTextBox
ld a, [wCurrentMenuItem] ld a, [wCurrentMenuItem]
and a and a
jr z, .customName jr z, .customName
@ -10,6 +13,17 @@ ChoosePlayerName:
ld de, wPlayerName ld de, wPlayerName
call OakSpeechSlidePicLeft call OakSpeechSlidePicLeft
jr .done jr .done
.AreGirl ; Copy of the boy naming routine, just with girl's names
ld de, DefaultNamesGirl
call DisplayIntroNameTextBox
ld a, [wCurrentMenuItem]
and a
jr z, .customName
ld hl, DefaultNamesGirlList
call GetDefaultName
ld de, wPlayerName
call OakSpeechSlidePicLeft
jr .done ; End of new Girl Names routine
.customName .customName
ld hl, wPlayerName ld hl, wPlayerName
xor a ; NAME_PLAYER_SCREEN xor a ; NAME_PLAYER_SCREEN
@ -22,6 +36,12 @@ ChoosePlayerName:
call Delay3 call Delay3
ld de, RedPicFront ld de, RedPicFront
ld b, BANK(RedPicFront) ld b, BANK(RedPicFront)
ld a, [wPlayerSex] ; sex check
and a ; yknow it feels like republicans wanting to do penis checking
jr z, .AreBoy3
ld de, GreenPicFront
ld b, BANK(GreenPicFront)
.AreBoy3
call IntroDisplayPicCenteredOrUpperRight call IntroDisplayPicCenteredOrUpperRight
.done .done
ld hl, YourNameIsText ld hl, YourNameIsText

View file

@ -385,12 +385,29 @@ FishingAnim:
call DelayFrames call DelayFrames
ld hl, wd736 ld hl, wd736
set 6, [hl] ; reserve the last 4 OAM entries set 6, [hl] ; reserve the last 4 OAM entries
ld a, [wPlayerSex] ; sex check
and a ; sex check
jr z, .BoySpriteLoad
ld de, GreenSprite
ld hl, vNPCSprites
ld bc, (BANK(GreenSprite) << 8) + $0c
jr .KeepLoadingSpriteStuff
.BoySpriteLoad
ld de, RedSprite ld de, RedSprite
ld hl, vNPCSprites tile $00 ld hl, vNPCSprites
lb bc, BANK(RedSprite), 12 lb bc, BANK(RedSprite), $c
.KeepLoadingSpriteStuff
call CopyVideoData call CopyVideoData
ld a, [wPlayerSex] ; ; sex check
and a ; ; sex check seriously i feel like a republican here
jr z, .BoyTiles ; skip loading Green's stuff if you're Red
ld a, $4
ld hl, GreenFishingTiles
jr .ContinueRoutine ; go back to main routine after loading Green's stuff
.BoyTiles ; alternately, load Red's stuff
ld a, $4 ld a, $4
ld hl, RedFishingTiles ld hl, RedFishingTiles
.ContinueRoutine
call LoadAnimSpriteGfx call LoadAnimSpriteGfx
ld a, [wSpritePlayerStateData1ImageIndex] ld a, [wSpritePlayerStateData1ImageIndex]
ld c, a ld c, a
@ -493,6 +510,12 @@ RedFishingTiles:
fishing_gfx RedFishingTilesSide, 2, $0a fishing_gfx RedFishingTilesSide, 2, $0a
fishing_gfx RedFishingRodTiles, 3, $fd fishing_gfx RedFishingRodTiles, 3, $fd
GreenFishingTiles:
fishing_gfx GreenFishingTilesFront, 2, $02
fishing_gfx GreenFishingTilesBack, 2, $06
fishing_gfx GreenFishingTilesSide, 2, $0a
fishing_gfx RedFishingRodTiles, 3, $fd
_HandleMidJump:: _HandleMidJump::
ld a, [wPlayerJumpingYScreenCoordsIndex] ld a, [wPlayerJumpingYScreenCoordsIndex]
ld c, a ld c, a

View file

@ -2,3 +2,6 @@ RedFishingTilesFront: INCBIN "gfx/overworld/red_fish_front.2bpp"
RedFishingTilesBack: INCBIN "gfx/overworld/red_fish_back.2bpp" RedFishingTilesBack: INCBIN "gfx/overworld/red_fish_back.2bpp"
RedFishingTilesSide: INCBIN "gfx/overworld/red_fish_side.2bpp" RedFishingTilesSide: INCBIN "gfx/overworld/red_fish_side.2bpp"
RedFishingRodTiles: INCBIN "gfx/overworld/fishing_rod.2bpp" RedFishingRodTiles: INCBIN "gfx/overworld/fishing_rod.2bpp"
GreenFishingTilesFront: INCBIN "gfx/overworld/green_fish_front.2bpp"
GreenFishingTilesBack: INCBIN "gfx/overworld/green_fish_back.2bpp"
GreenFishingTilesSide: INCBIN "gfx/overworld/green_fish_side.2bpp"

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

View file

@ -260,6 +260,7 @@ PidgeottoPicFront:: INCBIN "gfx/pokemon/front/pidgeotto.pic"
PidgeottoPicBack:: INCBIN "gfx/pokemon/back/pidgeottob.pic" PidgeottoPicBack:: INCBIN "gfx/pokemon/back/pidgeottob.pic"
RedPicBack:: INCBIN "gfx/player/redb.pic" RedPicBack:: INCBIN "gfx/player/redb.pic"
GreenPicBack:: INCBIN "gfx/player/greenb.pic"
OldManPicBack:: INCBIN "gfx/battle/oldmanb.pic" OldManPicBack:: INCBIN "gfx/battle/oldmanb.pic"
@ -318,7 +319,6 @@ VileplumePicBack:: INCBIN "gfx/pokemon/back/vileplumeb.pic"
BellsproutPicFront:: INCBIN "gfx/pokemon/front/bellsprout.pic" BellsproutPicFront:: INCBIN "gfx/pokemon/front/bellsprout.pic"
BellsproutPicBack:: INCBIN "gfx/pokemon/back/bellsproutb.pic" BellsproutPicBack:: INCBIN "gfx/pokemon/back/bellsproutb.pic"
SECTION "Pics 6", ROMX SECTION "Pics 6", ROMX
YoungsterPic:: INCBIN "gfx/trainers/youngster.pic" YoungsterPic:: INCBIN "gfx/trainers/youngster.pic"

View file

@ -1,3 +1,4 @@
RedPicFront:: INCBIN "gfx/player/red.pic" RedPicFront:: INCBIN "gfx/player/red.pic"
GreenPicFront:: INCBIN "gfx/player/green.pic"
ShrinkPic1:: INCBIN "gfx/player/shrink1.pic" ShrinkPic1:: INCBIN "gfx/player/shrink1.pic"
ShrinkPic2:: INCBIN "gfx/player/shrink2.pic" ShrinkPic2:: INCBIN "gfx/player/shrink2.pic"

BIN
gfx/player/green.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

BIN
gfx/player/greenb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

View file

@ -35,6 +35,8 @@ SECTION "NPC Sprites 2", ROMX
RedBikeSprite:: INCBIN "gfx/sprites/red_bike.2bpp" RedBikeSprite:: INCBIN "gfx/sprites/red_bike.2bpp"
RedSprite:: INCBIN "gfx/sprites/red.2bpp" RedSprite:: INCBIN "gfx/sprites/red.2bpp"
GreenBikeSprite:: INCBIN "gfx/sprites/green_bike.2bpp"
GreenSprite:: INCBIN "gfx/sprites/green.2bpp"
BlueSprite:: INCBIN "gfx/sprites/blue.2bpp" BlueSprite:: INCBIN "gfx/sprites/blue.2bpp"
OakSprite:: INCBIN "gfx/sprites/oak.2bpp" OakSprite:: INCBIN "gfx/sprites/oak.2bpp"
YoungsterSprite:: INCBIN "gfx/sprites/youngster.2bpp" YoungsterSprite:: INCBIN "gfx/sprites/youngster.2bpp"
@ -71,8 +73,6 @@ GameboyKidSprite:: INCBIN "gfx/sprites/gameboy_kid.2bpp"
FairySprite:: INCBIN "gfx/sprites/fairy.2bpp" FairySprite:: INCBIN "gfx/sprites/fairy.2bpp"
AgathaSprite:: INCBIN "gfx/sprites/agatha.2bpp" AgathaSprite:: INCBIN "gfx/sprites/agatha.2bpp"
BrunoSprite:: INCBIN "gfx/sprites/bruno.2bpp" BrunoSprite:: INCBIN "gfx/sprites/bruno.2bpp"
LoreleiSprite:: INCBIN "gfx/sprites/lorelei.2bpp"
SeelSprite:: INCBIN "gfx/sprites/seel.2bpp"
SECTION "NPC Sprites 3", ROMX SECTION "NPC Sprites 3", ROMX
@ -97,3 +97,5 @@ VoltorbSprite:: INCBIN "gfx/sprites/voltorb.2bpp"
GengarSprite:: INCBIN "gfx/sprites/gengar.2bpp" GengarSprite:: INCBIN "gfx/sprites/gengar.2bpp"
MagikarpSprite:: INCBIN "gfx/sprites/magikarp.2bpp" MagikarpSprite:: INCBIN "gfx/sprites/magikarp.2bpp"
PoliwagSprite:: INCBIN "gfx/sprites/poliwag.2bpp" PoliwagSprite:: INCBIN "gfx/sprites/poliwag.2bpp"
LoreleiSprite:: INCBIN "gfx/sprites/lorelei.2bpp"
SeelSprite:: INCBIN "gfx/sprites/seel.2bpp"

BIN
gfx/sprites/green.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
gfx/sprites/green_bike.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -2027,7 +2027,12 @@ RunMapScript::
LoadWalkingPlayerSpriteGraphics:: LoadWalkingPlayerSpriteGraphics::
ld de, RedSprite ld de, RedSprite
ld hl, vNPCSprites ld a, [wPlayerSex]
and a
jr z, .AreGuy1
ld de, GreenSprite
.AreGuy1
ld hl,vNPCSprites
jr LoadPlayerSpriteGraphicsCommon jr LoadPlayerSpriteGraphicsCommon
LoadSurfingPlayerSpriteGraphics:: LoadSurfingPlayerSpriteGraphics::
@ -2037,6 +2042,11 @@ LoadSurfingPlayerSpriteGraphics::
LoadBikePlayerSpriteGraphics:: LoadBikePlayerSpriteGraphics::
ld de, RedBikeSprite ld de, RedBikeSprite
ld a, [wPlayerSex]
and a
jr z, .AreGuy2
ld de, GreenBikeSprite
.AreGuy2
ld hl, vNPCSprites ld hl, vNPCSprites
LoadPlayerSpriteGraphicsCommon:: LoadPlayerSpriteGraphicsCommon::

View file

@ -520,7 +520,7 @@ TextCommand_SOUND::
jr z, .pokemonCry jr z, .pokemonCry
cp TX_SOUND_CRY_PIDGEOT cp TX_SOUND_CRY_PIDGEOT
jr z, .pokemonCry jr z, .pokemonCry
cp TX_SOUND_CRY_DEWGONG cp TX_SOUND_CRY_NIDORINA
jr z, .pokemonCry jr z, .pokemonCry
ld a, [hl] ld a, [hl]
call PlaySound call PlaySound
@ -548,7 +548,7 @@ TextCommandSounds::
db TX_SOUND_DEX_PAGE_ADDED, SFX_DEX_PAGE_ADDED db TX_SOUND_DEX_PAGE_ADDED, SFX_DEX_PAGE_ADDED
db TX_SOUND_CRY_NIDORINO, NIDORINO ; used in OakSpeech db TX_SOUND_CRY_NIDORINO, NIDORINO ; used in OakSpeech
db TX_SOUND_CRY_PIDGEOT, PIDGEOT ; used in SaffronCityText12 db TX_SOUND_CRY_PIDGEOT, PIDGEOT ; used in SaffronCityText12
db TX_SOUND_CRY_DEWGONG, DEWGONG ; unused db TX_SOUND_CRY_NIDORINA, NIDORINA ; was unused dewgong call
TextCommand_DOTS:: TextCommand_DOTS::
; wait for button press or 30 frames while printing "…"s ; wait for button press or 30 frames while printing "…"s

View file

@ -137,9 +137,9 @@ MACRO sound_cry_pidgeot
db TX_SOUND_CRY_PIDGEOT db TX_SOUND_CRY_PIDGEOT
ENDM ENDM
const TX_SOUND_CRY_DEWGONG ; $16 const TX_SOUND_CRY_NIDORINA ; $16
MACRO sound_cry_dewgong MACRO sound_cry_nidorina
db TX_SOUND_CRY_DEWGONG db TX_SOUND_CRY_NIDORINA
ENDM ENDM
const TX_FAR ; $17 const TX_FAR ; $17

View file

@ -356,9 +356,9 @@ INCLUDE "data/moves/animations.asm"
INCLUDE "data/battle_anims/subanimations.asm" INCLUDE "data/battle_anims/subanimations.asm"
INCLUDE "data/battle_anims/frame_blocks.asm" INCLUDE "data/battle_anims/frame_blocks.asm"
INCLUDE "engine/movie/evolution.asm" INCLUDE "engine/movie/evolution.asm"
INCLUDE "engine/items/tm_prices.asm"
INCLUDE "engine/overworld/elevator.asm" INCLUDE "engine/overworld/elevator.asm"
SECTION "Engine Spillover", ROMX SECTION "Engine Spillover", ROMX
INCLUDE "engine/menus/item_descriptions.asm" INCLUDE "engine/menus/item_descriptions.asm"
INCLUDE "engine/items/tm_prices.asm"

View file

@ -1972,7 +1972,10 @@ wd5cd:: db
; terminated with $FF ; terminated with $FF
wMissableObjectList:: ds 16 * 2 + 1 wMissableObjectList:: ds 16 * 2 + 1
ds 1 wPlayerSex::
; $00 = male
; $01 = female
ds 1
wGameProgressFlags:: wGameProgressFlags::
wOaksLabCurScript:: db wOaksLabCurScript:: db