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
const_next $5C0
const_skip
const EVENT_ENCOUNTERED_MEW
const EVENT_FOUND_MEW
const_skip
const_skip 4
; const_skip
; const EVENT_ENCOUNTERED_MEW
; const EVENT_FOUND_MEW
; const_skip
const EVENT_BEAT_SS_ANNE_5_TRAINER_0
const EVENT_BEAT_SS_ANNE_5_TRAINER_1
const_skip 26
@ -593,7 +594,7 @@
const_skip 7
const EVENT_BEAT_OMEGA
; Celadon University + salesman events
; Celadon University, Salesman
const_next $640
const_skip
const_skip
@ -604,6 +605,11 @@
const EVENT_BOUGHT_CUBONE
const EVENT_BOUGHT_DITTO
; , Faraway Island
const_next $650
const_skip
const EVENT_BEAT_MEW
; Victory Road 3F events
const_next $660
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 DUBIOUS_DISC ; $66
const CITRINE_PASS ; $67
const OLDSEACHART ; $68
DEF NUM_FLOORS EQU const_value - 1 - NUM_ITEMS
const_next $C4

View file

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

View file

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

View file

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

View file

@ -97,7 +97,8 @@ MapHSPointers:
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 SSAnne2FHS
dw NoHS
@ -117,7 +118,7 @@ MapHSPointers:
dw NoHS
dw NoHS
dw NoHS
dw NoHS
dw FarawayIslandInsideHS
dw NoHS
dw NoHS
dw NoHS
@ -568,7 +569,10 @@ SeafoamIslandsB4FHS:
db SEAFOAM_ISLANDS_B4F, $01, HIDE
db SEAFOAM_ISLANDS_B4F, $02, HIDE
db SEAFOAM_ISLANDS_B4F, $03, SHOW
VermilionDockHS:
db VERMILION_DOCK, $01, HIDE
db $FF, $01, SHOW ; end
VermilionDockHS: ; unsure if necessary
db VERMILION_DOCK, $01, SHOW
;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

View file

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

View file

@ -8,6 +8,7 @@ VermilionDock_Object:
def_bg_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

View file

@ -114,7 +114,7 @@ WildDataPointers:
dw Gauntlet6FWildMons
dw NothingWildMons
dw NothingWildMons
dw NothingWildMons
dw FarawayIslandInsideMons ; I think this is right??
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/SilphGauntlet5F.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 ROCK_TUNNEL_1F, .Group5
dbw CELADON_UNIVERSITY_OUTSIDE, .Group11
dbw FARAWAY_ISLAND_INSIDE, .Group7
db -1 ; end
; fishing groups

View file

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

View file

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

View file

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

View file

@ -1,6 +1,38 @@
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:
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

View file

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

View file

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

View file

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