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] ld a, [wCurOpponent]
cp OPP_ID_OFFSET cp OPP_ID_OFFSET
jr c, .wildBattle jr c, .wildBattle
cp OPP_YUJIROU
jr z, .Elite4Battle
cp OPP_LORELEI ; elite four now play the gym leader battle theme cp OPP_LORELEI ; elite four now play the gym leader battle theme
jr z, .Elite4Battle jr z, .Elite4Battle
cp OPP_BRUNO cp OPP_BRUNO

View file

@ -89,7 +89,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
mapconst BIKE_SHOP, 4, 4 ; $43 mapconst BIKE_SHOP, 4, 4 ; $43
mapconst CERULEAN_MART, 4, 4 ; $44 mapconst CERULEAN_MART, 4, 4 ; $44
mapconst MT_MOON_POKECENTER, 4, 7 ; $45 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 ROUTE_5_GATE, 3, 4 ; $47
mapconst UNDERGROUND_PATH_ROUTE_5, 4, 4 ; $48 mapconst UNDERGROUND_PATH_ROUTE_5, 4, 4 ; $48
mapconst DAYCARE, 4, 4 ; $49 mapconst DAYCARE, 4, 4 ; $49

View file

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

View file

@ -27,7 +27,7 @@ ENDM
trainer_const BIKER ; $0A trainer_const BIKER ; $0A
trainer_const BURGLAR ; $0B trainer_const BURGLAR ; $0B
trainer_const ENGINEER ; $0C trainer_const ENGINEER ; $0C
trainer_const UNUSED_JUGGLER ; $0D trainer_const YUJIROU ; $0D, was unused juggler
trainer_const FISHER ; $0E trainer_const FISHER ; $0E
trainer_const SWIMMER ; $0F trainer_const SWIMMER ; $0F
trainer_const CUE_BALL ; $10 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(BikeShop_h)
db BANK(CeruleanMart_h) db BANK(CeruleanMart_h)
db BANK(MtMoonPokecenter_h) db BANK(MtMoonPokecenter_h)
db BANK(CeruleanTrashedHouse_h) db BANK(ViridianPreGym_h) ; was db BANK(CeruleanTrashedHouse_h)
db BANK(Route5Gate_h) db BANK(Route5Gate_h)
db BANK(UndergroundPathRoute5_h) db BANK(UndergroundPathRoute5_h)
db BANK(Daycare_h) db BANK(Daycare_h)

View file

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

View file

@ -8,6 +8,7 @@ ViridianCity_Object:
warp_event 21, 9, VIRIDIAN_NICKNAME_HOUSE, 1 warp_event 21, 9, VIRIDIAN_NICKNAME_HOUSE, 1
warp_event 32, 7, VIRIDIAN_GYM, 1 warp_event 32, 7, VIRIDIAN_GYM, 1
warp_event 32, 3, ROCKET_HIDEOUT_B1F, 2 warp_event 32, 3, ROCKET_HIDEOUT_B1F, 2
warp_event 12, 15, VIRIDIAN_PRE_GYM, 1
def_bg_events def_bg_events
bg_event 17, 17, 8 ; ViridianCityText8 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_CITIES2, BANK(Music_Cities2) ; BIKE_SHOP
db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_MART db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_MART
db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; MT_MOON_POKECENTER 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) ; ROUTE_5_GATE
db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_5 db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_5
db MUSIC_CITIES1, BANK(Music_Cities1) ; DAYCARE db MUSIC_CITIES1, BANK(Music_Cities1) ; DAYCARE

View file

@ -65,7 +65,7 @@ InternalMapEntries:
internal_map MT_MOON_B2F, 6, 2, MountMoonName internal_map MT_MOON_B2F, 6, 2, MountMoonName
internal_map CERULEAN_MART, 10, 2, CeruleanCityName internal_map CERULEAN_MART, 10, 2, CeruleanCityName
internal_map MT_MOON_POKECENTER, 5, 2, Route4Name 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 DAYCARE, 10, 4, Route5Name
internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name internal_map UNDERGROUND_PATH_ROUTE_6_COPY, 10, 6, Route6Name
internal_map UNDERGROUND_PATH_ROUTE_7_COPY, 9, 5, Route7Name 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, $50, PokemonStuffText
bookshelf_tile LOBBY, $52, PokemonStuffText bookshelf_tile LOBBY, $52, PokemonStuffText
bookshelf_tile SHIP, $36, BookOrSculptureText bookshelf_tile SHIP, $36, BookOrSculptureText
bookshelf_tile PREGYM, $57, PokemonStuffText
db -1 ; end db -1 ; end

