Commit Graph
1748 Commits
Author SHA1 Message Date
Jonas Volman ecb25ee0cd game: reconstruct slayer display formatter 2026-09-01 17:52:15 -07:00
Jonas Volman 484e637153 main: isolate player control runtime prototype 2026-09-01 17:26:48 -07:00
Jonas Volman c968a9d9dc Match safe weapons reconstruction trio 2026-09-01 17:20:24 -07:00
Jonas Volman 0c08a88cd7 game: recover Slayer target and player update packet 2026-09-01 17:20:19 -07:00
Jonas Volman 99eb6c8722 Recover connected geometry plane helper 2026-09-01 17:20:09 -07:00
Jonas Volman 7055eee35a Match and reconcile main loop
Reconstruct _main_loop from the exact Claude packet using semantic helper names, authentic types, and owner-header prototypes. Keep collision timing declarations behind the collision debug/log boundary so units.obj remains exact.
2026-09-01 17:20:02 -07:00
Jonas Volman c59115611b Reconcile rasterizer geometry closeout 2026-09-01 16:34:34 -07:00
Jonas VolmanandClaude Fable 5 7185b5997f Match rasterizer_geometry compress/uncompress_vertices and the vertex structs
Both bulk converters are strict exact first landing: compress_vertices
736/736 and uncompress_vertices 1088/1088. The object now has ZERO unwritten
functions - 16/19 strict exact plus the 3 parked scheduling ties - up from
9/19 at the start of the session. Board 4,827 -> 4,829 functions and
668,055 -> 669,879 strict code bytes; no other object moved.

Four vertex structs are recovered from the indexing and the stride table:
environment_vertex_uncompressed (56), environment_lightmap_vertex_
uncompressed (20), model_vertex_uncompressed (68) and
model_vertex_compressed (32). The switch uses the _rasterizer_vertex_type_*
enum constants, and prototypes for both functions now live in
rasterizer_geometry.h.

Records a PRESERVED ORIGINAL BUG rather than shipping it silently: the model
node weight is stored by compress with compress_real_to_int16_clamp as a
full 16-bit value (mov word ptr [edi+0xe], ax) but read back by uncompress
as its low byte only (movzx edx, byte ptr [edi+0xe]) and rescaled by 1/255,
so the round trip does not recover the stored weight. Verified against
January's bytes on both sides before concluding it was original rather than
a reconstruction error, and annotated in source with the corrected-build
alternative.

Only extra COMDAT versus January is _fast_ftol; no function is missing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 13:17:05 -07:00
Jonas VolmanandClaude Fable 5 0ec8e6d3a3 Reconstruct uncompress_int32_to_real_vector3d; park three scheduling ties
uncompress_int32_to_real_vector3d is now written: 144/144 padded bytes, 9/9
relocations with identical destinations, 49/49 instructions. The sole
divergence is one dependency-free transposition - January emits
fadd __real@3f800000 before shl eax,0x16 and we emit them swapped, which
also shifts that relocation's address by three bytes.

The shape that got the frame right was a local real_vector3d copied out
through *result, not three scalar reals: sub esp,0xc is the vector, and
naming three scalars lets VC7 fold them away (112 bytes). Bit fields are
11/11/10 with 2^-20 and 2^-21 pre-scales and 1/2047 and 1/1023 scales,
reached by destructive shifts so the shr sequence matches.

Per the new house rule - fuzzy match and park when easy byte matching is not
achievable - this function and the two vector3d compressors are now parked
as instruction-scheduling ties. All three meet the parking standard: exact
padded size, relocation count and destinations, full instruction-count
parity, a precisely classified single divergence, and an exhausted set of
legal-C controls recorded in each entry. Fuzzy: 95.0, 96.35, 94.8.

