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"
This commit is contained in:
Zeta_Null 2025-01-07 02:17:30 -05:00
parent 9707c2d7cb
commit 6726f5fec1
31 changed files with 256 additions and 63 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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]