Initial giant enby Commit

- Changed name lists
- Made Overworld pink palette into purple palette
- Changed gender selection options
- Added Topaz's graphics (Enby Trainer)
- Changed more or less every gender check in the game to account for enby option
- Changed out Morty's palette on  the trainer card to a more purple one to facilitate Topaz's graphics

KNOWN ISSUES / THINGS TO CHANGE
- Topaz's sprite does not currently render correctly on town map (check if this is a map issue or if it occasionally will pop up elsewhere as well)
- Bag Palette is still green like the tutorial made it. Might change it to yellow or something later on.
This commit is contained in:
Zeta_Null 2023-09-11 11:26:46 -04:00
parent 5a182b17f0
commit b3a3e27906
57 changed files with 553 additions and 177 deletions

View file

@ -9079,9 +9079,16 @@ GetTrainerBackpic:
bit PLAYERSPRITESETUP_FEMALE_TO_MALE_F, a
jr nz, .Chris
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .Chris
dec a ; FEMALE
jr z, .Kris
; It's nonbinary.
farcall GetEnbyBackpic
ret
.Kris:
; It's a girl.
farcall GetKrisBackpic
ret

View file

@ -6,9 +6,12 @@ LoadFishingGFX:
ld de, FishingGFX
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_gender
ld de, KrisFishingGFX
dec a ; FEMALE
jr z, .got_gender
ld de, EnbyFishingGFX
.got_gender
ld hl, vTiles0 tile $02
@ -40,3 +43,6 @@ INCBIN "gfx/overworld/chris_fish.2bpp"
KrisFishingGFX:
INCBIN "gfx/overworld/kris_fish.2bpp"
EnbyFishingGFX:
INCBIN "gfx/overworld/enby_fish.2bpp"

View file

@ -298,9 +298,12 @@ MagnetTrain_Jumptable:
ld a, BANK(wPlayerGender)
ldh [rSVBK], a
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_gender
ld b, SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
dec a ; FEMALE
jr z, .got_gender
ld b, SPRITE_ANIM_INDEX_MAGNET_TRAIN_PURPLE
.got_gender
pop af
ldh [rSVBK], a

View file

@ -177,9 +177,12 @@ InitPartyMenuBGPal0:
_CGB_PokegearPals:
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .male
ld hl, FemalePokegearPals
dec a ; FEMALE
jr z, .got_pals
ld hl, EnbyPokegearPals
jr .got_pals
.male
@ -628,7 +631,7 @@ _CGB_TrainerCard:
ld a, WHITNEY
call GetTrainerPalettePointer
call LoadPalette_White_Col1_Col2_Black
ld a, MORTY
ld a, TOPAZ ;MORTY
call GetTrainerPalettePointer
call LoadPalette_White_Col1_Col2_Black
ld a, CHUCK
@ -644,14 +647,21 @@ _CGB_TrainerCard:
call GetPredefPal
call LoadHLPaletteIntoDE
; fill screen with opposite-gender palette for the card border
; fill screen with gender-based palette for the card border
hlcoord 0, 0, wAttrmap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, [wPlayerGender]
and a
ld a, $1 ; kris
jr z, .got_gender
ld a, $0 ; chris
jr z, .male
dec a
jr z, .female
ld a, $6 ; dark magenta for enby
jr .got_gender
.male
ld a, $1 ; blue for chris
jr .got_gender
.female
ld a, $0 ; red for kris
.got_gender
call ByteFill
; fill trainer sprite area with same-gender palette
@ -659,14 +669,18 @@ _CGB_TrainerCard:
lb bc, 7, 5
ld a, [wPlayerGender]
and a
jr z, .male2
dec a
jr z, .female2
ld a, $4 ; enby
jr .got_gender2
.male2
ld a, $0 ; chris
jr z, .got_gender2
jr .got_gender2
.female2
ld a, $1 ; kris
.got_gender2
call FillBoxCGB
; top-right corner still uses the border's palette
hlcoord 18, 1, wAttrmap
ld [hl], $1
hlcoord 2, 11, wAttrmap
lb bc, 2, 4
ld a, $1 ; falkner
@ -695,22 +709,24 @@ _CGB_TrainerCard:
lb bc, 2, 4
ld a, $7 ; pryce
call FillBoxCGB
; clair uses kris's palette
ld a, [wPlayerGender]
and a
push af
jr z, .got_gender3
hlcoord 14, 14, wAttrmap
lb bc, 2, 4
ld a, $1
ld a, $1 ; clair
call FillBoxCGB
; top-right corner still uses the border's palette
ld a, [wPlayerGender]
and a
jr z, .male3
dec a
jr z, .female3
ld a, $6 ; dark magenta for enby
jr .got_gender3
.male3
ld a, $1 ; blue for chris
jr .got_gender3
.female3
ld a, $0 ; red for kris
.got_gender3
pop af
ld c, $0
jr nz, .got_gender4
inc c
.got_gender4
ld a, c
hlcoord 18, 1, wAttrmap
ld [hl], a
call ApplyAttrmap
@ -772,9 +788,15 @@ _CGB_PackPals:
jr z, .tutorial_male
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .tutorial_male
dec a ; FEMALE
jr z, .tutorial_female
ld hl, .EnbyPackPals
jr .got_gender
.tutorial_female
ld hl, .KrisPackPals
jr .got_gender
@ -819,6 +841,9 @@ INCLUDE "gfx/pack/pack.pal"
.KrisPackPals:
INCLUDE "gfx/pack/pack_f.pal"
.EnbyPackPals:
INCLUDE "gfx/pack/pack_nb.pal"
_CGB_Pokepic:
call _CGB_MapPals
ld de, SCREEN_WIDTH

