Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
861a0de
decomp: name SDK rpc, tty, stdio and memory card fields
nickyyOO Nov 6, 2026
cb91d7b
decomp: name SDK DMA, IPU, clock and file I/O fields
nickyyOO Nov 6, 2026
023768e
decomp: name camera tracking, controls picture and moby animation fields
nickyyOO Nov 6, 2026
e2edf86
decomp: name 44 hero fields from their use
nickyyOO Nov 6, 2026
f846a41
decomp: name moby LOD, metal, sequence sound and class header fields
nickyyOO Nov 6, 2026
06e209f
decomp: name manipulator, sky cluster, draw switch and resident objec…
nickyyOO Nov 6, 2026
2642d53
chore: check-unit picks up header edits; cleanup guide says where nam…
nickyyOO Nov 6, 2026
d82cb3e
decomp: name delete_moby, scrolling status and class registration fields
nickyyOO Nov 6, 2026
4defb37
decomp: name level 11 moby fields
nickyyOO Nov 6, 2026
1abfede
decomp: name enemy fields in levels 0, 4, 5, 7, 12 and 14
nickyyOO Nov 6, 2026
29ae825
decomp: use the new hero and moby field names in level code
nickyyOO Nov 6, 2026
c1027cd
decomp: name 67 more hero fields from their use
nickyyOO Nov 6, 2026
2527e26
decomp: name menu, map, disc table and follow camera fields from thei…
nickyyOO Nov 6, 2026
939f421
decomp: name moby animation rate, pose layers, shadow slab and grid f…
nickyyOO Nov 6, 2026
1dc09c4
decomp: name spline ship, taxi and machinegun turret fields in levels…
nickyyOO Nov 6, 2026
65b1df7
decomp: name enemy movement, knockback and target fields in shared en…
nickyyOO Nov 6, 2026
1e9c67c
decomp: name bridge, door, teleporter and other prop fields in shared…
nickyyOO Nov 6, 2026
bf2a891
decomp: name moby-controlled camera fields in shared camera
nickyyOO Nov 6, 2026
2757bff
decomp: name rotator, grindrail barrier, debris and light fields in s…
nickyyOO Nov 6, 2026
4435356
decomp: name spline path, background ship and taxi path fields in sha…
nickyyOO Nov 6, 2026
b9aa6e2
decomp: name decoy and ryno rocket fields in shared weapons
nickyyOO Nov 6, 2026
30a178b
decomp: name HUD element and item selector slot fields in shared ui
nickyyOO Nov 6, 2026
70bd443
decomp: name crate class and bolt moby fields in shared pickups
nickyyOO Nov 6, 2026
e75834b
decomp: name stationary ship carrier moby fields in level 1
nickyyOO Nov 6, 2026
2bfdb42
decomp: name Skid's agent, sand shark, liftcar and elevator fields in…
nickyyOO Nov 6, 2026
7cdc2ff
decomp: name train carriage, mine layer, path mover and red ship fiel…
nickyyOO Nov 6, 2026
1c76f6a
decomp: name alien queen, door, gas vent and breakaway piece fields i…
nickyyOO Nov 6, 2026
1467351
decomp: define the Veldin ship reflection mesh in C
nickyyOO Nov 6, 2026
a6a8d73
decomp: define the timed subtitle text tables in C
nickyyOO Nov 6, 2026
5b005cc
decomp: define the suck cannon beam rings in C
nickyyOO Nov 6, 2026
456e360
decomp: name map header, screen stripe, vendor strip and missions tex…
nickyyOO Nov 6, 2026
b7813e9
decomp: name sound definition range, pitch and loop fields
nickyyOO Nov 6, 2026
11b9503
decomp: name bomb, bomber tank, rocket and emitter fields in level 8
nickyyOO Nov 6, 2026
7869e39
decomp: name refueling station and shuttle fields in level 9
nickyyOO Nov 6, 2026
3bb4b9b
decomp: name platform, linked hitbox, blarg ship and projectile field…
nickyyOO Nov 6, 2026
0da6202
decomp: name volume trigger, switch group, rocket and commando fields…
nickyyOO Nov 6, 2026
5d52a7f
decomp: name cutscene trigger and scientist fields in level 15
nickyyOO Nov 6, 2026
d7c9748
decomp: name hoverboard dummy, chomper, conveyor and bomb fields in l…
nickyyOO Nov 6, 2026
81df501
decomp: name camera box watcher, fleet beam and blarg ship fields in …
nickyyOO Nov 6, 2026
815d191
decomp: name camera transition, missile, rocket tank and gadgebot kno…
nickyyOO Nov 6, 2026
d507d56
decomp: name decoy glove, metal detector and doom bot fields in share…
nickyyOO Nov 6, 2026
dcf39af
decomp: name the moby bolt count
nickyyOO Nov 6, 2026
a0790ae
decomp: define the nanotech ball meshes in C
nickyyOO Nov 6, 2026
3a675ea
decomp: keep draw_timed_text's label beside its definition
nickyyOO Nov 6, 2026
d6277af
decomp: define the level help history lists in C
nickyyOO Nov 6, 2026
835fc4b
decomp: share the ground movement control block of walking enemies
nickyyOO Nov 6, 2026
bf837cb
decomp: share the knockback motion block of enemies
nickyyOO Nov 6, 2026
bfc43c3
decomp: name grindrail camera path, rate and basis fields
nickyyOO Nov 6, 2026
e084a63
decomp: name pause menu state and level map fields in shared ui and game
nickyyOO Nov 6, 2026
a284b33
decomp: name particle fields in shared rendering
nickyyOO Nov 6, 2026
0f4b3dc
decomp: name hud wobble and message box fields in shared ui
nickyyOO Nov 6, 2026
94e5a6e
decomp: name cutscene trigger fields in shared cutscenes
nickyyOO Nov 6, 2026
7306615
decomp: name follow camera approach fields in shared camera
nickyyOO Nov 6, 2026
429f195
decomp: name hoverboard and moby camera fields in shared camera
nickyyOO Nov 6, 2026
7c3617f
decomp: name enemy health, max health and hit response class fields
nickyyOO Nov 6, 2026
e6722ab
decomp: name more enemy health and hit response class fields
nickyyOO Nov 6, 2026
5129ac5
decomp: name chicken, devastator missile and mine fields in shared we…
nickyyOO Nov 6, 2026
2912810
decomp: name bolt attraction and gold bolt spin fields in shared pickups
nickyyOO Nov 6, 2026
124d51f
decomp: name camera basis rows and the pause menu's saved camera, vie…
nickyyOO Nov 6, 2026
c1ab156
decomp: keep the menu system 8-byte aligned
nickyyOO Nov 6, 2026
0504db6
decomp: name teleporter, gunship, smoke fire spawner and hit source c…
nickyyOO Nov 6, 2026
2f4be8d
decomp: share the hit colour flash and knockback motion layouts in da…
nickyyOO Nov 6, 2026
4f70f9e
decomp: name the hit colour flash start and update functions in every…
nickyyOO Nov 6, 2026
55a7c52
decomp: use the shared hit colour flash layout in enemy and turret pvars
nickyyOO Nov 6, 2026
2f19e96
decomp: use the shared knockback motion layout in six enemy pvars (se…
nickyyOO Nov 6, 2026
3d3942a
decomp: use the shared knockback motion layout in mine layer and robo…
nickyyOO Nov 6, 2026
42929b6
decomp: name the hero rail speed and the level camera view matrix and…
nickyyOO Nov 6, 2026
4b515aa
chore: prove level copies of executable data by vote and by code shape
nickyyOO Nov 6, 2026
ee44db2
decomp: define the mission and map icon lists in C
nickyyOO Nov 6, 2026
b928f4b
decomp: define the vendor sparkle mesh in C
nickyyOO Nov 6, 2026
e957e1d
decomp: define the vendor item display and exit cutscene tables in C
nickyyOO Nov 6, 2026
ea0493c
decomp: format the mission item header
nickyyOO Nov 6, 2026
326ec76
decomp: define the vendor hologram mesh in C
nickyyOO Nov 6, 2026
a53cbcd
decomp: define the unlock code button tables in C
nickyyOO Nov 6, 2026
d60de3e
decomp: define the vendor item sound and message table in C
nickyyOO Nov 6, 2026
674f749
decomp: define the gold bolt count of each level in C
nickyyOO Nov 6, 2026
6fde9d8
decomp: define the thousands separators and the message too long labe…
nickyyOO Nov 6, 2026
aa36ca9
chore: prove switch tables among the level copies of executable data
nickyyOO Nov 6, 2026
a5bce3c
decomp: define the debug messages of eight units in C
nickyyOO Nov 6, 2026
00a703b
decomp: keep init_ground_move_control's label beside its body
nickyyOO Nov 6, 2026
98ecda0
decomp: name heavy interceptor, machinegun turret, racer, bolt thief …
nickyyOO Nov 6, 2026
f2ea57a
decomp: name snagglebeast, taxi, falling platform, bombomatic and min…
nickyyOO Nov 6, 2026
275eb5d
decomp: name blarg trooper, leg rig, woodcut bot and snow plow fields…
nickyyOO Nov 6, 2026
4386ab7
decomp: name extermibot, extermitank, amoeboid, sharkigator and platf…
nickyyOO Nov 6, 2026
dc47c31
decomp: name homing mine spawner, helicopter and platform fields in l12
nickyyOO Nov 6, 2026
68ba5df
decomp: name puffoid, teleporter, psytcopus and resort owner fields i…
nickyyOO Nov 6, 2026
f53472f
decomp: name alien queen and countdown sequence fields in l06
nickyyOO Nov 6, 2026
8e499e3
decomp: name the GS register and texture coordinate fields of the geo…
nickyyOO Nov 6, 2026
31092ab
decomp: name mine, turret shot and thrown weapon fields in shared wea…
nickyyOO Nov 6, 2026
5d42b32
decomp: name the big head cheat manipulator fields in enemy pvars
nickyyOO Nov 6, 2026
0ec21ed
decomp: name the robot probe, quad and clank trigger dialogue fields …
nickyyOO Nov 6, 2026
3787d52
decomp: name blarg ship spin and fleet beam endpoint fields in l17
nickyyOO Nov 6, 2026
bfcea57
decomp: name the camera transition hero placement fields in l18
nickyyOO Nov 6, 2026
8457d9e
decomp: name the turret camera shake fields in l09
nickyyOO Nov 6, 2026
2156761
decomp: name the hero loop voice slot and last ground height
nickyyOO Nov 6, 2026
0ec5380
decomp: name bolt pickup, bombthrower, bolt thief, bomber tank and di…
nickyyOO Nov 6, 2026
fb8f09d
decomp: share the hero motion moby view with Moby's field names and n…
nickyyOO Nov 6, 2026
0f8edc6
decomp: read the hero motion voice checks through the voice pool window
nickyyOO Nov 6, 2026
12f9f9e
decomp: name poison vessel, helicopter, help hint, scientist and ultr…
nickyyOO Nov 6, 2026
bc3a1e9
decomp: name constructorbot, sand shark, nest and Skid's agent fields…
nickyyOO Nov 6, 2026
b30c3f3
decomp: name Qwark's starfighter, robosquawker, space fighter, turret…
nickyyOO Nov 6, 2026
9afaf42
decomp: use the shared knockback and ground move layouts in the l10 t…
nickyyOO Nov 6, 2026
ec3de9d
decomp: name the hero swim entry frames and the hero motion moby view…
nickyyOO Nov 6, 2026
1671219
decomp: define the wrench swing trail meshes in C
nickyyOO Nov 6, 2026
e21fd0c
decomp: define the vendor item pose and part tables in C
nickyyOO Nov 6, 2026
c454963
decomp: define the item preview placements in C
nickyyOO Nov 6, 2026
1abc516
decomp: define the shrub class slot table in C
nickyyOO Nov 6, 2026
5aa185e
decomp: name the hero scale pulse, fidget prop, ledge gravity, grind …
nickyyOO Nov 6, 2026
2115b91
decomp: name the hero push impulse, stop deceleration, ramp launch fo…
nickyyOO Nov 6, 2026
e40a36f
decomp: name the attack record chain fields, the idle fidget animatio…
nickyyOO Nov 6, 2026
5d66156
decomp: name the level camera transition kind, blend rates and orbit …
nickyyOO Nov 6, 2026
f0c5b45
decomp: name the collision hit surface type
nickyyOO Nov 6, 2026
86b7c86
decomp: name the hero grapple target swing flag
nickyyOO Nov 6, 2026
32fe4f6
decomp: name the red ship spline and offset, frog, scoutbot beam and …
nickyyOO Nov 6, 2026
b655330
decomp: name the hero move and hop parameter block used by doom bots
nickyyOO Nov 6, 2026
67edb45
decomp: name the enemy hurt flag in the sentrybot, paratrooper and am…
nickyyOO Nov 6, 2026
a37a778
decomp: name the camera orbit length
nickyyOO Nov 6, 2026
0a56732
decomp: define the save block lists mc_gamedata and mc_leveldata in C
nickyyOO Nov 6, 2026
dd5421a
decomp: define the gadget preview resource bindings in C
nickyyOO Nov 6, 2026
6c289b0
decomp: define the GS depth test packets in C
nickyyOO Nov 6, 2026
9b01f99
decomp: define the level 6 backdrop mesh vertices and texture coordin…
nickyyOO Nov 6, 2026
14e939c
decomp: define the interpolated packet scale tables of seven levels in C
nickyyOO Nov 6, 2026
d8f6ff2
decomp: name the enemy target info record and its fields in enemy pvars
nickyyOO Nov 6, 2026
f5738b2
decomp: name the target info fields in the ground melee enemy pvars
nickyyOO Nov 6, 2026
ac135e5
decomp: name the hero ground move block, doom bot movement fields and…
nickyyOO Nov 6, 2026
1f538fa
decomp: name the doom bot move states after their max speed
nickyyOO Nov 6, 2026
65b191b
decomp: name Clank's rotor and antenna glow mobys, the delayed voice …
nickyyOO Nov 6, 2026
a3ab536
decomp: name the transition archives in the disc table, the HUD skip …
nickyyOO Nov 6, 2026
740fc69
decomp: name the menu option and choice labels and the vendor menu au…
nickyyOO Nov 6, 2026
87f1441
decomp: name the item def weapon_up flag and update stale hero field …
nickyyOO Nov 6, 2026
a3edd8a
decomp: name the camera record class field
nickyyOO Nov 6, 2026
7ee1e03
decomp: define the glyph metrics of the three fonts in C
nickyyOO Nov 6, 2026
a3cca8a
decomp: define the vendor item prices in C
nickyyOO Nov 6, 2026
739bd52
decomp: define the map layer screen insets per level in C
nickyyOO Nov 6, 2026
d6b02ea
decomp: define the level 6 backdrop mesh tables of the second draw co…
nickyyOO Nov 6, 2026
1b2ab67
decomp: define the unused point pair tables of the level 16 reflectio…
nickyyOO Nov 6, 2026
54e2dcd
decomp: define the unused point pair tables of the other level 16 and…
nickyyOO Nov 6, 2026
77baf2c
decomp: name the follow camera leash, pitch and pull-back fields and …
nickyyOO Nov 6, 2026
c9d2f44
decomp: name the level camera tracking block and camera moby and the …
nickyyOO Nov 6, 2026
94e6e06
decomp: name enemy target info, hit surface type and probe direction …
nickyyOO Nov 6, 2026
b77a997
decomp: name the target info look and wrench sound fields of level en…
nickyyOO Nov 6, 2026
17cf9d2
decomp: name the hud bank stash handles and hud slot update, mode and…
nickyyOO Nov 6, 2026
6e4b6ba
decomp: name the crate burst hit descriptor fields
nickyyOO Nov 6, 2026
6efe6bc
decomp: define the HUD selector slot tables per level in C
nickyyOO Nov 6, 2026
265c16c
decomp: define the cutscene moby class per content variant in C
nickyyOO Nov 6, 2026
819221f
decomp: define the level 17 fleet backdrop scrolling quad tables in C
nickyyOO Nov 6, 2026
08c6567
decomp: define the hero jump velocity key tables of every level in C
nickyyOO Nov 6, 2026
67524d9
decomp: name the follow camera run-toward lock, pull-back max and scr…
nickyyOO Nov 6, 2026
0c5be88
decomp: name the freeze mode box timer and fade step
nickyyOO Nov 6, 2026
9329b57
decomp: name the vendor menu frame capture and animation data fields
nickyyOO Nov 6, 2026
e6534c6
decomp: name the hud channel mode, serial and pending fields and the …
nickyyOO Nov 6, 2026
f8ab065
decomp: name the sky header texture data, fx list, sprite data and cl…
nickyyOO Nov 6, 2026
30f9d3f
decomp: name the scene playback chunk fields and the memory slot ring…
nickyyOO Nov 6, 2026
07633d1
decomp: name the sound bank handle and memory card fields in the leve…
nickyyOO Nov 6, 2026
ba41be0
decomp: name the bolt spin, target and glint slot vars and the crate …
nickyyOO Nov 6, 2026
8c9a4a6
decomp: name the mine spin and wobble vars and the turret shot probe …
nickyyOO Nov 6, 2026
6a23087
decomp: name the hero visibomb fin manipulator buffers
nickyyOO Nov 6, 2026
e3f0ef9
decomp: name the l11 water tile ripple constants
nickyyOO Nov 6, 2026
ce451b5
decomp: name the l11 water render parameters, seesaw carry flags and …
nickyyOO Nov 6, 2026
cb25aa2
decomp: name the l01 spark life and alpha, pool tile alpha fixes and …
nickyyOO Nov 6, 2026
fcaf3ad
decomp: name the l07 target info and ground move fields of the platfo…
nickyyOO Nov 6, 2026
582df0d
decomp: name the l04 leg rig gait and stride and the blarg trooper re…
nickyyOO Nov 6, 2026
e8bb3c6
decomp: name the l05 moby array, hatch, flap, sliding block and water…
nickyyOO Nov 6, 2026
a20aaab
decomp: name the l00 flock part fields, robot stun timer and clank do…
nickyyOO Nov 6, 2026
0498e3e
decomp: name the l03 talk record dialogue entry after update_npc_dial…
nickyyOO Nov 6, 2026
87f9aa5
decomp: name the l10 platform target info fields and blarg ship stun …
nickyyOO Nov 6, 2026
1c57351
decomp: name the l14 path mover target info and tilting platform carr…
nickyyOO Nov 6, 2026
d0f09a7
decomp: name the l16 conveyor belt carry flags
nickyyOO Nov 6, 2026
07c21c1
decomp: name the l08 blarg bombthrower's bomb update
nickyyOO Nov 6, 2026
f26cf22
decomp: name the l18 drifting mine update
nickyyOO Nov 6, 2026
17bd747
decomp: name the l05 triggered moby, l08 bomb and l18 mine files afte…
nickyyOO Nov 6, 2026
02766e1
decomp: name the menu system travel state, sequence autoclose and all…
nickyyOO Nov 6, 2026
8956c53
decomp: name the menu screen map flags and draw flags, the quit menu …
nickyyOO Nov 6, 2026
a736727
decomp: name the map state readiness flag, coverage run table and cel…
nickyyOO Nov 6, 2026
01ca440
decomp: name the hero grounded normal, board stick, ground material 6…
nickyyOO Nov 6, 2026
2daaaa5
decomp: use the card save flag name in the memory card state initializer
nickyyOO Nov 6, 2026
456a98d
decomp: name the moby hit attack type and subtype and the hit descrip…
nickyyOO Nov 6, 2026
c55cdd6
decomp: name the hit resolver attack type fields, the tesla target hi…
nickyyOO Nov 6, 2026
0d5a49b
decomp: name the screen point, tie texture bases, transition overlay …
nickyyOO Nov 6, 2026
55a99f2
decomp: name the l02 sand shark max health and smoke vent mode
nickyyOO Nov 6, 2026
a059fd8
decomp: name the l06 countdown sequence moby lists and alien queen li…
nickyyOO Nov 6, 2026
e3c8e24
decomp: name the l08 shuttle route selection and bomber tank bomb sou…
nickyyOO Nov 6, 2026
5da2eb5
decomp: name the l09 path asteroid node and init fields
nickyyOO Nov 6, 2026
64fe6d8
decomp: name the l12 blarg helicopter respawn flag, rocket hit fields…
nickyyOO Nov 6, 2026
6e442c4
decomp: name the l13 attached rocket and gemlik projectile level hit …
nickyyOO Nov 6, 2026
1f9fec6
decomp: name the l17 camera box hero cuboid and fleet backdrop endpoi…
nickyyOO Nov 6, 2026
be296db
decomp: name the l18 drek missile motion fields, child carrier flag a…
nickyyOO Nov 6, 2026
c51073a
decomp: name hero and moby local layout fields after Moby, the wrench…
nickyyOO Nov 6, 2026
bd5d2d3
decomp: name weapon local fields after the suck record, the collision…
nickyyOO Nov 6, 2026
2badd72
decomp: name enemy suck record, target info, hit flash and level gate…
nickyyOO Nov 6, 2026
cbeeaaf
decomp: name the grindrail camera velocity pad lane
nickyyOO Nov 6, 2026
c9a98b5
decomp: name the pause menu fog fields after struct View and the map …
nickyyOO Nov 6, 2026
bdafda5
decomp: refer to named HUD element fields in the HUD comments
nickyyOO Nov 6, 2026
3487474
decomp: name beam trail slot rows and the effect probe hit descriptor…
nickyyOO Nov 6, 2026
3654556
decomp: name the level stash slot record after StashEntry
nickyyOO Nov 6, 2026
5fb623f
decomp: refer to Moby.save_id in the garage door and spawn point comm…
nickyyOO Nov 6, 2026
48fac7f
decomp: name the HUD element animation id, mode, next id/mode, pendin…
nickyyOO Nov 6, 2026
c5e436e
decomp: name the point light intensity in the boot and level light re…
nickyyOO Nov 6, 2026
f763f9a
decomp: name the effect part type and allocation flags
nickyyOO Nov 6, 2026
3e592ca
decomp: name the item def icon and slot anim count views, the MobyAni…
nickyyOO Nov 6, 2026
d7dea82
decomp: name the vendor menu exit anchor, scratch buffer, reaction ti…
nickyyOO Nov 6, 2026
d880a31
decomp: name the tie and shrub class position scale and mip distance
nickyyOO Nov 6, 2026
69cd097
decomp: name the vendor price pickup ammo and fix a stale pad history…
nickyyOO Nov 6, 2026
f0c89e5
decomp: name the boot moby views' state, voice owner, sequence trigge…
nickyyOO Nov 6, 2026
e3ede7a
decomp: name the music channel fade timer and the voice state view
nickyyOO Nov 6, 2026
cbb7a73
decomp: name the effect texture tex0 view and the moby scale of the v…
nickyyOO Nov 6, 2026
77098f7
decomp: name the memory slot 6 free start, pad the cutscene state wor…
nickyyOO Nov 6, 2026
3ade14d
decomp: name the movie CD stream sector and the MPEG error callback m…
nickyyOO Nov 6, 2026
d59f13d
decomp: name the hero fire ring/spark timers, swim level velocity, fl…
nickyyOO Nov 6, 2026
1759fcc
decomp: name the level story trip, landing flag, hero start position/…
nickyyOO Nov 6, 2026
a6164d0
decomp: name the l13 gemlik hero start fields and the electric water …
nickyyOO Nov 6, 2026
15cccd5
decomp: name the glow quad corner texture coordinates and the orbit o…
nickyyOO Nov 6, 2026
6e9f8c8
fix: correct names from the audit: orbit duration, music pause fields…
nickyyOO Nov 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,199 changes: 918 additions & 281 deletions config/us/levels/data.tsv

Large diffs are not rendered by default.

1,350 changes: 1,312 additions & 38 deletions config/us/levels/exe_data.tsv

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions config/us/undefined_syms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,13 @@ D_001A26C0 = 0x001A26C0;
D_001A28C8 = 0x001A28C8;
D_001A2A08 = 0x001A2A08;
D_001A2AF8 = 0x001A2AF8;
D_00141680 = 0x00141680;
D_00141720 = 0x00141720;
D_0015ED8C = 0x0015ED8C;
D_0015ED90 = 0x0015ED90;
D_0015ED94 = 0x0015ED94;
D_0015ED9C = 0x0015ED9C;
D_0015EE28 = 0x0015EE28;
D_0015EE2C = 0x0015EE2C;
D_0015EEA8 = 0x0015EEA8;
D_0015EEAC = 0x0015EEAC;
36 changes: 27 additions & 9 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,10 +317,10 @@
"l05/mobys/skid_mcmarx.c",
"l05/mobys/taxi.c",
"l05/mobys/television.c",
"l05/mobys/triggered_motion.c",
"l05/mobys/triggered_slide.c",
"l05/mobys/triggered_moby_yaw.c",
"l05/mobys/triggered_spray_emitter.c",
"l05/mobys/moby_893.c",
"l05/mobys/moby_843.c",
"l05/mobys/moby_895.c",
"l05/mobys/moby_855.c",
"l05/mobys/water.c",
"l06/hero/hero_set_state.c",
"l06/hero/update_hero_state_machine.c",
Expand Down Expand Up @@ -379,7 +379,7 @@
"l08/mobys/blarg_bombthrower.c",
"l08/mobys/bolt_pickup.c",
"l08/mobys/bolt_thief.c",
"l08/mobys/bomb.c",
"l08/mobys/blarg_bombthrower_bomb.c",
"l08/mobys/bomber_tank.c",
"l08/mobys/bomber_tank_bomb.c",
"l08/mobys/commando.c",
Expand Down Expand Up @@ -675,7 +675,7 @@
"l18/mobys/hidden_deplanetizer_gun.c",
"l18/mobys/inert_moby.c",
"l18/mobys/lift.c",
"l18/mobys/mine.c",
"l18/mobys/drek_boss_mine.c",
"l18/mobys/rocket.c",
"l18/mobys/rocket_tank.c",
"l18/mobys/rocket_tank_rocket.c",
Expand Down Expand Up @@ -940,6 +940,15 @@
# link fails when the section is not SIZE bytes. Both the assembly-backed and
# the promoted (normalized) unit names resolve to the same retail bytes.
RODATA_OVERLAYS = {
"game/startlevel": (0x1E76C0, 0xE8640, 23),
"rendering/frame/initialize_level_render_state": (0x1E76D8, 0xE8658, 80),
"rendering/lights/detach_point_light": (0x1E7B50, 0xE8AD0, 105),
"mobys/create_moby": (0x1E83C0, 0xE9340, 57),
"rendering/mobys/draw_mobys": (0x1E8400, 0xE9380, 35),
"rendering/texture/dma_shrub_textures": (0x1E88D0, 0xE9850, 24),
"rendering/texture/dma_tfrag_textures": (0x1E89B0, 0xE9930, 24),
"rendering/texture/dma_tie_textures": (0x1E8A50, 0xE99D0, 22),
"ui/text/copy_text_to_shared_buffer": (0x1E7AA8, 0xE8A28, 19), # "(Message too long)"
"_dtoa_r": (0x152310, 0x53290, 88), # Infinity/NaN/0 strings, f64 literals, switch table
# _getpic's switch emits a 5-entry jump table (0x14 bytes) that retail
# stored at 0x153AA0 inside core_rdata; the expected object references it
Expand Down Expand Up @@ -973,7 +982,7 @@
"ui/help/draw_help": (0x1E7A70, 0xE89F0, 28), # switch table (migrated)
"ui/help/dismiss_help": (0x1E7A20, 0xE89A0, 32), # switch table (migrated)
"_sceFs_Rcv_Intr": (0x1528E0, 0x53860, 100), # retail switch table (jtbl_001528E0)
"ui/menus/system/process_menu_entry": (0x1E86A0, 0xE9620, 24), # retail switch table (jtbl_001E86A0)
"ui/menus/system/process_menu_entry": (0x1E8680, 0xE9600, 56), # thousands separators, switch table (jtbl_001E86A0)
"draw_sky_shells": (0x1E8910, 0xE9890, 24), # switch table
"ui/menus/system/update_timed_menu_sequence": (0x1E8810, 0xE9790, 80), # switch table
"mobys/animation/update_resident_dialogue_animation_state": (0x1E8A90, 0xE9A10, 52), # switch table
Expand Down Expand Up @@ -1133,13 +1142,15 @@
"game/startlevel": (0x15EF5C, 0x5FEDC, 4), # boot image buffer
"mobys/update_visible_mobys": (0x15FF24, 0x60EA4, 4), # visible moby list
"world/select_world_object_resource_tables": (0x15FF44, 0x60EC4, 8), # resource tag and count
"world/update_world_object_animation": (0x160488, 0x61408, 12), # cutscene moby class per content variant
"ui/hud/init_hud": (0x15F6D8, 0x60658, 8), # allocation tag
"ui/menus/widgets/format_scaled_display_value": (0x161078, 0x61FF8, 11), # display value formats
}

# The same for a unit's `.data`: data only that unit reads, defined in it.
# `scripts/data-refs.py --emit` writes the definition and prints the entry.
DATA_OVERLAYS = {
"ui/menus/system/setup_menu_display_text": (0x1E0888, 0xE1808, 76), # gold bolts per level
"sdk/kernel/supplement_crt0": (0x130320, 0x312A0, 8),
"sdk/graph/sce_gs_get_gparam": (0x132D40, 0x33CC0, 16),
"sdk/input/sce_pad2_init": (0x132DD0, 0x33D50, 4), # pad2_initialized
Expand All @@ -1160,7 +1171,7 @@
"rendering/effects/render_level_effects_and_screen_sprites": (0x1CE2C0, 0xCF240, 56),
"weapons/load_hand_gadget": (0x1D52E8, 0xD6268, 1776),
"ui/menus/item_preview/update_preview_animation_and_attachments": (0x1D6080, 0xD7000, 56),
"rendering/shrubs/register_shrub_render_class": (0x1D7F30, 0xD8EB0, 384),
"rendering/shrubs/register_shrub_render_class": (0x1D7F30, 0xD8EB0, 1408),
"rendering/effects/build_variant_effect_quads": (0x1D9890, 0xDA810, 384),
"rendering/effects/build_resident_indexed_texture_warp_meshes": (0x1D9A10, 0xDA990, 56),
"rendering/effects/draw_light_flare": (0x1D97B0, 0xDA730, 224),
Expand All @@ -1176,6 +1187,7 @@
"rendering/texture/initialize_alpha_lookup_table": (0x18E740, 0x8F6C0, 1024),
"mobys/resolve_moby_hit_response": (0x1CC080, 0xCD000, 200),
"ui/map/copy_level_object_positions": (0x1E03B8, 0xE1338, 80),
"ui/menus/item_preview/update_item_preview_binding": (0x1E0408, 0xE1388, 1152),
"rendering/debug/print_debug_text_centered": (0x189DC0, 0x8AD40, 384),
"rendering/effects/draw_light_quads": (0x18CAA0, 0x8DA20, 64),
"runtime/callbacks/add_draw_callback": (0x18DB40, 0x8EAC0, 512),
Expand Down Expand Up @@ -1221,6 +1233,7 @@
"ui/map/world_to_map_coords": (0x19E970, 0x9F8F0, 304),
"ui/text/copy_text_to_shared_buffer": (0x19A440, 0x9B3C0, 80),
"ui/menus/save_data/run_state_handler": (0x1A0438, 0xA13B8, 100),
"save/memcard_restore_game": (0x1A04C0, 0xA1440, 960), # the save block lists mc_gamedata, mc_leveldata
"mobys/find_or_allocate_moby_render_slot": (0x1B2BC0, 0xB3B40, 64),
"mobys/stash_moby_class_dists": (0x1B2E80, 0xB3E00, 896),
"ui/menus/pause/assign_heli_pack_label_text_table": (0x1D06D0, 0xD1650, 112),
Expand All @@ -1239,8 +1252,13 @@
"rendering/vu1/vu1_gs_regs_alt": (0x1DE3F0, 0xDF370, 48), # its GS register packet
"rendering/vu1/vu1_tex_flush": (0x1DEE00, 0xDFD80, 48), # its GS register packet
"ui/map/draw_map_overlay": (0x1E8068, 0xE8FE8, 17), # no map text
"ui/map/update_map_icons": (0x1A2BC0, 0xA3B40, 76), # icon list of each level
"ui/map/update_map_icons": (0x1A08C0, 0xA1840, 9036), # mission and map icon lists of each level
"ui/menus/item_preview/draw_menu_preview_objects": (0x1D5020, 0xD5FA0, 96), # slot draw flags
"ui/menus/item_preview/clear_preview_resource_bindings": (0x1D59D8, 0xD6958, 136),
"ui/menus/system/emit_selected_graphics_dma_packets": (0x1D7D90, 0xD8D10, 192),
"ui/text/font/font_print": (0x1DF050, 0xDFFD0, 2784), # glyph records of the three fonts
"ui/vendor/render_vendor_buy_label_pass": (0x1DFFB0, 0xE0F30, 1032), # vendor prices by item
"ui/map/draw_map_screen_layers": (0x1DDF68, 0xDEEE8, 76), # map inset per level
}

# Uninitialised variables a unit defines. `.sbss` (small ones) sits in the
Expand Down
5 changes: 5 additions & 0 deletions docs/contributing/code-cleanup.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@ register that nothing set on that path (to keep it live) as
- **Locals and fields:** name them by what they hold (`count`, `next`), not by
register or offset (`v1`, `unk_70`). Keep `unkXXX` only until the meaning is
clear.
- **Where names come from:** what the code does with the value first. SDK
code takes the names of the PS2 SDK headers (`sceSifServeData`,
`sceIpuDmaEnv`, `sceCdCLOCK`) or of newlib (`FILE`, `_reent`). A file-local
copy of a shared struct (a moby, a moby class) uses the names of its header
(`rnc/mobys/moby.h`), even when it keeps its own layout.

## Structs and data

Expand Down
14 changes: 7 additions & 7 deletions include/rnc/audio/music/music_stream_state.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@

/* One music channel record (0x1C bytes). */
struct MusicStreamChannel {
s32 handle; /* 0x00: stream handle from the start callback; -1 while starting */
s16 track; /* 0x04 */
s16 volume; /* 0x06 */
s16 flags; /* 0x08 */
s16 state; /* 0x0A: set 1 on start, 1 -> 2 in the start callback */
s16 fade_flags; /* 0x0C: -0x8000 on music_pause, 4 on music_unpause */
s16 unkE; /* 0x0E: cleared by music_pause */
s32 handle; /* 0x00: stream handle from the start callback; -1 while starting */
s16 track; /* 0x04 */
s16 volume; /* 0x06 */
s16 flags; /* 0x08 */
s16 state; /* 0x0A: set 1 on start, 1 -> 2 in the start callback */
s16 pause_flags; /* 0x0C: bit 0x8000 pauses the stream (music_pause), 4 resumes it (music_unpause) */
s16 pause_timer; /* 0x0E: frames until a timed pause ends; 0 from music_pause pauses until music_unpause */
s16 crossfade_enabled; /* 0x10: remaining-time callback starts the crossfade */
u8 pad_12[0x2];
s32 poll_interval; /* 0x14 */
Expand Down
2 changes: 1 addition & 1 deletion include/rnc/audio/voice_pool.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ typedef struct {
s32 group_3_volume;
s32 group_4_volume;
s32 group_5_volume;
s32 unk60;
s32 reverb_owner; /* 0x060: owner of the reverb request */
s32 reverb_depth; /* 0x064 */
u8 reverb_type;
u8 reverb_delay;
Expand Down
8 changes: 4 additions & 4 deletions include/rnc/camera/camera_globals.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ struct CameraBlend {
/* advance_alternate_camera_transition's orbit around the focus, from
orbit_angles toward the angles compute_camera_angles gives. */
struct CameraOrbit {
f32 angles[3]; /* 0x00: yaw, pitch, distance (compute_camera_angles) */
s32 frames; /* 0x0C */
f32 frame_step; /* 0x10: 1 / frames */
s32 start_count; /* 0x14: counted up on each start */
f32 angles[3]; /* 0x00: yaw, pitch, distance (compute_camera_angles) */
s32 frames; /* 0x0C */
f32 frame_step; /* 0x10: 1 / frames */
s32 duration_frames; /* 0x14: orbit duration set by the camera; start_camera_blend adds one and scales it into frames */
u8 pad_18[0x8];
f32 forward[4]; /* 0x20 */
f32 up[4]; /* 0x30 */
Expand Down
77 changes: 39 additions & 38 deletions include/rnc/camera/follow_cam.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,20 @@
* follow_camera_transition reads `follow` for its spring constants, and
* fast_dec_timer counts `blend_timer` down. The follow_camera_set_* setters
* (FUN_L00_002e8450..002e8680) each write one field and do nothing while the
* record's unk86 is set. The shot cameras (volume_camera_swing, volume_camera_aim)
* record's camera_class is set. The shot cameras (volume_camera_swing, volume_camera_aim)
* snap every vector at once when a shot starts.
*/
typedef struct {
f32 focus[4]; /* 0x40: point the camera looks at, moved by velocity each frame */
f32 velocity[4]; /* 0x50: focus displacement for this frame */
u8 pad60[0x20];
f32 look_target[4]; /* 0x80: focus offset blended towards the hero */
f32 eye[4]; /* 0x90: resulting camera position */
f32 offset[4]; /* 0xA0: eased offset, split into a lateral and an up part */
f32 lateral_ease[4]; /* 0xB0: cam_interp_values state of the lateral part */
f32 up_ease[4]; /* 0xC0: cam_interp_values state of the up part */
f32 unkD0[4]; /* 0xD0: set to look_target when a shot camera snaps */
f32 look_target[4]; /* 0x80: focus offset blended towards the hero */
f32 pivot
[4]; /* 0x90: point pivot_height above the hero; the camera sits at pivot + eye_offset */
f32 offset[4]; /* 0xA0: eased offset, split into a lateral and an up part */
f32 lateral_ease[4]; /* 0xB0: cam_interp_values state of the lateral part */
f32 up_ease[4]; /* 0xC0: cam_interp_values state of the up part */
f32 snap_look_target[4]; /* 0xD0: set to look_target when a shot camera snaps */
u8 padE0[0x10];
f32 look_height; /* 0xF0: height of look_target above the hero */
u8 padF4[0x22];
Expand All @@ -39,58 +40,58 @@ typedef struct {

/* 0x1A8: FUN_L00_002e8680 and the shot cameras reach `flags` through it. */
typedef struct {
u8 pad1A8[8];
f32 unk1B0; /* 0x1B0: aim cameras start only while it is (nearly) 0 */
u8 pad1A8[8];
f32 pitch_input; /* 0x1B0: normalised stick pitch; aim cameras start only while it is (nearly) 0 */
u8 pad1B4[4];
s32 flags; /* 0x1B8: bits 0 and 1 set by the shot cameras and FUN_L00_002e8680 */
} FollowCamFlags;

/* 0x1D0: written when a shot camera snaps. */
typedef struct {
u8 pad1D0[0x20];
f32 unk1F0[4]; /* 0x1F0: set to the record's position */
f32 unk200; /* 0x200: unk15C minus the length of unk130 */
u8 pad204[8];
f32 shot_pos[4]; /* 0x1F0: set to the record's position */
f32 distance_reduction; /* 0x200: distance minus the length of eye_offset (walls pull the camera in) */
u8 pad204[8];
} FollowCamSnap;

typedef struct {
f32 unk130[4]; /* 0x130: eye offset; its length is the eye distance */
f32 unk140[4]; /* 0x140: copy of unk130 */
u8 pad150[0xC];
f32 unk15C; /* 0x15C: eye distance, set with unk130 by the shot cameras */
f32 distance; /* 0x160: distance of the eye behind the hero */
f32 unk164; /* 0x164: aim cameras start only while it is (nearly) 0 */
u8 pad168[0x40];
f32 eye_offset[4]; /* 0x130: camera offset from the pivot; its length is distance */
f32 saved_eye_offset[4]; /* 0x140: copy of eye_offset */
u8 pad150[0xC];
f32 distance; /* 0x15C: distance of the camera from the pivot (4.64), length of eye_offset */
f32 pivot_height; /* 0x160: height of the pivot above the hero (2.0) */
f32 yaw_step; /* 0x164: yaw step this frame; aim cameras start only while it is (nearly) 0 */
u8 pad168[0x40];
FollowCamFlags ctl; /* 0x1A8 */
u8 pad1BC[0x10];
f32 unk1CC; /* 0x1CC: set by FUN_L00_002e8540 */
FollowCamSnap snap; /* 0x1D0 */
f32 zoom_scale; /* 0x20C */
f32 zoom; /* 0x210: 1.0 is no zoom */
f32 zoom_range; /* 0x214 */
u8 pad218[0xE];
s16 unk226; /* 0x226: set to 1 by FUN_L00_002e8620 */
u8 pad228[4];
f32 unk22C; /* 0x22C: set by FUN_L00_002e8490 */
s32 mode; /* 0x230: 0 normal; shot cameras of type 10 and 11 set 0x14D and 2 */
f32 script_pitch; /* 0x1CC: scripted pitch in radians, set by set_follow_camera_script_pitch */
FollowCamSnap snap; /* 0x1D0 */
f32 zoom_scale; /* 0x20C */
f32 zoom; /* 0x210: 1.0 is no zoom */
f32 zoom_range; /* 0x214 */
u8 pad218[0xE];
s16 run_toward_lock; /* 0x226: 1 (lock_follow_camera_run_toward) keeps the camera from pulling back while the hero runs toward it */
u8 pad228[4];
f32 pull_back_max; /* 0x22C: farthest pull-back while the hero runs toward the camera (6.0), set by set_follow_camera_pull_back_max */
s32 mode; /* 0x230: 0 normal; shot cameras of type 10 and 11 set 0x14D and 2 */
} FollowCamTail;

/* 0x20..0x3B: eased values reset when a shot camera snaps. */
typedef struct {
u8 pad20[2];
s16 unk22; /* 0x22 */
f32 look_height; /* 0x24: copy of follow.look_height */
f32 distance; /* 0x28: copy of tail.distance */
f32 unk2C; /* 0x2C */
f32 unk30; /* 0x30 */
f32 unk34; /* 0x34 */
f32 unk38; /* 0x38 */
s16 unk22; /* 0x22 */
f32 look_height; /* 0x24: copy of follow.look_height */
f32 pivot_height; /* 0x28: eased copy of tail.pivot_height */
f32 look_height_vel; /* 0x2C: cam_interp_values step of look_height */
f32 pivot_height_vel; /* 0x30: cam_interp_values step of pivot_height */
f32 pitch_bias; /* 0x34: springed pitch bias while the camera is low */
f32 pitch_bias_vel; /* 0x38 */
u8 pad3C[4];
} FollowCamReset;

typedef struct FollowCamState {
f32 position[4]; /* 0x00: the record's position when a shot camera snaps */
s16 unk10; /* 0x10: set by set_follow_camera_orbit_clamp_mode */
f32 position[4]; /* 0x00: the record's position when a shot camera snaps */
s16 leash; /* 0x10: nonzero lets the camera trail the hero on a leash; set by set_follow_camera_orbit_clamp_mode */
u8 pad12[0xE];
FollowCamReset reset; /* 0x20 */
FollowCamBlock follow; /* 0x40 */
Expand Down
19 changes: 10 additions & 9 deletions include/rnc/camera/update_cam.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@
D_00187410[48]; D_001870C0[0] and [1] point at the current and previous
one. Size 0xA0 (backup_current_cam copies 0xA0 bytes). */
struct UpdateCam {
u128 m0;
u128 m1;
u128 m2;
u128 forward; /* 0x00: camera basis rows (grindrail camera) */
u128 right; /* 0x10: cross(forward, the level up) */
u128 up; /* 0x20: cross(right, forward) */
Vec4f pos;
u8 pad40[0x24];
u128 prev_forward; /* 0x40: copy of forward the pitch rotation starts from */
u8 pad50[0x14];
Vec3 prev_pos;
void *saved_state;
u8 state; /* activation rule, see camera_activation_check_priority */
Expand All @@ -26,11 +27,11 @@ struct UpdateCam {
s16 transition_state;
u8 pad80[4];
s16 descriptor_index;
s16 unk86; /* 0 lets the hero collision moby spawn; 6 disables shake */
u8 pad88[4];
s16 type; /* index into camera_types (D_001E8C00) */
s16 activation_blocked;
u8 pad90[0x10];
s16 camera_class; /* 0x86: 0 the follow camera (lets the hero collision moby spawn), 6 disables shake, 7 Swingshot */
u8 pad88[4];
s16 type; /* index into camera_types (D_001E8C00) */
s16 activation_blocked;
u8 pad90[0x10];
};

/* Per camera type callbacks, indexed by UpdateCam.type. */
Expand Down
Loading
Loading