Merge branch 'master' into mistress
|
@ -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.
|
||||
|
@ -173,7 +175,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!
|
||||
|
@ -198,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.
|
||||
|
@ -421,7 +424,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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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@"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 "データをみる"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
KKKKN
|
||||
|
|
|
@ -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"
|
||||
|
|
BIN
gfx/overworld/teal_fish_back.png
Normal file
After Width: | Height: | Size: 602 B |
BIN
gfx/overworld/teal_fish_front.png
Normal file
After Width: | Height: | Size: 635 B |
BIN
gfx/overworld/teal_fish_side.png
Normal file
After Width: | Height: | Size: 633 B |
|
@ -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"
|
||||
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
BIN
gfx/player/third.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
gfx/player/thirdb.png
Normal file
After Width: | Height: | Size: 902 B |
|
@ -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"
|
||||
|
|
BIN
gfx/sprites/teal.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
gfx/sprites/teal_bike.png
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.1 KiB |
BIN
gfx/title/nbplayer.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -44,7 +44,7 @@ ROMX $2
|
|||
ROMX $3
|
||||
"bank3"
|
||||
ROMX $4
|
||||
"NPC Sprites 1"
|
||||
; "NPC Sprites 1"
|
||||
"Font Graphics"
|
||||
"Battle Engine 1"
|
||||
ROMX $5
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1 +1 @@
|
|||
|
||||
|
|
@ -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::
|
||||
|
|
|
@ -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::
|
||||
|
|