mirror of
https://github.com/pret/pokegold-spaceworld.git
synced 2026-04-26 08:13:44 -05:00
Disassemble field debug (bank $3f) (#97)
* Disassemble SFX and cries * Disassemble clock dialog * Disassemble slot machine minigame * Disassemble AnimateTilesetImpl * Disassemble start menu frame type dialog * Disassemble field menu * Split debug menus into debug folder * Remove redundant shims
This commit is contained in:
parent
71050d6134
commit
af65010e2c
|
|
@ -42,3 +42,12 @@
|
||||||
const MOVEMENT_28 ; $28
|
const MOVEMENT_28 ; $28
|
||||||
const MOVEMENT_29 ; $29
|
const MOVEMENT_29 ; $29
|
||||||
const NO_MOVEMENT ; $2a
|
const NO_MOVEMENT ; $2a
|
||||||
|
const MOVEMENT_2B ; $2b
|
||||||
|
const MOVEMENT_2C ; $2c
|
||||||
|
const MOVEMENT_2D ; $2d
|
||||||
|
const MOVEMENT_2E ; $2e
|
||||||
|
const MOVEMENT_2F ; $2f
|
||||||
|
const MOVEMENT_30 ; $30
|
||||||
|
const MOVEMENT_31 ; $31
|
||||||
|
const MOVEMENT_32 ; $32
|
||||||
|
const MOVEMENT_33 ; $33
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,17 @@ SFX_BOOT_PC EQU $0A
|
||||||
SFX_ESCAPE_ROPE EQU $0B ; player shrink
|
SFX_ESCAPE_ROPE EQU $0B ; player shrink
|
||||||
SFX_WRONG EQU $14
|
SFX_WRONG EQU $14
|
||||||
SFX_SWITCH_POKEMON EQU $1B
|
SFX_SWITCH_POKEMON EQU $1B
|
||||||
|
SFX_1E EQU $1E
|
||||||
SFX_POKEFLUTE EQU $21
|
SFX_POKEFLUTE EQU $21
|
||||||
|
SFX_22 EQU $22
|
||||||
|
SFX_24 EQU $24
|
||||||
|
SFX_25 EQU $25
|
||||||
SFX_POKEDEX_REGISTRATION EQU $27
|
SFX_POKEDEX_REGISTRATION EQU $27
|
||||||
SFX_TITLE_ENTRANCE EQU $2D
|
SFX_TITLE_ENTRANCE EQU $2D
|
||||||
SFX_PAY_DAY EQU $30
|
SFX_PAY_DAY EQU $30
|
||||||
SFX_GAME_FREAK_LOGO_RG EQU $31
|
SFX_GAME_FREAK_LOGO_RG EQU $31
|
||||||
|
|
||||||
|
SFX_SHINE EQU $62
|
||||||
|
|
||||||
; R/G/B/Y fanfares
|
; R/G/B/Y fanfares
|
||||||
SFX_GET_ITEM_RG EQU $63
|
SFX_GET_ITEM_RG EQU $63
|
||||||
|
|
|
||||||
|
|
@ -27,3 +27,13 @@ PLAYER_SURF_PIKA EQU 8
|
||||||
const DEBUG_BATTLE_F
|
const DEBUG_BATTLE_F
|
||||||
const DEBUG_FIELD_F
|
const DEBUG_FIELD_F
|
||||||
const CONTINUED_F
|
const CONTINUED_F
|
||||||
|
|
||||||
|
|
||||||
|
; wToolgearFlags::
|
||||||
|
SHOW_TOOLGEAR_F EQU 0
|
||||||
|
TOOLGEAR_TO_WINDOW_F EQU 2
|
||||||
|
HIDE_TOOLGEAR_F EQU 7
|
||||||
|
|
||||||
|
; wd153::
|
||||||
|
TOOLGEAR_COORDS_F EQU 0
|
||||||
|
OVERWORLD_MINUTE_TIME_F EQU 7
|
||||||
|
|
|
||||||
130
data/field_debug_entries.inc
Normal file
130
data/field_debug_entries.inc
Normal file
|
|
@ -0,0 +1,130 @@
|
||||||
|
; FieldDebug_Jumptable constants
|
||||||
|
const_def
|
||||||
|
const FIELDDEBUG_RESET ; 0
|
||||||
|
const FIELDDEBUG_CLOSE_MENU ; 1
|
||||||
|
const FIELDDEBUG_FRAME_TYPE ; 2
|
||||||
|
const FIELDDEBUG_MINIGAMES ; 3
|
||||||
|
const FIELDDEBUG_CHANGE_TRANSPORTATION ; 4
|
||||||
|
const FIELDDEBUG_CHANGE_TILESET ; 5
|
||||||
|
const FIELDDEBUG_TOWN_MAP ; 6
|
||||||
|
const FIELDDEBUG_SPRITE_VIEWER ; 7
|
||||||
|
const FIELDDEBUG_NAME_PLAYER ; 8
|
||||||
|
const FIELDDEBUG_TOOLGEAR ; 9
|
||||||
|
const FIELDDEBUG_CLEAR_EVENT_FLAGS ; $a
|
||||||
|
const FIELDDEBUG_HEAL_POKEMON ; $b
|
||||||
|
const FIELDDEBUG_CABLE_CLUB ; $c
|
||||||
|
const FIELDDEBUG_GO_TO_NEXT_PAGE ; $d
|
||||||
|
const FIELDDEBUG_NPC_MOVEMENT_TEST ; $e
|
||||||
|
const FIELDDEBUG_POKEMON_FOLLOWING ; $f
|
||||||
|
const FIELDDEBUG_FOLLOW_NPC_TEST ; $10
|
||||||
|
const FIELDDEBUG_WARP ; $11
|
||||||
|
const FIELDDEBUG_FIELD_CUT ; $12
|
||||||
|
const FIELDDEBUG_CHECK_TILE ; $13
|
||||||
|
const FIELDDEBUG_MOVE_TO_ROUTE1_ENTRANCE ; $14
|
||||||
|
const FIELDDEBUG_TOGGLE_NPC_MOVEMENT ; $15
|
||||||
|
const FIELDDEBUG_MAP_VIEWER ; $16
|
||||||
|
const FIELDDEBUG_ITEM_TEST ; $17
|
||||||
|
const FIELDDEBUG_PC_MENU ; $18
|
||||||
|
const FIELDDEBUG_POKEMART_MENU ; $19
|
||||||
|
const FIELDDEBUG_TELEPORT ; $1a
|
||||||
|
const FIELDDEBUG_VRAM_VIEWER ; $1b
|
||||||
|
const FIELDDEBUG_TRAINER_GEAR ; $1c
|
||||||
|
|
||||||
|
FieldDebug_MenuStrings:
|
||||||
|
db "りセット@"
|
||||||
|
db "とじる@"
|
||||||
|
db "わくせん@"
|
||||||
|
db "ゲーム@"
|
||||||
|
db "のりもの@"
|
||||||
|
db "セル@"
|
||||||
|
db "ちず@"
|
||||||
|
db "キャラ@"
|
||||||
|
db "なまえ@"
|
||||||
|
db "ツールギア@"
|
||||||
|
db "イべント@"
|
||||||
|
db "かいふく@"
|
||||||
|
db "つうしん@"
|
||||||
|
db "つぎ▶@"
|
||||||
|
db "アニメ@"
|
||||||
|
db "つれてく@"
|
||||||
|
db "つれてけ@"
|
||||||
|
db "ワープ@"
|
||||||
|
db "くさかり@"
|
||||||
|
db "あしもと@"
|
||||||
|
db "じどう@"
|
||||||
|
db "うごき@"
|
||||||
|
db "マッパー@"
|
||||||
|
db "アイテム@"
|
||||||
|
db "パソコン@"
|
||||||
|
db "ショップ@"
|
||||||
|
db "テレポ!@"
|
||||||
|
db "テスト@"
|
||||||
|
db "じっけん@"
|
||||||
|
|
||||||
|
FieldDebug_Jumptable:
|
||||||
|
dw FieldDebug_Reset
|
||||||
|
dw FieldDebug_CloseMenu
|
||||||
|
dw FieldDebug_FrameType
|
||||||
|
dw FieldDebug_Minigames
|
||||||
|
dw FieldDebug_ChangeTransportation
|
||||||
|
dw FieldDebug_ChangeTileset
|
||||||
|
dw FieldDebug_TownMap
|
||||||
|
dw FieldDebug_SpriteViewer
|
||||||
|
dw FieldDebug_NamePlayer
|
||||||
|
dw FieldDebug_Toolgear
|
||||||
|
dw FieldDebug_ClearEventFlags
|
||||||
|
dw FieldDebug_HealPokemon
|
||||||
|
dw FieldDebug_CableClub
|
||||||
|
dw FieldDebug_GoToNextPage
|
||||||
|
dw FieldDebug_NPCMovementTest
|
||||||
|
dw FieldDebug_PokemonFollowing
|
||||||
|
dw FieldDebug_FollowNPCTest
|
||||||
|
dw FieldDebug_Warp
|
||||||
|
dw FieldDebug_FieldCut
|
||||||
|
dw FieldDebug_CheckTile
|
||||||
|
dw FieldDebug_MoveToRoute1Entrance
|
||||||
|
dw FieldDebug_ToggleNPCMovement
|
||||||
|
dw FieldDebug_OpenMapViewer
|
||||||
|
dw FieldDebug_ItemTest
|
||||||
|
dw FieldDebug_PCMenu
|
||||||
|
dw FieldDebug_PokemartMenu
|
||||||
|
dw FieldDebug_Teleport
|
||||||
|
dw FieldDebug_VRAMViewer
|
||||||
|
dw FieldDebug_TrainerGear
|
||||||
|
|
||||||
|
FIELDDEBUG_NUM_PAGES EQU 3
|
||||||
|
|
||||||
|
FieldDebug_Pages:
|
||||||
|
; page 1
|
||||||
|
db 7 ; number of items
|
||||||
|
db FIELDDEBUG_GO_TO_NEXT_PAGE
|
||||||
|
db FIELDDEBUG_WARP
|
||||||
|
db FIELDDEBUG_SPRITE_VIEWER
|
||||||
|
db FIELDDEBUG_CHANGE_TRANSPORTATION
|
||||||
|
db FIELDDEBUG_TOOLGEAR
|
||||||
|
db FIELDDEBUG_PC_MENU
|
||||||
|
db FIELDDEBUG_CLOSE_MENU
|
||||||
|
db -1
|
||||||
|
|
||||||
|
; page 2
|
||||||
|
db 7 ; number of items
|
||||||
|
db FIELDDEBUG_GO_TO_NEXT_PAGE
|
||||||
|
db FIELDDEBUG_POKEMART_MENU
|
||||||
|
db FIELDDEBUG_HEAL_POKEMON
|
||||||
|
db FIELDDEBUG_TRAINER_GEAR
|
||||||
|
db FIELDDEBUG_MINIGAMES
|
||||||
|
db FIELDDEBUG_MAP_VIEWER
|
||||||
|
db FIELDDEBUG_CLOSE_MENU
|
||||||
|
db -1
|
||||||
|
|
||||||
|
; page 3
|
||||||
|
db 7 ; number of items
|
||||||
|
db FIELDDEBUG_GO_TO_NEXT_PAGE
|
||||||
|
db FIELDDEBUG_CLEAR_EVENT_FLAGS
|
||||||
|
db FIELDDEBUG_VRAM_VIEWER
|
||||||
|
db FIELDDEBUG_TELEPORT
|
||||||
|
db FIELDDEBUG_FOLLOW_NPC_TEST
|
||||||
|
db FIELDDEBUG_TOWN_MAP
|
||||||
|
db FIELDDEBUG_CLOSE_MENU
|
||||||
|
db -1
|
||||||
|
|
||||||
10
data/field_debug_pokemart_items.inc
Normal file
10
data/field_debug_pokemart_items.inc
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
DebugMart_ItemList:
|
||||||
|
db ITEM_BICYCLE
|
||||||
|
db ITEM_MOON_STONE
|
||||||
|
db ITEM_ANTIDOTE
|
||||||
|
db ITEM_BURN_HEAL
|
||||||
|
db ITEM_MAX_POTION
|
||||||
|
db ITEM_HYPER_POTION
|
||||||
|
db ITEM_SUPER_POTION
|
||||||
|
db ITEM_POTION
|
||||||
|
db -1
|
||||||
38
data/field_debug_usable_items_1.inc
Normal file
38
data/field_debug_usable_items_1.inc
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
ItemTest_UsableItems:
|
||||||
|
db ITEM_BURN_HEAL
|
||||||
|
db ITEM_ICE_HEAL
|
||||||
|
db ITEM_AWAKENING
|
||||||
|
db ITEM_PARLYZ_HEAL
|
||||||
|
db ITEM_FULL_RESTORE
|
||||||
|
db ITEM_MAX_POTION
|
||||||
|
db ITEM_HYPER_POTION
|
||||||
|
db ITEM_SUPER_POTION
|
||||||
|
db ITEM_POTION
|
||||||
|
db ITEM_ESCAPE_ROPE
|
||||||
|
db ITEM_REPEL
|
||||||
|
db ITEM_RARE_CANDY
|
||||||
|
db ITEM_X_ACCURACY
|
||||||
|
db ITEM_LEAF_STONE
|
||||||
|
db ITEM_23
|
||||||
|
db ITEM_NUGGET
|
||||||
|
db ITEM_POKE_DOLL
|
||||||
|
db ITEM_FULL_HEAL
|
||||||
|
db ITEM_REVIVE
|
||||||
|
db ITEM_MAX_REVIVE
|
||||||
|
db ITEM_SODA_POP
|
||||||
|
db ITEM_X_SPEED
|
||||||
|
db ITEM_X_SPECIAL
|
||||||
|
db ITEM_COIN_CASE
|
||||||
|
db ITEM_3C
|
||||||
|
db ITEM_SUPER_ROD
|
||||||
|
db ITEM_PP_UP
|
||||||
|
db ITEM_ELIXER
|
||||||
|
db ITEM_MYSTIC_PETAL
|
||||||
|
db ITEM_WHITE_FEATHER
|
||||||
|
db ITEM_CONFUSE_CLAW
|
||||||
|
db ITEM_SNAKESKIN
|
||||||
|
db ITEM_ELECTRIC_POUCH
|
||||||
|
db ITEM_TOXIC_NEEDLE
|
||||||
|
db ITEM_KINGS_ROCK
|
||||||
|
db ITEM_STRANGE_POWER
|
||||||
|
db -1
|
||||||
9
data/field_debug_usable_items_2.inc
Normal file
9
data/field_debug_usable_items_2.inc
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
ItemTest_UsableItems2:
|
||||||
|
db ITEM_BICYCLE
|
||||||
|
db ITEM_CARBOS
|
||||||
|
db ITEM_UP_GRADE
|
||||||
|
db ITEM_BIG_LEAF
|
||||||
|
db ITEM_SHARP_STONE
|
||||||
|
db ITEM_BLACK_FEATHER
|
||||||
|
db ITEM_SHARP_FANG
|
||||||
|
db -1
|
||||||
39
engine/debug/field/change_tileset.inc
Normal file
39
engine/debug/field/change_tileset.inc
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
SECTION "engine/debug/field/change_tileset.inc@FieldDebug_ChangeTileset", ROMX
|
||||||
|
|
||||||
|
FieldDebug_ChangeTileset:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
ld a, [wMapTileset]
|
||||||
|
inc a
|
||||||
|
ld [wMenuCursorBuffer], a
|
||||||
|
call VerticalMenu
|
||||||
|
call CloseWindow
|
||||||
|
jr c, .reopen
|
||||||
|
ld a, [wMapTileset]
|
||||||
|
ld b, a
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
dec a
|
||||||
|
cp b
|
||||||
|
jr z, .reopen
|
||||||
|
ld [wMapTileset], a
|
||||||
|
call LoadTileset
|
||||||
|
call LoadTilesetGFX
|
||||||
|
jr FieldDebug_ChangeTileset
|
||||||
|
|
||||||
|
.reopen:
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 8, 10
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 3
|
||||||
|
db "セル1@"
|
||||||
|
db "セル2@"
|
||||||
|
db "セル3@"
|
||||||
|
|
||||||
168
engine/debug/field/change_transportation.inc
Normal file
168
engine/debug/field/change_transportation.inc
Normal file
|
|
@ -0,0 +1,168 @@
|
||||||
|
FieldDebug_ChangeTransportation:
|
||||||
|
ld hl, .ChangeTransportationMenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
ld a, [wPlayerState]
|
||||||
|
call GetActiveTransportation
|
||||||
|
ld [wMenuCursorBuffer], a
|
||||||
|
dec a
|
||||||
|
call CopyNameFromMenu
|
||||||
|
call VerticalMenu
|
||||||
|
jp c, .exit
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
call SetTransportation
|
||||||
|
ld hl, wPlayerState
|
||||||
|
cp [hl]
|
||||||
|
jr z, .exit
|
||||||
|
cp PLAYER_SURF
|
||||||
|
jr z, .check_surf
|
||||||
|
ld [wPlayerState], a
|
||||||
|
and a
|
||||||
|
jr z, .walking
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
dec a
|
||||||
|
call CopyNameFromMenu
|
||||||
|
call CloseWindow
|
||||||
|
call CloseWindow
|
||||||
|
ld hl, .PlayerTransportationString2
|
||||||
|
call MenuTextBox
|
||||||
|
jr .update_sprite
|
||||||
|
|
||||||
|
.walking
|
||||||
|
ld a, -1
|
||||||
|
ld [wSkatingDirection], a
|
||||||
|
call CloseWindow
|
||||||
|
call CloseWindow
|
||||||
|
call PlayMapMusic
|
||||||
|
ld hl, .PlayerTransportationString1
|
||||||
|
call MenuTextBox
|
||||||
|
|
||||||
|
.update_sprite
|
||||||
|
callab GetPlayerSprite
|
||||||
|
ld a, BUTTONS
|
||||||
|
call FieldDebug_WaitJoypadInput
|
||||||
|
call CloseWindow
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLEANUP
|
||||||
|
ret
|
||||||
|
|
||||||
|
.check_surf
|
||||||
|
call FieldDebug_CheckFacingSurfable
|
||||||
|
jr c, .cannot_surf
|
||||||
|
ld [wPlayerState], a
|
||||||
|
call FieldDebug_SetSurfDirection
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
dec a
|
||||||
|
call CopyNameFromMenu
|
||||||
|
call CloseWindow
|
||||||
|
call CloseWindow
|
||||||
|
ld hl, .PlayerTransportationString2
|
||||||
|
call MenuTextBox
|
||||||
|
jr .update_sprite
|
||||||
|
|
||||||
|
.cannot_surf
|
||||||
|
ld hl, .CannotSurfString
|
||||||
|
call MenuTextBox
|
||||||
|
ld a, BUTTONS
|
||||||
|
call FieldDebug_WaitJoypadInput
|
||||||
|
call CloseWindow
|
||||||
|
|
||||||
|
.exit
|
||||||
|
call CloseWindow
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ChangeTransportationMenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 3, 3, 12, 13
|
||||||
|
dw .ChangeTransportationMenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.ChangeTransportationMenuData:
|
||||||
|
db STATICMENU_WRAP | STATICMENU_CURSOR
|
||||||
|
db 4
|
||||||
|
db "あるき@"
|
||||||
|
db "じてんしゃ@"
|
||||||
|
db "スケボー@"
|
||||||
|
db "ラプラス@"
|
||||||
|
|
||||||
|
.PlayerTransportationString1:
|
||||||
|
text "<PLAYER>は@"
|
||||||
|
text_low
|
||||||
|
text_from_ram wStringBuffer2
|
||||||
|
text "から おりた"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.PlayerTransportationString2:
|
||||||
|
text "<PLAYER>は@"
|
||||||
|
text_low
|
||||||
|
text_from_ram wStringBuffer2
|
||||||
|
text "に のった"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.CannotSurfString:
|
||||||
|
text "ここでは のることが"
|
||||||
|
next "できません"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
SetTransportation:
|
||||||
|
ld hl, TransportationList
|
||||||
|
dec a
|
||||||
|
ld c, a
|
||||||
|
ld b, 0
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
GetActiveTransportation:
|
||||||
|
ld hl, TransportationList
|
||||||
|
ld b, 1
|
||||||
|
.loop
|
||||||
|
cp [hl]
|
||||||
|
jr z, .got_transportation
|
||||||
|
inc hl
|
||||||
|
inc b
|
||||||
|
jr .loop
|
||||||
|
.got_transportation
|
||||||
|
ld a, b
|
||||||
|
ret
|
||||||
|
|
||||||
|
TransportationList:
|
||||||
|
db PLAYER_NORMAL
|
||||||
|
db PLAYER_BIKE
|
||||||
|
db PLAYER_SKATE
|
||||||
|
db PLAYER_SURF
|
||||||
|
|
||||||
|
FieldDebug_CheckFacingSurfable:
|
||||||
|
push af
|
||||||
|
call GetFacingTileCoord
|
||||||
|
and COLLISION_TYPE_MASK
|
||||||
|
cp OLD_COLLISION_TYPE_WATER ; happens to match COLLISION_TYPE_WATER
|
||||||
|
jr z, .surfable
|
||||||
|
cp OLD_COLLISION_TYPE_WATER2
|
||||||
|
jr z, .surfable
|
||||||
|
; not surfable
|
||||||
|
pop af
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
.surfable
|
||||||
|
pop af
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_SetSurfDirection:
|
||||||
|
ld a, [wPlayerWalking]
|
||||||
|
srl a
|
||||||
|
srl a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, .Directions
|
||||||
|
add hl, de
|
||||||
|
ld a, [hl]
|
||||||
|
ld [wPlayerMovement], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Directions:
|
||||||
|
db SLOW_STEP_DOWN
|
||||||
|
db SLOW_STEP_UP
|
||||||
|
db SLOW_STEP_LEFT
|
||||||
|
db SLOW_STEP_RIGHT
|
||||||
|
|
||||||
64
engine/debug/field/check_tile.inc
Normal file
64
engine/debug/field/check_tile.inc
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
FieldDebug_CheckTile:
|
||||||
|
call .CheckTile
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CheckTile:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
call MenuBox
|
||||||
|
ld a, [wPlayerNextMapX]
|
||||||
|
ld d, a
|
||||||
|
ld a, [wPlayerNextMapY]
|
||||||
|
ld e, a
|
||||||
|
call GetBlockLocation
|
||||||
|
ld a, [hl]
|
||||||
|
push af
|
||||||
|
call MenuBoxCoord2Tile
|
||||||
|
ld bc, $2a
|
||||||
|
add hl, bc
|
||||||
|
pop af
|
||||||
|
call .ShowTileNumber
|
||||||
|
ld a, 10
|
||||||
|
call DelayFrames
|
||||||
|
ld a, BUTTONS
|
||||||
|
call FieldDebug_WaitJoypadInput
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db $40
|
||||||
|
menu_coords 0, 0, 5, 4
|
||||||
|
dw .MenuData
|
||||||
|
db 0
|
||||||
|
|
||||||
|
.MenuData: ; empty
|
||||||
|
db 0
|
||||||
|
|
||||||
|
.ShowTileNumber:
|
||||||
|
push af
|
||||||
|
swap a
|
||||||
|
and $f
|
||||||
|
call .ShowHexDigit
|
||||||
|
ld [hli], a
|
||||||
|
pop af
|
||||||
|
and $f
|
||||||
|
call .ShowHexDigit
|
||||||
|
ld [hli], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ShowHexDigit:
|
||||||
|
push de
|
||||||
|
push hl
|
||||||
|
ld hl, .HexadecimalNumbers
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
add hl, de
|
||||||
|
ld a, [hl]
|
||||||
|
pop hl
|
||||||
|
pop de
|
||||||
|
ret
|
||||||
|
|
||||||
|
.HexadecimalNumbers:
|
||||||
|
db "0123456789ABCDEF"
|
||||||
|
|
||||||
93
engine/debug/field/field_cut.inc
Normal file
93
engine/debug/field/field_cut.inc
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
FieldDebug_FieldCut:
|
||||||
|
call .DetermineEnvironment
|
||||||
|
jr c, .close_menu
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.close_menu
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLEANUP
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DetermineEnvironment:
|
||||||
|
call GetMapEnvironment
|
||||||
|
cp ROUTE
|
||||||
|
jr z, .outdoors
|
||||||
|
; Exit if indoors
|
||||||
|
cp TOWN
|
||||||
|
jr nz, .exit
|
||||||
|
|
||||||
|
.outdoors
|
||||||
|
call .CheckGrassMetatile
|
||||||
|
jr z, .in_grass
|
||||||
|
call .IsCollision
|
||||||
|
jr nz, .exit
|
||||||
|
call .IsCuttableTile
|
||||||
|
jr nc, .exit
|
||||||
|
ld [hl], a
|
||||||
|
jr .do_cut
|
||||||
|
.in_grass
|
||||||
|
ld [hl], METATILE_LAWN
|
||||||
|
.do_cut
|
||||||
|
call CloseWindow
|
||||||
|
ld de, SFX_SHINE
|
||||||
|
call PlaySFX
|
||||||
|
call LoadMapPart
|
||||||
|
call UpdateSprites
|
||||||
|
call WaitBGMap
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.exit
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CheckGrassMetatile:
|
||||||
|
ld a, [wPlayerNextMapX]
|
||||||
|
ld d, a
|
||||||
|
ld a, [wPlayerNextMapY]
|
||||||
|
ld e, a
|
||||||
|
call GetBlockLocation
|
||||||
|
ld a, [hl]
|
||||||
|
cp METATILE_GRASS
|
||||||
|
ret
|
||||||
|
|
||||||
|
.IsCollision: ; broken
|
||||||
|
call GetFacingTileCoord
|
||||||
|
cp OLD_COLLISION_CUT_TREE
|
||||||
|
ret
|
||||||
|
|
||||||
|
.IsCuttableTile:
|
||||||
|
call GetBlockLocation
|
||||||
|
ld a, [hl]
|
||||||
|
ld b, a
|
||||||
|
ld de, .CuttableMetatiles
|
||||||
|
.find_cuttables
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
cp b
|
||||||
|
jr z, .got_cuttable
|
||||||
|
cp -1
|
||||||
|
jr z, .not_cuttable
|
||||||
|
inc de
|
||||||
|
jr .find_cuttables
|
||||||
|
|
||||||
|
.got_cuttable
|
||||||
|
ld a, [de]
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.not_cuttable
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CuttableMetatiles:
|
||||||
|
db METATILE_CUT_SE_TREES_N
|
||||||
|
db METATILE_SMALL_TREES_N
|
||||||
|
db METATILE_CUT_NW_TREES_E
|
||||||
|
db METATILE_SMALL_TREES_E
|
||||||
|
db METATILE_CUT_NE_TREE_NW
|
||||||
|
db METATILE_SMALL_TREE_NW
|
||||||
|
db METATILE_CUT_NE_TREE_SE
|
||||||
|
db METATILE_SMALL_TREE_SE
|
||||||
|
db -1
|
||||||
|
|
||||||
102
engine/debug/field/follow_npc_test.inc
Normal file
102
engine/debug/field/follow_npc_test.inc
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
FieldDebug_FollowNPCTest:
|
||||||
|
call .DoFollowNPC
|
||||||
|
jr c, .exit
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
.exit
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoFollowNPC:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
call VerticalMenu
|
||||||
|
jr c, .close
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
cp 1
|
||||||
|
jr nz, .end
|
||||||
|
ld a, [wObjectFollow_Follower]
|
||||||
|
and a
|
||||||
|
jr nz, .cannot_use
|
||||||
|
call .asm_fc9a5
|
||||||
|
call CloseWindow
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.end
|
||||||
|
call .asm_fc9c2
|
||||||
|
jr .close
|
||||||
|
.cannot_use
|
||||||
|
ld hl, .CannotUseWithPokemonText
|
||||||
|
call MenuTextBox
|
||||||
|
call CloseWindow
|
||||||
|
.close
|
||||||
|
call CloseWindow
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_fc9a5:
|
||||||
|
callab Function8047
|
||||||
|
ld a, 1
|
||||||
|
call Function15ed
|
||||||
|
ld a, 1
|
||||||
|
ld hl, .MovementData
|
||||||
|
call LoadMovementDataPointer
|
||||||
|
ld b, 1
|
||||||
|
ld c, 0
|
||||||
|
call StartFollow
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_fc9c2:
|
||||||
|
call Function18cc
|
||||||
|
ld a, 1
|
||||||
|
call Function169f
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 3, 3, 9, 9
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 2
|
||||||
|
db "はじめる@"
|
||||||
|
db "おわる@"
|
||||||
|
|
||||||
|
.CannotUseWithPokemonText:
|
||||||
|
text "ポケモンを つれているときは"
|
||||||
|
next "だめです"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.MovementData:
|
||||||
|
db FACE_UP
|
||||||
|
db SLOW_STEP_UP
|
||||||
|
db STEP_UP
|
||||||
|
db STEP_RIGHT
|
||||||
|
db FAST_STEP_RIGHT
|
||||||
|
db JUMP_DOWN
|
||||||
|
db FAST_STEP_DOWN
|
||||||
|
db FAST_STEP_DOWN
|
||||||
|
db STEP_DOWN
|
||||||
|
db STEP_LEFT
|
||||||
|
db STEP_LEFT
|
||||||
|
db JUMP_UP
|
||||||
|
db SLOW_STEP_UP
|
||||||
|
db MOVEMENT_33
|
||||||
|
|
||||||
|
MenuHeaderfca01: ; unreferenced?
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 11, 10
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_WRAP | STATICMENU_CURSOR
|
||||||
|
db 4
|
||||||
|
db "ポケモンつれあるき@"
|
||||||
|
db "つれあるかれデモ@"
|
||||||
|
db "ライバルおねえさん@"
|
||||||
|
db "さくせいちゅう@"
|
||||||
|
|
||||||
277
engine/debug/field/item_test.inc
Normal file
277
engine/debug/field/item_test.inc
Normal file
|
|
@ -0,0 +1,277 @@
|
||||||
|
ItemTest_BagMenu:
|
||||||
|
dw .MenuHeader
|
||||||
|
dw wRegularItemsCursor
|
||||||
|
dw wRegularItemsScrollPosition
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 4, 1, 19, 10
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db SCROLLINGMENU_ENABLE_LEFT | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_FUNCTION3
|
||||||
|
db 4, 8 ; rows, columns
|
||||||
|
db SCROLLINGMENU_ITEMS_QUANTITY
|
||||||
|
dbw 0, wItems
|
||||||
|
; Incorrectly configured, will cause the game to crash
|
||||||
|
db BANK(PlaceMenuItemName), $cd
|
||||||
|
dw PlaceMenuItemName
|
||||||
|
db BANK(PlaceMenuItemQuantity), $cd
|
||||||
|
dw PlaceMenuItemQuantity
|
||||||
|
db BANK(UpdateItemDescription)
|
||||||
|
dw UpdateItemDescription
|
||||||
|
|
||||||
|
ItemTest_KeyItemMenu:
|
||||||
|
dw .MenuHeader
|
||||||
|
dw wBackpackAndKeyItemsCursor
|
||||||
|
dw wBackpackAndKeyItemsScrollPosition
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 4, 1, 19, 10
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db SCROLLINGMENU_ENABLE_LEFT | SCROLLINGMENU_ENABLE_RIGHT | SCROLLINGMENU_ENABLE_FUNCTION3
|
||||||
|
db 4, 8 ; rows, columns
|
||||||
|
db SCROLLINGMENU_ITEMS_QUANTITY
|
||||||
|
dbw 0, wNumKeyItems
|
||||||
|
; Incorrectly configured, will cause the game to crash
|
||||||
|
db BANK(PlaceMenuItemName), $cd
|
||||||
|
dw PlaceMenuItemName
|
||||||
|
db BANK(PlaceMenuItemQuantity), $cd
|
||||||
|
dw PlaceMenuItemQuantity
|
||||||
|
db BANK(UpdateItemDescription)
|
||||||
|
dw UpdateItemDescription
|
||||||
|
|
||||||
|
FieldDebug_ItemTest:
|
||||||
|
call ClearSprites
|
||||||
|
ld hl, wVramState
|
||||||
|
res 0, [hl]
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
call ClearTileMap
|
||||||
|
call UpdateSprites
|
||||||
|
call .DoItemTest
|
||||||
|
ld hl, wVramState
|
||||||
|
set 0, [hl]
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
; unused
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ClearTilemap:
|
||||||
|
ld hl, wTileMap
|
||||||
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||||
|
ld a, $f1
|
||||||
|
call ByteFill
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoItemTest:
|
||||||
|
call .ClearTilemap
|
||||||
|
.bag_menu
|
||||||
|
ld hl, ItemTest_BagMenu
|
||||||
|
call Function3810
|
||||||
|
ld a, [wMenuJoypad]
|
||||||
|
cp B_BUTTON
|
||||||
|
jr z, .exit_menu
|
||||||
|
cp D_LEFT
|
||||||
|
jr z, .key_item_menu
|
||||||
|
cp D_RIGHT
|
||||||
|
jr z, .key_item_menu
|
||||||
|
jr .DecideAction
|
||||||
|
|
||||||
|
.key_item_menu
|
||||||
|
ld hl, ItemTest_KeyItemMenu
|
||||||
|
call Function3810
|
||||||
|
ld a, [wMenuJoypad]
|
||||||
|
cp B_BUTTON
|
||||||
|
jr z, .exit_menu
|
||||||
|
cp D_LEFT
|
||||||
|
jr z, .bag_menu
|
||||||
|
cp D_RIGHT
|
||||||
|
jr z, .bag_menu
|
||||||
|
ld hl, .CannotUsePCToolsText
|
||||||
|
call MenuTextBox
|
||||||
|
call CloseWindow
|
||||||
|
jr .key_item_menu
|
||||||
|
|
||||||
|
.CannotUsePCToolsText:
|
||||||
|
text "パソコンの どうぐ は"
|
||||||
|
next "つかえません"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.restart
|
||||||
|
jp .DoItemTest
|
||||||
|
|
||||||
|
.exit_menu
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
; unused
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DecideAction:
|
||||||
|
ld a, [wScrollingMenuCursorPosition]
|
||||||
|
ld [wItemIndex], a
|
||||||
|
call .ClearMenu
|
||||||
|
call PlaceHollowCursor
|
||||||
|
ld hl, .UseOrTossMenuHeader
|
||||||
|
call GetMenu2
|
||||||
|
jp c, .restart
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
cp 2
|
||||||
|
jr z, .toss_item
|
||||||
|
jp .continue
|
||||||
|
; unused
|
||||||
|
ld hl, .ItemPickedText
|
||||||
|
call FieldDebug_ShowTextboxAndExit
|
||||||
|
jp .restart
|
||||||
|
|
||||||
|
.ItemPickedText:
|
||||||
|
text "アイテムを えらんだ!"
|
||||||
|
done
|
||||||
|
|
||||||
|
.ClearMenu:
|
||||||
|
call MenuBoxCoord2Tile
|
||||||
|
ld de, $14
|
||||||
|
add hl, de
|
||||||
|
ld de, $28
|
||||||
|
ld a, [wMenuDataItems]
|
||||||
|
.clear_menu_loop
|
||||||
|
ld [hl], " "
|
||||||
|
add hl, de
|
||||||
|
dec a
|
||||||
|
jr nz, .clear_menu_loop
|
||||||
|
ret
|
||||||
|
|
||||||
|
.UseOrTossMenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 14, 10, 19, 14
|
||||||
|
dw .UseOrTossMenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.UseOrTossMenuData:
|
||||||
|
db $c0
|
||||||
|
db 2
|
||||||
|
db "つかう@"
|
||||||
|
db "すてる@"
|
||||||
|
|
||||||
|
.toss_item
|
||||||
|
ld hl, wItems
|
||||||
|
call .DetermineItemTossable
|
||||||
|
jp .DoItemTest
|
||||||
|
|
||||||
|
.DetermineItemTossable:
|
||||||
|
push hl
|
||||||
|
callab _CheckTossableItem
|
||||||
|
pop hl
|
||||||
|
ld a, [wItemAttributeParamBuffer]
|
||||||
|
and a
|
||||||
|
jr nz, .not_tossable
|
||||||
|
call .tossable
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.not_tossable
|
||||||
|
ld hl, .CannotTossText
|
||||||
|
call MenuTextBox
|
||||||
|
call CloseWindow
|
||||||
|
.done
|
||||||
|
ret
|
||||||
|
|
||||||
|
.tossable
|
||||||
|
push hl
|
||||||
|
callab SelectQuantityToToss
|
||||||
|
jr c, .cancel_toss
|
||||||
|
call .load_item
|
||||||
|
ld hl, .TossConfirmText
|
||||||
|
call MenuTextBox
|
||||||
|
call YesNoBox
|
||||||
|
call CloseWindow
|
||||||
|
jr c, .cancel_toss
|
||||||
|
ld a, [wItemIndex]
|
||||||
|
pop hl
|
||||||
|
call TossItem
|
||||||
|
call .load_item
|
||||||
|
|
||||||
|
; Crashes here; .ItemTossedText should be loaded to hl instead
|
||||||
|
call .ItemTossedText
|
||||||
|
call MenuTextBox
|
||||||
|
|
||||||
|
call ExitMenu
|
||||||
|
call CloseWindow
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.cancel_toss
|
||||||
|
; Missing pop after push
|
||||||
|
call CloseWindow
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.load_item
|
||||||
|
predef LoadItemData
|
||||||
|
ret
|
||||||
|
|
||||||
|
.TossConfirmText:
|
||||||
|
text_from_ram wStringBuffer2
|
||||||
|
text "を すてます"
|
||||||
|
line "ほんとに よろしいですか?"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.ItemTossedText:
|
||||||
|
text_from_ram wStringBuffer1
|
||||||
|
text "を"
|
||||||
|
line "すてました!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.CannotTossText:
|
||||||
|
text "それは とても たいせつなモノです"
|
||||||
|
line "すてることは できません!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.continue
|
||||||
|
predef LoadItemData
|
||||||
|
ld a, [wCurItem]
|
||||||
|
cp ITEM_TM01
|
||||||
|
jr nc, .use_item2
|
||||||
|
ld a, [wCurItem]
|
||||||
|
call ItemTest_FindUsableItem2
|
||||||
|
jr c, .use_item
|
||||||
|
ld a, [wCurItem]
|
||||||
|
call ItemTest_FindUsableItem
|
||||||
|
jr c, .use_item2
|
||||||
|
call UseItem
|
||||||
|
jp .restart
|
||||||
|
|
||||||
|
.use_item
|
||||||
|
call UseItem
|
||||||
|
ld a, [wFieldMoveSucceeded]
|
||||||
|
and a
|
||||||
|
jp z, .restart
|
||||||
|
ld a, FIELDDEBUG_RETURN_WAIT_INPUT
|
||||||
|
ret
|
||||||
|
|
||||||
|
.use_item2
|
||||||
|
call UseItem
|
||||||
|
call ClearBGPalettes
|
||||||
|
call Function360b
|
||||||
|
jp .restart
|
||||||
|
|
||||||
|
ItemTest_FindUsableItem:
|
||||||
|
ld hl, ItemTest_UsableItems
|
||||||
|
ld de, 1
|
||||||
|
call FindItemInTable
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "data/field_debug_usable_items_1.inc"
|
||||||
|
|
||||||
|
ItemTest_FindUsableItem2:
|
||||||
|
ld hl, ItemTest_UsableItems2
|
||||||
|
ld de, 1
|
||||||
|
call FindItemInTable
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "data/field_debug_usable_items_2.inc"
|
||||||
432
engine/debug/field/map_viewer.inc
Normal file
432
engine/debug/field/map_viewer.inc
Normal file
|
|
@ -0,0 +1,432 @@
|
||||||
|
; DebugMapViewer.Jumptable constants
|
||||||
|
const_def
|
||||||
|
const DEBUGMAPVIEWER_EMPTY ; 0
|
||||||
|
const DEBUGMAPVIEWER_INIT ; 1
|
||||||
|
const DEBUGMAPVIEWER_CONTROL_CURSOR ; 2
|
||||||
|
const DEBUGMAPVIEWER_MOVE_CURSOR_TO_PLAYER ; 3
|
||||||
|
const DEBUGMAPVIEWER_WAIT_FINISHED_MOVING ; 4
|
||||||
|
const DEBUGMAPVIEWER_CLEANUP ; 5
|
||||||
|
|
||||||
|
FieldDebug_OpenMapViewer:
|
||||||
|
call .DoOpen
|
||||||
|
jr c, .done
|
||||||
|
ld a, FIELDDEBUG_RETURN_EXIT
|
||||||
|
ret
|
||||||
|
|
||||||
|
.done
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoOpen:
|
||||||
|
ld hl, .MapViewPrompt
|
||||||
|
call MenuTextBox
|
||||||
|
call YesNoBox
|
||||||
|
call CloseWindow
|
||||||
|
ret c
|
||||||
|
|
||||||
|
ldh a, [hROMBank]
|
||||||
|
ld hl, .MapViewScript
|
||||||
|
call QueueScript
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MapViewPrompt:
|
||||||
|
text "マップビューワーを"
|
||||||
|
line "しようしますか?"
|
||||||
|
done
|
||||||
|
|
||||||
|
.MapViewScript:
|
||||||
|
ld a, 9
|
||||||
|
call WriteIntod637
|
||||||
|
xor a
|
||||||
|
ldh [hJoypadSum], a
|
||||||
|
ld a, DEBUGMAPVIEWER_INIT
|
||||||
|
ldh [hDebugMapViewerJumptable], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
DebugMapViewer::
|
||||||
|
ld a, [wd153]
|
||||||
|
ld b, a
|
||||||
|
ld a, [wToolgearFlags]
|
||||||
|
ld c, a
|
||||||
|
push bc
|
||||||
|
call EnableToolgearCoords
|
||||||
|
call InitToolgearBuffer
|
||||||
|
.loop
|
||||||
|
call GetJoypad
|
||||||
|
call .do_jumptable
|
||||||
|
jr c, .continue
|
||||||
|
call Function2c4a
|
||||||
|
jr nc, .loop
|
||||||
|
callab Function824c
|
||||||
|
jr .loop
|
||||||
|
|
||||||
|
.continue
|
||||||
|
ld a, 4
|
||||||
|
call WriteIntod637
|
||||||
|
pop bc
|
||||||
|
ld a, b
|
||||||
|
ld [wd153], a
|
||||||
|
ld a, c
|
||||||
|
ld [wToolgearFlags], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.do_jumptable
|
||||||
|
ld a, [wDebugFlags]
|
||||||
|
bit 1, a
|
||||||
|
ret z
|
||||||
|
ldh a, [hDebugMapViewerJumptable]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, .Jumptable
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
jp hl
|
||||||
|
|
||||||
|
.Jumptable:
|
||||||
|
dw .Empty
|
||||||
|
dw .Init
|
||||||
|
dw .ControlCursor
|
||||||
|
dw .MoveCursorToPlayer
|
||||||
|
dw .WaitFinishedMoving
|
||||||
|
dw .Cleanup
|
||||||
|
|
||||||
|
.Empty:
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Init:
|
||||||
|
call Function18b4
|
||||||
|
call DebugMapViewer_LoadCursorSprite
|
||||||
|
call DebugMapViewer_ReplacePlayerObject
|
||||||
|
ld a, $2a
|
||||||
|
ld [wMovementObject], a
|
||||||
|
ld a, DEBUGMAPVIEWER_CONTROL_CURSOR
|
||||||
|
ldh [hDebugMapViewerJumptable], a
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ControlCursor:
|
||||||
|
ldh a, [hJoypadSum]
|
||||||
|
ld b, a
|
||||||
|
xor a
|
||||||
|
ldh [hJoypadSum], a
|
||||||
|
ld a, b
|
||||||
|
and START
|
||||||
|
jr nz, .start_pressed
|
||||||
|
ldh a, [hJoyState]
|
||||||
|
and A_BUTTON
|
||||||
|
jr nz, .a_pressed
|
||||||
|
call DebugMapViewer_DoMovement
|
||||||
|
jr .apply_movement
|
||||||
|
.start_pressed
|
||||||
|
call DebugMapViewer_ShowViewerPrompt
|
||||||
|
ld a, $2a
|
||||||
|
jr .apply_movement
|
||||||
|
.a_pressed
|
||||||
|
call DebugMapViewer_ShowSelectedDetails
|
||||||
|
ld a, $2a
|
||||||
|
.apply_movement
|
||||||
|
ld [wMovementObject], a
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MoveCursorToPlayer:
|
||||||
|
ld a, 1
|
||||||
|
ld hl, wMovementBuffer
|
||||||
|
call LoadMovementDataPointer
|
||||||
|
ld d, 2
|
||||||
|
ld b, 1
|
||||||
|
ld c, 0
|
||||||
|
callab Function83a2
|
||||||
|
ld a, DEBUGMAPVIEWER_WAIT_FINISHED_MOVING
|
||||||
|
ldh [hDebugMapViewerJumptable], a
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.WaitFinishedMoving:
|
||||||
|
ld hl, wVramState
|
||||||
|
bit 7, [hl]
|
||||||
|
jr nz, .skip
|
||||||
|
ld a, DEBUGMAPVIEWER_CLEANUP
|
||||||
|
ldh [hDebugMapViewerJumptable], a
|
||||||
|
.skip
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Cleanup:
|
||||||
|
ld a, 1
|
||||||
|
call Function169f
|
||||||
|
call Function18cc
|
||||||
|
ld a, 0
|
||||||
|
call Function1908
|
||||||
|
xor a
|
||||||
|
ldh [hDebugMapViewerJumptable], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
DebugMapViewer_ShowViewerPrompt:
|
||||||
|
call RefreshScreen
|
||||||
|
ld hl, .ChangeViewerPrompt
|
||||||
|
call MenuTextBox
|
||||||
|
call YesNoBox
|
||||||
|
call CloseWindow
|
||||||
|
jr c, .no
|
||||||
|
ld a, DEBUGMAPVIEWER_MOVE_CURSOR_TO_PLAYER
|
||||||
|
ldh [hDebugMapViewerJumptable], a
|
||||||
|
.no
|
||||||
|
call Function1fea
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ChangeViewerPrompt:
|
||||||
|
text "ビューワーモードを"
|
||||||
|
line "かいじょ しますか?"
|
||||||
|
done
|
||||||
|
|
||||||
|
DebugMapViewer_ShowSelectedDetails:
|
||||||
|
ld a, 0
|
||||||
|
ldh [hTextBoxCursorBlinkInterval], a
|
||||||
|
ld bc, wObjectStructs
|
||||||
|
callab Function77a1
|
||||||
|
jr nc, .skip
|
||||||
|
call RefreshScreen
|
||||||
|
call .DisplayActorCastID
|
||||||
|
call Function1fea
|
||||||
|
ret
|
||||||
|
.skip
|
||||||
|
call DisplayBGEventDetails
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DisplayActorCastID:
|
||||||
|
ld hl, .ActorCastText
|
||||||
|
call MenuTextBox
|
||||||
|
|
||||||
|
; Display index of selected object from map objects
|
||||||
|
; (referred to as "actor number")
|
||||||
|
ld de, hEventID
|
||||||
|
hlcoord 10, 14
|
||||||
|
ld bc, $0102
|
||||||
|
call PrintNumber
|
||||||
|
|
||||||
|
; Display index of selected object from visible objects
|
||||||
|
; (referred to as "cast number")
|
||||||
|
ldh a, [hEventID]
|
||||||
|
call GetObjectStruct
|
||||||
|
ld hl, OBJECT_MAP_OBJECT_INDEX
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
cp $10
|
||||||
|
jr nc, .invalid_index
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
hlcoord 10, 16
|
||||||
|
ld bc, $0102
|
||||||
|
call PrintNumber
|
||||||
|
jr .wait
|
||||||
|
|
||||||
|
.invalid_index
|
||||||
|
hlcoord 10, 16
|
||||||
|
ld de, .NoneText
|
||||||
|
call PlaceString
|
||||||
|
|
||||||
|
.wait
|
||||||
|
ld a, BUTTONS
|
||||||
|
call FieldDebug_WaitJoypadInput
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ActorCastText:
|
||||||
|
text "アクターナンバー "
|
||||||
|
line "キャストナンバー "
|
||||||
|
done
|
||||||
|
|
||||||
|
.NoneText:
|
||||||
|
db "なし@"
|
||||||
|
|
||||||
|
DebugMapViewer_DoMovement:
|
||||||
|
ld bc, wObjectStructs
|
||||||
|
ldh a, [hJoyState]
|
||||||
|
ld d, a
|
||||||
|
bit D_DOWN_F, a
|
||||||
|
jr nz, .down
|
||||||
|
bit D_UP_F, a
|
||||||
|
jr nz, .up
|
||||||
|
bit D_LEFT_F, a
|
||||||
|
jr nz, .left
|
||||||
|
bit D_RIGHT_F, a
|
||||||
|
jr nz, .right
|
||||||
|
.done
|
||||||
|
ld a, $2a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.down
|
||||||
|
ld a, [wMapHeight]
|
||||||
|
add a
|
||||||
|
add 4
|
||||||
|
ld e, a
|
||||||
|
ld hl, $11
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
inc a
|
||||||
|
cp e
|
||||||
|
jr nc, .done
|
||||||
|
bit 1, d
|
||||||
|
ld a, $c
|
||||||
|
ret nz
|
||||||
|
ld a, 8
|
||||||
|
ret
|
||||||
|
|
||||||
|
.up
|
||||||
|
ld hl, $11
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
dec a
|
||||||
|
cp 4
|
||||||
|
jr c, .done
|
||||||
|
bit 1, d
|
||||||
|
ld a, $d
|
||||||
|
ret nz
|
||||||
|
ld a, 9
|
||||||
|
ret
|
||||||
|
|
||||||
|
.left
|
||||||
|
ld hl, $10
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
dec a
|
||||||
|
cp 4
|
||||||
|
jr c, .done
|
||||||
|
bit 1, d
|
||||||
|
ld a, $e
|
||||||
|
ret nz
|
||||||
|
ld a, $a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.right
|
||||||
|
ld a, [wMapWidth]
|
||||||
|
add a
|
||||||
|
add 4
|
||||||
|
ld e, a
|
||||||
|
ld hl, $10
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
inc a
|
||||||
|
cp e
|
||||||
|
jr nc, .done
|
||||||
|
bit 1, d
|
||||||
|
ld a, $f
|
||||||
|
ret nz
|
||||||
|
ld a, $b
|
||||||
|
ret
|
||||||
|
|
||||||
|
DebugMapViewer_ReplacePlayerObject:
|
||||||
|
callab Function807b
|
||||||
|
ld a, 1
|
||||||
|
call Function15ed
|
||||||
|
ld a, 1
|
||||||
|
call Function1908
|
||||||
|
ld bc, wObjectStructs
|
||||||
|
ld hl, OBJECT_FLAGS
|
||||||
|
add hl, bc
|
||||||
|
set 3, [hl]
|
||||||
|
set 2, [hl]
|
||||||
|
set 1, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
Datafd044:
|
||||||
|
_NUM_OBJECT_EVENTS = 0
|
||||||
|
object_event -4, -4, SPRITE_GOLD, $17, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
ds 2
|
||||||
|
|
||||||
|
DebugMapViewer_LoadCursorSprite:
|
||||||
|
ldh a, [hBGMapMode]
|
||||||
|
push af
|
||||||
|
ldh a, [hMapAnims]
|
||||||
|
push af
|
||||||
|
xor a
|
||||||
|
ldh [hBGMapMode], a
|
||||||
|
ld de, TownMapCursorGFX
|
||||||
|
ld hl, $80c0
|
||||||
|
ld bc, $3f04
|
||||||
|
call Get2bpp
|
||||||
|
pop af
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
pop af
|
||||||
|
ldh [hBGMapMode], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
SECTION "engine/debug/field/map_viewer.inc@DisplayBGEventDetails", ROMX
|
||||||
|
|
||||||
|
DisplayBGEventDetails:
|
||||||
|
call GetSignpost
|
||||||
|
ret nc
|
||||||
|
call .Functionfd0cc
|
||||||
|
call RefreshScreen
|
||||||
|
ld hl, .TableText
|
||||||
|
call MenuTextBox
|
||||||
|
call .PrintTableDetails
|
||||||
|
call .WaitInput
|
||||||
|
call CloseWindow
|
||||||
|
call Function1fea
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Functionfd0cc:
|
||||||
|
ld a, [hld]
|
||||||
|
ld [wFieldMoveScriptID], a
|
||||||
|
ld a, [hl]
|
||||||
|
ld [wcdc8], a
|
||||||
|
ld a, d
|
||||||
|
ld [wMapBlocksAddress], a
|
||||||
|
ld a, e
|
||||||
|
ld [wHPBarOldHP], a
|
||||||
|
ld a, b
|
||||||
|
ld [wReplacementBlock], a
|
||||||
|
ld a, [wCurrMapSignCount]
|
||||||
|
sub c
|
||||||
|
inc a
|
||||||
|
ld [wHPBarNewHP], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.TableText:
|
||||||
|
text "テーブル"
|
||||||
|
done
|
||||||
|
|
||||||
|
.PrintTableDetails:
|
||||||
|
hlcoord 8, 14
|
||||||
|
ld de, wMapBlocksAddress
|
||||||
|
call PrintHexByte
|
||||||
|
|
||||||
|
hlcoord 11, 14
|
||||||
|
ld de, wHPBarOldHP
|
||||||
|
call PrintHexByte
|
||||||
|
|
||||||
|
hlcoord 14, 14
|
||||||
|
ld de, wcdc8
|
||||||
|
call PrintHexByte
|
||||||
|
|
||||||
|
hlcoord 17, 14
|
||||||
|
ld de, wFieldMoveScriptID
|
||||||
|
ld bc, $8102
|
||||||
|
call PrintNumber
|
||||||
|
|
||||||
|
hlcoord 14, 16
|
||||||
|
ld de, wReplacementBlock
|
||||||
|
call PrintHexByte
|
||||||
|
|
||||||
|
hlcoord 17, 16
|
||||||
|
ld de, wHPBarNewHP
|
||||||
|
ld bc, $8102
|
||||||
|
call PrintNumber
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
.WaitInput:
|
||||||
|
call GetJoypad
|
||||||
|
ldh a, [hJoyDown]
|
||||||
|
and A_BUTTON | B_BUTTON | SELECT
|
||||||
|
jr z, .WaitInput
|
||||||
|
ret
|
||||||
|
|
||||||
86
engine/debug/field/minigames.inc
Normal file
86
engine/debug/field/minigames.inc
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
FieldDebug_Minigames:
|
||||||
|
call .DoMinigameSelection
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoMinigameSelection:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
call VerticalMenu
|
||||||
|
push af
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
dec a
|
||||||
|
call CopyNameFromMenu
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
dec a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, .MinigamePointers
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [wQueuedScriptBank], a
|
||||||
|
ld a, [hli]
|
||||||
|
ld [wQueuedScriptAddr], a
|
||||||
|
ld a, [hl]
|
||||||
|
ld [wQueuedScriptAddr + 1], a
|
||||||
|
pop af
|
||||||
|
call CloseWindow
|
||||||
|
ret c
|
||||||
|
|
||||||
|
ld hl, .MinigameConfirmationText
|
||||||
|
call MenuTextBox
|
||||||
|
call YesNoBox
|
||||||
|
call CloseWindow
|
||||||
|
ret c
|
||||||
|
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
ldh a, [hMapAnims]
|
||||||
|
push af
|
||||||
|
xor a
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
ld hl, wVramState
|
||||||
|
res 0, [hl]
|
||||||
|
call ClearSprites
|
||||||
|
call ClearTileMap
|
||||||
|
call WaitBGMap
|
||||||
|
ld hl, wQueuedScriptBank
|
||||||
|
call CallFar_atHL
|
||||||
|
call ClearPalettes
|
||||||
|
call Function3657
|
||||||
|
call LoadTilesetGFX
|
||||||
|
ld hl, wVramState
|
||||||
|
set 0, [hl]
|
||||||
|
call CloseWindow
|
||||||
|
pop af
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
call GetMemSGBLayout
|
||||||
|
call WaitBGMap
|
||||||
|
call UpdateTimePals
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 10, 10
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 3
|
||||||
|
db "スロットマシン@"
|
||||||
|
db "ポーカーゲーム@"
|
||||||
|
db "ぺアゲーム@"
|
||||||
|
|
||||||
|
.MinigamePointers:
|
||||||
|
dba SlotMachineGame
|
||||||
|
dba PokerMinigame
|
||||||
|
dba MemoryMinigame
|
||||||
|
|
||||||
|
.MinigameConfirmationText:
|
||||||
|
text_from_ram wStringBuffer2
|
||||||
|
text "で "
|
||||||
|
line "あそびますか?"
|
||||||
|
done
|
||||||
|
|
||||||
60
engine/debug/field/mon_following.inc
Normal file
60
engine/debug/field/mon_following.inc
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
FieldDebug_PokemonFollowing:
|
||||||
|
call .DoPokemonFollowing
|
||||||
|
jr c, .exit
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
.exit
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLEANUP
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoPokemonFollowing:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
call VerticalMenu
|
||||||
|
jr c, .done
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
cp 1
|
||||||
|
jr nz, .remove
|
||||||
|
ld a, [wPlayerStructEnd]
|
||||||
|
and a
|
||||||
|
jr nz, .ShowUnableText
|
||||||
|
callab Function8031
|
||||||
|
ld de, SFX_24
|
||||||
|
call PlaySFX
|
||||||
|
call CloseWindow
|
||||||
|
call UpdateSprites
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.remove
|
||||||
|
callab Function806c
|
||||||
|
ld de, SFX_25
|
||||||
|
call PlaySFX
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.ShowUnableText:
|
||||||
|
ld hl, .UnableText
|
||||||
|
call FieldDebug_ShowTextboxAndExit
|
||||||
|
|
||||||
|
.done
|
||||||
|
call CloseWindow
|
||||||
|
call UpdateSprites
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 3, 3, 9, 9
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 2
|
||||||
|
db "つける@"
|
||||||
|
db "はずす@"
|
||||||
|
|
||||||
|
.UnableText:
|
||||||
|
text "だめです!!"
|
||||||
|
done
|
||||||
|
|
||||||
46
engine/debug/field/move_to_entrance.inc
Normal file
46
engine/debug/field/move_to_entrance.inc
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
FieldDebug_MoveToRoute1Entrance:
|
||||||
|
; Check if the player is currently on Route 1
|
||||||
|
ld a, [wMapGroup]
|
||||||
|
cp GROUP_ROUTE_1_P1
|
||||||
|
jr nz, .cannot_use
|
||||||
|
ld a, [wMapId]
|
||||||
|
cp MAP_ROUTE_1_P1
|
||||||
|
jr nz, .cannot_use
|
||||||
|
|
||||||
|
ldh a, [hROMBank]
|
||||||
|
ld hl, .DoMove
|
||||||
|
call QueueScript
|
||||||
|
ld a, FIELDDEBUG_RETURN_EXIT
|
||||||
|
ret
|
||||||
|
|
||||||
|
.cannot_use
|
||||||
|
ld hl, .CantUseText
|
||||||
|
call FieldDebug_ShowTextboxAndExit
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CantUseText:
|
||||||
|
text "ここでは できません"
|
||||||
|
para "ロード1でじっこうできます"
|
||||||
|
done
|
||||||
|
|
||||||
|
.DoMove:
|
||||||
|
call RefreshScreen
|
||||||
|
ld hl, .MoveText
|
||||||
|
call FieldDebug_ShowTextboxAndExit
|
||||||
|
ld d, $d
|
||||||
|
ld e, $d
|
||||||
|
ld b, 0
|
||||||
|
ld c, 1
|
||||||
|
callab Function833a
|
||||||
|
ld a, 0
|
||||||
|
ld hl, wMovementBuffer
|
||||||
|
call LoadMovementDataPointer
|
||||||
|
call Function1fea
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MoveText:
|
||||||
|
text "とくていちてん まで"
|
||||||
|
next "うごかします"
|
||||||
|
done
|
||||||
|
|
||||||
55
engine/debug/field/npc_movement_test.inc
Normal file
55
engine/debug/field/npc_movement_test.inc
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
FieldDebug_NPCMovementTest:
|
||||||
|
call .NPCMovementTest
|
||||||
|
jr c, .exit
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
.exit
|
||||||
|
ld a, FIELDDEBUG_RETURN_WAIT_INPUT
|
||||||
|
ret
|
||||||
|
|
||||||
|
.NPCMovementTest:
|
||||||
|
ld a, [wMapGroup]
|
||||||
|
cp GROUP_SILENT_HILL_HOUSE
|
||||||
|
jr nz, .not_here
|
||||||
|
ld a, [wMapId]
|
||||||
|
cp MAP_SILENT_HILL_HOUSE
|
||||||
|
jr nz, .not_here
|
||||||
|
ld a, 2
|
||||||
|
ld hl, .MovementData
|
||||||
|
call LoadMovementDataPointer
|
||||||
|
ld de, SFX_22
|
||||||
|
call PlaySFX
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MovementData:
|
||||||
|
db FACE_UP
|
||||||
|
db MOVEMENT_2F
|
||||||
|
db SLOW_STEP_UP
|
||||||
|
db SLOW_STEP_RIGHT
|
||||||
|
db SLOW_JUMP_RIGHT
|
||||||
|
db SLOW_STEP_RIGHT
|
||||||
|
db STEP_DOWN
|
||||||
|
db STEP_DOWN
|
||||||
|
db STEP_DOWN
|
||||||
|
db STEP_DOWN
|
||||||
|
db STEP_LEFT
|
||||||
|
db SLOW_JUMP_LEFT
|
||||||
|
db STEP_LEFT
|
||||||
|
db SLOW_STEP_UP
|
||||||
|
db SLOW_STEP_UP
|
||||||
|
db SLOW_STEP_UP
|
||||||
|
db MOVEMENT_32
|
||||||
|
|
||||||
|
.not_here
|
||||||
|
ld de, SFX_1E
|
||||||
|
call PlaySFX
|
||||||
|
ld hl, .NotHereText
|
||||||
|
call FieldDebug_ShowTextboxAndExit
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.NotHereText:
|
||||||
|
text "ここではだめです!"
|
||||||
|
done
|
||||||
|
|
||||||
343
engine/debug/field/pokemart_menu.inc
Normal file
343
engine/debug/field/pokemart_menu.inc
Normal file
|
|
@ -0,0 +1,343 @@
|
||||||
|
FieldDebug_PokemartMenu:
|
||||||
|
ld hl, DebugMart_WelcomeText
|
||||||
|
call MenuTextBox
|
||||||
|
call ExitMenu
|
||||||
|
call .DoPokemartMenu
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoPokemartMenu:
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
callab asm_24860
|
||||||
|
ld hl, DebugMart_PokemartMenuText
|
||||||
|
call PrintText
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call CopyMenuHeader
|
||||||
|
call VerticalMenu
|
||||||
|
push af
|
||||||
|
call ExitMenu
|
||||||
|
pop af
|
||||||
|
jr c, .exit_menu
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
dec a
|
||||||
|
ld hl, .MenuJumptable
|
||||||
|
call CallJumptable
|
||||||
|
jr nc, .DoPokemartMenu
|
||||||
|
ret
|
||||||
|
|
||||||
|
.exit_menu
|
||||||
|
ld hl, DebugMart_GoodbyeText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 10, 8
|
||||||
|
dw .MenuData
|
||||||
|
db 1 ; default
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 3 ; items
|
||||||
|
db "どうぐを かう@"
|
||||||
|
db "どうぐを うる@"
|
||||||
|
db "さようなら@"
|
||||||
|
|
||||||
|
.MenuJumptable:
|
||||||
|
dw DebugMart_Buy
|
||||||
|
dw DebugMart_Sell
|
||||||
|
dw .exit_menu
|
||||||
|
|
||||||
|
DebugMart_BuyMenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 1, 3, 19, 11
|
||||||
|
dw .BuyMenuParams
|
||||||
|
db 1 ; default
|
||||||
|
|
||||||
|
.BuyMenuParams:
|
||||||
|
db STATICMENU_WRAP
|
||||||
|
db 4, 8 ; rows, columns
|
||||||
|
db SCROLLINGMENU_ITEMS_NORMAL
|
||||||
|
dbw 0, wcd60
|
||||||
|
dba PlaceMenuItemName
|
||||||
|
dba .PrintAmount
|
||||||
|
dba UpdateItemDescription
|
||||||
|
|
||||||
|
.PrintAmount:
|
||||||
|
ld a, [wScrollingMenuCursorPosition]
|
||||||
|
ld c, a
|
||||||
|
ld b, 0
|
||||||
|
ld hl, wcc40
|
||||||
|
add hl, bc
|
||||||
|
add hl, bc
|
||||||
|
add hl, bc
|
||||||
|
push de
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
pop hl
|
||||||
|
ld c, $83
|
||||||
|
call PrintBCDNumber
|
||||||
|
ld [hl], "円"
|
||||||
|
ret
|
||||||
|
|
||||||
|
DebugMart_WelcomeText:
|
||||||
|
text "フレンドりーショップへ "
|
||||||
|
line "ようこそ!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
DebugMart_PokemartMenuText:
|
||||||
|
text "なんになさいますか?"
|
||||||
|
done
|
||||||
|
|
||||||
|
DebugMart_GoodbyeText:
|
||||||
|
text "またのごりようを"
|
||||||
|
line "おまちしています"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
DebugMart_Buy:
|
||||||
|
ld de, DebugMart_ItemList
|
||||||
|
call DebugMart_LoadItems
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
call ClearTileMap
|
||||||
|
.buy_loop
|
||||||
|
call .BuyMenu
|
||||||
|
jr nc, .buy_loop
|
||||||
|
call ExitMenu
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.BuyMenu:
|
||||||
|
call UpdateSprites
|
||||||
|
ld hl, DebugMart_BuyMenuHeader
|
||||||
|
call CopyMenuHeader
|
||||||
|
call ScrollingMenu
|
||||||
|
ld a, [wMenuJoypad]
|
||||||
|
cp B_BUTTON
|
||||||
|
jr z, .cancel_buy
|
||||||
|
cp A_BUTTON
|
||||||
|
jr z, .buy_item
|
||||||
|
.buy_item
|
||||||
|
ld a, 99
|
||||||
|
ld [wItemQuantityBuffer], a
|
||||||
|
ld hl, .HowManyText
|
||||||
|
call PrintText
|
||||||
|
callab asm_24c64
|
||||||
|
call ExitMenu
|
||||||
|
jr c, .done
|
||||||
|
predef LoadItemData
|
||||||
|
ld hl, .ConfirmPurchaseText
|
||||||
|
call PrintText
|
||||||
|
call YesNoBox
|
||||||
|
jr c, .done
|
||||||
|
ld hl, .UnderDevelopmentText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.cancel_buy
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.BuyPromptText: ; unreferenced?
|
||||||
|
text "なにを おかいあげに"
|
||||||
|
line "なりますか"
|
||||||
|
done
|
||||||
|
|
||||||
|
.HowManyText:
|
||||||
|
text "いくつ おかいあげになりますか"
|
||||||
|
done
|
||||||
|
|
||||||
|
.ConfirmPurchaseText:
|
||||||
|
text_from_ram wStringBuffer2
|
||||||
|
text "を @"
|
||||||
|
deciram wItemQuantity, 1, $2
|
||||||
|
text "こで"
|
||||||
|
line "@"
|
||||||
|
deciram hFFCD, 3, $6
|
||||||
|
text "円 おかいあげですか?"
|
||||||
|
done
|
||||||
|
|
||||||
|
.UnderDevelopmentText:
|
||||||
|
text "ごめんね"
|
||||||
|
line "かいはつちゅうなんだ"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
INCLUDE "data/field_debug_pokemart_items.inc"
|
||||||
|
|
||||||
|
DebugMart_Sell:
|
||||||
|
call DebugMart_ShowPlaceholderText
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
; unused
|
||||||
|
callab CheckItemsQuantity
|
||||||
|
jp c, .no_items
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
xor a
|
||||||
|
ld [wActiveBackpackPocket], a
|
||||||
|
.bag_loop
|
||||||
|
callab DrawBackpack
|
||||||
|
callab DebugBackpackLoop
|
||||||
|
jr c, .close_bag
|
||||||
|
call .DoBagFunctions
|
||||||
|
jr nc, .bag_loop
|
||||||
|
.close_bag
|
||||||
|
call ClearBGPalettes
|
||||||
|
call CloseWindow
|
||||||
|
call UpdateTimePals
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoBagFunctions:
|
||||||
|
callab CheckItemMenu
|
||||||
|
ld a, [wItemAttributeParamBuffer]
|
||||||
|
ld hl, .BagJumptable
|
||||||
|
call CallJumptable
|
||||||
|
ret
|
||||||
|
|
||||||
|
.BagJumptable:
|
||||||
|
dw .CheckSellableItem
|
||||||
|
dw .CannotSellItem
|
||||||
|
dw .BallPocket
|
||||||
|
dw .FlipPocket
|
||||||
|
dw .CheckSellableItem
|
||||||
|
dw .CheckSellableItem
|
||||||
|
dw .CheckSellableItem
|
||||||
|
|
||||||
|
.FlipPocket:
|
||||||
|
callab FlipPocket2Status
|
||||||
|
xor a
|
||||||
|
ld [wSelectedSwapPosition], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CannotSellItem:
|
||||||
|
ld hl, .CannotSellText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CannotSellText:
|
||||||
|
text "つかえないのだ!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.BallPocket:
|
||||||
|
callab BallPocket
|
||||||
|
jr nc, .CheckSellableItem
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CheckSellableItem:
|
||||||
|
callab _CheckTossableItem
|
||||||
|
ld a, [wItemAttributeParamBuffer]
|
||||||
|
and a
|
||||||
|
jr nz, .not_sellable
|
||||||
|
jp .ItemQuantityPrompt
|
||||||
|
|
||||||
|
.not_sellable
|
||||||
|
ld hl, .ImportantItemText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ImportantItemText:
|
||||||
|
text "それは だいじなものです"
|
||||||
|
line "うることは できません!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.no_items
|
||||||
|
ld hl, .NoItemsText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.NoItemsText:
|
||||||
|
text "どうぐを ひとつも"
|
||||||
|
next "もっていません!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.ItemQuantityPrompt:
|
||||||
|
ld hl, .HowManyItemsText
|
||||||
|
call PrintText
|
||||||
|
callab asm_24c64
|
||||||
|
jr c, .got_quantity
|
||||||
|
jr .CannotSellItem
|
||||||
|
|
||||||
|
.got_quantity
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.HowManyItemsText:
|
||||||
|
text "いくつ うりますか?"
|
||||||
|
done
|
||||||
|
|
||||||
|
DebugMart_LoadItems:
|
||||||
|
ld hl, wcd60
|
||||||
|
.load_loop
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
ld [hli], a
|
||||||
|
cp -1
|
||||||
|
jr nz, .load_loop
|
||||||
|
ld hl, wcc40
|
||||||
|
ld de, wcd60 + 1
|
||||||
|
.load_loop2
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
cp -1
|
||||||
|
jr z, .done_load
|
||||||
|
push de
|
||||||
|
call .GetPrice
|
||||||
|
pop de
|
||||||
|
jr .load_loop2
|
||||||
|
|
||||||
|
.done_load
|
||||||
|
ret
|
||||||
|
|
||||||
|
.GetPrice:
|
||||||
|
push hl
|
||||||
|
ld [wCurItem], a
|
||||||
|
callab GetItemPrice
|
||||||
|
ld a, d
|
||||||
|
ld [wcdc3], a
|
||||||
|
ld a, e
|
||||||
|
ld [wcdc3 + 1], a
|
||||||
|
ld hl, wStringBuffer1
|
||||||
|
ld de, wcdc3
|
||||||
|
ld bc, $8206
|
||||||
|
call PrintNumber
|
||||||
|
pop hl
|
||||||
|
ld de, wStringBuffer1
|
||||||
|
ld c, 3
|
||||||
|
.print_price
|
||||||
|
call .PrintPaddedDigits
|
||||||
|
swap a
|
||||||
|
ld b, a
|
||||||
|
call .PrintPaddedDigits
|
||||||
|
or b
|
||||||
|
ld [hli], a
|
||||||
|
dec c
|
||||||
|
jr nz, .print_price
|
||||||
|
ret
|
||||||
|
|
||||||
|
.PrintPaddedDigits:
|
||||||
|
ld a, [de]
|
||||||
|
inc de
|
||||||
|
cp " "
|
||||||
|
jr nz, .to_digit
|
||||||
|
ld a, "0"
|
||||||
|
.to_digit
|
||||||
|
sub "0"
|
||||||
|
ret
|
||||||
|
|
||||||
|
DebugMart_ShowPlaceholderText:
|
||||||
|
ld hl, .PlaceholderText
|
||||||
|
call MenuTextBox
|
||||||
|
call ExitMenu
|
||||||
|
ret
|
||||||
|
|
||||||
|
.PlaceholderText:
|
||||||
|
text "かいはつちゅうです"
|
||||||
|
next "<PROMPT>"
|
||||||
|
|
||||||
500
engine/debug/field/sprite_viewer.inc
Normal file
500
engine/debug/field/sprite_viewer.inc
Normal file
|
|
@ -0,0 +1,500 @@
|
||||||
|
; FieldDebug_SpriteViewer.DoSpriteViewer.Jumptable constants
|
||||||
|
const_def
|
||||||
|
const SPRITEVIEWER_INIT_MENU ; 0
|
||||||
|
const SPRITEVIEWER_UPDATE_MENU ; 1
|
||||||
|
const SPRITEVIEWER_SHOW_SPRITES ; 2
|
||||||
|
const SPRITEVIEWER_SETUP_STATIC_SPRITE ; 3
|
||||||
|
const SPRITEVIEWER_SETUP_ANIMATED_SPRITE ; 4
|
||||||
|
const SPRITEVIEWER_FOLLOW_PROMPT ; 5
|
||||||
|
const SPRITEVIEWER_EXIT ; 6
|
||||||
|
const SPRITEVIEWER_SET_FOLLOWING ; 7
|
||||||
|
|
||||||
|
FieldDebug_SpriteViewer:
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
call ClearTileMap
|
||||||
|
call HideSprites
|
||||||
|
ld hl, wVramState
|
||||||
|
res 0, [hl]
|
||||||
|
call .Init
|
||||||
|
call .DoSpriteViewer
|
||||||
|
push af
|
||||||
|
ld hl, wVramState
|
||||||
|
set 0, [hl]
|
||||||
|
call ClearPalettes
|
||||||
|
call Function360b
|
||||||
|
call CloseWindow
|
||||||
|
call UpdateTimePals
|
||||||
|
pop af
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Init:
|
||||||
|
ld a, $5b
|
||||||
|
ld [wMovementBufferObject], a
|
||||||
|
ld a, 1
|
||||||
|
ld [wSpriteViewerSavedMenuPointerY], a
|
||||||
|
ld a, 0
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
ld a, 1
|
||||||
|
ldh [hTextBoxCursorBlinkInterval], a
|
||||||
|
callab Function77ad
|
||||||
|
ret nc
|
||||||
|
ldh a, [hEventID]
|
||||||
|
call GetObjectStruct
|
||||||
|
ld hl, 0
|
||||||
|
add hl, bc
|
||||||
|
ld a, [wMovementBufferObject]
|
||||||
|
ld d, a
|
||||||
|
ld a, 5
|
||||||
|
add [hl]
|
||||||
|
cp d
|
||||||
|
jr c, .skip
|
||||||
|
sub d
|
||||||
|
ld [wSpriteViewerSavedMenuPointerY], a
|
||||||
|
ld a, [wMovementBufferObject]
|
||||||
|
sub 5
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.skip
|
||||||
|
ld a, 1
|
||||||
|
ld [wSpriteViewerSavedMenuPointerY], a
|
||||||
|
ld a, [hl]
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.SetMenuAttributes:
|
||||||
|
ld de, .MenuAttributes
|
||||||
|
call SetMenuAttributes
|
||||||
|
ld a, [wMovementBufferObject]
|
||||||
|
cp 5
|
||||||
|
jr c, .apply
|
||||||
|
ld a, 5
|
||||||
|
.apply
|
||||||
|
ld [w2DMenuNumRows], a
|
||||||
|
ld a, [wSpriteViewerSavedMenuPointerY]
|
||||||
|
ld [wMenuCursorY], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuAttributes:
|
||||||
|
db 3, 1
|
||||||
|
db 0, 1
|
||||||
|
db $F, 0
|
||||||
|
db $30, 3
|
||||||
|
|
||||||
|
.DoSpriteViewer:
|
||||||
|
ld a, 0
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
|
||||||
|
.loop
|
||||||
|
ld a, [wSpriteViewerJumptableIndex]
|
||||||
|
ld hl, .Jumptable
|
||||||
|
call CallJumptable
|
||||||
|
jr nc, .loop
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Jumptable:
|
||||||
|
dw .InitMenu
|
||||||
|
dw .UpdateMenu
|
||||||
|
dw .ShowSprites
|
||||||
|
dw .SetupStaticSprite
|
||||||
|
dw .SetupAnimatedSprite
|
||||||
|
dw .FollowPrompt
|
||||||
|
dw .Exit
|
||||||
|
dw .SetFollowing
|
||||||
|
|
||||||
|
.Exit:
|
||||||
|
ld a, -1
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
scf
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.SetFollowing:
|
||||||
|
ld hl, Function8031
|
||||||
|
ld a, BANK(Function8031)
|
||||||
|
call QueueScript
|
||||||
|
|
||||||
|
; Exits immediately after setting sprite to follow the player
|
||||||
|
ld a, -1
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
scf
|
||||||
|
ld a, FIELDDEBUG_RETURN_EXIT
|
||||||
|
ret
|
||||||
|
|
||||||
|
.InitMenu:
|
||||||
|
xor a
|
||||||
|
ldh [hBGMapMode], a
|
||||||
|
call HideSprites
|
||||||
|
call ClearPalettes
|
||||||
|
call ClearTileMap
|
||||||
|
call .SetMenuAttributes
|
||||||
|
call .DisplayMenu
|
||||||
|
call SetPalettes
|
||||||
|
call WaitBGMap
|
||||||
|
ld a, SPRITEVIEWER_UPDATE_MENU
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DisplayMenu:
|
||||||
|
ld c, 5
|
||||||
|
ld a, [wMovementBufferObject]
|
||||||
|
cp c
|
||||||
|
jr nc, .setup
|
||||||
|
ld c, a
|
||||||
|
.setup
|
||||||
|
hlcoord 5, 4
|
||||||
|
ld a, [wSpriteViewerMenuStartingItem]
|
||||||
|
inc a
|
||||||
|
ld [wStringBuffer1], a
|
||||||
|
.display_loop
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
ld bc, $8103
|
||||||
|
ld de, wStringBuffer1
|
||||||
|
call PrintNumber
|
||||||
|
ld a, [wStringBuffer1]
|
||||||
|
call LoadUnderDevelopmentString
|
||||||
|
call PlaceString
|
||||||
|
ld hl, wStringBuffer1
|
||||||
|
inc [hl]
|
||||||
|
pop hl
|
||||||
|
ld de, SCREEN_WIDTH * 3
|
||||||
|
add hl, de
|
||||||
|
pop bc
|
||||||
|
dec c
|
||||||
|
jr nz, .display_loop
|
||||||
|
ret
|
||||||
|
|
||||||
|
.UpdateMenu:
|
||||||
|
call .SetMenuAttributes
|
||||||
|
.loop2
|
||||||
|
call Get2DMenuJoypad
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
ld [wSpriteViewerSavedMenuPointerY], a
|
||||||
|
ldh a, [hJoySum]
|
||||||
|
bit A_BUTTON_F, a
|
||||||
|
jp nz, .a_button
|
||||||
|
bit B_BUTTON_F, a
|
||||||
|
jp nz, .b_button
|
||||||
|
bit D_DOWN_F, a
|
||||||
|
jr nz, .down
|
||||||
|
bit D_UP_F, a
|
||||||
|
jr nz, .up
|
||||||
|
bit D_LEFT_F, a
|
||||||
|
jr nz, .left
|
||||||
|
bit D_RIGHT_F, a
|
||||||
|
jr nz, .right
|
||||||
|
jr .loop2
|
||||||
|
|
||||||
|
.a_button
|
||||||
|
ld a, SPRITEVIEWER_SHOW_SPRITES
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.b_button
|
||||||
|
ld a, SPRITEVIEWER_EXIT
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.up
|
||||||
|
ld a, [wSpriteViewerMenuStartingItem]
|
||||||
|
and a
|
||||||
|
jr z, .reload_menu
|
||||||
|
dec a
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
jr .reload_menu
|
||||||
|
|
||||||
|
.down
|
||||||
|
ld a, [wMovementBufferObject]
|
||||||
|
cp 5
|
||||||
|
jr c, .reload_menu
|
||||||
|
sub 5
|
||||||
|
ld b, a
|
||||||
|
ld a, [wSpriteViewerMenuStartingItem]
|
||||||
|
cp b
|
||||||
|
jr z, .reload_menu
|
||||||
|
inc a
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
jr .reload_menu
|
||||||
|
|
||||||
|
.right
|
||||||
|
ld a, [wMovementBufferObject]
|
||||||
|
cp 5
|
||||||
|
jr c, .reload_menu
|
||||||
|
sub 4
|
||||||
|
ld b, a
|
||||||
|
ld a, [wSpriteViewerMenuStartingItem]
|
||||||
|
add 5
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
cp b
|
||||||
|
jr c, .reload_menu
|
||||||
|
dec b
|
||||||
|
ld a, b
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
jr .reload_menu
|
||||||
|
|
||||||
|
.left
|
||||||
|
ld a, [wSpriteViewerMenuStartingItem]
|
||||||
|
sub 5
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
jr nc, .reload_menu
|
||||||
|
xor a
|
||||||
|
ld [wSpriteViewerMenuStartingItem], a
|
||||||
|
jr .reload_menu
|
||||||
|
|
||||||
|
.reload_menu
|
||||||
|
ld a, SPRITEVIEWER_INIT_MENU
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ShowSprites:
|
||||||
|
call ClearTileMap
|
||||||
|
call .SetStartingPoint
|
||||||
|
call LoadUnderDevelopmentString
|
||||||
|
hlcoord 1, 2
|
||||||
|
call PlaceString
|
||||||
|
call .SetStartingPoint
|
||||||
|
ld c, a
|
||||||
|
callab Function14144
|
||||||
|
ld hl, vSprites + $c0
|
||||||
|
ld de, vFont
|
||||||
|
ld bc, 12
|
||||||
|
call Get2bpp
|
||||||
|
call LoadFont
|
||||||
|
call .SetStartingPoint
|
||||||
|
call IsAnimatedSprite
|
||||||
|
jr c, .animated_sprite
|
||||||
|
; static sprite
|
||||||
|
ld a, SPRITEVIEWER_SETUP_STATIC_SPRITE
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.animated_sprite
|
||||||
|
ld a, SPRITEVIEWER_SETUP_ANIMATED_SPRITE
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.SetupAnimatedSprite:
|
||||||
|
ld a, $10
|
||||||
|
ld [wMovementBuffer], a
|
||||||
|
ld a, $20
|
||||||
|
ld [wMovementBuffer + 1], a
|
||||||
|
ld hl, Datafc6de
|
||||||
|
ld de, wVirtualOAM
|
||||||
|
call Functionfc6bb
|
||||||
|
ld a, A_BUTTON | B_BUTTON
|
||||||
|
call FieldDebug_WaitJoypadInput
|
||||||
|
ld a, SPRITEVIEWER_INIT_MENU
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.SetupStaticSprite:
|
||||||
|
xor a
|
||||||
|
ld [wMovementBuffer + 2], a
|
||||||
|
|
||||||
|
.SpriteLoop:
|
||||||
|
ld a, $10
|
||||||
|
ld [wMovementBuffer], a
|
||||||
|
ld a, $20
|
||||||
|
ld [wMovementBuffer + 1], a
|
||||||
|
call Functionfc689
|
||||||
|
call .animate_walking
|
||||||
|
bit B_BUTTON_F, a
|
||||||
|
jr nz, .return_to_menu
|
||||||
|
bit A_BUTTON_F, a
|
||||||
|
jr nz, .show_follow_prompt
|
||||||
|
ld a, [wMovementBuffer + 2]
|
||||||
|
inc a
|
||||||
|
and 3
|
||||||
|
ld [wMovementBuffer + 2], a
|
||||||
|
ldh a, [hJoyState]
|
||||||
|
and D_UP | D_DOWN | D_LEFT | D_RIGHT
|
||||||
|
jr nz, .SpriteLoop
|
||||||
|
xor a
|
||||||
|
ld [wMovementBuffer + 2], a
|
||||||
|
jr .SpriteLoop
|
||||||
|
.return_to_menu
|
||||||
|
ld a, SPRITEVIEWER_INIT_MENU
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a ; FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
.show_follow_prompt
|
||||||
|
ld a, SPRITEVIEWER_FOLLOW_PROMPT
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a ; FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
.animate_walking
|
||||||
|
ld c, 10
|
||||||
|
.animate_loop
|
||||||
|
call DelayFrame
|
||||||
|
call GetJoypad
|
||||||
|
ldh a, [hJoyDown]
|
||||||
|
and 3
|
||||||
|
ret nz
|
||||||
|
dec c
|
||||||
|
jr nz, .animate_loop
|
||||||
|
ret
|
||||||
|
|
||||||
|
.FollowPrompt:
|
||||||
|
ld hl, .FollowPromptString
|
||||||
|
call MenuTextBox
|
||||||
|
call YesNoBox
|
||||||
|
call CloseWindow
|
||||||
|
jr nc, .set_following
|
||||||
|
; return to menu
|
||||||
|
ld a, SPRITEVIEWER_INIT_MENU
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
.set_following
|
||||||
|
call .SetStartingPoint
|
||||||
|
ld [wd646], a
|
||||||
|
ld a, SPRITEVIEWER_SET_FOLLOWING
|
||||||
|
ld [wSpriteViewerJumptableIndex], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.FollowPromptString:
|
||||||
|
text "これを せんたくしますか?"
|
||||||
|
done
|
||||||
|
|
||||||
|
.SetStartingPoint:
|
||||||
|
push bc
|
||||||
|
ld a, [wSpriteViewerMenuStartingItem]
|
||||||
|
ld b, a
|
||||||
|
ld a, [wSpriteViewerSavedMenuPointerY]
|
||||||
|
add b
|
||||||
|
pop bc
|
||||||
|
ret
|
||||||
|
|
||||||
|
LoadUnderDevelopmentString:
|
||||||
|
ld de, .String
|
||||||
|
ret
|
||||||
|
|
||||||
|
.String:
|
||||||
|
db "かいはつちゅう@"
|
||||||
|
|
||||||
|
Functionfc689:
|
||||||
|
ld de, wVirtualOAM
|
||||||
|
ld hl, Datafc6de
|
||||||
|
ld a, [wMovementBuffer + 2]
|
||||||
|
and 3
|
||||||
|
ld bc, 2
|
||||||
|
call AddNTimes
|
||||||
|
ld c, 4
|
||||||
|
|
||||||
|
Functionfc69c:
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
call Functionfc6bb
|
||||||
|
ld a, [wMovementBuffer]
|
||||||
|
add $20
|
||||||
|
ld [wMovementBuffer], a
|
||||||
|
pop hl
|
||||||
|
ld bc, $10
|
||||||
|
add hl, bc
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
pop hl
|
||||||
|
ld bc, 8
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
dec c
|
||||||
|
jr nz, Functionfc69c
|
||||||
|
ret
|
||||||
|
|
||||||
|
Functionfc6bb:
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
|
Functionfc6be:
|
||||||
|
ld a, [wMovementBuffer + 1]
|
||||||
|
add $10
|
||||||
|
add [hl]
|
||||||
|
inc hl
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [wMovementBuffer]
|
||||||
|
add 8
|
||||||
|
add [hl]
|
||||||
|
inc hl
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hl]
|
||||||
|
and $f0
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hli]
|
||||||
|
bit 0, a
|
||||||
|
jr z, Functionfc6be
|
||||||
|
ret
|
||||||
|
|
||||||
|
Datafc6de:
|
||||||
|
dw Datafc6fe
|
||||||
|
dw Datafc70e
|
||||||
|
dw Datafc6fe
|
||||||
|
dw Datafc71e
|
||||||
|
dw Datafc72e
|
||||||
|
dw Datafc73e
|
||||||
|
dw Datafc72e
|
||||||
|
dw Datafc74e
|
||||||
|
dw Datafc75e
|
||||||
|
dw Datafc77e
|
||||||
|
dw Datafc75e
|
||||||
|
dw Datafc77e
|
||||||
|
dw Datafc76e
|
||||||
|
dw Datafc78e
|
||||||
|
dw Datafc76e
|
||||||
|
dw Datafc78e
|
||||||
|
|
||||||
|
Datafc6fe:
|
||||||
|
db 0, 0, 0, 0, 0, 8, 1, 0
|
||||||
|
db 8, 0, 2, 2, 8, 8, 3, 3
|
||||||
|
|
||||||
|
Datafc70e:
|
||||||
|
db 0, 0, $c, 0, 0, 8, $d, 0
|
||||||
|
db 8, 0, $e, 2, 8, 8, $f, 3
|
||||||
|
|
||||||
|
Datafc71e:
|
||||||
|
db 0, 8, $c, $20, 0, 0, $d, $20
|
||||||
|
db 8, 8, $e, $22, 8, 0, $f, $23
|
||||||
|
|
||||||
|
Datafc72e:
|
||||||
|
db 0, 0, 4, 0, 0, 8, 5, 0
|
||||||
|
db 8, 0, 6, 2, 8, 8, 7, 3
|
||||||
|
|
||||||
|
Datafc73e:
|
||||||
|
db 0, 0, $10, 0, 0, 8, $11, 0
|
||||||
|
db 8, 0, $12, 2, 8, 8, $13, 3
|
||||||
|
|
||||||
|
Datafc74e:
|
||||||
|
db 0, 8, $10, $20, 0, 0, $11, $20
|
||||||
|
db 8, 8, $12, $22, 8, 0, $13, $23
|
||||||
|
|
||||||
|
Datafc75e:
|
||||||
|
db 0, 0, 8, 0, 0, 8, 9, 0
|
||||||
|
db 8, 0, $a, 2, 8, 8, $b, 3
|
||||||
|
|
||||||
|
Datafc76e:
|
||||||
|
db 0, 8, 8, $20, 0, 0, 9, $20
|
||||||
|
db 8, 8, $a, $22, 8, 0, $b, $23
|
||||||
|
|
||||||
|
Datafc77e:
|
||||||
|
db 0, 0, $14, 0, 0, 8, $15, 0
|
||||||
|
db 8, 0, $16, 2, 8, 8, $17, 3
|
||||||
|
|
||||||
|
Datafc78e:
|
||||||
|
db 0, 8, $14, $20, 0, 0, $15, $20
|
||||||
|
db 8, 8, $16, $22, 8, 0, $17, $23
|
||||||
|
|
||||||
33
engine/debug/field/teleport.inc
Normal file
33
engine/debug/field/teleport.inc
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
FieldDebug_Teleport:
|
||||||
|
call .DoTeleport
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoTeleport:
|
||||||
|
ld a, [wMapGroup]
|
||||||
|
ld d, a
|
||||||
|
ld a, [wMapId]
|
||||||
|
ld e, a
|
||||||
|
callab IsSpawnPoint
|
||||||
|
jr nc, .not_spawn_point
|
||||||
|
ld a, [wMapGroup]
|
||||||
|
ld [wLastSpawnMapGroup], a
|
||||||
|
ld a, [wMapId]
|
||||||
|
ld [wLastSpawnMapNumber], a
|
||||||
|
ld hl, .MapRegisteredText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
ret
|
||||||
|
|
||||||
|
.not_spawn_point
|
||||||
|
ld hl, .CannotRegisterMapText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MapRegisteredText:
|
||||||
|
text "このばしょを とうろくしました"
|
||||||
|
para "<DONE>"
|
||||||
|
|
||||||
|
.CannotRegisterMapText:
|
||||||
|
text "ここは とうろくできません!"
|
||||||
|
para "<DONE>"
|
||||||
|
|
||||||
39
engine/debug/field/toggle_npc_movement.inc
Normal file
39
engine/debug/field/toggle_npc_movement.inc
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
FieldDebug_ToggleNPCMovement:
|
||||||
|
call .ToggleNPCMovement
|
||||||
|
jr nc, .close
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
.close
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ToggleNPCMovement:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call GetMenu2
|
||||||
|
ret c
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
cp 1
|
||||||
|
jr nz, .move
|
||||||
|
; stop NPCs
|
||||||
|
ld a, 0
|
||||||
|
call Function17f9
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.move
|
||||||
|
call Function1848
|
||||||
|
.done
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 7, 6
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 2
|
||||||
|
db "とめる@"
|
||||||
|
db "うごかす@"
|
||||||
|
|
||||||
97
engine/debug/field/toolgear.inc
Normal file
97
engine/debug/field/toolgear.inc
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
FieldDebug_Toolgear:
|
||||||
|
call OpenToolgearMenu
|
||||||
|
jr c, .cancelled
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
dec a
|
||||||
|
ld hl, .Jumptable
|
||||||
|
jp CallJumptable
|
||||||
|
|
||||||
|
.Jumptable:
|
||||||
|
dw .EnableToolgearClock
|
||||||
|
dw .DisplayCoords
|
||||||
|
dw .ChangeRTC
|
||||||
|
dw .DayNight60SecondCycle
|
||||||
|
dw .ResetDayNightCycle
|
||||||
|
dw .DisableToolgearClock
|
||||||
|
|
||||||
|
.cancelled
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DayNight60SecondCycle:
|
||||||
|
ld hl, wd153
|
||||||
|
set OVERWORLD_MINUTE_TIME_F, [hl]
|
||||||
|
jr .UpdateDayNightCycle
|
||||||
|
|
||||||
|
.ResetDayNightCycle:
|
||||||
|
ld hl, wd153
|
||||||
|
res OVERWORLD_MINUTE_TIME_F, [hl]
|
||||||
|
jr .UpdateDayNightCycle
|
||||||
|
|
||||||
|
.ChangeRTC:
|
||||||
|
callab SetTime
|
||||||
|
|
||||||
|
.UpdateDayNightCycle:
|
||||||
|
callab Function8c325
|
||||||
|
call UpdateTimePals
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
.EnableToolgearClock:
|
||||||
|
call EnableToolgear
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DisableToolgearClock:
|
||||||
|
call DisableToolgear
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DisplayCoords:
|
||||||
|
call EnableToolgearCoords
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
EnableToolgearCoords:
|
||||||
|
call EnableToolgear
|
||||||
|
ld hl, wd153
|
||||||
|
set TOOLGEAR_COORDS_F, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
OpenToolgearMenu:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
call .AfterToolgearOpen
|
||||||
|
ld [wMenuCursorBuffer], a
|
||||||
|
call VerticalMenu
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
|
||||||
|
.AfterToolgearOpen:
|
||||||
|
ld a, [wToolgearFlags]
|
||||||
|
bit TOOLGEAR_COORDS_F, a
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLEANUP
|
||||||
|
ret nz
|
||||||
|
ld hl, wd153
|
||||||
|
bit TOOLGEAR_COORDS_F, [hl]
|
||||||
|
ld a, FIELDDEBUG_RETURN_WAIT_INPUT
|
||||||
|
ret nz
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 7, 14
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 6
|
||||||
|
db "とけい@"
|
||||||
|
db "ざひょう@"
|
||||||
|
db "アジャスト@"
|
||||||
|
db "60びょう@"
|
||||||
|
db "24じかん@"
|
||||||
|
db "けす@"
|
||||||
|
|
||||||
90
engine/debug/field/unused_flag_menu.inc
Normal file
90
engine/debug/field/unused_flag_menu.inc
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
FieldDebug_UnusedFlagMenu: ; unused?
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
call VerticalMenu
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 7, 10
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 4
|
||||||
|
db "フラグ1@"
|
||||||
|
db "フラグ2@"
|
||||||
|
db "フラグ3@"
|
||||||
|
db "フラグ4@"
|
||||||
|
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
bccoord 0, 14
|
||||||
|
call .DoCheckFlags
|
||||||
|
call WaitBGMap
|
||||||
|
ld a, A_BUTTON | B_BUTTON
|
||||||
|
call FieldDebug_WaitJoypadInput
|
||||||
|
call CloseWindow
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoCheckFlags:
|
||||||
|
unused_check_bit: macro
|
||||||
|
ld hl, \1
|
||||||
|
bit 0, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
ld hl, \1
|
||||||
|
bit 1, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
ld hl, \1
|
||||||
|
bit 2, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
ld hl, \1
|
||||||
|
bit 3, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
ld hl, \1
|
||||||
|
bit 4, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
ld hl, \1
|
||||||
|
bit 5, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
ld hl, \1
|
||||||
|
bit 6, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
ld hl, \1
|
||||||
|
bit 7, [hl]
|
||||||
|
call .CheckBit
|
||||||
|
endm
|
||||||
|
|
||||||
|
unused_check_bit wcdc3
|
||||||
|
unused_check_bit wcdc4
|
||||||
|
unused_check_bit wcdc5
|
||||||
|
unused_check_bit wcdc6
|
||||||
|
unused_check_bit wcdc7
|
||||||
|
ret
|
||||||
|
|
||||||
|
.CheckBit:
|
||||||
|
ld a, "0"
|
||||||
|
jr z, .not_set
|
||||||
|
ld a, "1"
|
||||||
|
.not_set
|
||||||
|
ld [bc], a
|
||||||
|
inc bc
|
||||||
|
ret
|
||||||
|
|
||||||
|
Functionfd91e: ; unused?
|
||||||
|
call .asm_fd930
|
||||||
|
ld a, [wCountSetBitsResult]
|
||||||
|
ld [wMonDexIndex], a
|
||||||
|
callab Pokepic
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_fd930
|
||||||
|
call Random
|
||||||
|
cp 251
|
||||||
|
jr nc, .asm_fd930
|
||||||
|
inc a
|
||||||
|
ld [wCountSetBitsResult], a
|
||||||
|
ret
|
||||||
|
|
||||||
30
engine/debug/field/unused_priority_menu.inc
Normal file
30
engine/debug/field/unused_priority_menu.inc
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
FieldDebug_UnusedSetPriority:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call GetMenu2
|
||||||
|
jr c, .done
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
cp 1
|
||||||
|
jr nz, .skip
|
||||||
|
ld a, 0
|
||||||
|
call Function19aa
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.skip
|
||||||
|
ld a, 0
|
||||||
|
call Function19b5
|
||||||
|
.done
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 8, 6
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 2
|
||||||
|
db "ゆうせん@"
|
||||||
|
db "ひゆうせん@"
|
||||||
|
|
||||||
272
engine/debug/field/vram_viewer.inc
Normal file
272
engine/debug/field/vram_viewer.inc
Normal file
|
|
@ -0,0 +1,272 @@
|
||||||
|
FieldDebug_DoVRAMViewer:
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
call ClearTileMap
|
||||||
|
call ClearSprites
|
||||||
|
ldh a, [hMapAnims]
|
||||||
|
push af
|
||||||
|
xor a
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
ld a, 1
|
||||||
|
ld [wcdc3], a
|
||||||
|
call .GenerateTilemap
|
||||||
|
call WaitBGMap
|
||||||
|
call .DoViewer
|
||||||
|
pop af
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
ld a, $e3
|
||||||
|
ldh [rLCDC], a
|
||||||
|
call .ReloadDefaultGFX
|
||||||
|
call CloseWindow
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoViewer:
|
||||||
|
ld a, [wcdc3]
|
||||||
|
dec a
|
||||||
|
ld hl, .Jumptable
|
||||||
|
call CallJumptable
|
||||||
|
call .GenerateTilemap
|
||||||
|
call .ScreenControl
|
||||||
|
jr nc, .DoViewer
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ScreenControl:
|
||||||
|
call WaitBGMap
|
||||||
|
.wait_input
|
||||||
|
call GetJoypad
|
||||||
|
ldh a, [hJoyDown]
|
||||||
|
and A_BUTTON | B_BUTTON | START | D_RIGHT | D_LEFT
|
||||||
|
jr z, .wait_input
|
||||||
|
bit D_LEFT_F, a
|
||||||
|
jr nz, .next_page
|
||||||
|
bit D_RIGHT_F, a
|
||||||
|
jr nz, .previous_page
|
||||||
|
bit START_F, a
|
||||||
|
jr nz, .switch_tileset
|
||||||
|
bit A_BUTTON_F, a
|
||||||
|
ret nz
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.switch_tileset
|
||||||
|
ldh a, [rLCDC]
|
||||||
|
xor (1 << rLCDC_TILE_DATA)
|
||||||
|
ldh [rLCDC], a
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.next_page
|
||||||
|
ld hl, wcdc3
|
||||||
|
inc [hl]
|
||||||
|
ld a, [hl]
|
||||||
|
cp 8
|
||||||
|
jr c, .not_at_end
|
||||||
|
ld [hl], 1
|
||||||
|
|
||||||
|
.not_at_end
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.previous_page
|
||||||
|
ld hl, wcdc3
|
||||||
|
dec [hl]
|
||||||
|
jr z, .not_at_start
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.not_at_start
|
||||||
|
ld [hl], 7
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Jumptable:
|
||||||
|
dw .LoadTilesets1
|
||||||
|
dw .LoadBagGFX
|
||||||
|
dw .LoadTilesetsCommon
|
||||||
|
dw .LoadToolgearGFX
|
||||||
|
dw .ReloadDefaultGFX
|
||||||
|
dw .LoadStatsGFX
|
||||||
|
dw .LoadTilesets6
|
||||||
|
|
||||||
|
.GenerateTilemap:
|
||||||
|
hlcoord 1, 1
|
||||||
|
ld de, 4
|
||||||
|
ld b, $10
|
||||||
|
xor a
|
||||||
|
.generate_loop1
|
||||||
|
ld c, $10
|
||||||
|
.generate_loop2
|
||||||
|
ld [hli], a
|
||||||
|
inc a
|
||||||
|
dec c
|
||||||
|
jr nz, .generate_loop2
|
||||||
|
add hl, de
|
||||||
|
dec b
|
||||||
|
jr nz, .generate_loop1
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ReloadDefaultGFX:
|
||||||
|
call .LoadTilesetsCommon
|
||||||
|
call LoadFont
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LoadBagGFX:
|
||||||
|
call .LoadTilesetsCommon
|
||||||
|
call DisableLCD
|
||||||
|
call LoadFont
|
||||||
|
callab LoadBackpackGraphics
|
||||||
|
call EnableLCD
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LoadToolgearGFX:
|
||||||
|
call .LoadTilesetsCommon
|
||||||
|
call LoadToolgearGraphics
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LoadTilesets1:
|
||||||
|
call .LoadTilesetsCommon
|
||||||
|
call DisableLCD
|
||||||
|
call LoadFontsBattleExtra
|
||||||
|
call LoadFont
|
||||||
|
call EnableLCD
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LoadStatsGFX:
|
||||||
|
call .LoadTilesetsCommon
|
||||||
|
call DisableLCD
|
||||||
|
call LoadFontsBattleExtra
|
||||||
|
call LoadFont
|
||||||
|
callab LoadPokemonStatsGraphics
|
||||||
|
xor a
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
call EnableLCD
|
||||||
|
ld de, vTileset
|
||||||
|
call .LoadPokemon
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LoadTilesets6:
|
||||||
|
call DisableLCD
|
||||||
|
xor a
|
||||||
|
ld hl, vSprites
|
||||||
|
ld bc, $180 tiles
|
||||||
|
call ByteFill
|
||||||
|
call LoadFont
|
||||||
|
callab Function3e39f
|
||||||
|
xor a
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
call EnableLCD
|
||||||
|
ld de, vTileset
|
||||||
|
call .LoadPokemon
|
||||||
|
ld de, $9310
|
||||||
|
ld a, 3
|
||||||
|
ld [wcdd8], a
|
||||||
|
predef Function3f04a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LoadPokemon:
|
||||||
|
ld a, 3
|
||||||
|
ld [wce37], a
|
||||||
|
ld [wMonDexIndex], a
|
||||||
|
call GetMonHeader
|
||||||
|
call LoadMonFrontSprite
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LoadTilesetsCommon:
|
||||||
|
call DisableLCD
|
||||||
|
xor a
|
||||||
|
ld hl, vSprites
|
||||||
|
ld bc, $180 tiles
|
||||||
|
call ByteFill
|
||||||
|
call LoadTilesetGFX
|
||||||
|
ld a, 1
|
||||||
|
ldh [hMapAnims], a
|
||||||
|
callab LoadUsedSpritesGfx
|
||||||
|
call LoadFontExtra
|
||||||
|
call EnableLCD
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_DoClearEventFlags:
|
||||||
|
ld hl, .MenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
call VerticalMenu
|
||||||
|
call CloseWindow
|
||||||
|
ret c
|
||||||
|
call .CheckMapFlags
|
||||||
|
jr nc, .no_flags
|
||||||
|
ld a, [wMenuCursorY]
|
||||||
|
cp 1
|
||||||
|
ld a, 0
|
||||||
|
jr z, .done
|
||||||
|
ld a, $ff
|
||||||
|
.done
|
||||||
|
ld [de], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.no_flags
|
||||||
|
ld hl, .NoMapFlagsText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
ret
|
||||||
|
|
||||||
|
.NoMapFlagsText:
|
||||||
|
text "このマップは シーケンスの"
|
||||||
|
line "とうろくが ありません"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
.MenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 12, 6
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_CURSOR
|
||||||
|
db 2
|
||||||
|
db "フラグを クりア@"
|
||||||
|
db "フラグを うめる@"
|
||||||
|
|
||||||
|
.CheckMapFlags:
|
||||||
|
ld a, [wMapGroup]
|
||||||
|
ld b, a
|
||||||
|
ld a, [wMapId]
|
||||||
|
ld c, a
|
||||||
|
ld hl, UnknownMapBufferPointers
|
||||||
|
.determine_loop
|
||||||
|
push hl
|
||||||
|
ld a, BANK(UnknownMapBufferPointers)
|
||||||
|
call GetFarByte
|
||||||
|
cp -1
|
||||||
|
jr z, .none_found
|
||||||
|
cp b
|
||||||
|
jr nz, .determine_loop2
|
||||||
|
inc hl
|
||||||
|
ld a, BANK(UnknownMapBufferPointers)
|
||||||
|
call GetFarByte
|
||||||
|
cp c
|
||||||
|
jr nz, .determine_loop2
|
||||||
|
jr .has_flags
|
||||||
|
|
||||||
|
.determine_loop2
|
||||||
|
pop hl
|
||||||
|
ld de, 8
|
||||||
|
add hl, de
|
||||||
|
jr .determine_loop
|
||||||
|
|
||||||
|
.has_flags
|
||||||
|
pop hl
|
||||||
|
ld de, 6
|
||||||
|
add hl, de
|
||||||
|
ld a, BANK(UnknownMapBufferPointers)
|
||||||
|
call GetFarByte
|
||||||
|
ld e, a
|
||||||
|
inc hl
|
||||||
|
ld a, BANK(UnknownMapBufferPointers)
|
||||||
|
call GetFarByte
|
||||||
|
ld d, a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.none_found
|
||||||
|
pop hl
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
73
engine/debug/field/warp.inc
Normal file
73
engine/debug/field/warp.inc
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
FieldDebug_Warp:
|
||||||
|
call DebugMenu_DisplayWarpSubmenu
|
||||||
|
jr nc, .do_warp
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.do_warp
|
||||||
|
ld a, [wMenuSelection]
|
||||||
|
ld [wDefaultSpawnPoint], a
|
||||||
|
ld hl, wVramState
|
||||||
|
set 6, [hl]
|
||||||
|
ldh a, [hROMBank]
|
||||||
|
ld hl, FieldDebug_ShowWarpToText
|
||||||
|
call QueueScript
|
||||||
|
ld de, SFX_22
|
||||||
|
call PlaySFX
|
||||||
|
call DelayFrame
|
||||||
|
ld a, FIELDDEBUG_RETURN_EXIT
|
||||||
|
ret
|
||||||
|
|
||||||
|
SECTION "engine/debug/field/warp.inc@FieldDebug_ShowWarpToText", ROMX
|
||||||
|
|
||||||
|
FieldDebug_ShowWarpToText:
|
||||||
|
call .ShowText
|
||||||
|
call Functionfcc24
|
||||||
|
ld a, MAPSETUP_TELEPORT
|
||||||
|
ldh [hMapEntryMethod], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.ShowText:
|
||||||
|
call RefreshScreen
|
||||||
|
ld a, [wDefaultSpawnPoint]
|
||||||
|
call GetLandmarkName
|
||||||
|
call CopyStringToStringBuffer2
|
||||||
|
ld hl, .WarpToText
|
||||||
|
call FieldDebug_ShowTextboxAndExit
|
||||||
|
call Function1fea
|
||||||
|
ret
|
||||||
|
|
||||||
|
.WarpToText:
|
||||||
|
text_from_ram wStringBuffer2
|
||||||
|
text "に"
|
||||||
|
line "ワープします!"
|
||||||
|
done
|
||||||
|
|
||||||
|
Functionfcc24:
|
||||||
|
ld a, 0
|
||||||
|
call Function17f9
|
||||||
|
ld a, 0
|
||||||
|
ld hl, .MovementDatafcc49
|
||||||
|
call LoadMovementDataPointer
|
||||||
|
ld hl, wVramState
|
||||||
|
set 7, [hl]
|
||||||
|
|
||||||
|
.asm_fcc36
|
||||||
|
call Function2c4a
|
||||||
|
ld a, [wVramState]
|
||||||
|
bit 7, a
|
||||||
|
jr nz, .asm_fcc36
|
||||||
|
ld a, 0
|
||||||
|
ld hl, .MovementDatafcc4b
|
||||||
|
call Function16fb
|
||||||
|
ret
|
||||||
|
|
||||||
|
.MovementDatafcc49:
|
||||||
|
db $36
|
||||||
|
db $32
|
||||||
|
|
||||||
|
.MovementDatafcc4b:
|
||||||
|
db $37
|
||||||
|
db $32
|
||||||
|
|
||||||
295
engine/debug/field_debug_menu.asm
Normal file
295
engine/debug/field_debug_menu.asm
Normal file
|
|
@ -0,0 +1,295 @@
|
||||||
|
INCLUDE "constants.asm"
|
||||||
|
|
||||||
|
; FieldDebugMenu.ReturnJumptable constants
|
||||||
|
const_def
|
||||||
|
const FIELDDEBUG_RETURN_REOPEN ; 0
|
||||||
|
const FIELDDEBUG_RETURN_WAIT_INPUT ; 1
|
||||||
|
const FIELDDEBUG_RETURN_CLOSE ; 2
|
||||||
|
const FIELDDEBUG_RETURN_CLEANUP ; 3
|
||||||
|
const FIELDDEBUG_RETURN_EXIT ; 4
|
||||||
|
|
||||||
|
|
||||||
|
SECTION "engine/menu/field_debug_menu.asm@FieldDebugMenuHeader", ROMX
|
||||||
|
|
||||||
|
FieldDebugMenuHeader:
|
||||||
|
db MENU_BACKUP_TILES
|
||||||
|
menu_coords 0, 0, 7, 17
|
||||||
|
dw .MenuData
|
||||||
|
db 1
|
||||||
|
|
||||||
|
.MenuData:
|
||||||
|
db STATICMENU_ENABLE_LEFT_RIGHT | STATICMENU_ENABLE_START | STATICMENU_WRAP | STATICMENU_CURSOR
|
||||||
|
db 0
|
||||||
|
dw FieldDebug_Pages
|
||||||
|
dw PlaceMenuStrings
|
||||||
|
dw FieldDebug_MenuStrings
|
||||||
|
|
||||||
|
INCLUDE "data/field_debug_entries.inc"
|
||||||
|
|
||||||
|
FieldDebugMenu::
|
||||||
|
call RefreshScreen
|
||||||
|
ld de, SFX_MENU
|
||||||
|
call PlaySFX
|
||||||
|
ld hl, FieldDebugMenuHeader
|
||||||
|
call LoadMenuHeader
|
||||||
|
|
||||||
|
; load first page
|
||||||
|
ld a, 0
|
||||||
|
ld [wFieldDebugPage], a
|
||||||
|
|
||||||
|
.Reopen:
|
||||||
|
call UpdateTimePals
|
||||||
|
call UpdateSprites
|
||||||
|
ld a, [wFieldDebugMenuCursorBuffer]
|
||||||
|
ld [wMenuCursorBuffer], a
|
||||||
|
call OpenMenu
|
||||||
|
jr c, .WaitInput
|
||||||
|
ld a, [wMenuCursorBuffer]
|
||||||
|
ld [wFieldDebugMenuCursorBuffer], a
|
||||||
|
call PlaceHollowCursor
|
||||||
|
|
||||||
|
ld a, [wMenuJoypad]
|
||||||
|
cp A_BUTTON
|
||||||
|
jr z, .DoJumptable
|
||||||
|
|
||||||
|
call FieldDebug_ChangePage
|
||||||
|
jr .DoReturn
|
||||||
|
|
||||||
|
.DoJumptable:
|
||||||
|
ld a, [wMenuSelection]
|
||||||
|
ld hl, FieldDebug_Jumptable
|
||||||
|
call CallJumptable
|
||||||
|
|
||||||
|
.DoReturn:
|
||||||
|
ld hl, .ReturnJumptable
|
||||||
|
jp CallJumptable
|
||||||
|
|
||||||
|
.ReturnJumptable:
|
||||||
|
dw .Reopen
|
||||||
|
dw .WaitInput
|
||||||
|
dw .Close
|
||||||
|
dw .Cleanup
|
||||||
|
dw .Exit
|
||||||
|
|
||||||
|
.WaitInput:
|
||||||
|
call GetJoypad
|
||||||
|
ldh a, [hJoyDown]
|
||||||
|
bit A_BUTTON_F, a
|
||||||
|
jr nz, .WaitInput
|
||||||
|
call LoadFontExtra
|
||||||
|
|
||||||
|
.Close:
|
||||||
|
call CloseWindow
|
||||||
|
|
||||||
|
.Cleanup:
|
||||||
|
push af
|
||||||
|
call Function1fea
|
||||||
|
pop af
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Exit:
|
||||||
|
call ExitMenu
|
||||||
|
ld a, -1
|
||||||
|
ldh [hStartmenuCloseAndSelectHookEnable], a
|
||||||
|
jr .Cleanup
|
||||||
|
|
||||||
|
FieldDebug_CloseMenu:
|
||||||
|
ld a, FIELDDEBUG_RETURN_CLOSE
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_ChangePage:
|
||||||
|
ld a, [wMenuJoypad]
|
||||||
|
cp D_LEFT
|
||||||
|
jr z, .previous
|
||||||
|
ld a, [wFieldDebugPage]
|
||||||
|
inc a
|
||||||
|
cp FIELDDEBUG_NUM_PAGES
|
||||||
|
jr nz, .next
|
||||||
|
xor a
|
||||||
|
.next
|
||||||
|
ld [wFieldDebugPage], a
|
||||||
|
jr FieldDebug_PlayMenuSound
|
||||||
|
|
||||||
|
.previous
|
||||||
|
ld a, [wFieldDebugPage]
|
||||||
|
dec a
|
||||||
|
cp -1
|
||||||
|
jr nz, .load_previous
|
||||||
|
ld a, FIELDDEBUG_NUM_PAGES - 1
|
||||||
|
.load_previous
|
||||||
|
ld [wFieldDebugPage], a
|
||||||
|
jr FieldDebug_PlayMenuSound
|
||||||
|
|
||||||
|
FieldDebug_GoToNextPage:
|
||||||
|
; This will only scroll between the first two pages
|
||||||
|
; instead of the available three.
|
||||||
|
|
||||||
|
ld a, [wFieldDebugPage]
|
||||||
|
and a
|
||||||
|
jr z, .page_1
|
||||||
|
xor a
|
||||||
|
jr .load_page
|
||||||
|
.page_1
|
||||||
|
ld a, 1
|
||||||
|
.load_page
|
||||||
|
ld [wFieldDebugPage], a
|
||||||
|
|
||||||
|
FieldDebug_PlayMenuSound:
|
||||||
|
ld de, SFX_MENU
|
||||||
|
call PlaySFX
|
||||||
|
.loop
|
||||||
|
call GetJoypad
|
||||||
|
ldh a, [hJoyDown]
|
||||||
|
bit A_BUTTON_F, a
|
||||||
|
jr nz, .loop
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_WaitJoypadInput:
|
||||||
|
push bc
|
||||||
|
ld b, a
|
||||||
|
.loop
|
||||||
|
call GetJoypad
|
||||||
|
ldh a, [hJoyDown]
|
||||||
|
and b
|
||||||
|
jr z, .loop
|
||||||
|
pop bc
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_ShowTextboxAndExit:
|
||||||
|
call MenuTextBox
|
||||||
|
ld a, A_BUTTON | B_BUTTON
|
||||||
|
call FieldDebug_WaitJoypadInput
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_FrameType:
|
||||||
|
call FrameTypeDialog
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_Reset:
|
||||||
|
call DisplayResetDialog
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_ShowTrainerCard: ; unreferenced?
|
||||||
|
callab _TrainerCard
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/change_transportation.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/change_tileset.inc"
|
||||||
|
|
||||||
|
FieldDebug_TownMap:
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
call ClearSprites
|
||||||
|
callab FlyMap
|
||||||
|
call ClearPalettes
|
||||||
|
call Function3657
|
||||||
|
call LoadFontExtra
|
||||||
|
call CloseWindow
|
||||||
|
call GetMemSGBLayout
|
||||||
|
call SetPalettes
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/sprite_viewer.inc"
|
||||||
|
|
||||||
|
FieldDebug_NamePlayer:
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
ld de, wPlayerName
|
||||||
|
ld b, 1
|
||||||
|
callab NamingScreen
|
||||||
|
call ClearBGPalettes
|
||||||
|
call ClearTileMap
|
||||||
|
call CloseWindow
|
||||||
|
call ClearSprites
|
||||||
|
call GetMemSGBLayout
|
||||||
|
call SetPalettes
|
||||||
|
ld hl, wce5f
|
||||||
|
res 4, [hl]
|
||||||
|
call LoadFontExtra
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/toolgear.inc"
|
||||||
|
|
||||||
|
FieldDebug_HealPokemon:
|
||||||
|
predef HealParty
|
||||||
|
ld hl, .HealedText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.HealedText:
|
||||||
|
text "#の たいりょくを"
|
||||||
|
line "かいふくしました"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
FieldDebug_CableClub:
|
||||||
|
callab Function29abf
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/npc_movement_test.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/mon_following.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/follow_npc_test.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/warp.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/toggle_npc_movement.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/field_cut.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/check_tile.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/move_to_entrance.inc"
|
||||||
|
|
||||||
|
FieldDebug_TrainerGear:
|
||||||
|
call .OpenTrainerGear
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
.OpenTrainerGear:
|
||||||
|
call LoadStandardMenuHeader
|
||||||
|
callab OpenTrainerGear
|
||||||
|
call ClearPalettes
|
||||||
|
callab StartMenuLoadSprites
|
||||||
|
call CloseWindow
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/map_viewer.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/item_test.inc"
|
||||||
|
|
||||||
|
FieldDebug_PCMenu:
|
||||||
|
callab PokemonCenterPC
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/pokemart_menu.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/teleport.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/minigames.inc"
|
||||||
|
|
||||||
|
FieldDebug_VRAMViewer:
|
||||||
|
call FieldDebug_DoVRAMViewer
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
FieldDebug_ClearEventFlags:
|
||||||
|
call FieldDebug_DoClearEventFlags
|
||||||
|
ld a, FIELDDEBUG_RETURN_REOPEN
|
||||||
|
ret
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/unused_flag_menu.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/unused_priority_menu.inc"
|
||||||
|
|
||||||
|
INCLUDE "engine/debug/field/vram_viewer.inc"
|
||||||
|
|
||||||
|
|
@ -1665,7 +1665,7 @@ Function2b78::
|
||||||
ret
|
ret
|
||||||
|
|
||||||
Function2b79::
|
Function2b79::
|
||||||
callab Functionfce3e
|
callab DebugMapViewer
|
||||||
ld a, $4
|
ld a, $4
|
||||||
call WriteIntod637
|
call WriteIntod637
|
||||||
ret
|
ret
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ OverworldStartButtonCheck::
|
||||||
ld a, [wDebugFlags]
|
ld a, [wDebugFlags]
|
||||||
bit DEBUG_FIELD_F, a
|
bit DEBUG_FIELD_F, a
|
||||||
ret z ; debug disabled
|
ret z ; debug disabled
|
||||||
callba InGameDebugMenu
|
callba FieldDebugMenu
|
||||||
jr CheckStartmenuSelectHook
|
jr CheckStartmenuSelectHook
|
||||||
.regularMenu
|
.regularMenu
|
||||||
callba DisplayStartMenu
|
callba DisplayStartMenu
|
||||||
|
|
|
||||||
|
|
@ -357,6 +357,7 @@ GetBlockLocation::
|
||||||
GetFacingSignpost::
|
GetFacingSignpost::
|
||||||
call GetFacingTileCoord
|
call GetFacingTileCoord
|
||||||
ld b, a
|
ld b, a
|
||||||
|
GetSignpost::
|
||||||
ld a, d
|
ld a, d
|
||||||
sub $4
|
sub $4
|
||||||
ld d, a
|
ld d, a
|
||||||
|
|
|
||||||
|
|
@ -47,14 +47,14 @@ newcharmap local
|
||||||
|
|
||||||
EnableToolgear::
|
EnableToolgear::
|
||||||
ld hl, wd153
|
ld hl, wd153
|
||||||
res 0, [hl]
|
res TOOLGEAR_COORDS_F, [hl]
|
||||||
ld hl, wToolgearFlags
|
ld hl, wToolgearFlags
|
||||||
set 0, [hl]
|
set TOOLGEAR_COORDS_F, [hl]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
DisableToolgear::
|
DisableToolgear::
|
||||||
ld hl, wToolgearFlags
|
ld hl, wToolgearFlags
|
||||||
res 0, [hl]
|
res SHOW_TOOLGEAR_F, [hl]
|
||||||
xor a
|
xor a
|
||||||
ldh [hLCDCPointer], a
|
ldh [hLCDCPointer], a
|
||||||
ret
|
ret
|
||||||
|
|
@ -63,10 +63,10 @@ InitToolgearBuffer::
|
||||||
xor a
|
xor a
|
||||||
ldh [hBGMapMode], a
|
ldh [hBGMapMode], a
|
||||||
ld hl, wToolgearFlags
|
ld hl, wToolgearFlags
|
||||||
bit 0, [hl]
|
bit SHOW_TOOLGEAR_F, [hl]
|
||||||
jr z, .hide_window
|
jr z, .hide_window
|
||||||
|
|
||||||
res 7, [hl]
|
res HIDE_TOOLGEAR_F, [hl]
|
||||||
call LoadToolgearGraphics
|
call LoadToolgearGraphics
|
||||||
|
|
||||||
bgcoord hl, 0, 0, wToolgearBuffer
|
bgcoord hl, 0, 0, wToolgearBuffer
|
||||||
|
|
@ -82,7 +82,7 @@ InitToolgearBuffer::
|
||||||
call UpdateToolgear
|
call UpdateToolgear
|
||||||
|
|
||||||
ld hl, vBGMap1
|
ld hl, vBGMap1
|
||||||
ld bc, $0004 ; 4 tiles = 2 rows
|
ld bc, $4 ; 4 tiles = 2 rows
|
||||||
bgcoord de, 0, 0, wToolgearBuffer
|
bgcoord de, 0, 0, wToolgearBuffer
|
||||||
call Get2bpp
|
call Get2bpp
|
||||||
|
|
||||||
|
|
@ -93,7 +93,7 @@ InitToolgearBuffer::
|
||||||
ldh [hWY], a
|
ldh [hWY], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.hide_window:
|
.hide_window
|
||||||
xor a
|
xor a
|
||||||
ldh [hLCDCPointer], a
|
ldh [hLCDCPointer], a
|
||||||
ld a, $90
|
ld a, $90
|
||||||
|
|
@ -110,19 +110,20 @@ UpdateToolgear::
|
||||||
call ByteFill
|
call ByteFill
|
||||||
|
|
||||||
ld hl, wd153
|
ld hl, wd153
|
||||||
bit 0, [hl]
|
bit TOOLGEAR_COORDS_F, [hl]
|
||||||
jr z, .debug_show_time
|
jr z, .debug_show_time
|
||||||
|
|
||||||
ld hl, wXCoord
|
ld hl, wXCoord
|
||||||
bgcoord de, 4, 1, wToolgearBuffer
|
bgcoord de, 4, 1, wToolgearBuffer
|
||||||
ld c, $01
|
ld c, 1
|
||||||
call .printHex
|
call .printHex
|
||||||
ld hl, wYCoord
|
ld hl, wYCoord
|
||||||
bgcoord de, 8, 1, wToolgearBuffer
|
bgcoord de, 8, 1, wToolgearBuffer
|
||||||
ld c, $01
|
ld c, 1
|
||||||
call .printHex
|
call .printHex
|
||||||
ret
|
ret
|
||||||
.debug_show_time
|
|
||||||
|
|
||||||
|
.debug_show_time
|
||||||
ld hl, hRTCHours
|
ld hl, hRTCHours
|
||||||
bgcoord de, 0, 1, wToolgearBuffer
|
bgcoord de, 0, 1, wToolgearBuffer
|
||||||
call .printDec
|
call .printDec
|
||||||
|
|
@ -140,7 +141,8 @@ UpdateToolgear::
|
||||||
ldh a, [hRTCSeconds]
|
ldh a, [hRTCSeconds]
|
||||||
and 1
|
and 1
|
||||||
ret z
|
ret z
|
||||||
ld a, $70 ; :
|
|
||||||
|
ld a, ":"
|
||||||
ldbgcoord_a 2, 1, wToolgearBuffer
|
ldbgcoord_a 2, 1, wToolgearBuffer
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
@ -180,7 +182,7 @@ UpdateToolgear::
|
||||||
.printDigit::
|
.printDigit::
|
||||||
; .printDigit
|
; .printDigit
|
||||||
; print a hexadecimal digit for value in a to de
|
; print a hexadecimal digit for value in a to de
|
||||||
and $0f
|
and $f
|
||||||
add "0"
|
add "0"
|
||||||
ld [de], a
|
ld [de], a
|
||||||
inc de
|
inc de
|
||||||
|
|
|
||||||
|
|
@ -946,16 +946,16 @@ ROMX $3e
|
||||||
|
|
||||||
ROMX $3f
|
ROMX $3f
|
||||||
org $4000
|
org $4000
|
||||||
org $4305
|
"engine/menu/field_debug_menu.asm@FieldDebugMenuHeader"
|
||||||
"engine/menu/frame_type_dialog.asm"
|
"engine/menu/frame_type_dialog.asm"
|
||||||
org $4362
|
|
||||||
"engine/menu/reset_dialog.asm"
|
"engine/menu/reset_dialog.asm"
|
||||||
org $4a57
|
"engine/debug/field/change_tileset.inc@FieldDebug_ChangeTileset"
|
||||||
"engine/landmarks.asm@1"
|
"engine/landmarks.asm@1"
|
||||||
"data/maps/landmarks.asm"
|
"data/maps/landmarks.asm"
|
||||||
"engine/landmarks.asm@2"
|
"engine/landmarks.asm@2"
|
||||||
org $506f
|
"engine/debug/field/warp.inc@FieldDebug_ShowWarpToText"
|
||||||
"gfx.asm@Town Map Cursor"
|
"gfx.asm@Town Map Cursor"
|
||||||
|
"engine/debug/field/map_viewer.inc@DisplayBGEventDetails"
|
||||||
org $6255
|
org $6255
|
||||||
"engine/menu/debug_menu.asm@Sound Test"
|
"engine/menu/debug_menu.asm@Sound Test"
|
||||||
org $67a1
|
org $67a1
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,10 @@ hRTCSeconds:: db
|
||||||
hRTCDays:: db
|
hRTCDays:: db
|
||||||
ds 2 ; TODO
|
ds 2 ; TODO
|
||||||
hRTCStatusFlags:: db
|
hRTCStatusFlags:: db
|
||||||
ds 3 ; TODO
|
|
||||||
|
ds 2 ; TODO
|
||||||
|
|
||||||
|
hDebugMapViewerJumptable:: db
|
||||||
|
|
||||||
hVBlankCounter::
|
hVBlankCounter::
|
||||||
db
|
db
|
||||||
|
|
|
||||||
48
ram/wram.asm
48
ram/wram.asm
|
|
@ -614,6 +614,7 @@ wWindowStackPointer:: dw
|
||||||
wMenuJoypad:: db
|
wMenuJoypad:: db
|
||||||
wMenuSelection:: db
|
wMenuSelection:: db
|
||||||
wMenuSelectionQuantity:: db
|
wMenuSelectionQuantity:: db
|
||||||
|
wFieldDebugPage::
|
||||||
wWhichIndexSet::
|
wWhichIndexSet::
|
||||||
wActiveBackpackPocket:: db
|
wActiveBackpackPocket:: db
|
||||||
wScrollingMenuCursorPosition:: db
|
wScrollingMenuCursorPosition:: db
|
||||||
|
|
@ -676,12 +677,33 @@ wTitleSequenceOpeningType::
|
||||||
wDefaultSpawnPoint::
|
wDefaultSpawnPoint::
|
||||||
db
|
db
|
||||||
|
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
wcc40:: ; XXX fix this to cc3a
|
||||||
wMovementBufferCount:: db
|
wMovementBufferCount:: db
|
||||||
|
|
||||||
|
wcc41:: ; XXX fix this to cc3b
|
||||||
wMovementBufferObject:: db
|
wMovementBufferObject:: db
|
||||||
|
|
||||||
ptrba wMovementBufferPointer
|
ptrba wMovementBufferPointer
|
||||||
|
|
||||||
wMovementBuffer::
|
wMovementBuffer::
|
||||||
ds 55
|
ds 55
|
||||||
|
|
||||||
|
NEXTU
|
||||||
|
|
||||||
|
wSpriteViewerMenuStartingItem:: db
|
||||||
|
|
||||||
|
ds 2
|
||||||
|
|
||||||
|
wSpriteViewerSavedMenuPointerY:: db
|
||||||
|
wSpriteViewerJumptableIndex:: db
|
||||||
|
|
||||||
|
ds 56
|
||||||
|
|
||||||
|
ENDU
|
||||||
|
|
||||||
SECTION "CC9A", WRAM0[$CC9A]
|
SECTION "CC9A", WRAM0[$CC9A]
|
||||||
|
|
||||||
wSkatingDirection:: db
|
wSkatingDirection:: db
|
||||||
|
|
@ -797,6 +819,7 @@ wStartmenuCursor:: db
|
||||||
wcd40:: db
|
wcd40:: db
|
||||||
wcd41:: db
|
wcd41:: db
|
||||||
wcd42:: db
|
wcd42:: db
|
||||||
|
wFieldDebugMenuCursorBuffer::
|
||||||
wcd43:: db
|
wcd43:: db
|
||||||
wRegularItemsScrollPosition:: db
|
wRegularItemsScrollPosition:: db
|
||||||
wBackpackAndKeyItemsScrollPosition:: db
|
wBackpackAndKeyItemsScrollPosition:: db
|
||||||
|
|
@ -831,6 +854,7 @@ wVramState:: db
|
||||||
wcd5d:: db
|
wcd5d:: db
|
||||||
db
|
db
|
||||||
wChosenStarter:: db
|
wChosenStarter:: db
|
||||||
|
wcd60:: db
|
||||||
|
|
||||||
SECTION "CD70", WRAM0[$CD70]
|
SECTION "CD70", WRAM0[$CD70]
|
||||||
wcd70:: ds 1
|
wcd70:: ds 1
|
||||||
|
|
@ -905,9 +929,21 @@ NEXTU
|
||||||
wHPBarMaxHP:: dw
|
wHPBarMaxHP:: dw
|
||||||
wHPBarOldHP:: dw
|
wHPBarOldHP:: dw
|
||||||
|
|
||||||
|
NEXTU
|
||||||
|
|
||||||
|
wcdc3:: db
|
||||||
|
wcdc4:: db
|
||||||
|
wcdc5:: db
|
||||||
|
wcdc6:: db
|
||||||
|
|
||||||
ENDU
|
ENDU
|
||||||
|
|
||||||
|
UNION
|
||||||
wHPBarNewHP:: dw
|
wHPBarNewHP:: dw
|
||||||
|
NEXTU
|
||||||
|
wcdc7:: db
|
||||||
|
wcdc8:: db
|
||||||
|
ENDU
|
||||||
wHPBarDelta:: db
|
wHPBarDelta:: db
|
||||||
wcdca:: db
|
wcdca:: db
|
||||||
wHPBarHPDifference:: dw
|
wHPBarHPDifference:: dw
|
||||||
|
|
@ -1146,7 +1182,7 @@ wTimeOfDayPal:: db
|
||||||
wd153:: db
|
wd153:: db
|
||||||
; 76543210
|
; 76543210
|
||||||
; | \- show player coords in toolgear instead of time
|
; | \- show player coords in toolgear instead of time
|
||||||
; \-------- switch overworld palettes according to seconds not hours
|
; \-------- switch overworld palettes according to minutes not hours
|
||||||
|
|
||||||
ds 3 ; TODO
|
ds 3 ; TODO
|
||||||
wTimeOfDayPalFlags:: db
|
wTimeOfDayPalFlags:: db
|
||||||
|
|
@ -1317,9 +1353,19 @@ wd642:: db
|
||||||
wBGMapAnchor::
|
wBGMapAnchor::
|
||||||
dw
|
dw
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
wUsedSprites::
|
wUsedSprites::
|
||||||
ds 2
|
ds 2
|
||||||
|
|
||||||
|
NEXTU
|
||||||
|
|
||||||
|
ds 1
|
||||||
|
|
||||||
|
wd646:: db
|
||||||
|
|
||||||
|
ENDU
|
||||||
|
|
||||||
wUsedNPCSprites::
|
wUsedNPCSprites::
|
||||||
ds 8
|
ds 8
|
||||||
|
|
||||||
|
|
|
||||||
4
shim.sym
4
shim.sym
|
|
@ -92,6 +92,7 @@
|
||||||
14:4CD1 Function50cd1
|
14:4CD1 Function50cd1
|
||||||
14:4ED9 Function50ed9
|
14:4ED9 Function50ed9
|
||||||
|
|
||||||
|
23:4325 Function8c325
|
||||||
23:42DC UpdateTimeOfDayPal
|
23:42DC UpdateTimeOfDayPal
|
||||||
23:42E3 _TimeOfDayPals
|
23:42E3 _TimeOfDayPals
|
||||||
23:4335 _UpdateTimePals
|
23:4335 _UpdateTimePals
|
||||||
|
|
@ -128,11 +129,8 @@
|
||||||
38:4E5F Cursor_AnimateCursor
|
38:4E5F Cursor_AnimateCursor
|
||||||
38:4EA8 Cursor_InterpretJoypad
|
38:4EA8 Cursor_InterpretJoypad
|
||||||
|
|
||||||
3F:40E9 InGameDebugMenu
|
|
||||||
3F:4C24 Functionfcc24
|
|
||||||
3F:4E3E Functionfce3e
|
3F:4E3E Functionfce3e
|
||||||
3F:5B66 Functionfdb66
|
3F:5B66 Functionfdb66
|
||||||
3F:6255 Functionfe255
|
|
||||||
3F:64CE MonsterTest
|
3F:64CE MonsterTest
|
||||||
3F:654E PicTest
|
3F:654E PicTest
|
||||||
3F:6750 PicTestMenu
|
3F:6750 PicTestMenu
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user