Parked audit 15 active / 0 stale / 0 invalid; the build gates on parked
evidence and passes. Board unchanged for every other object.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 13:16:54 -07:00
Jonas Volman a7018e7464 Use the real type in rasterizer geometry 2026-09-01 13:16:49 -07:00
Jonas VolmanandClaude Fable 5 c4e2e783f5 Reconstruct the rasterizer_geometry vector3d compress pair
compress_real_vector3d_to_int32 (544) and _clamp (512) are now written and
measure size exact, relocations exact 38/38 address-for-address, 181/181 and
164/164 instructions, differing only by one transposition. NOT exact, no
credit claimed.

Recovered from January's bytes: 11/11/10-bit fields with 1023.5f/511.5f
scales and 0x7ff/0x3ff masks; pack ((k << 11) | j) << 11 | i; a
SELF-REFERENCING round-trip copy through one local (&v2 in, *result back
into v2); the assert message goes through the global temporary with a format
that is exactly 36 bytes including NUL, which is what pins 0x%x%x%x rather
than a spaced form. The clamp twin folds PIN into the same multiply.

Two spellings bracket the target: one local gives the correct sub esp,0x10
frame but an interleaved copy (10 insns off), while a separate decompressed
local gives the correct grouped aliasing-safe copy but a 12-byte-too-large
frame (2 bytes off). January needs both. The one-local form is landed
because a frame-size mismatch is structural under the campaign's
frame-layout law, so the byte-closer variant is the wrong reconstruction.

Copy-schedule variants measured inert: named pointer, inner-scoped pointer,
declaration order, and combinations. Naming the packed value regresses to
528 bytes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 13:16:00 -07:00
Jonas VolmanandClaude Fable 5 992a24d674 Match the rasterizer_geometry compress_real_to_intN family
Four previously unwritten functions strict exact on first compile:
compress_real_to_int8 (96B), _int8_clamp (80B), _int16 (112B), _int16_clamp
(96B). Object 9/19 -> 13/19; board 4,822 -> 4,826 functions and 667,591 ->
667,975 strict code bytes, with no previously exact function changed.

These are the oracles the fast_ftol attribution predicted - each ends in
fld <param>; fistp <local>, which no ordinary C conversion emits under this
compiler - so they were unreachable until the helper was admitted today.
January pins two details: the scaled value is reassigned into the PARAMETER
rather than a fresh local, and the clamp variants fold PIN into the same
multiply-and-store statement. The int16 pair round through
(real)floor(z * 32767.5f).

get_vertex_size is blocked by a header disagreement, recorded rather than
forced: January asserts type < 12 and indexes a 12-entry table, while the
repository enum has 18 members after importing six later types. The
recovered table is in the ledger for whoever corrects the enum under a full
board rebuild.