View file

@ -689,6 +689,12 @@ GetPlayerOrMonPalettePointer:
ld a, [wPlayerGender]
and a
jr z, .male
dec a
jr z, .female
ld hl, EnbyPalette
ret
.female
ld hl, KrisPalette
ret
@ -1332,6 +1338,9 @@ INCLUDE "gfx/pokegear/pokegear.pal"
FemalePokegearPals:
INCLUDE "gfx/pokegear/pokegear_f.pal"
EnbyPokegearPals:
INCLUDE "gfx/pokegear/pokegear_nb.pal"
BetaPokerPals:
INCLUDE "gfx/beta_poker/beta_poker.pal"

View file

@ -1,14 +1,14 @@
BetaLoadPlayerTrainerClass: ; unreferenced
ld c, CAL
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
jr z, .got_class
ld c, KAREN ; not KRIS?
.got_class
ld a, c
ld [wTrainerClass], a
ret
;BetaLoadPlayerTrainerClass: ; unreferenced
; ld c, CAL
; ld a, [wPlayerGender]
; bit PLAYERGENDER_FEMALE_F, a
; jr z, .got_class
; ld c, KAREN ; not KRIS?
;.got_class
; ld a, c
; ld [wTrainerClass], a
; ret
;
MovePlayerPicRight:
hlcoord 6, 4
ld de, 1
@ -57,9 +57,12 @@ MovePlayerPic:
ShowPlayerNamingChoices:
ld hl, ChrisNameMenuHeader
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_header
ld hl, KrisNameMenuHeader
dec a ; FEMALE
jr z, .got_header
ld hl, EnbyNameMenuHeader
.got_header
call LoadMenuHeader
call VerticalMenu
@ -71,34 +74,45 @@ ShowPlayerNamingChoices:
INCLUDE "data/player_names.asm"
GetPlayerNameArray: ; unreferenced
ld hl, wPlayerName
ld de, MalePlayerNameArray
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
jr z, .got_array
ld de, FemalePlayerNameArray
.got_array
call InitName
ret
;GetPlayerNameArray: ; unreferenced
; ld hl, wPlayerName
; ld de, MalePlayerNameArray
; ld a, [wPlayerGender]
; bit PLAYERGENDER_FEMALE_F, a
; jr z, .got_array
; ld de, FemalePlayerNameArray
;.got_array
; call InitName
; ret
;
GetPlayerIcon:
ld de, ChrisSpriteGFX
ld b, BANK(ChrisSpriteGFX)
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_gfx
; Female
ld de, KrisSpriteGFX
ld b, BANK(KrisSpriteGFX)
dec a ; FEMALE
jr z, .got_gfx
; Enby
ld de, EnbySpriteGFX
ld b, BANK(EnbySpriteGFX)
.got_gfx
ret
GetCardPic:
ld hl, ChrisCardPic
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_pic
ld hl, KrisCardPic
dec a ; FEMALE
jr z, .got_pic
ld hl, EnbyCardPic
.got_pic
ld de, vTiles2 tile $00
ld bc, $23 tiles
@ -117,14 +131,19 @@ INCBIN "gfx/trainer_card/chris_card.2bpp"
KrisCardPic:
INCBIN "gfx/trainer_card/kris_card.2bpp"
EnbyCardPic:
INCBIN "gfx/trainer_card/enby_card.2bpp"
TrainerCardGFX:
INCBIN "gfx/trainer_card/trainer_card.2bpp"
GetPlayerBackpic:
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, GetChrisBackpic
call GetKrisBackpic
dec a ; FEMALE
jp z, GetKrisBackpic
call GetEnbyBackpic
ret
GetChrisBackpic:
@ -143,9 +162,12 @@ HOF_LoadTrainerFrontpic:
; Get class
ld e, CHRIS
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_class
ld e, KRIS
dec a ; FEMALE
jr z, .got_class
ld e, TOPAZ
.got_class
ld a, e
ld [wTrainerClass], a
@ -153,9 +175,13 @@ HOF_LoadTrainerFrontpic:
; Load pic
ld de, ChrisPic
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_pic
ld de, KrisPic
dec a ; FEMALE
jr z, .got_pic
ld de, EnbyPic
.got_pic
ld hl, vTiles2
ld b, BANK(ChrisPic) ; aka BANK(KrisPic)
@ -173,9 +199,12 @@ DrawIntroPlayerPic:
; Get class
ld e, CHRIS
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_class
ld e, KRIS
dec a ; FEMALE
jr z, .got_class
ld e, TOPAZ
.got_class
ld a, e
ld [wTrainerClass], a
@ -183,9 +212,12 @@ DrawIntroPlayerPic:
; Load pic
ld de, ChrisPic
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_pic
ld de, KrisPic
dec a ; FEMALE
jr z, .got_pic
ld de, EnbyPic
.got_pic
ld hl, vTiles2
ld b, BANK(ChrisPic) ; aka BANK(KrisPic)
@ -206,6 +238,9 @@ INCBIN "gfx/player/chris.2bpp"
KrisPic:
INCBIN "gfx/player/kris.2bpp"
EnbyPic:
INCBIN "gfx/player/enby.2bpp"
GetKrisBackpic:
; Kris's backpic is uncompressed.
ld de, KrisBackpic
@ -216,3 +251,13 @@ GetKrisBackpic:
KrisBackpic:
INCBIN "gfx/player/kris_back.2bpp"
GetEnbyBackpic:
ld de, EnbyBackpic
ld hl, vTiles2 tile $31
lb bc, BANK(EnbyBackpic), 7 * 7 ; dimensions
call Get2bpp
ret
EnbyBackpic:
INCBIN "gfx/player/enby_back.2bpp"

