Shinjuku Jack, final Mewtwo theme

This renovates the Celadon Mansion Roof House to feature a faithful restoration of Shinjuku Jack. Notes are in the script file.

Also, LuciShrimp's Mewtwo theme is finished!
This commit is contained in:
Llinos Evans 2023-07-16 17:14:43 +01:00
parent 6bd537e8b7
commit 8cd8f1ded0
19 changed files with 1397 additions and 259 deletions

View file

@ -94,6 +94,10 @@ New Areas
- This area also houses Hisuian Arcanine and Electrode, the idea being that Bill's Time Machine has brought them back from the truly distant past!
- Silph Co. holds a special challenge for Pokemon League Champions...
New Music
====
- Mewtwo has its own theme song, being a demake of the iconic Stadium battle theme. Composed by LuciShrimp.
Improved Areas
====
- Some barriers to travel across the region have been removed (for example, Pewter City can be left without defeating Brock) allowing for slightly more open world gameplay. Not all, though!
@ -109,6 +113,7 @@ Improved Areas
- Route 25 has been given a facelift, adding Bill's Lighthouse in place of the Sea Cottage.
- Vermilion City now features Officer Jenny with the Squirtle. She only appears if Pikachu or Eevee are chosen.
- Rock Tunnel has a more workable map, now being easier to go through and having new areas to explore. Includes a way to get renewable fossils, items, and other interesting bits and pieces. Overall, it makes Flash much more rewarding to bring, showing you where the items and content are instead of being an inconvenience.
- Celadon Mansion's Roof House now features Shinjuku Jacky, a cut representation of a famous Virtua Fighter player. The house has also been redesigned, derived from the unused "Grandpa's House", featuring Nintendo 64s.
- Pokemon Tower was shortened, being less intensive and adding room for more maps.
- Fuchsia City has been made to resemble the more walkable LGPE version, removing the Cut trees among other things.
- The Fighting Dojo has been revamped, featuring a design reminiscent of the prototype versions; rough floors, the elder in the back, and more. Additionally, you can now get a Hitmontop as a third option. The Karate Master is also now treated somewhat more like a Gym Leader, having Gym Scaling and a Rematch system.

View file

@ -12,7 +12,9 @@
const EVENT_FUCK ; If you trigger this you're a psychopath. Used for mom and oak post-game scenes.
const EVENT_RECEIVED_CITRINE_PASS
const EVENT_BEAT_OAK_ONCE
const_skip 13
const EVENT_BEAT_JACKY
const EVENT_GOT_MANSION_GIFT
const_skip 11
const EVENT_GOT_TOWN_MAP
const EVENT_ENTERED_BLUES_HOUSE
const EVENT_DAISY_WALKING

View file

@ -30,4 +30,5 @@
const CELESTE ; 26
const ROCKETHOUSE
const BETAMART
const JACKY
DEF NUM_TILESETS EQU const_value

File diff suppressed because it is too large Load diff

View file

@ -1,2 +1,2 @@
map_header CeladonMansionRoofHouse, CELADON_MANSION_ROOF_HOUSE, HOUSE, 0
map_header CeladonMansionRoofHouse, CELADON_MANSION_ROOF_HOUSE, JACKY, 0
end_map_header

View file

@ -1,14 +1,17 @@
CeladonMansionRoofHouse_Object:
db $a ; border block
db $0 ; border block
def_warp_events
warp_event 2, 7, CELADON_MANSION_ROOF, 3
warp_event 3, 7, CELADON_MANSION_ROOF, 3
warp_event 5, 7, CELADON_MANSION_ROOF, 3
warp_event 6, 7, CELADON_MANSION_ROOF, 3
def_bg_events
bg_event 0, 2, 3 ; N64
bg_event 4, 2, 4 ; Super Mario 64
bg_event 1, 2, 5 ; Wave Race 64
def_object_events
object_event 2, 2, SPRITE_HIKER, STAY, DOWN, 1 ; person
object_event 4, 3, SPRITE_POKE_BALL, STAY, NONE, 2 ; person
object_event 3, 3, SPRITE_ROCKER, STAY, DOWN, 1 ; person
object_event 1, 5, SPRITE_POKE_BALL, STAY, NONE, 2 ; person
def_warps_to CELADON_MANSION_ROOF_HOUSE

