mirror of
https://github.com/pret/pokegold-spaceworld.git
synced 2026-10-01 21:06:56 -05:00
engine: disassemble player movement (WIP)
Signed-off-by: Tauwasser <Tauwasser@tauwasser.eu>
This commit is contained in:
@@ -24,6 +24,8 @@ INCLUDE "constants/landmark_constants.asm"
|
||||
INCLUDE "constants/map_constants.asm"
|
||||
INCLUDE "constants/map_setup_constants.asm"
|
||||
INCLUDE "constants/tileset_constants.asm"
|
||||
INCLUDE "constants/collision_constants.asm"
|
||||
INCLUDE "constants/metatile_constants.asm"
|
||||
INCLUDE "constants/map_data_constants.asm"
|
||||
INCLUDE "constants/script_constants.asm"
|
||||
|
||||
|
||||
128
constants/collision_constants.asm
Normal file
128
constants/collision_constants.asm
Normal file
@@ -0,0 +1,128 @@
|
||||
; collision IDs are built like this:
|
||||
; 76543210
|
||||
; \__/|\_/
|
||||
; | | \-- SubType
|
||||
; | \---- Flag
|
||||
; \------ Type
|
||||
;
|
||||
; What exactly flag means or if it
|
||||
; means anything is up to Type.
|
||||
; Old Types:
|
||||
; ???
|
||||
; New Types:
|
||||
; 0 - Regular 8 - ???
|
||||
; 1 - Trees, Grass etc. 9 - Special Talk Action
|
||||
; 2 - Water A - Jump Action
|
||||
; 3 - Water 2 B - unused
|
||||
; 4 - Land C - unused
|
||||
; 5 - Land 2 D - unused
|
||||
; 6 - ??? E - unused
|
||||
; 7 - Warps F - unused
|
||||
|
||||
COLLISION_TYPE_MASK EQU $f0
|
||||
COLLISION_SUBTYPE_MASK EQU $07
|
||||
COLLISION_WATER_SUBTYPE_MASK EQU $03
|
||||
|
||||
COLLISION_FLAG EQU $08
|
||||
|
||||
; old collision constants
|
||||
|
||||
OLD_COLLISION_TYPE_REGULAR EQU $00
|
||||
OLD_COLLISION_TYPE_SCENERY EQU $10
|
||||
OLD_COLLISION_TYPE_WATER EQU $20
|
||||
OLD_COLLISION_TYPE_WATER2 EQU $40
|
||||
|
||||
OLD_COLLISION_WALKABLE EQU $00
|
||||
OLD_COLLISION_SOLID EQU $01
|
||||
OLD_COLLISION_FLOOR EQU $03
|
||||
OLD_COLLISION_WALL EQU $04
|
||||
|
||||
OLD_COLLISION_LEDGE EQU $11
|
||||
|
||||
OLD_COLLISION_WATER2_S EQU $40
|
||||
|
||||
OLD_COLLISION_ROCK EQU $51
|
||||
|
||||
OLD_COLLISION_CARPED EQU $60
|
||||
OLD_COLLISION_DOOR EQU $61
|
||||
|
||||
OLD_COLLISION_SIGNPOST EQU $70
|
||||
OLD_COLLISION_SHOP_SIGN EQU $71
|
||||
OLD_COLLISION_MART_ITEM EQU $72
|
||||
OLD_COLLISION_COUNTER EQU $73
|
||||
|
||||
OLD_COLLISION_CUT_TREE EQU $80
|
||||
OLD_COLLISION_GRASS EQU $82
|
||||
|
||||
; new collision constants
|
||||
|
||||
COLLISION_TYPE_REGULAR EQU $00
|
||||
COLLISION_TYPE_SCENERY EQU $10
|
||||
COLLISION_TYPE_WATER EQU $20
|
||||
COLLISION_TYPE_WATER2 EQU $30
|
||||
COLLISION_TYPE_LAND EQU $40
|
||||
COLLISION_TYPE_LAND2 EQU $50
|
||||
COLLISION_TYPE_UNK EQU $60
|
||||
COLLISION_TYPE_WARPS EQU $70
|
||||
COLLISION_TYPE_UNKN2 EQU $80
|
||||
COLLISION_TYPE_SPECIAL EQU $90
|
||||
COLLISION_TYPE_JUMP EQU $A0
|
||||
|
||||
COLLISION_WALKABLE EQU $00
|
||||
COLLISION_SOLID EQU $07
|
||||
COLLISION_CUT_TREE EQU $12
|
||||
COLLISION_GRASS EQU $18
|
||||
|
||||
; water collisions
|
||||
|
||||
COLLISION_WATER EQU $21
|
||||
COLLISION_WATERFALL EQU $22
|
||||
COLLISION_WATER_SOLID EQU $27
|
||||
|
||||
; water collisions 2
|
||||
COLLISION_WATER2_E EQU $30
|
||||
COLLISION_WATER2_W EQU $31
|
||||
COLLISION_WATER2_N EQU $32
|
||||
COLLISION_WATER2_S EQU $33
|
||||
; $34..$37 will behave like COLLISION_WATER2_E..COLLISION_WATER2_S
|
||||
|
||||
; land collisions
|
||||
COLLISION_LAND_SLOW EQU $40
|
||||
COLLISION_LAND_E EQU $41
|
||||
COLLISION_LAND_W EQU $42
|
||||
COLLISION_LAND_N EQU $43
|
||||
COLLISION_LAND_S EQU $44
|
||||
; $45..$47 will behave like COLLISION_LAND_E
|
||||
|
||||
; land collisions 2
|
||||
COLLISION_LAND2_E EQU $50
|
||||
COLLISION_LAND2_W EQU $51
|
||||
COLLISION_LAND2_N EQU $52
|
||||
COLLISION_LAND2_S EQU $53
|
||||
; $54..$57 will behave like COLLISION_LAND2_E
|
||||
|
||||
|
||||
; warp collisions
|
||||
COLLISION_CARPET EQU $70
|
||||
COLLISION_DOOR EQU $71
|
||||
COLLISION_STEPS EQU $72
|
||||
|
||||
; special collisions
|
||||
COLLISION_COUNTER EQU $90
|
||||
COLLISION_BOOKCASE EQU $91
|
||||
COLLISION_PC EQU $93
|
||||
COLLISION_RADIO EQU $94
|
||||
COLLISION_SIGNPOST EQU $95
|
||||
COLLISION_STRAIGHT_SIGNPOST EQU $97
|
||||
|
||||
; jump collisions
|
||||
; perform jump in marked direction, else
|
||||
; regular walking
|
||||
COLLISION_JUMP_E EQU $a0
|
||||
COLLISION_JUMP_W EQU $a1
|
||||
COLLISION_JUMP_N EQU $a2
|
||||
COLLISION_JUMP_S EQU $a3
|
||||
COLLISION_JUMP_SE EQU $a4
|
||||
COLLISION_JUMP_SW EQU $a5
|
||||
COLLISION_JUMP_NE EQU $a6
|
||||
COLLISION_JUMP_NW EQU $a7
|
||||
32
constants/metatile_constants.asm
Normal file
32
constants/metatile_constants.asm
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
; all outside tileset share certain metatiles
|
||||
; this is used in overworld code when editing the map
|
||||
; D - dirt
|
||||
; L - lawn
|
||||
; T - small tree
|
||||
; C - cut tree
|
||||
; G - grass
|
||||
METATILE_GROUND EQU $01 ; DD
|
||||
; DD
|
||||
METATILE_LAWN EQU $04 ; LL
|
||||
; LL
|
||||
METATILE_SMALL_TREES_N EQU $25 ; TT
|
||||
; LL
|
||||
METATILE_SMALL_TREES_W EQU $28 ; TL
|
||||
; TL
|
||||
METATILE_SMALL_TREES_E EQU $2a ; LT
|
||||
; LT
|
||||
METATILE_CUT_SE_TREES_N EQU $30 ; TT
|
||||
; LC
|
||||
METATILE_CUT_NW_TREES_E EQU $31 ; CT
|
||||
; LT
|
||||
METATILE_CUT_NE_TREE_NW EQU $32 ; TC
|
||||
; LL
|
||||
METATILE_CUT_NE_TREE_SE EQU $33 ; LC
|
||||
; LT
|
||||
METATILE_SMALL_TREE_NW EQU $34 ; TL
|
||||
; LL
|
||||
METATILE_SMALL_TREE_SE EQU $35 ; TL
|
||||
; LL
|
||||
METATILE_GRASS EQU $3b ; GG
|
||||
; GG
|
||||
BIN
data/collision/collision_type_table.bin
Normal file
BIN
data/collision/collision_type_table.bin
Normal file
Binary file not shown.
1115
engine/overworld/player_movement.asm
Normal file
1115
engine/overworld/player_movement.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1679,7 +1679,7 @@ Function2b87::
|
||||
call GetJoypad
|
||||
call OverworldStartButtonCheck
|
||||
ret nz
|
||||
callab Functionc000
|
||||
callab OverworldMovementCheck
|
||||
call Function2ba8
|
||||
jr nc, .asm_2b87
|
||||
callba Function824c
|
||||
|
||||
1
shim.sym
1
shim.sym
@@ -58,7 +58,6 @@
|
||||
02:528B Function928b
|
||||
02:5695 CheckSGB
|
||||
|
||||
03:4000 Functionc000
|
||||
03:47D5 SpawnPoints
|
||||
03:488D Tilesets
|
||||
03:54E6 Functiond4e6
|
||||
|
||||
9
wram.asm
9
wram.asm
@@ -343,7 +343,10 @@ wMovementBufferObject:: db ; cc3b
|
||||
wMovementBuffer:: ; cc3f
|
||||
ds 55
|
||||
|
||||
SECTION "CC9C", WRAM0[$CC9C]
|
||||
SECTION "CC9A", WRAM0[$CC9A]
|
||||
|
||||
wSkatingDirection:: db ; cc9a
|
||||
wCompanionCollisionFrameCounter:: db ; cc9b
|
||||
|
||||
wUnknownWordcc9c:: ; cc9c
|
||||
dw
|
||||
@@ -735,6 +738,10 @@ wRivalsName:: ds 6 ; d258
|
||||
|
||||
SECTION "PlayerState", WRAM0[$D264]
|
||||
wPlayerState:: db ; d264
|
||||
; 00 - walking
|
||||
; 01 - bicycle
|
||||
; 02 - skateboard
|
||||
; 04 - surfing
|
||||
|
||||
SECTION "D4AB", WRAM0[$D4A9]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user