uncompress_int32_to_real_vector3d is fully decoded but left unwritten: two
spellings give 128 and 112 bytes against January's 144, which stages results
through float locals. Not landed non-exact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 13:15:52 -07:00
Jonas Volman 660bf34212 Reconcile structure lens flares source 2026-09-01 13:01:08 -07:00
Jonas Volman 28c27d0beb Use cseries word type in debug memory 2026-08-31 23:51:09 -07:00
Jonas Volman 757dafb12b Close out debug memory residual 2026-08-31 23:49:58 -07:00
Jonas Volman 9916d7b81a Close out light volume residual 2026-08-31 23:49:53 -07:00
Jonas Volman e511e27660 Close out typed LRUV residuals 2026-08-31 23:49:49 -07:00
Jonas Volman ec4ae894a1 Finalize reconciled object campaign checkpoint 2026-08-31 23:13:10 -07:00
Jonas Volman 52d3d0ca2e Reconstruct particle rendering pipeline 2026-08-31 23:06:04 -07:00
Jonas Volman c0fcc65f33 Reconcile bitmap utilities donor progress 2026-08-31 23:04:47 -07:00
Jonas Volman 0428bdbb36 Reconstruct transparent geometry lifecycle 2026-08-31 22:56:36 -07:00
Jonas Volman 3f19a13c9a Restore Flood shamble behavior 2026-08-31 22:37:08 -07:00
Jonas Volman 40a912a2fa Reconstruct uncover and cinematic functions 2026-08-31 22:03:12 -07:00
Jonas Volman c9a6ae5cd9 Reconstruct and park wind variance initializer 2026-08-31 20:50:24 -07:00
Jonas Volman 0ff4d41b01 Reject weapon residual with surplus COMDAT owner 2026-08-31 20:42:14 -07:00
Jonas Volman c63cce99ae Reconcile safe wave with frozen residual rulings 2026-08-31 20:42:11 -07:00
Jonas Volman 1b25a20dde Reconcile safe TIFF, LRUV, camera, and weapon progress 2026-08-31 20:42:06 -07:00
Jonas Volman 4277f892c1 Admit audited Claude reconstruction gains
Retain 18 strict exact-function gains across Actions, Actor Combat, Decals, Game Engine, Object Lights, and Bipeds after removing donor bodies that regressed exact objects, emitted unowned code, or violated source-credibility rules. Name authenticated private symbols, move declarations to owner headers, record honest residual parks, and preserve units.obj at 189/189.
2026-08-31 20:42:01 -07:00
Jonas Volman aaff13666f Audit Claude wave and admit provenance-safe progress 2026-08-31 16:48:01 -07:00
Jonas Volman 9f74e9937f Import 909 authenticated January and HCEA symbol names 2026-08-31 16:11:03 -07:00
Jonas Volman 9f63702601 Add provenance-safe symbol importer and correct CRC/LRA private names 2026-08-31 16:08:09 -07:00
Jonas Volman 40a88b9e8a Close matrix_math.obj with authenticated AP-930 kernel 2026-08-31 15:36:07 -07:00
Jonas Volman b4ac869aec Recover authenticated Actions helper names 2026-08-31 12:49:47 -07:00
Jonas Volman 11ca9bb2f5 Correct thread ownership and recover camera names 2026-08-31 12:46:57 -07:00
Jonas Volman 69ce74cc76 Recover biped export and speech priority leaves 2026-08-31 12:15:39 -07:00
Jonas Volman 179ea4a366 Recover small actor bitmap biped and weapon owners 2026-08-31 11:53:54 -07:00
Jonas Volman 8335af1092 Admit authenticated weapons zoom and score helper 2026-08-31 11:30:19 -07:00
Jonas Volman af15449fc1 Recover authenticated AI communication trio 2026-08-31 11:08:42 -07:00
Jonas Volman 1612ef9b6b Admit Path and Decals updates; correct Object Lights linkage 2026-08-31 10:50:21 -07:00
Jonas Volman 84f28b906a Admit Props gains and correct game statistics 2026-08-31 10:01:48 -07:00
Jonas Volman a6fb6ded3c Recover AI communication reply filters 2026-08-31 09:17:52 -07:00
Jonas Volman 6b797dc3de Recover biped limp and flight pair 2026-08-31 09:17:24 -07:00
Jonas Volman 67ccd49298 Recover Slayer score quartet 2026-08-31 08:58:39 -07:00
Jonas Volman 8e658a818f Recover actor movement exact sextet 2026-08-31 08:29:16 -07:00
Jonas Volman e259063caf Recover HUD messaging exact trio 2026-08-31 08:14:01 -07:00
Jonas Volman 1b49fbacb3 Recover physics debug rendering 2026-08-31 07:50:59 -07:00
Jonas Volman ee24686f1d Recover projectiles aiming quartet 2026-08-31 07:36:41 -07:00
Jonas Volman af9f192610 Restore official zlib private ownership 2026-08-31 07:21:44 -07:00
Jonas Volman ee62f36f1f Integrate audited Claude small-object recoveries 2026-08-31 06:55:10 -07:00
Jonas Volman 303282a543 Recover physics object prefix functions 2026-08-31 06:06:25 -07:00