diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm index 569bc05f..78d8ca70 100644 --- a/constants/menu_constants.asm +++ b/constants/menu_constants.asm @@ -20,7 +20,7 @@ DEF PC_ITEM_CAPACITY EQU 50 const MONEY_BOX_TEMPLATE ; $0f const MENU_TEMPLATE_10 ; $10 unused const MON_SPRITE_POPUP ; $11 - const JP_AH_MENU_TEMPLATE ; $12 + const BOY_GIRL_NO ; $12 new for gender non-binary selection const MONEY_BOX ; $13 const TWO_OPTION_MENU ; $14 const BUY_SELL_QUIT_MENU ; $15 diff --git a/data/player_names.asm b/data/player_names.asm index 6aec50fb..87249c7d 100644 --- a/data/player_names.asm +++ b/data/player_names.asm @@ -11,6 +11,13 @@ DefaultNamesGirl: next "LEAF" next "ELAINE" db "@" + +DefaultNamesEnby: + db "NEW NAME" + next "PINK" + next "QUARTZ" + next "JAY" + db "@" DefaultNamesRival: db "NEW NAME" diff --git a/data/player_names_list.asm b/data/player_names_list.asm index f5c06f6a..d08b1518 100644 --- a/data/player_names_list.asm +++ b/data/player_names_list.asm @@ -9,6 +9,12 @@ DefaultNamesGirlList: db "GREEN@" db "LEAF@" db "ELAINE@" + +DefaultNamesEnbyList: + db "NEW NAME@" + db "PINK@" + db "QUARTZ@" + db "JAY@" DefaultNamesRivalList: db "NEW NAME@" diff --git a/data/text/unused_names.asm b/data/text/unused_names.asm index 349a31cf..7311d001 100644 --- a/data/text/unused_names.asm +++ b/data/text/unused_names.asm @@ -1,22 +1,22 @@ UnusedBadgeNames:: - db "かみなりバッヂ@" ; THUNDER BADGE - db "かいがらバッヂ@" ; SHELL BADGE - db "おじぞうバッヂ@" ; JIZOU BADGE - db "はやぶさバッヂ@" ; FALCON BADGE - db "ひんやりバッヂ@" ; CHILL BADGE - db "なかよしバッヂ@" ; FRIENDSHIP BADGE - db "バラバッヂ@" ; ROSE BADGE - db "ひのたまバッヂ@" ; FIREBALL BADGE - db "ゴールドバッヂ@" ; GOLD BADGE +; db "かみなりバッヂ@" ; THUNDER BADGE +; db "かいがらバッヂ@" ; SHELL BADGE +; db "おじぞうバッヂ@" ; JIZOU BADGE +; db "はやぶさバッヂ@" ; FALCON BADGE +; db "ひんやりバッヂ@" ; CHILL BADGE +; db "なかよしバッヂ@" ; FRIENDSHIP BADGE +; db "バラバッヂ@" ; ROSE BADGE +; db "ひのたまバッヂ@" ; FIREBALL BADGE +; db "ゴールドバッヂ@" ; GOLD BADGE UnusedRankingNames: - db "たまご@" ; EGG - db "ひよこ@" ; CHICK - db "ブロンズ@" ; BRONZE - db "シルバー@" ; SILVER - db "ゴールド@" ; GOLD - db "プチキャプテン@" ; PETIT CAPTAIN - db "キャプテン@" ; CAPTAIN - db "プチマスター@" ; PETIT MASTER - db "マスター@" ; MASTER - db "エクセレント" ; EXCELLENT +; db "たまご@" ; EGG +; db "ひよこ@" ; CHICK +; db "ブロンズ@" ; BRONZE +; db "シルバー@" ; SILVER +; db "ゴールド@" ; GOLD +; db "プチキャプテン@" ; PETIT CAPTAIN +; db "キャプテン@" ; CAPTAIN +; db "プチマスター@" ; PETIT MASTER +; db "マスター@" ; MASTER +; db "エクセレント" ; EXCELLENT diff --git a/data/text_boxes.asm b/data/text_boxes.asm index a5013d1b..35c6eec7 100644 --- a/data/text_boxes.asm +++ b/data/text_boxes.asm @@ -33,7 +33,7 @@ TextBoxTextAndCoordTable: text_box_text SWITCH_STATS_CANCEL_MENU_TEMPLATE, 11, 11, 19, 17, SwitchStatsCancelText, 13, 12 text_box_text BUY_SELL_QUIT_MENU_TEMPLATE, 0, 0, 10, 6, BuySellQuitText, 2, 1 text_box_text MONEY_BOX_TEMPLATE, 11, 0, 19, 2, MoneyText, 13, 0 - text_box_text JP_AH_MENU_TEMPLATE, 7, 6, 11, 10, JapaneseAhText, 8, 8 + text_box_text BOY_GIRL_NO, 12, 6, 19, 12, BoyGirlNoText, 14, 7 text_box_text JP_POKEDEX_MENU_TEMPLATE, 11, 8, 19, 17, JapanesePokedexMenu, 12, 10 BuySellQuitText: @@ -80,8 +80,10 @@ SwitchStatsCancelText: next "STATS" next "CANCEL@" -JapaneseAhText: - db "アッ!@" +BoyGirlNoText: + db "RED" + next "GREEN" + next "PINK@" JapanesePokedexMenu: db "データをみる" diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 24afd5be..b76e0f52 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6543,12 +6543,18 @@ LoadPlayerBackPic: ld a, [wPlayerSex] ; do you think a republican will get off to this commit and a jr z, .RedBack + cp a, 2 + jr z, .EnbyBack 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) + jr .next +.EnbyBack + ld de, TealPicBack ; Load teal back sprite + ld a, BANK(TealPicBack) .next ASSERT BANK(GreenPicBack) == BANK(OldManPicBack) ; These two ASSERTs make sure to cover ASSERT BANK(RedPicBack) == BANK(OldManPicBack) ; both sprite cases diff --git a/engine/menus/start_sub_menus.asm b/engine/menus/start_sub_menus.asm index 65f91873..3c8d60e7 100644 --- a/engine/menus/start_sub_menus.asm +++ b/engine/menus/start_sub_menus.asm @@ -519,6 +519,10 @@ DrawTrainerInfo: ld a, [wPlayerSex] ; guess what it's genital inspection time and a jr z, .AreBoy + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $01 + cp a, 2 + jr z, .AreBoy ; I'm not updating these names. I'm lazy. Also did you know this was changed to wPlayerGender in one of the other tutorials? ld de, GreenPicFront lb bc, BANK(GreenPicFront), $01 .AreBoy diff --git a/engine/movie/hall_of_fame.asm b/engine/movie/hall_of_fame.asm index 556b777f..b20798a3 100644 --- a/engine/movie/hall_of_fame.asm +++ b/engine/movie/hall_of_fame.asm @@ -188,10 +188,16 @@ HoFLoadPlayerPics: jr nz, .GirlStuff1 ld de, RedPicFront ld a, BANK(RedPicFront) - jr .Routine ; skip the girl stuff and go to main routine + jr .Routine ; skip the girl stuff and go to main routine .GirlStuff1 + cp a, 2 + jr z, .TealStuff1 ld de, GreenPicFront ld a, BANK(GreenPicFront) + jr .Routine ; skip the girl stuff and go to main routine +.TealStuff1 + ld de, EnbyPicFront + ld a, BANK(EnbyPicFront) .Routine ; resume original routine call UncompressSpriteFromDE ld hl, sSpriteBuffer1 @@ -207,8 +213,14 @@ HoFLoadPlayerPics: ld a, BANK(RedPicBack) jr .routine2 ; skip the girl stuff and continue original routine if guy .GirlStuff2 + cp a, 2 + jr z, .TealStuff2 ld de, GreenPicBack ld a, BANK(GreenPicBack) + jr .routine2 +.TealStuff2 + ld de, TealPicBack + ld a, BANK(TealPicBack) .routine2 ; original routine call UncompressSpriteFromDE predef ScaleSpriteByTwo diff --git a/engine/movie/intro.asm b/engine/movie/intro.asm index 5aa10808..e5912ed9 100644 --- a/engine/movie/intro.asm +++ b/engine/movie/intro.asm @@ -277,9 +277,9 @@ CopyTileIDsFromList_ZeroBaseTileID: PlayMoveSoundB: ; unused - predef GetMoveSoundB - ld a, b - jp PlaySound +; predef GetMoveSoundB +; ld a, b +; jp PlaySound LoadIntroGraphics: ld hl, FightIntroBackMon diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm index f5b4d226..2156dbf2 100644 --- a/engine/movie/oak_speech/oak_speech.asm +++ b/engine/movie/oak_speech/oak_speech.asm @@ -71,7 +71,7 @@ OakSpeech: 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 + ld [wPlayerSex], a ; store player's gender. 00 for boy, 01 for girl, 02 for enby call GBFadeOutToWhite call ClearScreen @@ -80,6 +80,10 @@ OakSpeech: ld a, [wPlayerSex] ; check sex and a ; check sex jr z, .NotGreen0 + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $00 + cp a, 2 + jr z, .NotGreen0 ld de, GreenPicFront lb bc, BANK(GreenPicFront), $00 .NotGreen0 @@ -97,7 +101,9 @@ OakSpeech: 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 + cp a, 2 + jr z, .Nidoreign +; jr nz, .Nidorina .Nidorina ld a, NIDORINA ld [wd0b5], a @@ -117,6 +123,16 @@ OakSpeech: call LoadFlippedFrontSpriteByMonIndex call MovePicLeft ld hl, OakSpeechText2Red + jr .cont +.Nidoreign + ld a, NIDOREIGN + ld [wd0b5], a + ld [wcf91], a + call GetMonHeader + hlcoord 6, 4 + call LoadFlippedFrontSpriteByMonIndex + call MovePicLeft + ld hl, OakSpeechText2Enby .cont call PrintText @@ -124,12 +140,19 @@ OakSpeech: call ClearScreen ld de, RedPicFront lb bc, BANK(RedPicFront), $00 - ld a, [wPlayerSex] ; check sex - and a ; check sex - jr z, .NotGreen1 + ld a, [wPlayerSex] ; load gender + and a ; check gender - and a is equivalent to `cp a, 0` (but faster) + ; if a=0->gender=male, ergo jump to the vanilla part of the code + jr z, .ContinueWithOakIntro1 + cp a, 2 ; check gender: if a=2->gender=enby, jump to the yellow subroutine, otherwise continue below + jp z, .LoadEnbyPicFront1 ld de, GreenPicFront lb bc, BANK(GreenPicFront), $00 -.NotGreen1: + jr .ContinueWithOakIntro1 +.LoadEnbyPicFront1 + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $00 +.ContinueWithOakIntro1: call IntroDisplayPicCenteredOrUpperRight call MovePicLeft ld hl, IntroducePlayerText @@ -152,6 +175,10 @@ OakSpeech: ld a, [wPlayerSex] ; check sex and a ; check sex jr z, .NotGreen2 + ld de, EnbyPicFront + lb bc, BANK(EnbyPicFront), $00 + cp a, 2 + jr z, .NotGreen2 ld de, GreenPicFront lb bc, Bank(GreenPicFront), $00 .NotGreen2: @@ -178,6 +205,10 @@ OakSpeech: ld a, [wPlayerSex] ; check sex and a ; check sex jr z, .NotGreen3 + ld de, TealSprite + lb bc, BANK(TealSprite), $0C + cp a, 2 + jr z, .NotGreen3 ld de,GreenSprite lb bc, BANK(GreenSprite), $0C .NotGreen3: @@ -232,6 +263,11 @@ OakSpeechText2Green: sound_cry_nidorina text_far _OakSpeechText2B text_end +OakSpeechText2Enby: + text_far _OakSpeechText2A + sound_cry_nidoreign + text_far _OakSpeechText2B + text_end IntroducePlayerText: text_far _IntroducePlayerText text_end @@ -305,23 +341,40 @@ IntroDisplayPicCenteredOrUpperRight: 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, 12, 7 - ld bc, $80d - ret - - DisplayBoyGirlChoice:: - ld a, $14 - ld [wTextBoxID], a - call DisplayTextBoxID - jp LoadScreenTilesFromBuffer1 +BoyGirlChoice:: + call SaveScreenTilesToBuffer1 + jr DisplayBoyGirlNoChoice + +DisplayBoyGirlNoChoice:: + ld a, BOY_GIRL_NO + ld [wTextBoxID], a + call DisplayTextBoxID + ld hl, wTopMenuItemY + ld a, 7 + ld [hli], a ; top menu item Y + ld a, 13 + ld [hli], a ; top menu item X + xor a + ld [hli], a ; current menu item ID + inc hl + ld a, $2 + ld [hli], a ; wMaxMenuItem +; ld a, B_BUTTON | A_BUTTON + ld a, A_BUTTON + ld [hli], a ; wMenuWatchedKeys + xor a + ld [hl], a ; wLastMenuItem + call HandleMenuInput +; bit BIT_B_BUTTON, a +; jr nz, .defaultOption ; if B was pressed, assign enby +; A was pressed + call PlaceUnfilledArrowMenuCursor + ld a, [wCurrentMenuItem] + jp LoadScreenTilesFromBuffer1 +;.defaultOption +; ld a, $02 +; ld [wCurrentMenuItem], a +; jp LoadScreenTilesFromBuffer1 BoyGirlText: ; This is new so we had to add a reference to get it to compile text_far _BoyGirlText diff --git a/engine/movie/oak_speech/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm index 445ed567..7b11e226 100644 --- a/engine/movie/oak_speech/oak_speech2.asm +++ b/engine/movie/oak_speech/oak_speech2.asm @@ -1,6 +1,8 @@ ChoosePlayerName: call OakSpeechSlidePicRight ld a, [wPlayerSex] ; load sex + cp a, 2 + jr z, .AreEnby ; Skip to enby names if you are enby instead and a jr nz, .AreGirl ; Skip to girl names if you are a girl instead ld de, DefaultNamesPlayer @@ -24,6 +26,17 @@ ChoosePlayerName: ld de, wPlayerName call OakSpeechSlidePicLeft jr .done ; End of new Girl Names routine +.AreEnby ; Copy of the boy naming routine, just with enby's names + ld de, DefaultNamesEnby + call DisplayIntroNameTextBox + ld a, [wCurrentMenuItem] + and a + jr z, .customName + ld hl, DefaultNamesEnbyList + call GetDefaultName + ld de, wPlayerName + call OakSpeechSlidePicLeft + jr .done ; End of new Enby Names routine .customName ld hl, wPlayerName xor a ; NAME_PLAYER_SCREEN @@ -39,6 +52,10 @@ ChoosePlayerName: ld a, [wPlayerSex] ; sex check and a ; yknow it feels like republicans wanting to do penis checking jr z, .AreBoy3 + ld de, EnbyPicFront + ld b, BANK(EnbyPicFront) + cp a, 2 + jr z, .AreBoy3 ld de, GreenPicFront ld b, BANK(GreenPicFront) .AreBoy3 diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 1767ca0a..6a97078e 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -93,10 +93,17 @@ DisplayTitleScreen: jr nz, .pokemonLogoLastTileRowLoop call Random ldh a, [hRandomAdd] - cp 129 + cp 86 jr c, .male + call Random + ldh a, [hRandomAdd] + cp 129 + jr c, .nb call DrawFPlayerCharacter jr .playerskip +.nb + call DrawNBPlayerCharacter + jr .playerskip .male call DrawPlayerCharacter .playerskip @@ -398,6 +405,43 @@ DrawFPlayerCharacter: dec b jr nz, .loop2 ret + +DrawNBPlayerCharacter: + ld hl, NBPlayerCharacterTitleGraphics + ld de, vSprites + ld bc, NBPlayerCharacterTitleGraphicsEnd - NBPlayerCharacterTitleGraphics + ld a, BANK(NBPlayerCharacterTitleGraphics) + call FarCopyData2 + call ClearSprites + xor a + ld [wNBPlayerCharacterOAMTile], a + ld hl, wShadowOAM + lb de, $60, $5a + ld b, 7 +.loop3 + push de + ld c, 5 +.innerLoop3 + ld a, d + ld [hli], a ; Y + ld a, e + ld [hli], a ; X + add 8 + ld e, a + ld a, [wNBPlayerCharacterOAMTile] + ld [hli], a ; tile + inc a + ld [wNBPlayerCharacterOAMTile], a + inc hl + dec c + jr nz, .innerLoop3 + pop de + ld a, 8 + add d + ld d, a + dec b + jr nz, .loop3 + ret ClearBothBGMaps: ld hl, vBGMap0 diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm index 9f5f7a19..8ab83361 100644 --- a/engine/overworld/player_animations.asm +++ b/engine/overworld/player_animations.asm @@ -389,6 +389,8 @@ FishingAnim: ld a, [wPlayerSex] ; sex check and a ; sex check jr z, .BoySpriteLoad + cp a, 2 + jr z, .EnbySpriteLoad ld de, GreenSprite ld hl, vNPCSprites ld bc, (BANK(GreenSprite) << 8) + $0c @@ -397,17 +399,28 @@ FishingAnim: ld de, RedSprite ld hl, vNPCSprites lb bc, BANK(RedSprite), $c + jr .KeepLoadingSpriteStuff +.EnbySpriteLoad + ld de, TealSprite + ld hl, vNPCSprites + lb bc, BANK(TealSprite), $c .KeepLoadingSpriteStuff 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 + cp a, 2 + jr z, .EnbyTiles 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 hl, RedFishingTiles + jr .ContinueRoutine ; go back to main routine after loading Red's stuff +.EnbyTiles ; alternately, load Teal's stuff + ld a, $4 + ld hl, TealFishingTiles .ContinueRoutine call LoadAnimSpriteGfx ld a, [wSpritePlayerStateData1ImageIndex] @@ -516,6 +529,12 @@ GreenFishingTiles: fishing_gfx GreenFishingTilesBack, 2, $06 fishing_gfx GreenFishingTilesSide, 2, $0a fishing_gfx RedFishingRodTiles, 3, $fd + +TealFishingTiles: + fishing_gfx TealFishingTilesFront, 2, $02 + fishing_gfx TealFishingTilesBack, 2, $06 + fishing_gfx TealFishingTilesSide, 2, $0a + fishing_gfx RedFishingRodTiles, 3, $fd _HandleMidJump:: ld a, [wPlayerJumpingYScreenCoordsIndex] diff --git a/gfx/fishing.asm b/gfx/fishing.asm index cfde973a..ad5bb5f8 100644 --- a/gfx/fishing.asm +++ b/gfx/fishing.asm @@ -5,3 +5,6 @@ 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" +TealFishingTilesFront: INCBIN "gfx/overworld/teal_fish_front.2bpp" +TealFishingTilesBack: INCBIN "gfx/overworld/teal_fish_back.2bpp" +TealFishingTilesSide: INCBIN "gfx/overworld/teal_fish_side.2bpp" diff --git a/gfx/overworld/teal_fish_back.png b/gfx/overworld/teal_fish_back.png new file mode 100644 index 00000000..137780c8 Binary files /dev/null and b/gfx/overworld/teal_fish_back.png differ diff --git a/gfx/overworld/teal_fish_front.png b/gfx/overworld/teal_fish_front.png new file mode 100644 index 00000000..200663f4 Binary files /dev/null and b/gfx/overworld/teal_fish_front.png differ diff --git a/gfx/overworld/teal_fish_side.png b/gfx/overworld/teal_fish_side.png new file mode 100644 index 00000000..e487eb8a Binary files /dev/null and b/gfx/overworld/teal_fish_side.png differ diff --git a/gfx/pics.asm b/gfx/pics.asm index db5e343c..f5caa74b 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -260,7 +260,8 @@ PidgeottoPicFront:: INCBIN "gfx/pokemon/front/pidgeotto.pic" PidgeottoPicBack:: INCBIN "gfx/pokemon/back/pidgeottob.pic" RedPicBack:: INCBIN "gfx/player/redb.pic" -GreenPicBack:: INCBIN "gfx/player/greenb.pic" +GreenPicBack:: INCBIN "gfx/player/greenb.pic" +TealPicBack:: INCBIN "gfx/player/thirdb.pic" OldManPicBack:: INCBIN "gfx/battle/oldmanb.pic" diff --git a/gfx/player.asm b/gfx/player.asm index f50eb71c..825f7161 100644 --- a/gfx/player.asm +++ b/gfx/player.asm @@ -1,4 +1,5 @@ RedPicFront:: INCBIN "gfx/player/red.pic" GreenPicFront:: INCBIN "gfx/player/green.pic" +EnbyPicFront:: INCBIN "gfx/player/third.pic" ShrinkPic1:: INCBIN "gfx/player/shrink1.pic" ShrinkPic2:: INCBIN "gfx/player/shrink2.pic" diff --git a/gfx/player/third.png b/gfx/player/third.png new file mode 100644 index 00000000..4adcad4d Binary files /dev/null and b/gfx/player/third.png differ diff --git a/gfx/player/thirdb.png b/gfx/player/thirdb.png new file mode 100644 index 00000000..a5dc010f Binary files /dev/null and b/gfx/player/thirdb.png differ diff --git a/gfx/sprites.asm b/gfx/sprites.asm index cc7ea54b..d245534e 100644 --- a/gfx/sprites.asm +++ b/gfx/sprites.asm @@ -37,6 +37,8 @@ RedBikeSprite:: INCBIN "gfx/sprites/red_bike.2bpp" RedSprite:: INCBIN "gfx/sprites/red.2bpp" GreenBikeSprite:: INCBIN "gfx/sprites/green_bike.2bpp" GreenSprite:: INCBIN "gfx/sprites/green.2bpp" +TealBikeSprite:: INCBIN "gfx/sprites/teal_bike.2bpp" +TealSprite:: INCBIN "gfx/sprites/teal.2bpp" BlueSprite:: INCBIN "gfx/sprites/blue.2bpp" OakSprite:: INCBIN "gfx/sprites/oak.2bpp" YoungsterSprite:: INCBIN "gfx/sprites/youngster.2bpp" @@ -66,12 +68,6 @@ ErikaSprite:: INCBIN "gfx/sprites/erika.2bpp" MiddleAgedWomanSprite:: INCBIN "gfx/sprites/middle_aged_woman.2bpp" BrunetteGirlSprite:: INCBIN "gfx/sprites/brunette_girl.2bpp" LanceSprite:: INCBIN "gfx/sprites/lance.2bpp" -MomSprite:: INCBIN "gfx/sprites/mom.2bpp" -BaldingGuySprite:: INCBIN "gfx/sprites/balding_guy.2bpp" -LittleBoySprite:: INCBIN "gfx/sprites/little_boy.2bpp" -GameboyKidSprite:: INCBIN "gfx/sprites/gameboy_kid.2bpp" -FairySprite:: INCBIN "gfx/sprites/fairy.2bpp" -AgathaSprite:: INCBIN "gfx/sprites/agatha.2bpp" SeelSprite:: INCBIN "gfx/sprites/seel.2bpp" ; what a SILLY thing to do. SECTION "NPC Sprites 3", ROMX @@ -98,3 +94,12 @@ MagikarpSprite:: INCBIN "gfx/sprites/magikarp.2bpp" PoliwagSprite:: INCBIN "gfx/sprites/poliwag.2bpp" LoreleiSprite:: INCBIN "gfx/sprites/lorelei.2bpp" BrunoSprite:: INCBIN "gfx/sprites/bruno.2bpp" + +SECTION "NPC Sprites 4", ROMX + +MomSprite:: INCBIN "gfx/sprites/mom.2bpp" +BaldingGuySprite:: INCBIN "gfx/sprites/balding_guy.2bpp" +LittleBoySprite:: INCBIN "gfx/sprites/little_boy.2bpp" +GameboyKidSprite:: INCBIN "gfx/sprites/gameboy_kid.2bpp" +FairySprite:: INCBIN "gfx/sprites/fairy.2bpp" +AgathaSprite:: INCBIN "gfx/sprites/agatha.2bpp" diff --git a/gfx/sprites/teal.png b/gfx/sprites/teal.png new file mode 100644 index 00000000..0bd53f9e Binary files /dev/null and b/gfx/sprites/teal.png differ diff --git a/gfx/sprites/teal_bike.png b/gfx/sprites/teal_bike.png new file mode 100644 index 00000000..d01d819a Binary files /dev/null and b/gfx/sprites/teal_bike.png differ diff --git a/gfx/title/nbplayer.png b/gfx/title/nbplayer.png new file mode 100644 index 00000000..2d71ee89 Binary files /dev/null and b/gfx/title/nbplayer.png differ diff --git a/gfx/trainer_card.asm b/gfx/trainer_card.asm index dc573e2d..9dec2bc0 100644 --- a/gfx/trainer_card.asm +++ b/gfx/trainer_card.asm @@ -9,3 +9,6 @@ BadgeNumbersTileGraphics: INCBIN "gfx/trainer_card/badge_numbers.2bpp" FPlayerCharacterTitleGraphics: INCBIN "gfx/title/fplayer.2bpp" FPlayerCharacterTitleGraphicsEnd: + +NBPlayerCharacterTitleGraphics: INCBIN "gfx/title/nbplayer.2bpp" +NBPlayerCharacterTitleGraphicsEnd: diff --git a/home/overworld.asm b/home/overworld.asm index 2216869b..06f40ec8 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -2038,6 +2038,9 @@ LoadWalkingPlayerSpriteGraphics:: ld a, [wPlayerSex] and a jr z, .AreGuy1 + ld de, TealSprite + cp a, 2 + jr z, .AreGuy1 ld de, GreenSprite .AreGuy1 ld hl,vNPCSprites @@ -2053,6 +2056,9 @@ LoadBikePlayerSpriteGraphics:: ld a, [wPlayerSex] and a jr z, .AreGuy2 + ld de, TealBikeSprite + cp a, 2 + jr z, .AreGuy2 ld de, GreenBikeSprite .AreGuy2 ld hl, vNPCSprites diff --git a/home/text.asm b/home/text.asm index bd73f49e..daf81ed6 100644 --- a/home/text.asm +++ b/home/text.asm @@ -522,6 +522,8 @@ TextCommand_SOUND:: jr z, .pokemonCry cp TX_SOUND_CRY_NIDORINA jr z, .pokemonCry + cp TX_SOUND_CRY_NIDOREIGN + jr z, .pokemonCry ld a, [hl] call PlaySound call WaitForSoundToFinish @@ -542,7 +544,7 @@ TextCommandSounds:: db TX_SOUND_GET_ITEM_1, SFX_GET_ITEM_1 ; actually plays SFX_LEVEL_UP when the battle music engine is loaded db TX_SOUND_CAUGHT_MON, SFX_CAUGHT_MON db TX_SOUND_POKEDEX_RATING, SFX_POKEDEX_RATING ; unused - db TX_SOUND_GET_ITEM_1_DUPLICATE, SFX_GET_ITEM_1 ; unused + db TX_SOUND_CRY_NIDOREIGN, NIDOREIGN ; Was SFX_GET_ITEM_1 duplicate db TX_SOUND_GET_ITEM_2, SFX_GET_ITEM_2 db TX_SOUND_GET_KEY_ITEM, SFX_GET_KEY_ITEM db TX_SOUND_DEX_PAGE_ADDED, SFX_DEX_PAGE_ADDED diff --git a/layout.link b/layout.link index 184bf5d5..e2865163 100644 --- a/layout.link +++ b/layout.link @@ -44,7 +44,7 @@ ROMX $2 ROMX $3 "bank3" ROMX $4 - "NPC Sprites 1" +; "NPC Sprites 1" "Font Graphics" "Battle Engine 1" ROMX $5 diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm index bb9458ae..f999231d 100644 --- a/macros/scripts/text.asm +++ b/macros/scripts/text.asm @@ -102,9 +102,9 @@ MACRO sound_pokedex_rating db TX_SOUND_POKEDEX_RATING ENDM - const TX_SOUND_GET_ITEM_1_DUPLICATE ; $0f -MACRO sound_get_item_1_duplicate - db TX_SOUND_GET_ITEM_1_DUPLICATE + const TX_SOUND_CRY_NIDOREIGN ; $0f +MACRO sound_cry_nidoreign + db TX_SOUND_CRY_NIDOREIGN ENDM const TX_SOUND_GET_ITEM_2 ; $10 diff --git a/ram/wram.asm b/ram/wram.asm index 321eb92d..449eb1ef 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -868,6 +868,7 @@ wWhichBadge:: wTitleMonSpecies:: wPlayerCharacterOAMTile:: wFPlayerCharacterOAMTile:: +wNBPlayerCharacterOAMTile:: ; the number of small stars OAM entries to move down wMoveDownSmallStarsOAMCount:: wChargeMoveNum:: @@ -1993,6 +1994,7 @@ wMissableObjectList:: ds 16 * 2 + 1 wPlayerSex:: ; $00 = male ; $01 = female + ; $02 = enby ds 1 wGameProgressFlags::