Merge pull request #48 from ZetaNull/enby-maybe
Add Enby Player Option (Pink)
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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  | 
							
								
								
									
										
											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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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::
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||