Groundwork for Viridian Pre-Gym

This map is fully functional but has a lot of bits to iron out, as well as a need for Gym Trainers. I'm also not wholly satisfied with Yujirou's team; maybe remove Eevee?

Yes, I designed an entire tileset for this. Fear me. Bow before me. Actually, don't, this was beyond rational thought.

Current issues;
- Yujirou's sprite doesn't work properly.
- Needs Gym Trainers (hell)
- Yujirou needs an event for being beaten, the refight, and more.
This commit is contained in:
May Evans 2023-03-30 02:12:45 +01:00
parent 57d79f43ed
commit 71de0f07a5
31 changed files with 165 additions and 25 deletions

View file

@ -16,6 +16,8 @@ PlayBattleMusic::
ld a, [wCurOpponent]
cp OPP_ID_OFFSET
jr c, .wildBattle
cp OPP_YUJIROU
jr z, .Elite4Battle
cp OPP_LORELEI ; elite four now play the gym leader battle theme
jr z, .Elite4Battle
cp OPP_BRUNO

View file

@ -89,7 +89,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
mapconst BIKE_SHOP, 4, 4 ; $43
mapconst CERULEAN_MART, 4, 4 ; $44
mapconst MT_MOON_POKECENTER, 4, 7 ; $45
mapconst CERULEAN_TRASHED_HOUSE_COPY, 4, 4 ; $46 - Unused
mapconst VIRIDIAN_PRE_GYM, 7, 5 ; $46 - was CERULEAN_TRASHED_HOUSE_COPY
mapconst ROUTE_5_GATE, 3, 4 ; $47
mapconst UNDERGROUND_PATH_ROUTE_5, 4, 4 ; $48
mapconst DAYCARE, 4, 4 ; $49

View file

@ -25,4 +25,5 @@
const CLUB ; 21
const FACILITY ; 22
const PLATEAU ; 23
const PREGYM ; 24
DEF NUM_TILESETS EQU const_value

View file

@ -27,7 +27,7 @@ ENDM
trainer_const BIKER ; $0A
trainer_const BURGLAR ; $0B
trainer_const ENGINEER ; $0C
trainer_const UNUSED_JUGGLER ; $0D
trainer_const YUJIROU ; $0D, was unused juggler
trainer_const FISHER ; $0E
trainer_const SWIMMER ; $0F
trainer_const CUE_BALL ; $10

View file

@ -0,0 +1,2 @@
map_header ViridianPreGym, VIRIDIAN_PRE_GYM, PREGYM, 0
end_map_header

View file

@ -71,7 +71,7 @@ MapHeaderBanks::
db BANK(BikeShop_h)
db BANK(CeruleanMart_h)
db BANK(MtMoonPokecenter_h)
db BANK(CeruleanTrashedHouse_h)
db BANK(ViridianPreGym_h) ; was db BANK(CeruleanTrashedHouse_h)
db BANK(Route5Gate_h)
db BANK(UndergroundPathRoute5_h)
db BANK(Daycare_h)

View file

@ -71,7 +71,7 @@ MapHeaderPointers::
dw BikeShop_h
dw CeruleanMart_h
dw MtMoonPokecenter_h
dw CeruleanTrashedHouse_h ; CERULEAN_TRASHED_HOUSE_COPY
dw ViridianPreGym_h ; CERULEAN_TRASHED_HOUSE_COPY, CeruleanTrashedHouse_h
dw Route5Gate_h
dw UndergroundPathRoute5_h
dw Daycare_h

View file

@ -8,6 +8,7 @@ ViridianCity_Object:
warp_event 21, 9, VIRIDIAN_NICKNAME_HOUSE, 1
warp_event 32, 7, VIRIDIAN_GYM, 1
warp_event 32, 3, ROCKET_HIDEOUT_B1F, 2
warp_event 12, 15, VIRIDIAN_PRE_GYM, 1
def_bg_events
bg_event 17, 17, 8 ; ViridianCityText8

View file

