Fix Giovanni's Room + bits and bobs

- Fixed the Arrow Tiles, it was very silly.
- Edited the text in Giovanni's Room to fix a gap, but also ended up adding citations and stuff to the file for the interested.
- Edited the map in Giovanni's Room to make a little more sense.
- Fixed some post-game Hall of Fame setup stuff.
- Edited Install.MD to be more idiot-proof
This commit is contained in:
Llinos Evans 2023-09-20 01:24:35 +01:00
parent 9d935a59a1
commit c0bf3ff49d
9 changed files with 73 additions and 57 deletions

View file

@ -1,3 +1,13 @@
# NOTICE
This file comes with base pokered. To install KEP, use https://github.com/PlagueVonKarma/kep-hack whenever the link to the pokered repository comes up.
Also, **PLEASE** read this carefully. 99.9% of the install issues you will face will come from not reading this properly. Follow it to the letter, just with the above considered.
Should issues persist, I cannot give much support other than directing you to [pret's Discord](https://discord.gg/hu55wwjdAT). Please be kind and respectful to them, and ask detailed questions. Don't just post the error log, so on, so forth.
~ Plague von Karma.
# Instructions # Instructions
These instructions explain how to set up the tools required to build **pokered**, including [**rgbds**](https://github.com/gbdev/rgbds), which assembles the source files into a ROM. These instructions explain how to set up the tools required to build **pokered**, including [**rgbds**](https://github.com/gbdev/rgbds), which assembles the source files into a ROM.

View file

@ -3,7 +3,7 @@ GiovannisRoom_Object:
def_warp_events def_warp_events
warp_event 5, 4, VIRIDIAN_GYM, 3 warp_event 5, 4, VIRIDIAN_GYM, 3
warp_event 17, 4, VIRIDIAN_CITY, 6 warp_event 15, 4, VIRIDIAN_CITY, 6
def_bg_events def_bg_events
@ -11,8 +11,8 @@ GiovannisRoom_Object:
object_event 4, 22, SPRITE_PAPER, STAY, DOWN, 1 object_event 4, 22, SPRITE_PAPER, STAY, DOWN, 1
object_event 17, 8, SPRITE_PAPER, STAY, RIGHT, 2 object_event 17, 8, SPRITE_PAPER, STAY, RIGHT, 2
object_event 17, 15, SPRITE_PAPER, STAY, DOWN, 3 object_event 17, 15, SPRITE_PAPER, STAY, DOWN, 3
object_event 8, 16, SPRITE_PAPER, STAY, RIGHT, 4 object_event 14, 24, SPRITE_PAPER, STAY, RIGHT, 4
object_event 17, 22, SPRITE_POKE_BALL, STAY, NONE, 5, TM_EARTHQUAKE object_event 16, 4, SPRITE_POKE_BALL, STAY, NONE, 5, TM_EARTHQUAKE
object_event 5, 22, SPRITE_POKE_BALL, STAY, NONE, 6, PROTECTOR object_event 5, 22, SPRITE_POKE_BALL, STAY, NONE, 6, PROTECTOR
def_warps_to GIOVANNIS_ROOM def_warps_to GIOVANNIS_ROOM

View file

@ -8,9 +8,10 @@ RedsHouse2F_Object:
;warp_event 5, 1, ROCKET_HIDEOUT_B4F, 2 ; - Test Giovanni 1 ;warp_event 5, 1, ROCKET_HIDEOUT_B4F, 2 ; - Test Giovanni 1
;warp_event 5, 1, MT_MOON_SQUARE, 1 ; - Test Shop, NPCs, and Crater ;warp_event 5, 1, MT_MOON_SQUARE, 1 ; - Test Shop, NPCs, and Crater
;warp_event 5, 1, CELESTE_HILL, 1 ; - Test GMolt ;warp_event 5, 1, CELESTE_HILL, 1 ; - Test GMolt
warp_event 5, 1, HALL_OF_FAME, 1 ; Test post-game setup ;warp_event 5, 1, HALL_OF_FAME, 1 ; Test post-game setup
;warp_event 5, 1, GARNET_CAVERN_B1F, 1 ; Test GCuno ;warp_event 5, 1, GARNET_CAVERN_B1F, 1 ; Test GCuno
;warp_event 5, 1, FARAWAY_ISLAND_INSIDE, 1 ; Test Mew ;warp_event 5, 1, FARAWAY_ISLAND_INSIDE, 1 ; Test Mew
warp_event 5, 1, GIOVANNIS_ROOM, 1 ; Test spinner tiles
def_bg_events def_bg_events

View file

@ -7,7 +7,7 @@ ViridianCity_Object:
warp_event 21, 15, VIRIDIAN_SCHOOL_HOUSE, 1 warp_event 21, 15, VIRIDIAN_SCHOOL_HOUSE, 1
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, GIOVANNIS_ROOM, 2 warp_event 33, 3, GIOVANNIS_ROOM, 2
warp_event 12, 15, VIRIDIAN_PRE_GYM, 1 warp_event 12, 15, VIRIDIAN_PRE_GYM, 1
def_bg_events def_bg_events

View file

@ -1 +1 @@
............@AABAAAAB..DoFnF..@*+B 55..D F GF..D F ''F..D F 59..D F'..HwEJ55..DF555..D^F*+AAB..DGGqF..S F..HIIJIIIIJ. ............@AABAAAAB..DoF:;F..@+B 55..DwEF GF..DwEF 5'F..DwEF 59..DwEF'..H J55..DF555..DF*+AAB..DGGq^..D SCG5..HIIJ3333J.

View file

@ -2112,7 +2112,8 @@ wRoute23CurScript:: db
wSeafoamIslandsB4FCurScript:: db wSeafoamIslandsB4FCurScript:: db
wRoute18Gate1FCurScript:: db wRoute18Gate1FCurScript:: db
wBattleTentCurScript:: db wBattleTentCurScript:: db
ds 5 wGiovannisRoomCurScript:: db
ds 4
wGameProgressFlagsEnd:: wGameProgressFlagsEnd::
UNION UNION

View file

@ -1,5 +1,10 @@
GiovannisRoom_Script: GiovannisRoom_Script:
jp EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld de, GiovannisRoom_ScriptPointers
ld a, [wGiovannisRoomCurScript]
call ExecuteCurMapScriptInTable
ld [wGiovannisRoomCurScript], a
ret
GiovannisRoom_ScriptPointers: GiovannisRoom_ScriptPointers:
dw GiovannisRoomScript0 dw GiovannisRoomScript0
@ -13,7 +18,7 @@ GiovannisRoomScript0:
ld hl, GiovannisRoomArrowTilePlayerMovement ld hl, GiovannisRoomArrowTilePlayerMovement
call DecodeArrowMovementRLE call DecodeArrowMovementRLE
cp $ff cp $ff
jp z, CheckFightingMapTrainers jr z, .done ; Normally this checks for map trainers, but since there's none, we can remove them.
ld hl, wd736 ld hl, wd736
set 7, [hl] set 7, [hl]
call StartSimulatingJoypadStates call StartSimulatingJoypadStates
@ -21,10 +26,12 @@ GiovannisRoomScript0:
call PlaySound call PlaySound
ld a, $ff ld a, $ff
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld a, $3 ld a, $1
ld [wCurMapScript], a ld [wCurMapScript], a
.done
ret ret
; Some tile movements were removed due to either being unnecessary or ports from Viridian Gym itself.
GiovannisRoomArrowTilePlayerMovement: GiovannisRoomArrowTilePlayerMovement:
map_coord_movement 12, 16, GiovannisRoomArrowMovement1 map_coord_movement 12, 16, GiovannisRoomArrowMovement1
map_coord_movement 14, 15, GiovannisRoomArrowMovement2 map_coord_movement 14, 15, GiovannisRoomArrowMovement2
@ -34,11 +41,8 @@ GiovannisRoomArrowTilePlayerMovement:
map_coord_movement 15, 8, GiovannisRoomArrowMovement7 map_coord_movement 15, 8, GiovannisRoomArrowMovement7
map_coord_movement 12, 9, GiovannisRoomArrowMovement8 map_coord_movement 12, 9, GiovannisRoomArrowMovement8
map_coord_movement 14, 9, GiovannisRoomArrowMovement9 map_coord_movement 14, 9, GiovannisRoomArrowMovement9
map_coord_movement 13, 10, GiovannisRoomArrowMovement10
map_coord_movement 15, 10, GiovannisRoomArrowMovement11 map_coord_movement 15, 10, GiovannisRoomArrowMovement11
map_coord_movement 12, 11, GiovannisRoomArrowMovement12
map_coord_movement 14, 11, GiovannisRoomArrowMovement13 map_coord_movement 14, 11, GiovannisRoomArrowMovement13
map_coord_movement 14, 5, GiovannisRoomArrowMovement14
db -1 ; end db -1 ; end
GiovannisRoomArrowMovement1: GiovannisRoomArrowMovement1:
@ -78,32 +82,18 @@ GiovannisRoomArrowMovement9:
db D_UP, 1 db D_UP, 1
db -1 ; end db -1 ; end
GiovannisRoomArrowMovement10:
db D_RIGHT, 5
db -1 ; end
GiovannisRoomArrowMovement11: GiovannisRoomArrowMovement11:
db D_RIGHT, 3 db D_RIGHT, 3
db -1 ; end db -1 ; end
GiovannisRoomArrowMovement12:
db D_UP, 1
db D_RIGHT, 2
db D_UP, 2
db -1 ; end
GiovannisRoomArrowMovement13: GiovannisRoomArrowMovement13:
db D_UP, 3 db D_UP, 3
db -1 ; end db -1 ; end
GiovannisRoomArrowMovement14:
db D_RIGHT, 4
db -1 ; end
GiovannisRoomScript4: GiovannisRoomScript4:
ld a, [wSimulatedJoypadStatesIndex] ld a, [wSimulatedJoypadStatesIndex]
and a and a
jp nz, LoadSpinnerArrowTiles jr nz, .GiovannisRoomLoadSpinnerArrow
xor a xor a
ld [wJoyIgnore], a ld [wJoyIgnore], a
ld hl, wd736 ld hl, wd736
@ -111,6 +101,8 @@ GiovannisRoomScript4:
ld a, $0 ld a, $0
ld [wCurMapScript], a ld [wCurMapScript], a
ret ret
.GiovannisRoomLoadSpinnerArrow
farjp LoadSpinnerArrowTiles
GiovannisRoom_TextPointers: GiovannisRoom_TextPointers:
dw GiovannisRoomText1 dw GiovannisRoomText1

View file

@ -149,14 +149,14 @@ ResetLegendaryPokemon:
.skipArticuno ; Rinse and repeat. .skipArticuno ; Rinse and repeat.
ld a, DEX_ZAPDOS ld a, DEX_ZAPDOS
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr z, .skipZapdos jr nz, .skipZapdos
ResetEvent EVENT_BEAT_ZAPDOS ResetEvent EVENT_BEAT_ZAPDOS
ld a, HS_ZAPDOS ld a, HS_ZAPDOS
call ShowThis call ShowThis
.skipZapdos .skipZapdos
ld a, DEX_MOLTRES ld a, DEX_MOLTRES
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr z, .skipMoltres jr nz, .skipMoltres
ResetEvent EVENT_BEAT_MOLTRES ResetEvent EVENT_BEAT_MOLTRES
ld a, HS_MOLTRES ld a, HS_MOLTRES
call ShowThis call ShowThis
@ -175,7 +175,7 @@ ResetLegendaryPokemon:
; So, we put this here. ; So, we put this here.
ld a, DEX_MEW ld a, DEX_MEW
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr z, .skipMew jr nz, .skipMew
ResetEvent EVENT_BEAT_MEW ResetEvent EVENT_BEAT_MEW
ld a, HS_MEW ld a, HS_MEW
call ShowThis call ShowThis
@ -184,28 +184,28 @@ ResetLegendaryPokemon:
jp z, .skipGalarianBirdsAndMewtwo ; If you haven't cleared the game yet, you've not met the Galarian Birds. So we may as well skip processing all this. jp z, .skipGalarianBirdsAndMewtwo ; If you haven't cleared the game yet, you've not met the Galarian Birds. So we may as well skip processing all this.
ld a, DEX_ARTICUNO_G ld a, DEX_ARTICUNO_G
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr z, .skipArticunoG jr nz, .skipArticunoG
ResetEvent EVENT_BEAT_ARTICUNO_G ResetEvent EVENT_BEAT_ARTICUNO_G
ld a, HS_GARNET_ARTICUNO_G ld a, HS_GARNET_ARTICUNO_G
call ShowThis call ShowThis
.skipArticunoG .skipArticunoG
ld a, DEX_ZAPDOS_G ld a, DEX_ZAPDOS_G
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr z, .skipZapdosG jr nz, .skipZapdosG
ResetEvent EVENT_BEAT_ZAPDOSG ResetEvent EVENT_BEAT_ZAPDOSG
ld a, HS_BRUNSWICK_ZAPDOS_G_2 ld a, HS_BRUNSWICK_ZAPDOS_G_2
call ShowThis call ShowThis
.skipZapdosG .skipZapdosG
ld a, DEX_MOLTRES_G ld a, DEX_MOLTRES_G
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr z, .skipMoltresG jr nz, .skipMoltresG
ResetEvent EVENT_BEAT_GALARIAN_MOLTRES ResetEvent EVENT_BEAT_GALARIAN_MOLTRES
ld a, HS_MOLTRES_G ld a, HS_MOLTRES_G
call ShowThis call ShowThis
.skipMoltresG .skipMoltresG
ld a, DEX_MEWTWO ld a, DEX_MEWTWO
call HoFIsPokemonBitSet call HoFIsPokemonBitSet
jr z, .skipGalarianBirdsAndMewtwo jr nz, .skipGalarianBirdsAndMewtwo
ResetEvent EVENT_BEAT_MEWTWO ResetEvent EVENT_BEAT_MEWTWO
ld a, HS_MEWTWO ld a, HS_MEWTWO
call ShowThis call ShowThis

View file

@ -1,3 +1,9 @@
; Much of the text here is taken from real Giovanni lore. You could say I wanted to write a love letter to Giovanni as a character here.
; If you read all this, thank you for loving this character as much as I do.
; ~ Plague von Karma
; Mysteries of the Earth is a book written by Giovanni in the Adventures Manga. In that book, he is confirmed to have discovered Rhyperior.
; Additionally, in Adventures, his first caught Pokemon was a Weedle - this is why he uses Beedrill.
_GiovannisRoomText1:: _GiovannisRoomText1::
text "MYSTERIES OF THE" text "MYSTERIES OF THE"
line "EARTH - GIOVANNI" line "EARTH - GIOVANNI"
@ -9,19 +15,16 @@ _GiovannisRoomText1::
para "Its name is" para "Its name is"
line "RHYPERIOR." line "RHYPERIOR."
cont "However, it"
cont "cannot be"
cont "obtained with"
cont "items found in"
cont "KANTO naturally."
para "A PROTECTOR is" para "We can't get it"
line "required, which" line "obtained with"
cont "we managed to" cont "items native to"
cont "import here." cont "KANTO. We must"
cont "use a PROTECTOR."
para "It unfortunately" para "Unfortunately,"
line "fails to address" line "RHYPERIOR does"
cont "not address"
cont "RHYDON's poor" cont "RHYDON's poor"
cont "SPEED. Ergo, it" cont "SPEED. Ergo, it"
cont "cannot use my" cont "cannot use my"
@ -30,20 +33,23 @@ _GiovannisRoomText1::
cont "full potential." cont "full potential."
done done
; Madame Boss, Giovanni's mother, is from a Japan-exclusive Radio Drama.
; http://www.rigelatin.net/copycat/saga/origin/dramaep1.php
; In Pokemon Origins, Giovanni is confirmed to have begun with a Charmander.
; This combines those two facts.
_GiovannisRoomText2:: _GiovannisRoomText2::
text "It's a torn-out" text "It's a torn-out"
line "page from an" line "page from an"
cont "old diary..." cont "old diary..."
para "Aug 1st, 1975" para "Aug 1st, 1975" ; Did you know we calc'd the year here?
line "I managed to" line "I got my first"
cont "get my first" cont "#MON!"
cont "#MON."
para "It's a CHARMANDER!" para "It's a CHARMANDER!"
line "But...I have to"
cont "keep this a" para "But...I must keep"
cont "secret from" line "it a secret from"
cont "mother." cont "mother."
para "She would auction" para "She would auction"
@ -56,6 +62,12 @@ _GiovannisRoomText2::
line "you!" line "you!"
done done
; We never have Giovanni use Charizard, as he's never shown doing so, even in Origins.
; My assumption is one of the following;
; - He doesn't want it involved with his Yakuza activities.
; - He released it.
; - His mother ended up selling it.
; I like giving the player the opportunity to think about this too!
_GiovannisRoomText3:: _GiovannisRoomText3::
text "Various financial" text "Various financial"
@ -63,12 +75,11 @@ _GiovannisRoomText3::
cont "scattered on" cont "scattered on"
cont "the floor..." cont "the floor..."
para "PROTECTOR: ¥3,000" para "PROTECTOR: ¥3,000" ; Giovanni discovered the Protector's use with Rhyperior.
para "DIRE HIT: ¥5,200" para "DIRE HIT: ¥5,200" ; Giovanni uses this in battle.
para "DEVELOPMENT OF" para "TM27 R&D: ¥15,000" ; Giovanni is confirmed to have created Fissure in vanilla RBY. He also says he made Earthquake in FRLG, but it feels contrived.
line "TM27: ¥15,000"
para "Business: ¥100,000" para "Business: ¥100,000"
@ -76,6 +87,7 @@ _GiovannisRoomText3::
done done
; This is a reference to the Radio Drama. Jessie's mother dies trying to find it.
_GiovannisRoomText4:: _GiovannisRoomText4::
text "It's a document" text "It's a document"
line "about a failed" line "about a failed"