View file

@ -81,3 +81,6 @@ RocketHouse_Coll::
BetaMart_Coll::
coll_tiles $01, $11, $1C, $1D, $1E, $1F, $0C, $0D, $0E, $0F, $4D, $4C
Jacky_Coll::
coll_tiles $01, $40, $11, $04, $14, $02, $03, $13, $12,

View file

@ -38,4 +38,5 @@ Tilesets:
tileset Celeste, -1, -1, -1, $18, TILEANIM_WATER
tileset RocketHouse, $0A, -1, -1, -1, TILEANIM_NONE
tileset BetaMart, $18, -1, -1, -1, TILEANIM_NONE
tileset Jacky, -1, -1, -1, -1, TILEANIM_NONE
assert_table_length NUM_TILESETS

View file

@ -29,6 +29,7 @@ WarpTileIDPointers:
dw .CelesteWarpTileIDs
dw .RocketHouseWarpTileIDs
dw .BetaMartWarpTileIDs
dw .JackyWarpTileIDs
assert_table_length NUM_TILESETS
MACRO warp_tiles
@ -110,6 +111,9 @@ ENDM
.BetaMartWarpTileIDs:
warp_tiles $1C, $1D, $1E, $1F, $0C, $0D, $0E, $0F, $4B, $4C
.JackyWarpTileIDs:
warp_tiles $04, $14
.ShipPortWarpTileIDs:
.ClubWarpTileIDs:
warp_tiles ; end

View file

@ -50,6 +50,6 @@ TrainerNames::
li "STUDENT"
li "FIREFIGHTER"
li "JUNIOR"
li "JACK"
li "JACKY" ; Often called Jack, but the only source for that is the file names themselves, which are oft shortened or literal japanese translations; all other context is "Shinjuku Jacky".
li "JESSIE&JAMES"
assert_list_length NUM_TRAINERS

View file