@ -0,0 +1,13 @@
ViridianPreGym_Object:
db $0 ; border block
def_warp_events
warp_event 5, 13, 7, VIRIDIAN_CITY
warp_event 4, 13, 7, VIRIDIAN_CITY
def_bg_events
def_object_events
object_event 5, 2, SPRITE_YOUNGSTER, STAY, NONE, 1 ; person, Yujirou
def_warps_to VIRIDIAN_PRE_GYM

View file

@ -70,7 +70,7 @@ MapSongBanks::
db MUSIC_CITIES2, BANK(Music_Cities2) ; BIKE_SHOP
db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_MART
db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; MT_MOON_POKECENTER
db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; CERULEAN_TRASHED_HOUSE_COPY
db MUSIC_GYM, BANK(Music_Gym) ; VIRIDIAN_PRE_GYM, was CERULEAN_TRASHED_HOUSE_COPY
db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_5_GATE
db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_5
db MUSIC_CITIES1, BANK(Music_Cities1) ; DAYCARE

View file

@ -65,7 +65,7 @@ InternalMapEntries:
internal_map MT_MOON_B2F, 6, 2, MountMoonName
internal_map CERULEAN_MART, 10, 2, CeruleanCityName
internal_map MT_MOON_POKECENTER, 5, 2, Route4Name
internal_map CERULEAN_TRASHED_HOUSE_COPY, 10, 2, CeruleanCityName
internal_map VIRIDIAN_PRE_GYM, 10, 2, ViridianCityName
internal_map DAYCARE, 10, 4, Route5Name
internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name
internal_map UNDERGROUND_PATH_ROUTE_7_COPY, 9, 5, Route7Name

View file

@ -22,4 +22,5 @@ BookshelfTileIDs:
bookshelf_tile LOBBY, $50, PokemonStuffText
bookshelf_tile LOBBY, $52, PokemonStuffText
bookshelf_tile SHIP, $36, BookOrSculptureText
bookshelf_tile PREGYM, $57, PokemonStuffText
db -1 ; end

View file

@ -68,3 +68,7 @@ Facility_Coll::
Plateau_Coll::
coll_tiles $1b, $23, $2c, $2d, $3b, $45
PreGym_Coll::
coll_tiles $0B, $0E, $1E, $1F
;coll_tiles $01, $06, $12, $13, $17, $19, $0A, $1A, $3E, $3F, $0F, $1D, $1C, $0C, $0D, $2A, $2B, $3A, $3B

View file

@ -33,4 +33,5 @@ Tilesets:
tileset Club, $07,$17, -1, -1, TILEANIM_NONE
tileset Facility, $12, -1, -1, -1, TILEANIM_WATER
tileset Plateau, -1, -1, -1, $45, TILEANIM_WATER
tileset PreGym, $20, -1, -1, -1, TILEANIM_NONE
assert_table_length NUM_TILESETS

View file

@ -24,6 +24,7 @@ WarpTileIDPointers:
dw .ClubWarpTileIDs
dw .FacilityWarpTileIDs
dw .PlateauWarpTileIDs
dw .PreGymWarpTileIDs
assert_table_length NUM_TILESETS
MACRO warp_tiles
@ -91,4 +92,8 @@ ENDM
; fallthrough
.ShipPortWarpTileIDs:
.ClubWarpTileIDs:
.PreGymWarpTileIDs:
warp_tiles $23
warp_tiles ; end

View file

@ -6,7 +6,7 @@ FemaleTrainerList::
db -1 ; end
EvilTrainerList::
db OPP_UNUSED_JUGGLER
;db OPP_UNUSED_JUGGLER
db OPP_GAMBLER
db OPP_ROCKER
db OPP_JUGGLER

View file

@ -21,7 +21,7 @@ TrainerClassMoveChoiceModifications:
move_choices 1 ; BIKER
move_choices 1, 3 ; BURGLAR
move_choices 1 ; ENGINEER
move_choices 1, 2 ; UNUSED_JUGGLER
move_choices 1, 3, ; UNUSED_JUGGLER
move_choices 1, 3 ; FISHER
move_choices 1, 3 ; SWIMMER
move_choices ; CUE_BALL

View file

@ -11,7 +11,7 @@ TrainerNames::
db "BIKER@"
db "BURGLAR@"
db "ENGINEER@"
db "JUGGLER@"
db "YUJIROU@"
db "FISHERMAN@"
db "SWIMMER@"
db "CUE BALL@"

