Commit Graph
1154 Commits
Author SHA1 Message Date
Jonas Volman f1c6f1f4a3 Match antenna object 2026-08-13 07:43:18 -07:00
Jonas Volman 915c78798c Match point physics object 2026-08-13 06:03:44 -07:00
Jonas Volman 19236aca35 Match render contrails object 2026-08-13 05:54:40 -07:00
Jonas Volman cfe2aff70a Match collision features object 2026-08-13 05:54:03 -07:00
Jonas Volman 1bf72e846d Match UI widget event handler functions object 2026-08-13 05:40:42 -07:00
Jonas Volman bc6bbd3290 Match widgets object 2026-08-13 05:40:42 -07:00
Jonas Volman e30b15682e Match cheats object 2026-08-13 05:30:26 -07:00
Jonas Volman f623e0bacc Match data encoding object 2026-08-13 05:30:26 -07:00
Jonas Volman 800d746dd6 Match data packets object 2026-08-13 05:30:26 -07:00
Jonas Volman 0c2369607e Match telnet console object 2026-08-13 05:30:26 -07:00
Jonas Volman a489a6513b Match shaders object 2026-08-13 05:20:30 -07:00
Jonas Volman 5b2fbf0ff8 Match render media object ownership 2026-08-13 05:09:17 -07:00
Jonas Volman 566563bac4 Match game state object 2026-08-13 05:05:20 -07:00
Jonas Volman 9b7f8c54eb Match bored camera object 2026-08-13 04:59:17 -07:00
Jonas Volman a8114eb7ea Match following camera object 2026-08-13 04:48:12 -07:00
Jonas Volman 69a0bc0fba Match action search object 2026-08-13 04:48:12 -07:00
Jonas VolmanandClaude Opus 5 3328df1847 Match cseries sort object
Byte-exact, all four functions, whole object.  Source was a pure skeleton with
no code; status MISSING work now NonMatching -> Matching.

An iterative quicksort for 2-byte and 4-byte elements with a 30-deep bounds
stack and a selection-sort cutoff at 8.  The two code_* symbols are the
selection sorts and take hi in EAX under VC7's custom convention for statics.
The comparator takes values, not pointers, and the zero-extension in the target
pins the 2-byte element type to word rather than short.

Five source-shape findings, each read off the disassembly:

- the swap loads both elements then stores to *best first, which is
  temp = *best; *best = *hi; *hi = temp - the mirror of the natural form.  That
  alone made both selection sorts exact.
- element_count and size are unsigned: the target uses jb, ja and shr where
  signed types give jl, jg and sar.
- the source writes lo+1 < j, not the algebraically identical lo < j-1, which
  reverses the lea and cmp operands.
- the larger-partition test compares raw byte differences.  On word pointers
  every element-count form makes MSVC emit two sars or cancel them and mask,
  costing 16 bytes; only an explicit byte-basis comparison gives the plain dec.
  j-1-lo >= hi-i, j-lo > hi-i and the byte form are integer-identical and only
  the last matches.
- depth = 0 is assigned before hi; the reverse order swaps the two stores.

Both qsort bodies went exact from the same five fixes, which is good evidence
the shapes are right rather than coincidental.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 04:33:37 -07:00
Jonas Volman 66af348945 Match texture page object 2026-07-29 22:16:04 -07:00
Jonas Volman c53047fbe3 Match Xbox vertex shader data object 2026-07-29 19:13:41 -07:00
Jonas Volman 7bc8fb2a4b Restore exact public key countdown loop 2026-07-29 18:15:53 -07:00
Jonas Volman 9934cbe876 Match public key crypt object 2026-07-29 18:13:34 -07:00
Jonas Volman cc649df306 Match TIFF RGBA image conversion object 2026-07-29 16:56:51 -07:00
Jonas Volman 37b901a7a5 Match Xbox motion sensor rasterizer 2026-07-29 15:39:58 -07:00
Jonas Volman 78b4b531f3 Fix shared triangle buffer enum integration 2026-07-29 15:39:58 -07:00
Jonas Volman dbbd66813b Recover shared triangle buffer layout 2026-07-29 14:50:03 -07:00
Jonas Volman 0cc43e6032 Refine hardware geometry buffer scheduling 2026-07-29 14:50:03 -07:00
Jonas Volman c3415ed59e Reconstruct hardware geometry buffers 2026-07-29 14:50:03 -07:00
Jonas Volman ab4fa7c2ad Match multiplayer sound queue object 2026-07-29 14:40:54 -07:00
Jonas Volman dbe462d56d Match orbiting camera object 2026-07-29 13:57:25 -07:00
Jonas Volman 307f77efce Document circular queue optimizer fixed point 2026-07-29 10:12:29 -07:00
Jonas Volman 7f947ee8f7 Correct props common-data ownership 2026-07-28 22:25:51 -07:00
Jonas Volman d98c741408 Improve props acknowledgement scan schedule 2026-07-28 22:18:01 -07:00
Jonas Volman 8cf2d5444f Improve prime number generation matching 2026-07-28 22:13:23 -07:00
Jonas Volman 8a03412d5a Match render sky object 2026-07-28 21:07:37 -07:00
Jonas Volman bfbf297b12 Conform exact scenario and vertex runtime style 2026-07-26 11:07:25 -07:00
Jonas Volman a11e28b7e8 Use stock XDK vertex shader wrappers 2026-07-26 09:00:06 -07:00
Jonas Volman 4764815f8a Match vertex shader runtime object 2026-07-26 08:23:39 -07:00
Jonas Volman fc089fa966 Match 2D pill triangle intersection 2026-07-26 01:53:27 -07:00
Jonas Volman 11a82c774a Match 2D circle triangle intersection 2026-07-26 01:52:23 -07:00
Jonas Volman 7dfbf9f0a4 Match fast sphere intersection distance 2026-07-26 01:45:49 -07:00
Jonas Volman d2e1cf0730 Match 3D position acceleration 2026-07-26 01:42:51 -07:00
Jonas Volman 2c18ec899d Match scalar velocity acceleration 2026-07-26 01:32:04 -07:00
Jonas Volman 1c9bfe56ea Match actor prop desire evaluation 2026-07-26 01:21:46 -07:00
Jonas Volman 322beb9af7 Match rasterized game message 2026-07-26 01:12:16 -07:00
Jonas Volman 0e48862072 Match multiple teams alive check 2026-07-26 01:03:56 -07:00
Jonas Volman 981d758b94 Match place name lookup 2026-07-26 00:48:46 -07:00
Jonas Volman 4a33660bbc Match netgame flag search 2026-07-26 00:20:38 -07:00
Jonas Volman a134578fe4 Match cooperative player respawn 2026-07-26 00:16:54 -07:00
Jonas Volman 03111ccaf1 Match loaded-game player control repair 2026-07-26 00:08:59 -07:00
Jonas Volman 30bb84fd2f Match actor vision distance calculation 2026-07-26 00:00:45 -07:00