@ -743,8 +743,10 @@ JuniorData:
db 63, BLASTOISE, OMASTAR, SANDSLASH, KINGDRA, GUARDIA, POLIWRATH, 0 ; no idea what to do with this guy's team, so I'll redo this later
JackData:
; Celadon University Roof House
db 23, MANKEY, MACHOP, SCYTHER, HITMONCHAN, 0 ; Scyther is Kage-Maru.
; Silph Gauntlet 7F (Chief's Office)
db 70, ANIMON, PURAKKUSU, HITMONLEE, PORYGON2, HITMONCHAN, SCIZOR, 0 ; not 100% sure what to do with this guy...
; db 70, ANIMON, ANNIHILAPE, HITMONLEE, PORYGON2, HITMONCHAN, SCIZOR, 0 ; not 100% sure what to do with this guy...
JessieJamesData:
db 14, MEOWTH, EKANS, KOFFING, 0 ; Mt. Moon

BIN
gfx/blocksets/jacky.bst Normal file

Binary file not shown.

View file

@ -77,4 +77,8 @@ BetaMart_GFX:: INCBIN "gfx/tilesets/betamart.2bpp"
BetaMart_Block:: INCBIN "gfx/blocksets/betamart.bst"
House_GFX:: INCBIN "gfx/tilesets/house.2bpp"
House_Block:: INCBIN "gfx/blocksets/house.bst"
House_Block:: INCBIN "gfx/blocksets/house.bst"
SECTION "Tilesets 5", ROMX
Jacky_GFX:: INCBIN "gfx/tilesets/jacky.2bpp"
Jacky_Block:: INCBIN "gfx/blocksets/jacky.bst"

BIN
gfx/tilesets/jacky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -98,7 +98,6 @@ PewterNidoranHouse_Blocks:
PewterSpeechHouse_Blocks:
ViridianNicknameHouse_Blocks: INCBIN "maps/ViridianNicknameHouse.blk"
CeladonMansionRoofHouse_Blocks:
ViridianSchoolHouse_Blocks: INCBIN "maps/ViridianSchoolHouse.blk"
CeruleanTrashedHouse_Blocks: INCBIN "maps/CeruleanTrashedHouse.blk"
@ -173,10 +172,6 @@ INCLUDE "scripts/VermilionDock.asm"
INCLUDE "data/maps/objects/VermilionDock.asm"
VermilionDock_Blocks: INCBIN "maps/VermilionDock.blk"
INCLUDE "data/maps/headers/CeladonMansionRoofHouse.asm"
INCLUDE "scripts/CeladonMansionRoofHouse.asm"
INCLUDE "data/maps/objects/CeladonMansionRoofHouse.asm"
INCLUDE "data/maps/headers/FuchsiaMart.asm"
INCLUDE "scripts/FuchsiaMart.asm"
INCLUDE "data/maps/objects/FuchsiaMart.asm"
@ -1401,3 +1396,8 @@ INCLUDE "data/maps/headers/BrunswickGlade.asm"
INCLUDE "scripts/BrunswickGlade.asm"
INCLUDE "data/maps/objects/BrunswickGlade.asm"
BrunswickGlade_Blocks: INCBIN "maps/BrunswickGlade.blk"
INCLUDE "data/maps/headers/CeladonMansionRoofHouse.asm"
INCLUDE "scripts/CeladonMansionRoofHouse.asm"
INCLUDE "data/maps/objects/CeladonMansionRoofHouse.asm"
CeladonMansionRoofHouse_Blocks: INCBIN "maps/CeladonMansionRoofHouse.blk"

View file

@ -1 +1,2 @@
  

  

View file

@ -1992,7 +1992,7 @@ wCitrineRocketHouseCurScript:: db
wBluesHouseCurScript:: db
wViridianCityCurScript:: db
wRedsHouse1FCurScript:: db
ds 1
wCeladonMansionRoofHouseCurScript:: db
wPewterCityCurScript:: db
wRoute3CurScript:: db
wRoute4CurScript:: db

View file

@ -1,16 +1,109 @@
; The Hiker in the Roof House is now Shinjuku Jacky. He was a famous Virtua Fighter player and the source of the famous "Jack" sprite.
; Shinjuku Jack wrote the book "Virtua Fighter Maniax", the first to feature frame data for Virtua Fighter 1 and thus a very notable resource.
; At the time, many Virtua Fighter players had "geographical names", representing their residences. Shinjuku is notably within Tokyo, near to Shibuya.
; Because Celadon City is based on Tokyo Metropolis, specifically Shinjuku and Shibuya, and there's a map called JISAN.MAP that featured N64s, I'm placing Jacky here.
; This also means you actually have to beat a trainer to get the Eevee/Pikachu, so you have to work for that massive power spike.
; It's a lot, but I hope this is the best restoration Jacky can receive.
CeladonMansionRoofHouse_Script:
jp EnableAutoTextBoxDrawing
call EnableAutoTextBoxDrawing
ld hl, CeladonMansionRoofHouse_ScriptPointers
ld a, [wCeladonMansionRoofHouseCurScript]
jp CallFunctionInTable
CeladonMansionRoofHouse_ScriptPointers:
dw TheRetONator
dw JackyBeat
JackyBeat:
SetEvent EVENT_BEAT_JACKY
ld a, EEVEE ; Getting the Pokemon the player needs before printing the text
ld a, [wPlayerStarter] ; Load the player's starter after Eevee loads.
cp EEVEE ; Was your starter Eevee?
jr nz, .skip ; If not, skip this.
ld a, PIKACHU ; Load in Pikachu if true
.skip
ld [wd11e], a
call GetMonName
ld a, $1 ; Load Jacky's NPC ID
ldh [hSpriteIndex], a ; Slap it in the index
call DisplayTextID
ld a, $0
ld [wCeladonMansionRoofHouseCurScript], a ; kick the player back downstairs
TheRetONator: ; fallthrough
ret
CeladonMansionRoofHouse_TextPointers:
dw CeladonMansion5Text1
dw CeladonMansion5Text2
dw JackyN64
dw JackyTVMario
dw JackyTVWaveRace
CeladonMansion5Text1:
text_far _CeladonMansion5Text1
text_end
text_asm
CheckEvent EVENT_GOT_MANSION_GIFT
jr nz, .gotGift
CheckEvent EVENT_BEAT_JACKY
jr nz, .skip
ld hl, JackyText1
call PrintText
ld a, [wSimulatedJoypadStatesEnd] ; ensuring that the text doesn't autoskip.
and a ; yep, here too.
call z, WaitForTextScrollButtonPress ; and here.
call EnableAutoTextBoxDrawing ; and here. annoying.
call YesNoChoice ; Do they want in?
ld a, [wCurrentMenuItem]
and a
jr nz, .refused
ld hl, JackyYes
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_JACK
ld [wCurOpponent], a
ld a, 1
ld [wTrainerNo], a
ld [wIsTrainerBattle], a
ld hl, JackyLossText
ld de, JackyWinText
call SaveEndBattleTextPointers
ld a, $1
ld [wCeladonMansionRoofHouseCurScript], a
jr .done
.gotGift
ld hl, JackyGift
call PrintText
jr .done
.skip
ld hl, JackyPostBeatText
call PrintText
jr .done
.refused
ld hl, JackyNo
call PrintText
; fallthrough
.done
jp TextScriptEnd
CeladonMansion5Text2:
text_asm
CheckEvent EVENT_BEAT_JACKY
jr z, .notBeatenJacky
lb bc, EEVEE, 25
; Because Eevee is a starter, we don't want it to be rendered redundant by this.
@ -28,5 +121,60 @@ CeladonMansion5Text2:
ld a, HS_CELADON_MANSION_EEVEE_GIFT
ld [wMissableObjectIndex], a
predef HideObject
SetEvent EVENT_GOT_MANSION_GIFT
jr .party_full
.notBeatenJacky
ld hl, JackyThief
call PrintText
; fallthrough
.party_full
jp TextScriptEnd
JackyText1:
text_far _CeladonMansion5Text1
text_end
; Unused functionality for a rematch, didn't seem worth it
;JackyPreBeatText:
; text_far _JackyPreBeatText
; text_end
JackyPostBeatText:
text_far _JackyAfterBattle ; using this for now, a rematch for the sake of a rematch seems iffy.
text_end
JackyYes:
text_far _JackyYes
text_end
JackyNo:
text_far _JackyNo
text_end
JackyWinText:
text_far _JackyWinText
text_end
JackyLossText:
text_far _JackyLossText
text_end
JackyThief:
text_far _JackyThief
text_end
JackyTVMario:
text_far _JackyTVMario
text_end
JackyTVWaveRace:
text_far _JackyTVWaveRace
text_end
JackyN64:
text_far _JackyN64
text_end
JackyGift:
text_far _JackyGift
text_end

View file

@ -1,10 +1,99 @@
_CeladonMansion5Text1::
text "I know everything"
line "about the world"
cont "of #MON in"
cont "your GAME BOY!"
text "I am SHINJUKU"
line "JACKY!"
para "Get together with"
line "your friends and"
cont "trade #MON!"
para "I know everything"
line "about the world"
cont "of #MON!"
para "Hm? You think you" ; if making rematches, use this for prebeat
line "can take me?"
done
; Unused for now. Doesn't make much sense.
_JackyPostBeatText::
text "Wanna fight again?"
line "I'm out of your"
cont "league!"
prompt
_JackyYes::
text "Let's see if you"
line "can walk the"
cont "walk! Come on!"
done
_JackyNo::
text "Maybe another"
line "time..."
done
_JackyWinText::
text "I'm"
line "faster than"
cont "lightning!"
prompt
_JackyLossText::
text "I can't"
line "believe I lost!"
prompt
_JackyThief::
text "Hey, what do you"
line "think you're"
cont "doing?!"
done
_JackyAfterBattle::
text "It was like you"
line "were fighting in"
cont "slow motion..."
para "Ok! I will give"
line "you a #MON"
cont "to help you on"
cont "your quest!"
para "Over there is a"
line "@"
text_ram wcd6d
text "!"
para "Go, go, take it!"
; para "I look forward"
; line "to our next bout!"
done
_JackyGift::
text_ram wcd6d
text " has"
line "incredibly good"
cont "evolutionary"
cont "potential!"
para "It will help"
line "you greatly in"
cont "your next bout!"
done
_JackyN64::
text "It's a NINTENDO"
line "64! The latest"
cont "game console!"
done
_JackyTVMario::
text "A plumber is"
line "jumping around"
cont "in 3D! Wow!"
done
_JackyTVWaveRace::
text "Some guys in"
line "helmets are"
cont "racing on the"
cont "waves!"
done