View file

@ -68,3 +68,7 @@ Facility_Coll::
Plateau_Coll:: Plateau_Coll::
coll_tiles $1b, $23, $2c, $2d, $3b, $45 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 Club, $07,$17, -1, -1, TILEANIM_NONE
tileset Facility, $12, -1, -1, -1, TILEANIM_WATER tileset Facility, $12, -1, -1, -1, TILEANIM_WATER
tileset Plateau, -1, -1, -1, $45, TILEANIM_WATER tileset Plateau, -1, -1, -1, $45, TILEANIM_WATER
tileset PreGym, $20, -1, -1, -1, TILEANIM_NONE
assert_table_length NUM_TILESETS assert_table_length NUM_TILESETS

View file

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

View file

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

View file

@ -21,7 +21,7 @@ TrainerClassMoveChoiceModifications:
move_choices 1 ; BIKER move_choices 1 ; BIKER
move_choices 1, 3 ; BURGLAR move_choices 1, 3 ; BURGLAR
move_choices 1 ; ENGINEER 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 ; FISHER
move_choices 1, 3 ; SWIMMER move_choices 1, 3 ; SWIMMER
move_choices ; CUE_BALL move_choices ; CUE_BALL

View file

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

View file

@ -11,7 +11,7 @@ TrainerDataPointers:
dw BikerData dw BikerData
dw BurglarData dw BurglarData
dw EngineerData dw EngineerData
dw UnusedJugglerData dw YujirouData ; was unused juggler
dw FisherData dw FisherData
dw SwimmerData dw SwimmerData
dw CueBallData dw CueBallData
@ -322,10 +322,10 @@ EngineerData:
db 21, MAGNEMITE, 0 db 21, MAGNEMITE, 0
db 18, MAGNEMITE, MAGNEMITE, MAGNETITE, 0 db 18, MAGNEMITE, MAGNEMITE, MAGNETITE, 0
UnusedJugglerData: YujirouData: ; was unused juggler
; db $FF, 7, KONYA, 7, EEVEE, 10, LICKITUNG, 0 db $FF, 7, KONYA, 7, EEVEE, 10, LICKITUNG, 0
; post-game rematch team (currently unused) ; 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: FisherData:
; SS Anne 2F Rooms ; SS Anne 2F Rooms

View file

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

BIN
gfx/blocksets/pregym.bst Normal file

Binary file not shown.

View file

@ -544,3 +544,4 @@ ToedscruelPicFront:: INCBIN "gfx/pokemon/front/toedscruel.pic"
ToedscruelPicBack:: INCBIN "gfx/pokemon/back/toedscruelb.pic" ToedscruelPicBack:: INCBIN "gfx/pokemon/back/toedscruelb.pic"
MissingNoPicFront:: INCBIN "gfx/pokemon/front/missingno.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" Club_Block:: INCBIN "gfx/blocksets/club.bst"
Underground_GFX:: INCBIN "gfx/tilesets/underground.2bpp" Underground_GFX:: INCBIN "gfx/tilesets/underground.2bpp"
Underground_Block:: INCBIN "gfx/blocksets/underground.bst" 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

@ -1302,3 +1302,8 @@ INCLUDE "data/maps/headers/BillsGarden.asm"
INCLUDE "scripts/BillsGarden.asm" INCLUDE "scripts/BillsGarden.asm"
INCLUDE "data/maps/objects/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 wPewterCityCurScript:: db
wRoute3CurScript:: db wRoute3CurScript:: db
wRoute4CurScript:: db wRoute4CurScript:: db
ds 1 wViridianPreGymCurScript:: db
wViridianGymCurScript:: db wViridianGymCurScript:: db
wPewterGymCurScript:: db wPewterGymCurScript:: db
wCeruleanGymCurScript:: db wCeruleanGymCurScript:: db

View file

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