Commit Graph

  • 040386c0fb Volumes: the reference that did not generalise ReaperOfVeriod 2026-10-13 07:35:58 +02:00
  • ca277a0a01 Volumes: a candidate table found, explicitly not called volumes ReaperOfVeriod 2026-10-13 07:33:26 +02:00
  • 28ab7e094b SBlk head characterised: four constants and one word that is not a count ReaperOfVeriod 2026-10-13 07:29:07 +02:00
  • bc5ebe559f Tie slots 3, 6, 7: two readings excluded, and why the LOD test stops working ReaperOfVeriod 2026-10-13 07:24:29 +02:00
  • e86de3c73e Tie i16[0..2] are the vertex positions, with a control in the test ReaperOfVeriod 2026-10-13 07:21:57 +02:00
  • 06cf2fd46d Tie vertex slot 3 is a byte-sized index, not a coordinate ReaperOfVeriod 2026-10-13 07:18:13 +02:00
  • 1fa1913e38 Reconcile the docs after the last three corrections ReaperOfVeriod 2026-10-13 07:13:45 +02:00
  • 282e633a7c Withdraw the collision anchor: it was a byte-order bug in my own search ReaperOfVeriod 2026-10-13 07:10:17 +02:00
  • 1f903efe23 An external decomp turns two overlay constants from measured into named ReaperOfVeriod 2026-10-13 07:07:21 +02:00
  • 26a0918178 Gate the PCSX2 claims as tests; two corrections fall out of writing them ReaperOfVeriod 2026-10-13 06:59:22 +02:00
  • 9f938f47de Assert the tie vertex layout finding in a test, and audit which claims are asserted ReaperOfVeriod 2026-10-13 06:54:52 +02:00
  • 922248a4ec Tie: the element layout differs by i16[3] high byte, and (6,7) is a real pair ReaperOfVeriod 2026-10-13 06:53:22 +02:00
  • ed3e85a0f2 Refine the tie texcoord finding: it is i16[3]'s HIGH byte that selects ReaperOfVeriod 2026-10-13 06:50:08 +02:00
  • e27c40e738 Explain the tie texcoord residual: i16[3] selects the encoding ReaperOfVeriod 2026-10-13 05:19:06 +02:00
  • 3ee0b3d0dc Disprove that morphing causes the tfrag byte changes: LOD selection does ReaperOfVeriod 2026-10-13 05:14:40 +02:00
  • aff977e8c5 Correct the tfrag pointer-field claim, and show morphing regenerates VU packets ReaperOfVeriod 2026-10-13 05:08:08 +02:00
  • 93591a79de Verify the tfrag record framing against RAM: two pointer fields, morphed vertices ReaperOfVeriod 2026-10-13 05:04:25 +02:00
  • 6d0c1b6fd1 Close out tfrag on the disc side, and fix two stale "not recovered" claims ReaperOfVeriod 2026-10-13 04:50:28 +02:00
  • d56b439502 Exclude the collision segmentation theories on the full population, and name the unblock ReaperOfVeriod 2026-10-13 04:46:10 +02:00
  • 338af9b7bd Fix the collision grid dims, and disprove two sample artifacts in the payload ReaperOfVeriod 2026-10-13 04:44:09 +02:00
  • d5e637930b Show the collision payload is verbatim in RAM, and retract the "not in RAM" claim ReaperOfVeriod 2026-10-13 04:40:01 +02:00
  • 180fc27b04 Locate the tie texcoord field at i16[4]/i16[5], and rule out the (6,7) artifact ReaperOfVeriod 2026-10-13 04:30:45 +02:00
  • 35b087c882 Establish the tie vertex element is 16 bytes, and correct the roadmap's tie entry ReaperOfVeriod 2026-10-13 04:27:54 +02:00
  • 54862b64ee Identify the tie record as RAC1's TiePacketHeader, and retract a formula ReaperOfVeriod 2026-10-13 04:22:38 +02:00
  • 4e90c282ad Make the tie record relocation a command, and verify it on two levels ReaperOfVeriod 2026-10-12 15:24:48 +02:00
  • e6eecb871f Decode the tie LOD block: it is a table of 16-byte records ReaperOfVeriod 2026-10-12 07:17:41 +02:00
  • c2af0528e3 Correct the chunk loader finding and decode a record field ReaperOfVeriod 2026-10-12 06:00:29 +02:00
  • 8147110377 Bring the roadmap's chunk section up to date ReaperOfVeriod 2026-10-12 04:32:43 +02:00
  • 2c4bbdc600 Use PCSX2 RAM to recover the chunk loader's transformation ReaperOfVeriod 2026-10-12 04:32:07 +02:00
  • e2b12a2e52 Rule out a count field in chunk record bodies; correct a six-record impression ReaperOfVeriod 2026-10-12 04:27:54 +02:00
  • 28680b4be3 Show the first two chunk-record bytes encode the record's own index ReaperOfVeriod 2026-10-12 04:25:44 +02:00
  • 79914c420e Show the chunk record's leading byte is a per-chunk phase counter; every chunk has a uniform record length ReaperOfVeriod 2026-10-12 04:21:32 +02:00
  • a9bf74fc10 Characterise all 77 chunk types: record byte 0 is a bucket index, not data ReaperOfVeriod 2026-10-12 04:18:55 +02:00
  • 291153a0d9 Find the tie LOD block terminator; packets == 0 means no block at that LOD ReaperOfVeriod 2026-10-12 04:13:52 +02:00
  • 02342de31b Decode the tie LOD block header; establish the payload is variable-length ReaperOfVeriod 2026-10-12 04:09:08 +02:00
  • 881fd48e9a Withdraw the 16-byte tie record claim: block size is a multiple of 16, not records ReaperOfVeriod 2026-10-12 03:56:41 +02:00
  • 855e640f39 Establish the 16-byte tie record on measurable classes; packets[0] is a constant ReaperOfVeriod 2026-10-12 03:50:42 +02:00
  • 60e3f129d8 Resolve both tie indirections on all 1,864 classes, and disprove a sample artifact ReaperOfVeriod 2026-10-12 03:47:49 +02:00
  • e5d267a810 Reconcile roadmap.md with the parsers that actually exist ReaperOfVeriod 2026-10-12 03:43:44 +02:00
  • d8b8ccc6d4 Follow the gameplay.bin pointers: they address position and direction arrays ReaperOfVeriod 2026-10-12 03:36:55 +02:00
  • b17ec17127 Rule out the moby_anim instance-table reading of the chunk types ReaperOfVeriod 2026-10-12 03:33:52 +02:00
  • 02ced5ee83 Parse the per-level overlay: header, constant block, level data ReaperOfVeriod 2026-10-12 03:32:02 +02:00
  • bd012efe71 Find a 64-byte collision record stride in RAM, and record a savestate search pitfall ReaperOfVeriod 2026-10-12 03:27:14 +02:00
  • d3e1475f64 Characterise gameplay.bin as a flat pointer table, and record volumes as unlocated ReaperOfVeriod 2026-10-12 03:19:03 +02:00
  • 575d1a5bdd Correct the overlay strings from a table to a pool ReaperOfVeriod 2026-10-12 03:17:50 +02:00
  • a5a33b9bc0 Locate level_overlay's sections and a 16-aligned debug string table ReaperOfVeriod 2026-10-12 03:11:25 +02:00
  • e58ab0e815 Correct the collision table's extent: 17 entries, deltas rise then fall ReaperOfVeriod 2026-10-12 03:08:03 +02:00
  • b66e77855c Locate a per-cell offset table in collision, on level 4 ReaperOfVeriod 2026-10-12 03:03:18 +02:00
  • 2569cc06ab Decode the collision payload's leading two counts ReaperOfVeriod 2026-10-12 02:58:46 +02:00
  • 72bbd5da38 Rule out GS packet framing in tie, with a control that nearly fooled me ReaperOfVeriod 2026-10-12 02:56:58 +02:00
  • 86ff2e6052 Measure tie spans: a constant first word and three quantized floats ReaperOfVeriod 2026-10-12 02:52:45 +02:00
  • 32a24574be Identify data.bin as the level file descriptor, not geometry ReaperOfVeriod 2026-10-12 02:50:24 +02:00
  • 5610d173b0 Narrow the collision header to two fields plus a third used by five levels ReaperOfVeriod 2026-10-12 02:49:25 +02:00
  • 51348b214d Report the sky reserved-word count in the test output ReaperOfVeriod 2026-10-12 02:43:40 +02:00
  • 681e7e62ef Parse the sky block: 149 sub-objects with a bounding sphere, and correct the count field ReaperOfVeriod 2026-10-12 02:43:28 +02:00
  • bbce492c91 Establish that the loader produces the RAM packet forms, not the disc ReaperOfVeriod 2026-10-12 02:37:55 +02:00
  • 5ade83cf0a Parse the shrub packet header, a fixed signature on all 2056 disc packets ReaperOfVeriod 2026-10-12 02:35:00 +02:00
  • af0b1aa949 Repeat the packet measurements per level, correcting two over-general claims ReaperOfVeriod 2026-10-12 02:31:27 +02:00
  • 186a700f32 Establish the sub-list payload as a fixed five-block shape ReaperOfVeriod 2026-10-12 02:30:06 +02:00
  • 3fa64b7003 Read a full sub-list payload: tagged blocks and a byte permutation table ReaperOfVeriod 2026-10-12 02:28:07 +02:00
  • f1cf6cd164 Show the byte-8 count sizes sub-list payloads at exactly 16 bytes each ReaperOfVeriod 2026-10-12 02:27:28 +02:00
  • db76319600 Find a second packet record magic interleaved with the first ReaperOfVeriod 2026-10-12 02:24:22 +02:00
  • 2d7de9f13e Correct the packet tag mapping: the tag does not select the payload ReaperOfVeriod 2026-10-12 02:22:06 +02:00
  • 0b1793d6af Map shrub packet tags onto three payload kinds ReaperOfVeriod 2026-10-12 02:20:04 +02:00
  • ad70e4c4be Follow shrub packet pointers: adjacent records hold unrelated payloads ReaperOfVeriod 2026-10-12 02:18:18 +02:00
  • 3854e52019 Show the loader rewrites shrub packet headers into RAM pointers ReaperOfVeriod 2026-10-12 02:15:30 +02:00
  • d1aec9f866 Show shrub packet records are two tagged 8-byte halves, fixed length ReaperOfVeriod 2026-10-12 02:09:56 +02:00
  • e6dd60ec3a Characterise shrub mesh packets: 16-byte header, 16-byte tiling ReaperOfVeriod 2026-10-12 02:08:12 +02:00
  • aa2b14ad66 The shrub mesh geometry is in the class blob after all ReaperOfVeriod 2026-10-12 02:02:01 +02:00
  • c83f5104d2 Document the PCSX2 test setup ReaperOfVeriod 2026-10-11 20:59:19 +02:00
  • bbdb51e2f9 Verify level 1's tfrag lighting against the game ReaperOfVeriod 2026-10-11 20:50:36 +02:00
  • 69a8398f6e Verify the tfrag lighting magnitudes against the running game ReaperOfVeriod 2026-10-11 19:51:25 +02:00
  • 2c7555fe16 Decode the shrub class blob: a 24-normal palette and a billboard record ReaperOfVeriod 2026-10-11 13:33:37 +02:00
  • ccea53807a Resolve the shrub region bound: the chunk container closes it ReaperOfVeriod 2026-10-11 06:20:48 +02:00
  • 4d1e277a15 Exclude f32 and u16 readings of the shrub body record ReaperOfVeriod 2026-10-11 04:45:35 +02:00
  • 7c0df0f893 Characterise shrub body records on level 0 as a per-level partition ReaperOfVeriod 2026-10-11 04:42:53 +02:00
  • efe4c06be6 Show the chunk header does not encode the record stride ReaperOfVeriod 2026-10-11 04:39:46 +02:00
  • 1d84562e88 Resolve the colliding header: three types share 16 bytes ReaperOfVeriod 2026-10-11 04:37:25 +02:00
  • 4c4175de7f Add a rule requiring measurements to be partitioned before reporting ReaperOfVeriod 2026-10-11 04:32:27 +02:00
  • b13901a7e7 Correct the moby class array offset: it is per chunk type ReaperOfVeriod 2026-10-11 04:31:15 +02:00
  • ddfbc6eb33 Find moby class references in chunk records at 38x chance ReaperOfVeriod 2026-10-11 04:29:44 +02:00
  • 379c12f8ec Identify the chunk header as a type ID that determines the record stride ReaperOfVeriod 2026-10-11 04:28:12 +02:00
  • 10188416e2 Decode the chunk count field: header byte 14 is the record count ReaperOfVeriod 2026-10-11 04:26:44 +02:00
  • 681333535a Add a bounds-checked parser for the post-shrub chunk container ReaperOfVeriod 2026-10-11 04:25:18 +02:00
  • 8b0a2545a3 Confirm chunk offsets address real records on all 27 levels ReaperOfVeriod 2026-10-11 04:21:49 +02:00
  • 1d6cddf3bb Identify the post-shrub region as a chunk container ReaperOfVeriod 2026-10-11 04:20:10 +02:00
  • c60340b1de Correct the post-shrub 368 stride: real, but in one 15 KB window ReaperOfVeriod 2026-10-11 04:13:55 +02:00
  • 7992e9d8f3 Note that the SBlk period is not a record boundary ReaperOfVeriod 2026-10-11 04:09:02 +02:00
  • e9c927994c Establish the SBlk 40-byte record layout ReaperOfVeriod 2026-10-11 04:06:51 +02:00
  • 0f1a7f27c7 Resolve the SBlk discrepancy: 40 is the record, markers are nested ReaperOfVeriod 2026-10-11 04:06:42 +02:00
  • 5df3914160 Record an unresolved discrepancy in the SBlk record size ReaperOfVeriod 2026-10-11 04:06:31 +02:00
  • d3373042b9 Confirm moby's 16-byte vertex by two independent methods ReaperOfVeriod 2026-10-11 04:04:16 +02:00
  • 332dc63600 Measure tie class spans: 16-byte unit, 48-byte period, dominant not universal ReaperOfVeriod 2026-10-11 04:03:50 +02:00
  • d1190a3343 Find a 40-byte period in the sound bank SBlk, on all 27 levels ReaperOfVeriod 2026-10-11 03:56:34 +02:00
  • 51e81b497e Show the sky sub-object shape holds across levels ReaperOfVeriod 2026-10-11 03:55:06 +02:00
  • b5edbd1810 Show sky sub-object 0 is a slowly-varying sequence at two scales ReaperOfVeriod 2026-10-11 03:53:49 +02:00
  • 0ba790df1f Correct the sky sub-object 0 live-byte figure; record the byte 7 anomaly ReaperOfVeriod 2026-10-11 03:52:40 +02:00
  • 3855169d48 Characterise sky sub-object 0: sparse, with duplicated entries ReaperOfVeriod 2026-10-11 03:45:01 +02:00
  • a82e4a711f Measure sky sub-objects across levels; the stride table was over-fitted ReaperOfVeriod 2026-10-11 03:35:39 +02:00
  • 98c0d1ab3c Re-verify the 368 stride with a control matched to its data ReaperOfVeriod 2026-10-11 03:34:24 +02:00