View file

@ -11,7 +11,7 @@ TrainerDataPointers:
dw BikerData
dw BurglarData
dw EngineerData
dw UnusedJugglerData
dw YujirouData ; was unused juggler
dw FisherData
dw SwimmerData
dw CueBallData
@ -322,10 +322,10 @@ EngineerData:
db 21, MAGNEMITE, 0
db 18, MAGNEMITE, MAGNEMITE, MAGNETITE, 0
UnusedJugglerData:
; db $FF, 7, KONYA, 7, EEVEE, 10, LICKITUNG, 0
YujirouData: ; was unused juggler
db $FF, 7, KONYA, 7, EEVEE, 10, LICKITUNG, 0
; post-game rematch team (currently unused)
; db $FF, 66, PERSIAN, 67, TAUROS, 67, MADAAMU, 66, BLISSEY, 67, SNORLAX, 70, LICKILICKY, 0
db $FF, 66, PERSIAN, 67, TAUROS, 67, MADAAMU, 66, BLISSEY, 67, SNORLAX, 70, LICKILICKY, 0
FisherData:
; SS Anne 2F Rooms

View file

@ -19,7 +19,7 @@ TrainerPicAndMoneyPointers::
pic_money BikerPic, 2000
pic_money BurglarPic, 9000
pic_money EngineerPic, 5000
pic_money JugglerPic, 3500
pic_money YujirouPic, 9900 ; was unused juggler
pic_money FisherPic, 3500
pic_money SwimmerPic, 500
pic_money CueBallPic, 2500

BIN
gfx/blocksets/pregym.bst Normal file

Binary file not shown.

View file

@ -543,4 +543,5 @@ ToedscoolPicBack:: INCBIN "gfx/pokemon/back/toedscoolb.pic"
ToedscruelPicFront:: INCBIN "gfx/pokemon/front/toedscruel.pic"
ToedscruelPicBack:: INCBIN "gfx/pokemon/back/toedscruelb.pic"
MissingNoPicFront:: INCBIN "gfx/pokemon/front/missingno.pic"
MissingNoPicBack:: INCBIN "gfx/pokemon/back/missingnob.pic"
MissingNoPicBack:: INCBIN "gfx/pokemon/back/missingnob.pic"
YujirouPic:: INCBIN "gfx/trainers/yujirou.pic"

View file

@ -61,3 +61,7 @@ Club_GFX:: INCBIN "gfx/tilesets/club.2bpp"
Club_Block:: INCBIN "gfx/blocksets/club.bst"
Underground_GFX:: INCBIN "gfx/tilesets/underground.2bpp"
Underground_Block:: INCBIN "gfx/blocksets/underground.bst"
SECTION "Tilesets 4", ROMX
PreGym_GFX:: INCBIN "gfx/tilesets/pregym.2bpp"
PreGym_Block:: INCBIN "gfx/blocksets/pregym.bst"

BIN
gfx/tilesets/pregym.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,017 B

View file

@ -1301,4 +1301,9 @@ MtMoonCrater_Blocks: INCBIN "maps/MtMoonCrater.blk"
INCLUDE "data/maps/headers/BillsGarden.asm"
INCLUDE "scripts/BillsGarden.asm"
INCLUDE "data/maps/objects/BillsGarden.asm"
BillsGarden_Blocks: INCBIN "maps/BillsGarden.blk"
BillsGarden_Blocks: INCBIN "maps/BillsGarden.blk"
INCLUDE "data/maps/headers/ViridianPreGym.asm"
INCLUDE "scripts/ViridianPreGym.asm"
INCLUDE "data/maps/objects/ViridianPreGym.asm"
ViridianPreGym_Blocks: INCBIN "maps/ViridianPreGym.blk"

2
maps/ViridianPreGym.blk Normal file
View file

@ -0,0 +1,2 @@
 '%  
 "#!

View file

@ -1946,7 +1946,7 @@ wViridianCityCurScript:: db
wPewterCityCurScript:: db
wRoute3CurScript:: db
wRoute4CurScript:: db
ds 1
wViridianPreGymCurScript:: db
wViridianGymCurScript:: db
wPewterGymCurScript:: db
wCeruleanGymCurScript:: db