View file

@ -1216,8 +1216,13 @@ DrawPackGFX:
cp BATTLETYPE_TUTORIAL
jr z, .male_dude
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
jr nz, .female
and a ; MALE
jr z, .male_dude
dec a ; FEMALE
jr z, .female
farcall DrawEnbyPackGFX
ret
.male_dude
ld hl, PackGFXPointers
add hl, de

View file

@ -18,3 +18,24 @@ PackFGFXPointers:
PackFGFX:
INCBIN "gfx/pack/pack_f.2bpp"
DrawEnbyPackGFX:
ld hl, PackNBGFXPointers
add hl, de
add hl, de
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, vTiles2 tile $50
lb bc, BANK(PackNBGFX), 15
call Request2bpp
ret
PackNBGFXPointers:
dw PackNBGFX + (15 tiles) * 1 ; ITEM_POCKET
dw PackNBGFX + (15 tiles) * 3 ; BALL_POCKET
dw PackNBGFX + (15 tiles) * 0 ; KEY_ITEM_POCKET
dw PackNBGFX + (15 tiles) * 2 ; TM_HM_POCKET
PackNBGFX:
INCBIN "gfx/pack/pack_nb.2bpp"

View file

@ -42,15 +42,16 @@ InitGender:
.MenuHeader:
db MENU_BACKUP_TILES ; flags
menu_coords 6, 4, 12, 9
menu_coords 6, 3, 12, 10
dw .MenuData
db 1 ; default option
.MenuData:
db STATICMENU_CURSOR | STATICMENU_WRAP | STATICMENU_DISABLE_B ; flags
db 2 ; items
db 3 ; items
db "Boy@"
db "Girl@"
db "Enby@"
AreYouABoyOrAreYouAGirlText:
text_far _AreYouABoyOrAreYouAGirlText

View file

@ -797,17 +797,22 @@ NamePlayer:
ld hl, wPlayerName
ld de, .Chris
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
jr z, .Male
and a ; MALE
jr z, .GotName
ld de, .Kris
.Male:
dec a ; FEMALE
jr z, .GotName
ld de, .Topaz
.GotName:
call InitName
ret
.Chris:
db "CHRIS@@@@@@"
db "ETHAN@@@@@@"
.Kris:
db "KRIS@@@@@@@"
.Topaz:
db "TOPAZ@@@@@@"
GSShowPlayerNamingChoices: ; unreferenced
call LoadMenuHeader
@ -962,10 +967,13 @@ Intro_PlacePlayerSprite:
ld b, PAL_OW_RED
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
jr z, .male
and a ; MALE
jr z, .okay
ld b, PAL_OW_BLUE
.male
dec a ; FEMALE
jr z, .okay
ld b, PAL_OW_PURPLE
.okay
ld a, b
ld [hli], a ; attributes

