From 6726f5fec1742b65b60db38606756e2ad445ab8a Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Tue, 7 Jan 2025 02:17:30 -0500 Subject: [PATCH 1/9] Enby YES internally kind of sloppy, filenames refer to Pink as a few different things and none of them are by their final name lol Haven't managed to get this to build the debug rom? Probably not a big deal, though you have to specifically run "make kep" instead of just "make" --- constants/menu_constants.asm | 2 +- data/player_names.asm | 7 ++ data/player_names_list.asm | 6 ++ data/text/unused_names.asm | 38 ++++----- data/text_boxes.asm | 8 +- engine/battle/core.asm | 6 ++ engine/menus/start_sub_menus.asm | 4 + engine/movie/hall_of_fame.asm | 14 +++- engine/movie/intro.asm | 6 +- engine/movie/oak_speech/oak_speech.asm | 99 ++++++++++++++++++------ engine/movie/oak_speech/oak_speech2.asm | 17 ++++ engine/movie/title.asm | 46 ++++++++++- engine/overworld/player_animations.asm | 19 +++++ gfx/fishing.asm | 3 + gfx/overworld/teal_fish_back.png | Bin 0 -> 602 bytes gfx/overworld/teal_fish_front.png | Bin 0 -> 635 bytes gfx/overworld/teal_fish_side.png | Bin 0 -> 633 bytes gfx/pics.asm | 3 +- gfx/player.asm | 1 + gfx/player/third.png | Bin 0 -> 1394 bytes gfx/player/thirdb.png | Bin 0 -> 902 bytes gfx/sprites.asm | 17 ++-- gfx/sprites/teal.png | Bin 0 -> 14992 bytes gfx/sprites/teal_bike.png | Bin 0 -> 15984 bytes gfx/title/nbplayer.png | Bin 0 -> 1713 bytes gfx/trainer_card.asm | 3 + home/overworld.asm | 6 ++ home/text.asm | 4 +- layout.link | 2 +- macros/scripts/text.asm | 6 +- ram/wram.asm | 2 + 31 files changed, 256 insertions(+), 63 deletions(-) create mode 100644 gfx/overworld/teal_fish_back.png create mode 100644 gfx/overworld/teal_fish_front.png create mode 100644 gfx/overworld/teal_fish_side.png create mode 100644 gfx/player/third.png create mode 100644 gfx/player/thirdb.png create mode 100644 gfx/sprites/teal.png create mode 100644 gfx/sprites/teal_bike.png create mode 100644 gfx/title/nbplayer.png 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 0000000000000000000000000000000000000000..137780c80fc710b7d705e7e1a9f0faa555e433d6 GIT binary patch literal 602 zcmeAS@N?(olHy`uVBq!ia0vp^96&6XQ2>tmIipR1RclAn~SSCLx)RL#I( zV_#8_n4FzjqL7rDo|$K>{(kpRtPXT0L zVp4u-iLFv;X=aL5T4I`MQc8-cZc?IgimstyN}_IJim{XQ2>tmIipR1RclAn~SSCLx)RL#I( zV_#8_n4FzjqL7rDo|$K>{(kpRtPXT0L zVp4u-iLFv;X=aL5T4I`MQc8-cZc?IgimstyN}_IJim{dUfn!q_M{0ze TUA~mm21)^*u6{1-oD!MXQ2>tmIipR1RclAn~SSCLx)RL#I( zV_#8_n4FzjqL7rDo|$K>{(kpRtPXT0L zVp4u-iLFv;X=aL5T4I`MQc8-cZc?IgimstyN}_IJim{-xjn_`cm0`?$_C9jt>laP8HkB SrhgO##lNSkpUXO@geCy7Yu0%H literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4adcad4d188817172bacddf9a6bae8b13fde6400 GIT binary patch literal 1394 zcmeAS@N?(olHy`uVBq!ia0vp^79h;Q1|(OsS<3+_#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DinK$vl=HlH+5LwjaOL`j6Nk5zJhu3lnFep0GlMQ#C5H3Nf< zeMLcHa&~HoLQ-maW}dD3``!E16*5z7)x%AF4SWlnQ!_F>s)|yBtNcQetFn_VQ`GJ4 zc)4sUtbiuurj{fsROII56ON0GHI_ zN%^HEwo0X?nJHFjiD{-uDJiD9Nr}cOx`u`+iMoj?#)i5n#>Oe;riK zGN53Bhi+;fFi6XRVW%@?1~&r(bBU*mV@QVc-Iux0&-WTG zOWM3IH0rDIjVNo5P5m0>+YOH`l;5%Y>%H%@gR+7|lF}Z&yI9R%&R>52_n9}@k3WV^ zsT2t2o;R!VwU%qz)yfZj%hzqu($}lrur*C^qrLr9ompvNqOR{H{Y0kWvcEwZKZpx`^>7(3h#DRIn7=+ z;mt0s_pYvTELtwo+)062=U%<5bXj^}M#mYK+U);J*&C%+%{%3?s{EpshNrMYcOFY$ zq}BzmbhEtHpvI0SgE{?{K}9UJvZXJ%Z1%2uVr4f!w>Tu=m1DX8XYr!DvL^L*OG6aI zZ|Y>I<(c{3{d@fLpD96&(>g9bmbCKgpC6>PVe7W)_p=+{?A3k@q7Tyt|rhvAQPAxpYa8*guW z`^aGJF^Sz8e=9jGZ*N{XYhIY4>rIRD`|*tjt1Ci}tv^!`{N7o%<6>26h~L>;BHXTBY0jxbHBm^#HJuy4U;)c`Ti+((vk8MUWy zUYS3W(EG?&(qb!lvI6;>1s;*b3=DinK$vl=HlH+5LwjaOL`j6Nk5zJhu3lnFep0GlMQ#C5H3Nf< zeMLcHa&~HoLQ-maW}dD3``!E16*5z7)x%AF4SWlnQ!_F>s)|yBtNcQetFn_VQ`GJ4 zc)4sUtbiuurj{fsROII56ON0GHI_ zN%^HEwo0X?nJHFjiD{-uDJiD9Nr}cOx`u`+iMoj?#)i5n#>Oe;riK zGN53Bhi+;fFi6XRVW%@?1~)KDIy_w*Ln7SYhC5C=qQH^!y#KB8$BAcBPbdW{pSyc5=rZk;5VqYgPJR{4GAxa4_Pw>+=T5ZLBt5mq{-@qMR(l zq50v9)Kke{i{C8JJ{08j{Eo&YpO)@l{~Es^a~D@W=aRRn`Eqz&qx!M(@a$!*k%)Wd3 zH{V?5#m91^~vnRKmc3<+@ z>&+68iNWeej(vO6Wl(&{^~X+?K(CuwUj5q_n%{|P?kG8bv0ScSwxi=%Z|_p(@~-@n z*x9|l=2=1d)sk~N9&7jX9FmliG?$qwQ|>5p{!7@yI^F+yt)FJH_$-=X_^>#~Uge|T o&aPV<{uuw_t*I4H`S|{Tbc6dj^|`UR&p?^M)78&qol`;+0MY4XFaQ7m literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0bd53f9eea5e3d7b6134d76ff26c1a84e3fe13e1 GIT binary patch literal 14992 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 Z=N_7Lb9dvsht=PC7cDDs9a>t~{vXBXpw<8Y literal 0 HcmV?d00001 diff --git a/gfx/title/nbplayer.png b/gfx/title/nbplayer.png new file mode 100644 index 0000000000000000000000000000000000000000..2d71ee89206acbfa9188ed68d8614a2cb7d37538 GIT binary patch literal 1713 zcmZ`(2~ZPf6#fCh3n(540V*+yASBsr0t(?$NjTI9#-IcRO|lyZkr0xFL{J2^8Wo9J zj(CkISQQndiUMM7%c0ibS!u1s1EeA%R2jvJV*e7(3DasZ===y3A5k z3k7D^4{7#5!;Rp^5SWO-*%B2F6<{)$-ZX{}4fPSAD4WTEw-wmIV8Z8om}@%WP+;{Z?aJ@>hUR9OAclzHEnrJhlIbEW zMU2z6a5>Wn2-Ye^5;;zg#dv~D5$N7~{-Qfsh6TDW_2Dsi$`CwJ7M`KP7iTOKNHXLS zKg>Ni$YxA{mJK^3ctR%qJYS(6q5%?um?8*D zXP8ztVRocShQlpPBZJU@kMV!`0ua+8|5z;OlLx*lM8nLOXc}f0S3pWNkUMI=VJrX^ z84;X0g2a$!!?NCefV z^ihrej0rtKvGV%XB9>#-gj*%468j@fEE~mj<+MLf79YhU^a6|XXEP1m)WPtF)WMa@ z2dePP+xIw1rtAw?W7B`Ve8o;WD>n4^)>ye-@?|~eNoKFUUB|R7WS1vUPvwiNdDz4> zW?7DZ-&2wx=JGrjT?6hr{%GXY&}gtNZuEoH$8E9CiqO1}sRuiIFFc^P$Z6WdjzlYw zZbKaRT+4|n>4koza_e;7s3YD*>vh5!gHMs$qKamv{zuC-AzaJvJ)Adr1m!j0Ne{DU ze^=QPWw@-%TPiwT*fDOysKmVu+h23h{HM3u?M1t0>+b8uzOtS+&OQHrm@CnEY4F;) zSND6Z&&)S=g(gi*d|zKF%__{ay5y*LC>E}r8*DunNOK3kfo<0+wAIyBQi*k+yj4(C zd%l2QIG1urXna}u@XolNC5M8nDjm>g4_+Lrx?ia&*uU8>>w07NF}w7>yxYQeoK0`0 z*AdOj2N3wR#yx+MbaF+cbKvYys&sk9UN?%mh*W*5#c3<6EH!va-|Pj|t!)e9cB0?B zC`0S!*F_ayd9t09ge}dEUf$IFh@Vh&&yQXsJmvBdnRRl^ZsEG(^P3l+QvWdNc-3p) zie;#R)OVX?%y#;Tb)37dAjZG{H%}{8=bpH7n@|DYTgZHoaNIF~%PQci_}RI>12#EF z_g1ysIJyFPv+t4nmY0$oyW%#%2xK=qy-}VMZnwQkC)|Z;_fOkHo^F1pqq{9y>UEJ4 zwbbt7%(^x4=ajP3v5u!7-s*f`xJ^k+t|%kLHx}1MUa3Xuy>jZ3jOkPTcb?wJj~|Ww zykl|+;@LvVv-~!*Qp^dxc}WuU*pp*ur?yyQ^>t^s%cxm9goz$u<_YK#bFy+tgC?TM zrN&p~R^ngyfJ}>u8%vqfo-x{j-Bf{0B=OBP<*f(j-zy)1&d70DMxAF9MzWQD(3E~% z8t;0wWVd&${;%|3MHX2%O7Fgl&2=~sy*T|q4(r*A{y2*_CDl$hD&B03um9zdw()Iu lV|Pf++3=NrIIWGw2SKso8vUJpmy7B57r|Y~DWAJ?{oj@>k@o-q literal 0 HcmV?d00001 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:: From 873dc897210460f96e33426fc6a9baf034c421cd Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Tue, 7 Jan 2025 02:42:03 -0500 Subject: [PATCH 2/9] Pink mention in Readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e7cd68a3..e7c2d8f3 100644 --- a/README.md +++ b/README.md @@ -173,7 +173,7 @@ Improved Areas QoL Enhancements ==== -- A feminine character option is now available, featuring the sprite from Pokemon Anniversary Red, which is based on Green's manga appearance. +- Feminine and Androgynous character options are now available, featuring Green's sprite from Pokemon Anniversary Red, which is based on her manga appearance, as well as a custom Nonbinary character named Pink. - To accomodate this, Celadon Gym's trainers use their more neutral text from Crystal. - The protagonist is also referred to in a gender neutral manner. This changes like, 2-3 lines in the whole game. - All 151 original Pokemon, plus an additional 100, can be obtained without the use of trading or glitches, including Mew! @@ -421,7 +421,7 @@ RacieBeep sprites: Balumba, Blastyke, Blottle, Buu, Cactormus, Cheep, Coinpur, C Orchid: Luxwan (back), Buu (back) -Zeta_Null: Porygon (front) +Zeta_Null: Porygon (front), All sprites for Pink (Nonbinary player option) Official sprites: Crobat (front, edited by Martha’s Against Humanity), Disturban, Espeon (front, edited by Martha’s Against Humanity), Slowking (front), Steelix (front), Tricules, Umbreon (front, edited by Martha’s Against Humanity) From 6ccf7997edf03c40aa9f555630245db787686dc6 Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Tue, 7 Jan 2025 14:14:20 -0500 Subject: [PATCH 3/9] Diploma Fix for Pink? --- engine/events/diploma.asm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/engine/events/diploma.asm b/engine/events/diploma.asm index be211b16..5ca0075d 100644 --- a/engine/events/diploma.asm +++ b/engine/events/diploma.asm @@ -42,10 +42,16 @@ DisplayDiploma:: ld a, [wPlayerSex] and a ; are you playing as Red jr z, .red ; if yes, Red appears on the diploma + ld a, [wPlayerSex] + cp a, 2 + jr z, .pink ; if yes, Pink appears on the diploma jr nz, .green ; if no, Green replaces him .green farcall DrawFPlayerCharacter jr .skip +.pink + farcall DrawNBPlayerCharacter + jr .skip .red farcall DrawPlayerCharacter .skip From 0167176d3bb09ccd07e991a2b432029715ad3e69 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Thu, 9 Jan 2025 01:37:17 +0000 Subject: [PATCH 4/9] It seems some just do not notice these things until you put a gigantic neon sign down... --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e7c2d8f3..ff7c56a1 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ This is a ROM Hack of Pokémon Red and Blue, aiming to expand the Kanto region w If playing on an emulator, BGB is strongly recommended for its accuracy and features. Inaccurate emulators, such as VBA and TGB Dual, can experience unintended glitches. This hack is fully playable on official hardware as well. +# For all Pokemon info go [here](https://docs.google.com/spreadsheets/d/1cP8tvoj19__bx08hSG7dOtefVcdaNwZXohVu1RKzjPI/edit?usp=sharing) + New Pokemon ==== The Kanto Expansion Pak's ethos is to add every "Kanto-related" Pokemon to RBY without fundamentally changing the grander metagame. What's defined as "Kanto-related" is a Pokemon that evolves from an existing Kanto Pokemon, made an appearance in a Kanto-based game (LGPE), is a regional variant, or was a Kanto-related Pokemon cut during the development of an official game. From 602c63b03dc118a611bf3a3f9a5c6728b59905ad Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Mon, 13 Jan 2025 06:25:56 +0000 Subject: [PATCH 5/9] Safari Zone Rest Houses now have PCs. This uses some of the tech I made for the Day Care, since the House tileset had PCs in them. The Rest Houses now have slightly revamped maps to accommodate. Did you know these were unused? --- README.md | 1 + data/events/hidden_objects.asm | 16 ++++++---------- data/maps/headers/SafariZoneCenterRestHouse.asm | 2 +- data/maps/headers/SafariZoneEastRestHouse.asm | 2 +- data/maps/headers/SafariZoneNorthRestHouse.asm | 2 +- data/maps/headers/SafariZoneWestRestHouse.asm | 2 +- data/maps/objects/SafariZoneCenterRestHouse.asm | 4 ++-- data/maps/objects/SafariZoneEastRestHouse.asm | 8 ++++---- data/maps/objects/SafariZoneNorthRestHouse.asm | 2 +- data/maps/objects/SafariZoneWestRestHouse.asm | 6 +++--- gfx/blocksets/house.bst | Bin 640 -> 672 bytes maps/SafariZoneCenterRestHouse.blk | Bin 16 -> 16 bytes maps/SafariZoneEastRestHouse.blk | Bin 16 -> 16 bytes maps/SafariZoneNorthRestHouse.blk | Bin 16 -> 16 bytes maps/SafariZoneSecretHouse.blk | 2 +- maps/SafariZoneWestRestHouse.blk | Bin 16 -> 16 bytes text/SafariZoneGate.asm | 10 +++++----- 17 files changed, 27 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index ff7c56a1..37b76817 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,7 @@ QoL Enhancements - Traded Pokemon ("Outsiders") can now be nicknamed at the Name Rater's House. - HP bar has been doubled in speed, having a 1 frame delay per pixel rather than 2. - The blinking animation when hit by moves like Tackle now repeats 4 instead of 6 times, speeding up battles by a bit while not sacrificing impact. +- The Safari Zone Rest Houses now have PCs in them, so if the box is full, you can still change boxes to continue catching Pokemon. - The Rock in the Safari Zone now only raises the flee chance by 1.5x, rather than 2x, opening up new strategies. - PP symbol is displayed in the battle menu. PP displayed before, it just looks nicer now. Done by changing a straggler Japanese character. - Lorelei, Bruno, and Agatha now play the Gym Leader Battle theme. diff --git a/data/events/hidden_objects.asm b/data/events/hidden_objects.asm index 865d85dc..31091174 100644 --- a/data/events/hidden_objects.asm +++ b/data/events/hidden_objects.asm @@ -58,6 +58,7 @@ HiddenObjectMaps: db VICTORY_ROAD_2F db BILLS_HOUSE db VIRIDIAN_CITY + db SAFARI_ZONE_CENTER_REST_HOUSE db SAFARI_ZONE_WEST_REST_HOUSE db SAFARI_ZONE_EAST_REST_HOUSE db SAFARI_ZONE_NORTH_REST_HOUSE @@ -153,6 +154,7 @@ HiddenObjectPointers: dw VictoryRoad2HiddenObjects dw BillsHouseHiddenObjects dw ViridianCityHiddenObjects + dw SafariZoneRestHouse1HiddenObjects dw SafariZoneRestHouse2HiddenObjects dw SafariZoneRestHouse3HiddenObjects dw SafariZoneRestHouse4HiddenObjects @@ -535,19 +537,13 @@ ViridianCityHiddenObjects: hidden_object 14, 4, POTION, HiddenItems db -1 ; end +; Moved these to the same slot to save bytes. +SafariZoneRestHouse1HiddenObjects: SafariZoneRestHouse2HiddenObjects: - hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC - db -1 ; end - SafariZoneRestHouse3HiddenObjects: - hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC - db -1 ; end - SafariZoneRestHouse4HiddenObjects: - hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText - hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText ; still unused + hidden_object 4, 1, SPRITE_FACING_UP, OpenPokemonCenterPC db -1 ; end Route15GateUpstairsHiddenObjects: diff --git a/data/maps/headers/SafariZoneCenterRestHouse.asm b/data/maps/headers/SafariZoneCenterRestHouse.asm index c80abea0..e8880a49 100644 --- a/data/maps/headers/SafariZoneCenterRestHouse.asm +++ b/data/maps/headers/SafariZoneCenterRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneCenterRestHouse, SAFARI_ZONE_CENTER_REST_HOUSE, GATE, 0 + map_header SafariZoneCenterRestHouse, SAFARI_ZONE_CENTER_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/headers/SafariZoneEastRestHouse.asm b/data/maps/headers/SafariZoneEastRestHouse.asm index 94964754..5227a3aa 100644 --- a/data/maps/headers/SafariZoneEastRestHouse.asm +++ b/data/maps/headers/SafariZoneEastRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneEastRestHouse, SAFARI_ZONE_EAST_REST_HOUSE, GATE, 0 + map_header SafariZoneEastRestHouse, SAFARI_ZONE_EAST_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/headers/SafariZoneNorthRestHouse.asm b/data/maps/headers/SafariZoneNorthRestHouse.asm index 7f9d5dbc..f324dd72 100644 --- a/data/maps/headers/SafariZoneNorthRestHouse.asm +++ b/data/maps/headers/SafariZoneNorthRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneNorthRestHouse, SAFARI_ZONE_NORTH_REST_HOUSE, GATE, 0 + map_header SafariZoneNorthRestHouse, SAFARI_ZONE_NORTH_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/headers/SafariZoneWestRestHouse.asm b/data/maps/headers/SafariZoneWestRestHouse.asm index 3d3bef71..4d572b1c 100644 --- a/data/maps/headers/SafariZoneWestRestHouse.asm +++ b/data/maps/headers/SafariZoneWestRestHouse.asm @@ -1,2 +1,2 @@ - map_header SafariZoneWestRestHouse, SAFARI_ZONE_WEST_REST_HOUSE, GATE, 0 + map_header SafariZoneWestRestHouse, SAFARI_ZONE_WEST_REST_HOUSE, HOUSE, 0 end_map_header diff --git a/data/maps/objects/SafariZoneCenterRestHouse.asm b/data/maps/objects/SafariZoneCenterRestHouse.asm index ff48d19c..557b3bbc 100644 --- a/data/maps/objects/SafariZoneCenterRestHouse.asm +++ b/data/maps/objects/SafariZoneCenterRestHouse.asm @@ -8,7 +8,7 @@ SafariZoneCenterRestHouse_Object: def_bg_events def_object_events - object_event 3, 2, SPRITE_GIRL, STAY, DOWN, 1 ; person - object_event 1, 4, SPRITE_SCIENTIST, WALK, UP_DOWN, 2 ; person + object_event 3, 3, SPRITE_GIRL, STAY, LEFT, 1 ; person + object_event 5, 6, SPRITE_SCIENTIST, WALK, UP_DOWN, 2 ; person def_warps_to SAFARI_ZONE_CENTER_REST_HOUSE diff --git a/data/maps/objects/SafariZoneEastRestHouse.asm b/data/maps/objects/SafariZoneEastRestHouse.asm index f79a5cfc..62742229 100644 --- a/data/maps/objects/SafariZoneEastRestHouse.asm +++ b/data/maps/objects/SafariZoneEastRestHouse.asm @@ -8,9 +8,9 @@ SafariZoneEastRestHouse_Object: def_bg_events def_object_events - object_event 2, 3, SPRITE_SCIENTIST, WALK, UP_DOWN, 1 ; person - object_event 0, 2, SPRITE_ROCKER, STAY, NONE, 2 ; person - object_event 5, 2, SPRITE_SILPH_WORKER, STAY, NONE, 3 ; person - object_event 6, 2, SPRITE_SILPH_WORKER, STAY, NONE, 4 ; person + object_event 5, 5, SPRITE_SCIENTIST, WALK, UP_DOWN, 1 ; person + object_event 0, 4, SPRITE_ROCKER, STAY, RIGHT, 2 ; person + object_event 3, 3, SPRITE_SILPH_WORKER, STAY, LEFT, 3 ; person + object_event 3, 4, SPRITE_SILPH_WORKER, STAY, LEFT, 4 ; person def_warps_to SAFARI_ZONE_EAST_REST_HOUSE diff --git a/data/maps/objects/SafariZoneNorthRestHouse.asm b/data/maps/objects/SafariZoneNorthRestHouse.asm index 8fbacd81..7aeaf327 100644 --- a/data/maps/objects/SafariZoneNorthRestHouse.asm +++ b/data/maps/objects/SafariZoneNorthRestHouse.asm @@ -9,7 +9,7 @@ SafariZoneNorthRestHouse_Object: def_object_events object_event 6, 3, SPRITE_SCIENTIST, WALK, LEFT_RIGHT, 1 ; person - object_event 3, 4, SPRITE_SAFARI_ZONE_WORKER, STAY, NONE, 2 ; person + object_event 3, 4, SPRITE_SAFARI_ZONE_WORKER, LEFT, NONE, 2 ; person object_event 1, 5, SPRITE_GENTLEMAN, WALK, UP_DOWN, 3 ; person def_warps_to SAFARI_ZONE_NORTH_REST_HOUSE diff --git a/data/maps/objects/SafariZoneWestRestHouse.asm b/data/maps/objects/SafariZoneWestRestHouse.asm index c63886b7..a5f6bbaf 100644 --- a/data/maps/objects/SafariZoneWestRestHouse.asm +++ b/data/maps/objects/SafariZoneWestRestHouse.asm @@ -8,8 +8,8 @@ SafariZoneWestRestHouse_Object: def_bg_events def_object_events - object_event 4, 4, SPRITE_SCIENTIST, WALK, ANY_DIR, 1 ; person - object_event 0, 2, SPRITE_COOLTRAINER_M, STAY, RIGHT, 2 ; person - object_event 6, 2, SPRITE_ERIKA, STAY, DOWN, 3 ; person + object_event 5, 3, SPRITE_SCIENTIST, WALK, ANY_DIR, 1 ; person + object_event 0, 3, SPRITE_COOLTRAINER_M, STAY, RIGHT, 2 ; person + object_event 3, 4, SPRITE_ERIKA, STAY, LEFT, 3 ; person def_warps_to SAFARI_ZONE_WEST_REST_HOUSE diff --git a/gfx/blocksets/house.bst b/gfx/blocksets/house.bst index 7f462f80d74903668788d18beb56a1b97b6ef1e6..0ed306daf9538f56c773d1097f003db8d2c1d873 100644 GIT binary patch delta 40 vcmZo*UBJ4bfk}aZfs31gfrFEgQA(PTQ9{zeQB6}p(ZJBj*}zavUQQkWf$Rm} delta 7 OcmZ3$+Q7P@fe8Q#D*{~r diff --git a/maps/SafariZoneCenterRestHouse.blk b/maps/SafariZoneCenterRestHouse.blk index 625b41b69d54c80fdc9446fd12efc0c2017ae9ef..11643254ccb674bb9b3dae155d0e4b1130ecb722 100644 GIT binary patch literal 16 Xcmd5|IJX diff --git a/maps/SafariZoneEastRestHouse.blk b/maps/SafariZoneEastRestHouse.blk index 625b41b69d54c80fdc9446fd12efc0c2017ae9ef..9f144c22000c7add26d8b2d8dea71976ffce2e90 100644 GIT binary patch literal 16 XcmZS8(3E0i;^*g45|IJX diff --git a/maps/SafariZoneNorthRestHouse.blk b/maps/SafariZoneNorthRestHouse.blk index 625b41b69d54c80fdc9446fd12efc0c2017ae9ef..2683df7b36b7f0fd5e03f873d8dc805153cc7e83 100644 GIT binary patch literal 16 XcmZS8(3E0i;^*h#5|IJX diff --git a/maps/SafariZoneSecretHouse.blk b/maps/SafariZoneSecretHouse.blk index d5dbe9e1..cd0dbdfb 100644 --- a/maps/SafariZoneSecretHouse.blk +++ b/maps/SafariZoneSecretHouse.blk @@ -1 +1 @@ -  \ No newline at end of file +  \ No newline at end of file diff --git a/maps/SafariZoneWestRestHouse.blk b/maps/SafariZoneWestRestHouse.blk index 625b41b69d54c80fdc9446fd12efc0c2017ae9ef..11643254ccb674bb9b3dae155d0e4b1130ecb722 100644 GIT binary patch literal 16 Xcmd5|IJX diff --git a/text/SafariZoneGate.asm b/text/SafariZoneGate.asm index 6cfeb17c..57afe554 100644 --- a/text/SafariZoneGate.asm +++ b/text/SafariZoneGate.asm @@ -84,11 +84,11 @@ _SafariZoneEntranceText_753eb:: cont "BALLs, it's game" cont "over for you!" - para "Before you go," - line "open an unused" - cont "#MON BOX so" - cont "there's room for" - cont "new #MON!" + para "It's ok if the" + line "#MON BOX is" + cont "full: Go to a" + cont "REST HOUSE and" + cont "switch!" done _SafariZoneEntranceText_753f0:: From 9fd86fe734921c26eea1e94f8c8f079490c78041 Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Thu, 16 Jan 2025 13:30:23 -0500 Subject: [PATCH 6/9] Overworld Edit + mild revision to Pink's title graphic --- gfx/blocksets/overworld.bst | 6 +++--- gfx/tilesets/overworld.png | Bin 1309 -> 3172 bytes gfx/title/nbplayer.png | Bin 1713 -> 1707 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gfx/blocksets/overworld.bst b/gfx/blocksets/overworld.bst index 18ceef97..bc92a0f6 100644 --- a/gfx/blocksets/overworld.bst +++ b/gfx/blocksets/overworld.bst @@ -7,7 +7,7 @@ ()O*+:;<<<<<<<<<<<<<<HI77XY77,,,,,,,,,,,,77779999999999FG99VW# -#,,,,,,,,,,,,,,,,RRRRRRRRRRRRRRRRSS88SSSSSS 88@A@APQPQ@A@APQPQ%& +#,,,,,,,,,,,,,,,,RRRRRRRRRRRRRRRRSS^^SSSSSS 88@A@APQPQ@A@APQPQ%& """ @@ -19,7 +19,7 @@ N"/?"""""  ()""" -O*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+:;*+:;*+:;*+:;9999999999996777##UU####UU######9###@A@APQPQ33332223333TTT3333LSSSZZ\SSSMZZ]!########!## ######## '''''6776777$$$$774$7774##!########!########''''''''$$$$$$$$7'57$533,,,,,,,,,,,,74<<%& +O*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+*+:;:;*+*+:;:;*+:;*+*+:;:;*+:;*+:;*+:;*+:;*+:;9999999999996777##UU####UU######9###@A@APQPQ33332223333TTT3333LSSSZZ\SSSM__]!########!## ######## '''''6776777$$$$774$7774##!########!########''''''''$$$$$$$$7'57$533,,,,,,,,,,,,74<<%& "N9999999999999999@A-.PQ=>@A,,PQ,,@A@APQPQ,,-.,,=>-.,,=>,,@A@APQPQ,,-.,,=>@A,,PQ,,@A@APQPQ,,@A,,PQ @@ -50,7 +50,7 @@ KKKK KKKBCKJJO -KKKDEKJJO,,,,,,,,,,,,88%&""88""()99999999UUUU11110000000000FG00VW,0,00,0,,0,00,0,0909909009099090 +KKKDEKJJO,,,,,,,,,,,,^^%&""88""()99999999UUUU11110000000000FG00VW,0,00,0,,0,00,0,0909909009099090 KKKK N diff --git a/gfx/tilesets/overworld.png b/gfx/tilesets/overworld.png index c7533e4045086c7bd3615b167c46c3c67a850a0d..5615bdf6322ff2f24ded08e270c343751a89033d 100644 GIT binary patch literal 3172 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 ARsaA1 From 2c6cf510775283b636c3b39f62d9448e8a45bde9 Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Thu, 16 Jan 2025 13:33:22 -0500 Subject: [PATCH 7/9] minor revision --- gfx/tilesets/overworld.png | Bin 3172 -> 3150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/gfx/tilesets/overworld.png b/gfx/tilesets/overworld.png index 5615bdf6322ff2f24ded08e270c343751a89033d..c7dbf8572c80a044b40bc622a3d85c11142853d8 100644 GIT binary patch delta 2689 zcmV-{3V!wE7|s~5=>dOGNklC7l!3CxO zfqGCBMbebwqqz54fk_bD%^wR+bwR&n|OJtZ#&TlG@PhD6q(hG#+IIiGk8Q~r0hs|T1 zHk++YECql&L<`edbiSVK4VNG}Oo5`O+~q0=2s(Zxt^Fyq*3v*wKzr%oZorIWIYx3a z{7CqI-VA^D^GufGB5^n!Pd+)BPbV{hr~<_|rr=OLpqKNm;@x>8D4-RTBV_AmeLc|L z84bImxa}FV^pEB*X8>Q^`yEtJRQ)m@`y;s|egh>r_gOxL%kz>!{p1<(Dx->y>@KVX zXRICpj2JFT<=Ic?`x9NxXyp9=(T5%wQU-y8$5Vec?pO+d%=r$DyJCu36+PYA5x}v( z1=@43d#dT*xAnLGU*Of;-$x2HJ0C%Oi0*sUYXi z?CY4m2y!7k1=wa?4&`O8o}U1886={Ge0Pw|B&lDk#6!Ocq+0L&Ar*NmNZYT>5LP|0t zFnA(~Zm;(opJf;t(6f-wFX!id%3!@`U|xU5gp4m1p72#lJIY?PRTutUaaO{+<;f1=gjTKz$vfG3mrL*gqPlj-;G7 zLP)@01CHu--v z=DM*^&QxnH;P6G>1q~cn2O>A}}= zJp`>mCpkFIxvra2u9x|VdU2e-@j2}O_+y}_(Ys&@W7=05eCqkie`jsyS89LNn9I+g zl)u}nY{8Edw-r&6SK^-bo$46i(WACfzvRYgOW$h`+ZmNFLfjc6Pzkj&WiyD!*WK{?Ucu)}F8fCHQCe>}0!BshWDl3oqpVXm+Ens< zE@kxa5&$ikVAMtWswI6}>#FQBLxW_c9G{=6mJ%wugz%jwP#2 zI`g#U>9`;zi&v>uV?KYbe#z%LK2FN{-bcNtpT=E2i}sq;dvH5(KVCTQGE~%NzxQzs z^7;DY7gQ$=DWplRpaf=uWF#71N|0*Y`!wI>__)h(9v^qP&XeiD{dj#9Tq~oQJULKh z)Yp=`jJL_x?A%wKG|21=$K4#=cBxAER*HqS#f{Ea=!16bs2RPn#t>Z!9 zYv__lDA0*g%JY9OgXGBUmaQn4k!1`w!d+w$`7WfN>OF`@`%{r~86d~`J3-E+zO>c1 z_L0Gz`)&OAQ=!es`J}3|KZ{B_LjfbI@vQD`uT!SrZPt5mXS0688@N&GaB=3B5q@e%96Y&BtJa1fO2-zvKK!Ugmro zZf9ZD-gj_ifH)VEW1X@t-kSVho$Lv9n(+%6{|cpp6%5|Tx(D?)jLSWF-wNC|VHrR= zy39;>4`_c6{5bc%#q;y=)agzobhjI)Z^9krJl_g{yP%Wa0Rt@t2B*Coe7YmCU3?G# zE4Ttc4I*>8Q&%Lzs-Y=cg-)*cbEm+WD;_@K8JHEAxxzBUDl!{n4xBlMcGrCFA=4|9 z&p=b%*Ukdy5uFKA%$-h!#qUb8-Om49H7bFCqw{}z&YVH(@00($5vP7Lo*rn(9=IoO z)0TwujCenWzfxSGalTe<$!lb%eAStirybiRSM~D^=;C32YyQy=47=A21PkP35X|iz6?AnZb+`Nf?A*dJW5oB{klWM88n=`x{hOI9{1_( z-u&74H}OMfQpvzQfQl5HNizi{cT`u~vq0EAWXGos&DVu4LvK%B&$5==#OWPypN^ia zckd+c;GvDNL~;>PpD0tH8zyrw+vKN=ZQFS+M;~|s^z?4$uU<5V#}}#UzOLYgKk!#i zoY$ku8ZPG>P_|;$Qt1WzN6>}AFAjd`QNQzxaxO0;Y`1W vcYQKSUP7`~A>9PcpA|y7WOdq$dnNt>2;hNA;sL2H00000NkvXXu0mjf*V=YF delta 2712 zcmV;J3TO4s7~~kR=>dOcNkl>|3Gt{+yG~ z`@S#hpCI*I!E5^oY?rF^-oM!CZrS(!QvbU)+V}lSXMb4ARUu+i$%YRbpC9CGdv!Trz6rCuK;Jk?Y$nZ!ynp+w4lVaVr4QAqcj!?0k0iLzf^NMxe0ElP^JF*ztGL+CPOcMi~eM zbe0)j4VZrwuf&Q^g+DOg&YR(Op2;|_6%M!KO^1`cJDmxr36xwI!9lx8ucW<;pUzu> zfF>wcsN`3DGuYl$-Qtdtws+9lKg_?K0aAGOC#)bf{TR>vt+*uq26}PsyS$6!m!$&z zrdiRFQK?sU2X}(A-8}*vF&1j&-EZgTj_zkPdj5aEn1c=D+Ch-;@l=f`ZUsQ)`~>5v z7*R`McUMP%$Nm|cc6L=8zL!+?t#BCtFfp^LZ-!l$Le6tgMW}<|ZwQ2Rc$Nyb z-<2(o!s)I7&cCv6;_^jMGMOphXSZ>vFLV3(34qI>>9YL}R!%T-jsGNGl~p-CYde2t z-x+@{10Yc;kik&(`6iFjWQX?47rzi1O zp_65}e>H9$U3=aN4F;=%K*NIGK|0QIc^(k})+^^{F})3%d|hVz(YFc!w^vBI{rrF7 zhjq(-+uC~YZ0B2Nfc{>`vwl)d0OLdo`6+DRCa2pGqlk9TO9!SihZlTfj^|eLG63Lr z2iD1bs~VZE8PEQ#DGB->C*c%FyoqXhxpU`Z2IuMwoT>1Kr)!XB^h|cj%yW^mKj~)Y zkN-GD!(vEXRKf) zc&?PK08PrX+#cV(TMozt+i;BM*m1rvK{w0H_7(CDVBLWG4h8m=ef#+(8o|n%(x&jN z*15zpA1LjRKJKJ=(heyuQ#yYsiZRnT%~3O!HL{Y23-X`^IUm06TeVkdedq{S75HI~ zB%Xv>EoW$Bx%n5JZFCjW&F@F;WlH) zCHl#i7&-KRwd&KcjjOlmlar(YmZS(lgRNI9rmIAuu;35h%;umyC{^% zv(C;#Hu6(>WD!_ZkRZ#(B4AAm59VCq4vp=0g$%so{4S%ay(a4I`~j)Ydjh|r_vd}^ zrOzpWl$Yr&(^jVAu9SZaEvc5V9H$@tmXqVIJwN-bm-S;j`Ma>zsy##6$?M7D@#I0_ z+5OpP8Kz75rU$fLHxy!0DhR`h5k|7%QNlIj*~k3kljF%FX>vUICQYS-*OTqLu&k=C z_~Agxs&5o`nS3_gh;yH|>t^CqFqO{dvB(Bi%#NuPPdf9f#wveaIbM}Ctmo(Y+{UPP z!CaRatPjub&%P0XmNuy9S6IFW;QaG><8fca{$H4#b9XTGJA^ztIZxZgdxXzD@O!vg zOC>LTP~G3EzTSKL^5@}pGK)LTOUWzhyKJd_yfXpIkyY@x^+(GZXH7*z9lk4-s;7d}|rDk;*so=S*l9w{(Qq$)P zk!k3kfiY^!zH^z&VjTcuMqa$K7|i#0%AN7A+Sq@@Hp}@Rq<^Q)y?F5fc&)lb{HyWb#0M#nooGe9O91`MTPX>xgC^TJnk+yNT7Hku>5Q#XFf?9| z$3V4{Ew`#)f!CR3hE4xD3|p-1{0=^BL==BR7z(t)nTF@I2%hTM^z`>L05^T{1P!~F z0A-GY*EQ{w3(}Z}KKgpztR`zDpWgu4%2|toj=zb=7-MX4achN Date: Thu, 16 Jan 2025 13:36:28 -0500 Subject: [PATCH 8/9] ...No, put the yellow trees back. --- gfx/tilesets/overworld.png | Bin 3150 -> 3168 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/gfx/tilesets/overworld.png b/gfx/tilesets/overworld.png index c7dbf8572c80a044b40bc622a3d85c11142853d8..a1223d873669953e50107cf986c1f90f2afb1151 100644 GIT binary patch delta 2708 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 O0000dOGNklC7l!3CxO zfqGCBMbebwqqz54fk_bD%^wR+bwR&n|OJtZ#&TlG@PhD6q(hG#+IIiGk8Q~r0hs|T1 zHk++YECql&L<`edbiSVK4VNG}Oo5`O+~q0=2s(Zxt^Fyq*3v*wKzr%oZorIWIYx3a z{7CqI-VA^D^GufGB5^n!Pd+)BPbV{hr~<_|rr=OLpqKNm;@x>8D4-RTBV_AmeLc|L z84bImxa}FV^pEB*X8>Q^`yEtJRQ)m@`y;s|egh>r_gOxL%kz>!{p1<(Dx->y>@KVX zXRICpj2JFT<=Ic?`x9NxXyp9=(T5%wQU-y8$5Vec?pO+d%=r$DyJCu36+PYA5x}v( z1=@43d#dT*xAnLGU*Of;-$x2HJ0C%Oi0*sUYXi z?CY4m2y!7k1=wa?4&`O8o}U1886={Ge0Pw|B&lDk#6!Ocq+0L&Ar*NmNZYT>5LP|0t zFnA(~Zm;(opJf;t(6f-wFX!id%3!@`U|xU5gp4m1p72#lJIY?PRTutUaaO{+<;f1=gjTKz$vfG3mrL*gqPlj-;G7 zLP)@01CHu--v z=DM*^&QxnH;P6G>1q~cn2O>A}}= zJp`>mCpkFIxvra2u9x|VdU2e-@j2}O_+y}_(Ys&@W7=05eCqkie`jsyS89LNn9I+g zl)u}nY{8Edw-r&6SK^-bo$46i(WACfzvRYgOW$h`+ZmNFLfjc6Pzkj&WiyD!*WK{?Ucu)}F8fCHQCe>}0!BshWDl3oqpVXm+Ens< zE@kxa5&$ikVAMtWswI6}>#FQBLxW_c9G{=6mJ%wugz%jwP#2 zI`g#U>9`;zi&v>uV?KYbe#z%LK2FN{-bcNtpT=E2i}sq;dvH5(KVCTQGE~%NzxQzs z^7;DY7gQ$=DWplRpaf=uWF#71N|0*Y`!wI>__)h(9v^qP&XeiD{dj#9Tq~oQJULKh z)Yp=`jJL_x?A%wKG|21=$K4#=cBxAER*HqS#f{Ea=!16bs2RPn#t>Z!9 zYv__lDA0*g%JY9OgXGBUmaQn4k!1`w!d+w$`7WfN>OF`@`%{r~86d~`J3-E+zO>c1 z_L0Gz`)&OAQ=!es`J}3|KZ{B_LjfbI@vQD`uT!SrZPt5mXS0688@N&GaB=3B5q@e%96Y&BtJa1fO2-zvKK!Ugmro zZf9ZD-gj_ifH)VEW1X@t-kSVho$Lv9n(+%6{|cpp6%5|Tx(D?)jLSWF-wNC|VHrR= zy39;>4`_c6{5bc%#q;y=)agzobhjI)Z^9krJl_g{yP%Wa0Rt@t2B*Coe7YmCU3?G# zE4Ttc4I*>8Q&%Lzs-Y=cg-)*cbEm+WD;_@K8JHEAxxzBUDl!{n4xBlMcGrCFA=4|9 z&p=b%*Ukdy5uFKA%$-h!#qUb8-Om49H7bFCqw{}z&YVH(@00($5vP7Lo*rn(9=IoO z)0TwujCenWzfxSGalTe<$!lb%eAStirybiRSM~D^=;C32YyQy=47=A21PkP35X|iz6?AnZb+`Nf?A*dJW5oB{klWM88n=`x{hOI9{1_( z-u&74H}OMfQpvzQfQl5HNizi{cT`u~vq0EAWXGos&DVu4LvK%B&$5==#OWPypN^ia zckd+c;GvDNL~;>PpD0tH8zyrw+vKN=ZQFS+M;~|s^z?4$uU<5V#}}#UzOLYgKk!#i zoY$ku8ZPG>P_|;$Qt1WzN6>}AFAjd`QNQzxaxO0;Y`1W vcYQKSUP7`~A>9PcpA|y7WOdq$dnNt>2;hNA;sL2H00000NkvXXu0mjft=4uo From 0db6d0912a5e896b9a713f564cacd9985ed88a98 Mon Sep 17 00:00:00 2001 From: Zeta_Null Date: Thu, 16 Jan 2025 13:45:50 -0500 Subject: [PATCH 9/9] Revert some tiles to the RB versions. Only some though. --- gfx/tilesets/overworld.png | Bin 3168 -> 3167 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/gfx/tilesets/overworld.png b/gfx/tilesets/overworld.png index a1223d873669953e50107cf986c1f90f2afb1151..ee10109dad89c92c735ff698a0eae7f4e9b75686 100644 GIT binary patch delta 2707 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 O0000