View file

@ -1,16 +1,15 @@
Exception: STATUS_ACCESS_VIOLATION at rip=00100401246
rax=FFFFFFF7FFF914E1 rbx=000000000000748F rcx=0000000800000010
rdx=0000000000000000 rsi=000000080006C8E5 rdi=0000000000000000
r8 =00000000FFFFC744 r9 =0000000000000000 r10=0000000100000000
r11=0000000100401282 r12=000000080006EB20 r13=0000000100403148
rax=FFFFFFF7FFF97021 rbx=00000000000006AD rcx=0000000800000010
rdx=0000000000000000 rsi=000000080005895E rdi=0000000000000000
r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000
r11=0000000100401282 r12=0000000800068FE0 r13=0000000100403148
r14=0000000000000000 r15=0000000000000001
rbp=0000000100403156 rsp=00000000FFFFC9E0
program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 1525, thread main
rbp=0000000100403156 rsp=00000000FFFFCA60
program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 1123, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame Function Args
00100403156 00100401246 (0080006C8E5, 00000000022, 00100403166, 00100403148)
00100403156 00100401409 (0080005A4A8, 00000000022, 00100403166, 000FFFFCB90)
00100403156 00100401246 (0080005895E, 00000000022, 00100403166, 000FFFFCB90)
00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000)
00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70)
000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000)

View file

@ -0,0 +1,59 @@
ViridianPreGym_Script:
call EnableAutoTextBoxDrawing
ld de, ViridianPreGym_ScriptPointers
ld a, [wViridianPreGymCurScript]
ret
ViridianPreGym_ScriptPointers:
dw EndTrainerBattle
ViridianPreGym_TextPointers:
dw YujirouText
YujirouText:
text_asm
ld hl, YujirouIntro
call PrintText
ld c, BANK(Music_MeetMaleTrainer)
ld a, MUSIC_MEET_MALE_TRAINER
call PlayMusic
ld hl, wd72d
set 6, [hl]
set 7, [hl]
call Delay3
ld a, OPP_YUJIROU
ld [wCurOpponent], a
ld a, 1
ld [wTrainerNo], a
ld [wIsTrainerBattle], a ; note to self - make him play gym music...somehow.
ld a, $2
ld [wViridianPreGymCurScript], a
ld hl, YujirouLoseText
ld de, YujirouWinText
call SaveEndBattleTextPointers
jp TextScriptEnd
jr .done
.done
ld hl, YujirouAfterBattleText
call PrintText
jp TextScriptEnd
YujirouIntro::
text_far _YujirouIntro
text_end
YujirouLoseText::
text_far _YujirouLoseText
text_end
YujirouWinText::
text_far _YujirouWinText
text_end
YujirouAfterBattleText::
text_far _YujirouAfterBattleText
text_end
text_end ; unused

View file

@ -277,6 +277,7 @@ INCLUDE "text/CeladonUniversityPokecenter.asm"
INCLUDE "text/CinnabarVolcano.asm"
INCLUDE "text/FarawayIslandOutside.asm"
INCLUDE "text/PokemonMansionB2F.asm"
INCLUDE "text/ViridianPreGym.asm"
SECTION "Pokédex Text", ROMX

39
text/ViridianPreGym.asm Normal file
View file

@ -0,0 +1,39 @@
_YujirouIntro::
text "Hey! I'm YUJIROU,"
line "VIRIDIAN's LEADER-"
cont "to-be!"
para "Me and LICKITUNG"
line "will beat anyone"
cont "who comes our"
cont "way!"
para "Think you can take"
line "us? I'll show you!"
done
_YujirouLoseText::
text "Huh?!"
line "I lost?!"
prompt
_YujirouWinText::
text "Ha!"
line "Small fry!"
prompt
_YujirouAfterBattleText::
text "I lost..."
para "..."
para "I won't give up!"
line "Me and LICKITUNG"
cont "will train until"
cont "become the best"
cont "there is!"
para "One day, we will"
line "beat you!"
done