View file

@ -216,7 +216,16 @@ NamingScreen:
cp LOW(KrisSpriteGFX)
jr nz, .not_kris
ld b, SPRITE_ANIM_INDEX_BLUE_WALK
jr .not_enby
.not_kris
ld a, d
cp HIGH(EnbySpriteGFX)
jr nz, .not_enby
ld a, e
cp LOW(EnbySpriteGFX)
jr nz, .not_enby
ld b, SPRITE_ANIM_INDEX_PURPLE_WALK
.not_enby
ld a, b
depixel 4, 4, 4, 0
call InitSpriteAnimStruct

View file

@ -59,9 +59,12 @@ GetPlayerSprite:
bit PLAYERSPRITESETUP_FEMALE_TO_MALE_F, a
jr nz, .go
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .go
ld hl, KrisStateSprites
dec a ; FEMALE
jr z, .go
ld hl, EnbyStateSprites
.go
ld a, [wPlayerState]

View file

@ -34,9 +34,12 @@ SpawnPlayer:
bit PLAYERSPRITESETUP_FEMALE_TO_MALE_F, a
jr nz, .ok
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .ok
ln e, PAL_NPC_BLUE, OBJECTTYPE_SCRIPT
dec a ; FEMALE
jr z, .ok
ln e, PAL_NPC_PURPLE, OBJECTTYPE_SCRIPT
.ok
ld [hl], e

View file

@ -657,9 +657,12 @@ PokegearMap_InitPlayerIcon:
depixel 0, 0
ld b, SPRITE_ANIM_INDEX_RED_WALK
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_gender
ld b, SPRITE_ANIM_INDEX_BLUE_WALK
dec a ; FEMALE
jr z, .got_gender
ld b, SPRITE_ANIM_INDEX_PURPLE_WALK
.got_gender
ld a, b
call InitSpriteAnimStruct
@ -2537,10 +2540,13 @@ Pokedex_GetArea:
push bc
ld c, PAL_OW_RED
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
jr z, .male
and a ; MALE
jr z, .got_gender
inc c ; PAL_OW_BLUE
.male
dec a ; FEMALE
jr z, .got_gender
ld c, PAL_OW_PURPLE
.got_gender
ld a, c
ld [hli], a ; attributes
pop bc
@ -2750,9 +2756,12 @@ TownMapPlayerIcon:
depixel 0, 0
ld b, SPRITE_ANIM_INDEX_RED_WALK ; Male
ld a, [wPlayerGender]
bit PLAYERGENDER_FEMALE_F, a
and a ; MALE
jr z, .got_gender
ld b, SPRITE_ANIM_INDEX_BLUE_WALK ; Female
dec a ; FEMALE
jr z, .got_gender
ld b, SPRITE_ANIM_INDEX_PURPLE_WALK ; Enby
.got_gender
ld a, b
call InitSpriteAnimStruct

View file

@ -192,9 +192,12 @@ SetBoxmonOrEggmonCaughtData:
.NotPokecenter2F:
call GetWorldMapLocation
ld b, a
ld a, [wPlayerGender]
rrca ; shift bit 0 (PLAYERGENDER_FEMALE_F) to bit 7 (CAUGHT_GENDER_MASK)
or b
ld a, [wPlayerGender] ; Vestigial, get rid of this later.
dec a ; FEMALE
ld a, b
jr nz, .not_female
or CAUGHT_GENDER_MASK
.not_female
ld [hl], a
ret

View file

@ -801,20 +801,20 @@ LoadBluePage:
call CopyNickname
farcall CorrectNickErrors
hlcoord 2, 13
call PlaceString
ld a, [wTempMonCaughtGender]
and a
jr z, .done
cp $7f
jr z, .done
and CAUGHT_GENDER_MASK
ld a, "♂"
jr z, .got_gender
ld a, "♀"
.got_gender
hlcoord 9, 13
ld [hl], a
.done
call PlaceString ; Goodbye OT Gender display, you'd cause more of a problem than you're worth
; ld a, [wTempMonCaughtGender]
; and a
; jr z, .done
; cp $7f
; jr z, .done
; and CAUGHT_GENDER_MASK
; ld a, "♂"
; jr z, .got_gender
; ld a, "♀"
;.got_gender
; hlcoord 9, 13
; ld [hl], a
;.done
ret
.OTNamePointers: