Move Mew, add Old Sea Chart, add wild data

I am 90% sure something will bug out, can't test the map right now for obvious reasons. Tested everything else, though.

Mostly copied data from Cinnabar Volcano while commenting out Vermillion Dock Mew info to move it.

Wild data has been added along with a fishing group, just dummied out slots.

Old Sea Chart is a clone of the Citrine Pass which is all it needs to be. It is obtainable near the truck.
This commit is contained in:
May Evans 2022-10-16 09:05:26 +01:00
parent 4cc05243ed
commit 78ae4e9029
18 changed files with 251 additions and 177 deletions

View file

@ -551,10 +551,11 @@
; S.S. Anne events ; S.S. Anne events
const_next $5C0 const_next $5C0
const_skip const_skip 4
const EVENT_ENCOUNTERED_MEW ; const_skip
const EVENT_FOUND_MEW ; const EVENT_ENCOUNTERED_MEW
const_skip ; const EVENT_FOUND_MEW
; const_skip
const EVENT_BEAT_SS_ANNE_5_TRAINER_0 const EVENT_BEAT_SS_ANNE_5_TRAINER_0
const EVENT_BEAT_SS_ANNE_5_TRAINER_1 const EVENT_BEAT_SS_ANNE_5_TRAINER_1
const_skip 26 const_skip 26
@ -593,7 +594,7 @@
const_skip 7 const_skip 7
const EVENT_BEAT_OMEGA const EVENT_BEAT_OMEGA
; Celadon University + salesman events ; Celadon University, Salesman
const_next $640 const_next $640
const_skip const_skip
const_skip const_skip
@ -604,6 +605,11 @@
const EVENT_BOUGHT_CUBONE const EVENT_BOUGHT_CUBONE
const EVENT_BOUGHT_DITTO const EVENT_BOUGHT_DITTO
; , Faraway Island
const_next $650
const_skip
const EVENT_BEAT_MEW
; Victory Road 3F events ; Victory Road 3F events
const_next $660 const_next $660
const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1 const EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1

View file

@ -115,6 +115,7 @@ DEF NUM_ITEMS EQU const_value - 1
const BLK_AUGURITE ; $65 const BLK_AUGURITE ; $65
const DUBIOUS_DISC ; $66 const DUBIOUS_DISC ; $66
const CITRINE_PASS ; $67 const CITRINE_PASS ; $67
const OLDSEACHART ; $68
DEF NUM_FLOORS EQU const_value - 1 - NUM_ITEMS DEF NUM_FLOORS EQU const_value - 1 - NUM_ITEMS
const_next $C4 const_next $C4

View file

@ -103,4 +103,5 @@ KeyItemFlags:
dbit FALSE ; BLK_AUGURITE dbit FALSE ; BLK_AUGURITE
dbit FALSE ; DUBIOUS_DISC dbit FALSE ; DUBIOUS_DISC
dbit TRUE ; CITRINE_PASS dbit TRUE ; CITRINE_PASS
dbit TRUE ; OLDSEACHART
end_bit_array NUM_ITEMS + NUM_FLOORS end_bit_array NUM_ITEMS + NUM_FLOORS

View file

@ -104,4 +104,5 @@ ItemNames::
li "BLK AUGURITE" li "BLK AUGURITE"
li "DUBIOUS DISC" li "DUBIOUS DISC"
li "CITRINE PASS" li "CITRINE PASS"
li "OLDSEACHART"
assert_list_length NUM_ITEMS + NUM_FLOORS assert_list_length NUM_ITEMS + NUM_FLOORS

View file

@ -104,4 +104,5 @@ ItemPrices::
bcd3 2100 ; BLK_AUGURITE bcd3 2100 ; BLK_AUGURITE
bcd3 3000 ; DUBIOUS_DISC bcd3 3000 ; DUBIOUS_DISC
bcd3 0 ; CITRINE_PASS bcd3 0 ; CITRINE_PASS
bcd3 0 ; OLDSEACHART
assert_table_length NUM_ITEMS + NUM_FLOORS assert_table_length NUM_ITEMS + NUM_FLOORS

View file

@ -97,7 +97,8 @@ MapHSPointers:
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw NoHS
dw VermilionDockHS dw VermilionDockHS ; may not be necessary now? old sea chart tho.
; dw NoHS swap if you need to remove the vermillion dock bit
dw NoHS dw NoHS
dw SSAnne2FHS dw SSAnne2FHS
dw NoHS dw NoHS
@ -117,7 +118,7 @@ MapHSPointers:
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw FarawayIslandInsideHS
dw NoHS dw NoHS
dw NoHS dw NoHS
dw NoHS dw NoHS
@ -568,7 +569,10 @@ SeafoamIslandsB4FHS:
db SEAFOAM_ISLANDS_B4F, $01, HIDE db SEAFOAM_ISLANDS_B4F, $01, HIDE
db SEAFOAM_ISLANDS_B4F, $02, HIDE db SEAFOAM_ISLANDS_B4F, $02, HIDE
db SEAFOAM_ISLANDS_B4F, $03, SHOW db SEAFOAM_ISLANDS_B4F, $03, SHOW
VermilionDockHS: VermilionDockHS: ; unsure if necessary
db VERMILION_DOCK, $01, HIDE db VERMILION_DOCK, $01, SHOW
db $FF, $01, SHOW ; end ;db $FF, $01, SHOW ; end
FarawayIslandInsideHS:
db FARAWAY_ISLAND_INSIDE, $01, HIDE ; if mew is fucking up this is why
assert_table_length NUM_HS_OBJECTS + 1 assert_table_length NUM_HS_OBJECTS + 1

View file

@ -6,6 +6,7 @@ FarawayIslandInside_Object:
warp_event 15, 21, 0, FARAWAY_ISLAND_OUTSIDE warp_event 15, 21, 0, FARAWAY_ISLAND_OUTSIDE
def_bg_events def_bg_events
object_event 14, 10, SPRITE_MONSTER, STAY, DOWN, 1, MEW, 50 | OW_POKEMON
def_object_events def_object_events

View file

@ -8,6 +8,7 @@ VermilionDock_Object:
def_bg_events def_bg_events
def_object_events def_object_events
object_event 21, 0, SPRITE_MONSTER, STAY, DOWN, 2, MEW, 30 | OW_POKEMON object_event 22, 0, SPRITE_POKE_BALL, STAY, NONE, 2, OLDSEACHART
; object_event 21, 0, SPRITE_MONSTER, STAY, DOWN, 2, MEW, 30 | OW_POKEMON
def_warps_to VERMILION_DOCK def_warps_to VERMILION_DOCK

View file

@ -114,7 +114,7 @@ WildDataPointers:
dw Gauntlet6FWildMons dw Gauntlet6FWildMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw FarawayIslandInsideMons ; I think this is right??
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
dw NothingWildMons dw NothingWildMons
@ -328,3 +328,4 @@ INCLUDE "data/wild/maps/SilphGauntlet3F.asm"
INCLUDE "data/wild/maps/SilphGauntlet4F.asm" INCLUDE "data/wild/maps/SilphGauntlet4F.asm"
INCLUDE "data/wild/maps/SilphGauntlet5F.asm" INCLUDE "data/wild/maps/SilphGauntlet5F.asm"
INCLUDE "data/wild/maps/SilphGauntlet6F.asm" INCLUDE "data/wild/maps/SilphGauntlet6F.asm"
INCLUDE "data/wild/maps/FarawayIslandInside.asm"

View file

@ -0,0 +1,26 @@
FarawayIslandInsideMons:
def_grass_wildmons 10 ; encounter rate
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
db 30, EEVEE
end_grass_wildmons
def_water_wildmons 10 ; encounter rate
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
db 30, MAGIKARP
end_water_wildmons

View file

@ -37,6 +37,7 @@ SuperRodData:
dbw SILPH_GAUNTLET_5F, .Group10 dbw SILPH_GAUNTLET_5F, .Group10
dbw ROCK_TUNNEL_1F, .Group5 dbw ROCK_TUNNEL_1F, .Group5
dbw CELADON_UNIVERSITY_OUTSIDE, .Group11 dbw CELADON_UNIVERSITY_OUTSIDE, .Group11
dbw FARAWAY_ISLAND_INSIDE, .Group7
db -1 ; end db -1 ; end
; fishing groups ; fishing groups

View file

@ -154,6 +154,7 @@ DebugItemsList:
db COIN_CASE, 1 db COIN_CASE, 1
db POKE_FLUTE, 1 db POKE_FLUTE, 1
db SILPH_SCOPE, 1 db SILPH_SCOPE, 1
; db OLDSEACHART, 1
db -1 ; end db -1 ; end
DebugUnusedList: DebugUnusedList:

View file

@ -120,6 +120,7 @@ ItemUsePtrTable:
dw ItemUseEvoStone ; BLK_AUGURITE dw ItemUseEvoStone ; BLK_AUGURITE
dw ItemUseEvoStone ; DUBIOUS_DISC dw ItemUseEvoStone ; DUBIOUS_DISC
dw UnusableItem ; CITRINE_PASS dw UnusableItem ; CITRINE_PASS
dw UnusableItem ; OLDSEACHART
ItemUseBall: ItemUseBall:

View file

@ -2031,7 +2031,7 @@ wBrunosRoomCurScript:: db
wAgathasRoomCurScript:: db wAgathasRoomCurScript:: db
wCeruleanCaveB1FCurScript:: db wCeruleanCaveB1FCurScript:: db
wVictoryRoad1FCurScript:: db wVictoryRoad1FCurScript:: db
ds 1 wFarawayIslandInsideCurScript:: db ; this should work
wLancesRoomCurScript:: db wLancesRoomCurScript:: db
ds 4 ds 4
wSilphCo10FCurScript:: db wSilphCo10FCurScript:: db

View file

@ -1,6 +1,38 @@
FarawayIslandInside_Script: FarawayIslandInside_Script:
jp EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, FarawayIslandInsideTrainerHeaders
ld de, FarawayIslandInside_ScriptPointers
ld a, [wFarawayIslandInsideCurScript]
call ExecuteCurMapScriptInTable
ld [wFarawayIslandInsideCurScript], a
ret
FarawayIslandInside_ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
FarawayIslandInside_TextPointers: FarawayIslandInside_TextPointers:
dw FarawayIslandInsideText2
FarawayIslandInsideTrainerHeaders:
def_trainers
MewTrainerHeader:
trainer EVENT_BEAT_MEW, 0, MewBattleText, MewBattleText, MewBattleText
db -1 ; end
FarawayIslandInsideText2:
text_asm
ld hl, MewTrainerHeader
call TalkToTrainer
jp TextScriptEnd
MewBattleText:
text_far _MewtwoBattleText ; Mew!
text_asm
ld a, MEW
call PlayCry
call WaitForSoundToFinish
jp TextScriptEnd
text_end ; unused text_end ; unused

View file

@ -1,9 +1,9 @@
VermilionDock_Script: VermilionDock_Script:
call EnableAutoTextBoxDrawing call EnableAutoTextBoxDrawing
ld hl, VermilionDockTrainerHeaders ;ld hl, VermilionDockTrainerHeaders
ld de, VermilionDock_ScriptPointers ld de, VermilionDock_ScriptPointers
call ExecuteCurMapScriptInTable call ExecuteCurMapScriptInTable
call TruckCheck ;call TruckCheck
CheckEventHL EVENT_STARTED_WALKING_OUT_OF_DOCK CheckEventHL EVENT_STARTED_WALKING_OUT_OF_DOCK
jr nz, .asm_1db8d jr nz, .asm_1db8d
CheckEventReuseHL EVENT_GOT_HM01 CheckEventReuseHL EVENT_GOT_HM01
@ -222,7 +222,8 @@ VermilionDock_EraseSSAnne:
VermilionDock_TextPointers: VermilionDock_TextPointers:
dw VermilionDockText1 dw VermilionDockText1
dw VermilionDockText2 dw PickUpItemText
;dw VermilionDockText2
VermilionDockText1: VermilionDockText1:
text_far _VermilionDockText1 text_far _VermilionDockText1
@ -230,165 +231,165 @@ VermilionDockText1:
; this massive new set of scripts allows the truck to be pushed with Strength. Credit to Vortyne's pureRGB hack for figuring this out! ; this massive new set of scripts allows the truck to be pushed with Strength. Credit to Vortyne's pureRGB hack for figuring this out!
VermilionDockTrainerHeaders: ;VermilionDockTrainerHeaders:
def_trainers ; def_trainers
MewTrainerHeader: ;MewTrainerHeader:
trainer EVENT_ENCOUNTERED_MEW, 0, MewBattleText, MewBattleText, MewBattleText ; trainer EVENT_ENCOUNTERED_MEW, 0, MewBattleText, MewBattleText, MewBattleText
db -1 ; end ; db -1 ; end
VermilionDockText2: ;VermilionDockText2:
text_asm ; text_asm
ld hl, MewTrainerHeader ; ld hl, MewTrainerHeader
call TalkToTrainer ; call TalkToTrainer
jp TextScriptEnd ; jp TextScriptEnd
MewBattleText: ;MewBattleText:
text_far _MewtwoBattleText ; Mew! ; text_far _MewtwoBattleText ; Mew!
text_asm ; text_asm
ld a, MEW ; ld a, MEW
call PlayCry ; call PlayCry
call WaitForSoundToFinish ; call WaitForSoundToFinish
jp TextScriptEnd ; jp TextScriptEnd
TruckOAMTable: ;TruckOAMTable:
db $50, $28, $C0, $10 ; db $50, $28, $C0, $10
db $50, $30, $C1, $10 ; db $50, $30, $C1, $10
db $50, $38, $C2, $10 ; db $50, $38, $C2, $10
db $50, $40, $C3, $10 ; db $50, $40, $C3, $10
db $58, $28, $C4, $10 ; db $58, $28, $C4, $10
db $58, $30, $C5, $10 ; db $58, $30, $C5, $10
db $58, $38, $C6, $10 ; db $58, $38, $C6, $10
db $58, $40, $C7, $10 ; db $58, $40, $C7, $10
RedLeftOAMTable: ;RedLeftOAMTable:
db $8,$0,$9,$0 ; db $8,$0,$9,$0
db $a,$2,$b,$3 ; db $a,$2,$b,$3
TruckSpriteGFX: INCBIN "gfx/sprites/truck_sprite.2bpp" ;TruckSpriteGFX: INCBIN "gfx/sprites/truck_sprite.2bpp"
TruckCheck: ;TruckCheck:
CheckEventHL EVENT_FOUND_MEW ; CheckEventHL EVENT_FOUND_MEW
jp nz, ChangeTruckTile ; jp nz, ChangeTruckTile
ld c, HS_MEW ; ld c, HS_MEW
ld b, $2 ; ld b, $2
ld hl, wMissableObjectFlags ; ld hl, wMissableObjectFlags
predef FlagActionPredef ; predef FlagActionPredef
ld a, c ; ld a, c
and a ; and a
jr nz, .skiphidingmew ; jr nz, .skiphidingmew
ld a, HS_MEW ; ld a, HS_MEW
ld [wMissableObjectIndex], a ; ld [wMissableObjectIndex], a
predef HideObject ; predef HideObject
.skiphidingmew ;.skiphidingmew
ld a, [wd728] ; ld a, [wd728]
bit 0, a ; using Strength? ; bit 0, a ; using Strength?
ret z ; ret z
; the position for moving truck is $00, $15 ; ; the position for moving truck is $00, $15
ld hl, wYCoord ; ld hl, wYCoord
ld a, [hli] ; ld a, [hli]
and a ; and a
ret nz ; ret nz
ld a, [hl] ; ld a, [hl]
cp $16 ; cp $16
ret nz ; ret nz
; if the player is trying to walk left ; ; if the player is trying to walk left
ld a, [wPlayerDirection] ; ld a, [wPlayerDirection]
cp 2 ; cp 2
ret nz ; ret nz
xor a ; xor a
ld [$ff8c], a ; ld [$ff8c], a
ld a, $8 ; ld a, $8
ld [$ff8d], a ; ld [$ff8d], a
call SetSpriteFacingDirection ; call SetSpriteFacingDirection
ld a, $ff ; ld a, $ff
ld [wJoyIgnore], a ; ld [wJoyIgnore], a
ld [wUpdateSpritesEnabled], a ; ld [wUpdateSpritesEnabled], a
xor a ; xor a
ld bc, $4c48 ; ld bc, $4c48
ld de, RedLeftOAMTable ; ld de, RedLeftOAMTable
call WriteOAMBlock ; call WriteOAMBlock
ld bc, (Bank(TruckSpriteGFX) << 8) | 8 ; ld bc, (Bank(TruckSpriteGFX) << 8) | 8
ld hl, vChars1 + $400 ; ld hl, vChars1 + $400
ld de, TruckSpriteGFX ; ld de, TruckSpriteGFX
call CopyVideoData ; call CopyVideoData
ld hl, TruckOAMTable ; ld hl, TruckOAMTable
ld bc, $20 ; ld bc, $20
ld de, wShadowOAM + $20 ; ld de, wShadowOAM + $20
call CopyData ; call CopyData
ld a, $c ; ld a, $c
ld [wNewTileBlockID], a ; used to be wd09f ; ld [wNewTileBlockID], a ; used to be wd09f
ld bc, $a ; ld bc, $a
predef ReplaceTileBlock ; predef ReplaceTileBlock
; moving the truck ; ; moving the truck
ld a, SFX_PUSH_BOULDER ; ld a, SFX_PUSH_BOULDER
call PlaySound ; call PlaySound
ld b, 32 ; ld b, 32
ld de, 4 ; ld de, 4
.movingtruck ;.movingtruck
ld hl, wShadowOAM + $21 ; ld hl, wShadowOAM + $21
ld a, 8 ; ld a, 8
.movingtruck2 ;.movingtruck2
dec [hl] ; dec [hl]
add hl, de ; add hl, de
dec a ; dec a
jr nz, .movingtruck2 ; jr nz, .movingtruck2
ld c, 2 ; ld c, 2
call DelayFrames ; call DelayFrames
dec b ; dec b
jr nz, .movingtruck ; jr nz, .movingtruck
ld a, $3 ; ld a, $3
ld [wNewTileBlockID], a ; used to be wd09f ; ld [wNewTileBlockID], a ; used to be wd09f
ld bc, $9 ; ld bc, $9
predef ReplaceTileBlock ; predef ReplaceTileBlock
call ShowMew ; call ShowMew
jp FinishShowMew ; jp FinishShowMew
; show mew and print its dialogue ; ; show mew and print its dialogue
ShowMew: ;ShowMew:
ld a, 1 ; ld a, 1
ld [wUpdateSpritesEnabled], a ; ld [wUpdateSpritesEnabled], a
ld a, HS_MEW ; ld a, HS_MEW
ld [wMissableObjectIndex], a ; ld [wMissableObjectIndex], a
predef ShowObject ; predef ShowObject
ret ; ret
FinishShowMew: ;FinishShowMew:
ld c, 60 ; ld c, 60
call DelayFrames ; call DelayFrames
xor a ; xor a
ld [wJoyIgnore], a ; ld [wJoyIgnore], a
SetEvent EVENT_FOUND_MEW ; SetEvent EVENT_FOUND_MEW
ret ; ret
ChangeTruckTile: ;ChangeTruckTile:
ld bc, $9 ; ld bc, $9
call GetOWCoord ; call GetOWCoord
ld a, [hl] ; ld a, [hl]
cp $3 ; cp $3
ret z ; ret z
ld a, $3 ; ld a, $3
ld [hli], a ; ld [hli], a
ld a, $c ; ld a, $c
ld [hl], a ; ld [hl], a
CheckEvent EVENT_ENCOUNTERED_MEW ; CheckEvent EVENT_ENCOUNTERED_MEW
call z, ShowMew ; call z, ShowMew
jpfar RedrawMapView ; jpfar RedrawMapView
;
GetOWCoord: ;GetOWCoord:
ld hl, wOverworldMap + 2 ; ld hl, wOverworldMap + 2
ld a, [wCurMapWidth] ; ld a, [wCurMapWidth]
add $6 ; add $6
ld e, a ; ld e, a
ld d, $0 ; ld d, $0
add hl, de ; add hl, de
add hl, de ; add hl, de
inc b ; inc b
inc c ; inc c
.bloop ;.bloop
add hl, de ; add hl, de
dec b ; dec b
jr nz, .bloop ; jr nz, .bloop
.cloop ;.cloop
inc hl ; inc hl
dec c ; dec c
jr nz, .cloop ; jr nz, .cloop
ret ; ret

View file

@ -276,7 +276,6 @@ INCLUDE "text/CeladonUniversityInside.asm"
INCLUDE "text/CeladonUniversityPokecenter.asm" INCLUDE "text/CeladonUniversityPokecenter.asm"
INCLUDE "text/CinnabarVolcano.asm" INCLUDE "text/CinnabarVolcano.asm"
INCLUDE "text/FarawayIslandOutside.asm" INCLUDE "text/FarawayIslandOutside.asm"
INCLUDE "text/FarawayIslandInside.asm"
SECTION "Pokédex Text", ROMX SECTION "Pokédex Text", ROMX

View file

@ -1,4 +0,0 @@
_FarawayIslandMew::
text "Mew!"
done