Commit Graph
107 Commits
Author SHA1 Message Date
MrBruh d7efd3934a Validate map tags before loading 2026-10-07 12:01:09 +13:00
MrBruh 94882796b7 Anti-aliasing
display.anti_aliasing, off by default: "fxaa" or "smaa" (a pass over the
3D view before the HUD and menus; SMAA vendored from port/third_party/smaa,
MIT), "ssaa2x" (the screen's targets at twice the resolution, at most the
GPU's largest target) and "msaa2x" to "msaa8x". Multisampled framebuffers
have every attachment multisampled, so the mirror's view with the back
buffer's depth buffer is too, and a target's texture and renderbuffer stay
coherent. The setting is read again between frames. Android has FXAA for
SMAA and no supersampling.

Based on #38 and #39 by Tyberious.
2026-10-06 15:24:59 +13:00
MrBruh 4adc3a87a5 Remove matching tooling and HALO_LINUX ifdefs 2026-09-30 21:49:46 +13:00
MrBruh a17d89c6f1 Merge bnunu/halo-1 main 2026-09-30 18:13:05 +13:00
Jonas Volman 6bfd956737 Reconcile approved Halo fidelity packets and bounded data credit
Recover transparent geometry submit (+1,285 meaningful code, zero exact losses); reconcile COMMON ownership and Q10 85+EXT1 credit, actions/main data, and separately disclosed denominator corrections. Preserve canonical-only repairs and all held research. C09 is ordinary disclosed cleanup, not a claim of proven scaffolding intent. Clean rebuild, 1,663 tests, parks, audits, provider links and independent EXT1 check pass. Local reconciliation only.
2026-09-29 13:52:37 -07:00
Jonas Volman f3aadeab98 Reconcile five Halo functions and approved declaration batches
Integrate coherent B3, P2/K17 prerequisites, completed K1-K16 + S, and the independent profile/effects rulings. Five gains and two explicitly approved B3 debits: net +3 strict functions, +2770 meaningful/+2800 padded bytes (+2774 progress credit). No additional losses; Halo objects 394 to 396 and data unchanged.

Clean rebuild, identical 8252-row stable sweep, 68 valid parks, admission/provider checks, 467-unit warning comparison, unchanged fake scan, and 1318 tests passed. Preserve canonical helper recoveries and unrelated work. Full evidence and disclosures in docs/object_matching_logs/astra_five_function_reconciliation_20260928.md.
2026-09-28 23:17:10 -07:00
MrBruh 1bcd57afe4 Merge branch 'bnunu:main' into main 2026-09-28 14:46:17 +13:00
Jonas Volman 709bfc3a3c Reconcile approved frontier ownership and admission packets
Import only independently reviewed production changes. Preserve canonical physics and virtual-keyboard repairs; keep B3 and all unresolved holds out.

Record exactly four approved canary debits (6987 meaningful bytes), six Halo admissions and two revocations. Keep vendor ioinit/storage work separate. Full build, 8252-row sweep, 1318 tests, park/admission/fake audits and 621-object binding pass within approved debit bounds.

Do not publish donor research dumps or private assets. README and unrelated user research remain untouched. See frontier_publication_reconciliation_20260927.md for complete evidence limits and accounting.
2026-09-27 17:12:48 -07:00
Jonas Volman 59757f4263 Reconcile approved type ownership, static locals and source disclosures
Independently gate storage + K, OQ-4 P-a/P-b1, four static-local packets and comment-only disclosures. Preserve all 7641 exact owner rows, 71 valid parks and 1161 passing tests; code/data credit unchanged. G and game_engine admission remain held because current canonical loses populate_statistic_buffer. Existing collision static-local repair is not duplicated. No donor tree, held candidate, scorer or private asset imported.
2026-09-27 05:17:27 -07:00
MrBruh 50eae19bac Native resolution fullscreen with F11 toggle 2026-09-27 20:42:09 +13:00
MrBruh b0e3bc96e3 Fix framerate-dependent timing 2026-09-27 19:23:44 +13:00
MrBruh 0154ae9af5 Merge branch 'main' of https://github.com/cybersecurity/halo-ce-universal 2026-09-27 17:42:48 +13:00
MrBruh 0f38fea378 Merge remote-tracking branch 'upstream/main' 2026-09-27 16:57:47 +13:00
Jonas Volman 7c0af5f029 Reconcile approved compiler-application code, data and owner repairs 2026-09-26 12:02:50 -07:00
Jonas VolmanandClaude Opus 5.5 9a376181f5 Port: grow the game state and object pools for 128 players
The Xbox game state (0x345000 bytes at 0x80061000) ends exactly where the
map-linked tag cache begins and has 948 bytes free, so a 128-player
session cannot even allocate its player datums. The native builds now
place a 16 MB game state (CPU 0xFC0000, GPU 0x40000) at 0x81A00000, above
the tag cache and below everything the Xbox memory window hands out
top-down, and grow the pools that scale with the number of players:

- objects: 2048 -> 8192 headers, 1 MB -> 8 MB pool; the garbage limits
  keep January's proportions (5/10/20 % of the pool, 2.5/5/10 % of the
  headers, 75/50/30 active garbage objects per 16 players)
- cluster partition reference lists 2048 -> 8192 (collideable and
  noncollideable objects, lights); a full list drops objects out of
  rendering, collision and sphere queries
- effects 256 -> 2048, effect locations 512 -> 4096
- particles 1024 -> 8192 (render_particles' visible list, filled without
  a bound check, follows), particle systems 64 -> 256, their particles
  512 -> 4096
- contrails 256 -> 1024, contrail points 1024 -> 8192
  (MAXIMUM_CONTRAIL_POINTS stays the pool size for the same reason)
- lights 896 -> 4096, object looping sounds 1024 -> 4096
- cached object render states and rendered objects 256 -> 1024
- script object-list references 128 -> 1024, objects one explosion can
  damage 64 -> 256

The values live in port/linux/include/halo_port_capacity.h, included by
halo_port_limits.h. With 128 player datums the CPU part holds 14,256,908
bytes (2,258,164 free). Saved games and cores grow to 16 MB. Every change
is under HALO_LINUX; the MSVC objects are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 10:18:07 -07:00
MrBruh a06ef74eec Detach framerate from gameplay simulation 2026-09-26 21:49:07 +12:00
MrBruh e29125b50e Port decomp to Android 2026-09-26 16:16:00 +12:00
Jonas VolmanandClaude Opus 5.5 fd8bf04746 bipeds: find_nearby_support_surface exact; January file-static storage
Approved packets, no owner ruling needed:
- real_math.h plane3d_negate gets its attested body (negate_vector3d plus
  the d term; /Od 0x56d630 and the HCEX_Release line table), together with
  the render_objects /Od shadow-volume plane pair and the bipeds genuine
  helper calls. _biped_find_nearby_support_surface is now exact (+544). A
  467-unit header review lost 0 exact rows. The bipeds park is retired, and
  render_cameras _render_camera_build_frustum is refreshed to
  3408/112/d42e420f (target unchanged).
- biped_falling_danger, update_airborne, snap_facing, update_moving and
  fudge_vectors become file-static, as the Sept-2001 map STATIC list and the
  retail private ABI show. Their prototypes leave bipeds.h and symbols.json
  marks them static. This is zero credit; bipeds pdb_storage goes to 0. The
  parked ai _ai_test_ballistic_line_of_fire is rebaselined for the resulting
  declaration-count drift; no exact row is lost.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 00:11:37 -07:00
Jonas VolmanandClaude Opus 5.5 b993052102 R2 batch 3: first-party function names and storage from the completeness-critic routes
Zero credit; every packet was independently adversarially reviewed (22/22 approved).
- critic_3: 72 renames of placeholder/invented static function names across 20
  objects to first-party names. Each rename has Sept-2001 linker-map alignment
  (cachebeta xbe / retail cache exe, several also Aug-2001), relocation-masked
  body identity and matching callers; cachebeta publics show every row was a
  January static. hs's radiosity_hack_{start,save,find_point}_evaluate pairing
  is proven by the Sept .rdata hs_function_definition pointers; players'
  create_weapon also matches HCEX.pdb. Objects: ai_debug (reviewer-amended: a
  dead stub removed, its comment re-attached), transport_endpoint_winsock,
  transport_endpoint_set_winsock (+ parked.json key renames), profile,
  progress_bar, network_connection, saved_game_files, rasterizer_xbox_profile,
  xbox_sound_cache, game_engine_king, players, hs, hs_runtime, main, decals,
  rasterizer_lights, rasterizer_xbox_dynavobgeom,
  rasterizer_xbox_environment_fog, rasterizer_xbox_hardware_bitmaps,
  render_cameras.
- hs_compile: whitespace_characters, eol_characters and hs_type_primitive_parsers
  are external (cachebeta publics, HCEX DataIsGlobal); hs_compile_finish is
  static with a TU-local prototype (no public; HCEX static function).
- bink_playback: bink_playback_idle -> bink_playback_update__internal
  (first-party). The bink_decompress_audio_frame rename is NOT landed: it needs
  an added call whose position is unattested, the same class canonical held for
  hardware_geometry in 4d1ebf17.

Gate (full ninja, objdiff 3.3.1): objects 383, code 1,577,237, data 2,586,915
(all unchanged); stable diff 0 regressions; parks 83/0/0; admission 11/0/2/0;
fake scan 26; pytest 1161 passed; diff --check clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 16:59:40 -07:00
Jonas VolmanandClaude Opus 5.5 42125a520c R2 batch 2: reviewed zero-credit ownership/storage packets; two '$'-defect data entries
All packets passed a precedent audit and an independent adversarial review.
No object changes status.
- Storage per cachebeta publics (source static + symbols.json rows):
  - bink_playback: four globals;
  - weapons: 11 rows + weapon_magazine_finish_reload;
  - object_lights: 4 helpers; should_render_lights is the /Od-attested call and
    its prototype leaves the public header;
  - vehicles: _update_turret_physics;
  - weather_particle_systems: one_over_char_max is external (cachebeta public,
    HCEX Global); its globals are static;
  - rasterizer_xbox_debug: 8 D3DINLINE wrapper rows (already Matching: audit
    FAIL(8) -> PASS, pdb 8 -> 0).
- draw_string: the invented external draw_string_globals aggregate (pads, blob,
  #define aliases) becomes four HCEX-attested file statics in /Od declaration
  order with = { 0 } (a595bbc2 precedent); typed multitexture params.
- render_debug: three rule-6 hand expansions become real point_from_line3d
  calls (ruling #1/#2); the opaque vehicle view gives way to struct
  vehicle_datum + vehicle_datum_try_and_get; the six debug_* toggles become
  tentative definitions (COMMON evidence).
- vehicles: the TU-wide REAL_MATH_EXTERNAL_POINT_FROM_LINE3D define is gone and
  the pathfinding hand expansion becomes the genuine call (ruling #1).
- rasterizer_xbox_profile V1R (reviewer-amended): byte-inert /Od parameter
  order, the BUG marker comment, detail_objects via the rasterizer_xbox.h API,
  and a rejection text that keeps the SDK-table policy question open.
- semantic_data_matches.json: single-section '$'-defect entries with
  allow_incomplete_unit for projectiles _projectile_update_section (1,548 B) and
  object_lights _lights_section (1,541 B) (leaf_map / editor_flying_camera /
  race precedents).

Gate (full ninja, objdiff 3.3.1): objects 384 (unchanged), code unchanged,
data +3,089; stable diff 0 regressions; parks 83/0/0; admission 10/0/2/0; fake
scan 26; pytest 1159 passed; diff --check clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 11:08:01 -07:00
Jonas VolmanandClaude Opus 5.5 7979cf8f45 R2 batch 1a: admit xbox_texture_cache (first-party names, HCEX bitmap_data fields, owner headers)
- symbols.json: IDirect3DDevice8_IsBusy/KickPushBuffer and IDirect3DBaseTexture8_IsBusy
  are static (D3DINLINE is static __forceinline; none is a cachebeta public).
- Three invented static names replaced by first-party names from the 2001-09-25
  cachebeta-xbe linker map (atlas 7eacac85, re-anchored on 20 named symbols):
  texture_cache_name_block_proc, compare (also January atlas exact tier) and
  texture_cache_initialize_hardware_format.
- bitmap_group.h (shared, 45 includers): struct bitmap_data fields per HCEX
  (mipmap_pad, long pixels_offset/pixels_size/tag_index/cache_block_index);
  bink_playback.c and bitmaps.c adopt the names. The TU-local bitmap_data view
  and raw tag_get('bitm') prefix view in xbox_texture_cache.c are gone.
- texture_cache.h declares texture_cache_debug_render (render_debug.c had no
  prototype in scope). The Xbox-only public format mappers get the object's own
  header cache/xbox_texture_cache.h. Adding them to texture_cache.h regresses
  declaration-count-sensitive consumers (decals); this is disclosed in the header.
- Reviewer amendment: the invented pad member reserved006[2] in the TU-private
  texture struct is removed (natural alignment; HCEX texture_datum has no pad).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 09:25:03 -07:00
Jonas VolmanandClaude Opus 5.5 b807f9f61d Header prerequisites: objects.h __FILE__ provider packet and path.h HCEX field
objects.h: both bounding-sphere inline assertions report OBJECTS_H_FILE, which
defaults to January's relative "..\objects\objects.h". object_lights defines the
absolute spelling first, as January's string census shows. action_vehicle loses
its NODUP hand copy of object_get_bounding_sphere, so the header inline is the only
definition. render_objects' lighting_storage becomes the static local of
object_get_cached_render_lighting (symbols.json).

path.h: the opaque __unknown140A0[0x5C] span is HCEX's `struct path_result
result`, and path.c stores through the field instead of a punning cast.

Consumer sweep (full ninja, objdiff 3.3.1): stable diff shows 0 regressions and no
moved rows beyond the batch-1/Layer-2 gains. Parks 93/0/0, admission 15/0/7/0,
pytest 1157 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 23:42:16 -07:00
Jonas Volman ed3e308af0 bitmaps: restore exact ARGB inline color helper and owner API 2026-09-23 15:54:31 -07:00
Jonas VolmanandClaude Opus 5.5 cfa201763e Match active camouflage, particle and shadow-begin rendering
Structural lane batch 3: +4,128 padded / +4,101 meaningful bytes strict
exact (3 functions), zero stable-verdict regressions.

- rasterizer_xbox_active_camouflage.c: _rasterizer_active_camouflage_draw.
  The debug build (0x7cd9c0) writes each normal/hyper-stealth blend as one
  (1-p)*base + p*hyper expression. The texture-animation vertex constants
  are a block-scoped aggregate initializer, so both constant arrays share
  a slot as in January.
- render_particles.c: _render_particles. The draw pass indexes
  group_particle_counts[group_index] with a short loop, and the inner loop
  is while (particle_count-- > 0), advancing the particle at the body end
  and before the delete-path continue (/Od 0x84f800).
- rasterizer_xbox_shadows.c: __rasterizer_environment_shadow_begin. The
  debug build's boolean success = TRUE is returned once, and the
  translation terms use dot_product3d (/Od 0x80d870; HCEX array name
  vsh_constants__screenproj).

Rule-24 disclosure (owner per-site admission, 2026-09-21): two new
(real_vector3d const *)&shadow_matrix->position casts, one per
dot_product3d call. The /Od build calls dot_product3d at 0x80db50 and
0x80dbc2 with the matrix position. Deleting both casts leaves the
function strict exact, and point/vector share the three-real layout.

parked.json: unpark _render_particles and __rasterizer_environment_shadow_begin.
The owner packet gains the aggregate 3D->2D view-copy question.

Gate: ninja PASS, parks 112/0/0, admission 0 contradicted/0 revoked,
provider link PASS, fake scan unchanged, pytest 1152 passed / 5 skipped
/ 26 subtests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 05:28:15 -07:00
Jonas Volman 4f4c85021d Reconcile Lane C with canonical house-rule audit
Integrate verified source and data progress; exclude unproven COMMON ownership, held UB/asm forms, and address-named data credit. Stable sweep: 23 exact functions gained, zero lost.
2026-09-22 23:12:40 -07:00
Jonas Volman 5361eeae52 Reconcile Astra exact-match campaign (+8314 bytes)
Integrate six accepted exact functions, two whole-object admissions, evidence-backed zero-credit source corrections, owner-header cleanup, and curated campaign records. Preserve zero regressions and exclude generated scratch archives from canonical history.
2026-09-20 02:31:53 -07:00
Jonas Volman 37d513310b Reconcile evidence-backed 10K exact batch 2026-09-19 23:12:42 -07:00
Jonas VolmanandClaude Opus 5 5c3ea7ab29 Wave 16: six parks reopened as strict exact (six objects complete)
- _render_debug_add_cache_entry: success-first single exit, string case
  if/else, one case body per debug type as January emits them
- _ctf_engine_weapon_update: long return-team locals from the owner team
  field (January's 32-bit movsx locals)
- _action_uncover_perform: timeslice-block locals, one evaluation-mode
  store (removes HEAD's duplicated arm stores), field-order target stores
- _row_dither: indexed channel loops with PIN clamps replace pointer
  cursors and a hand-written ternary clamp
- _lruv_debug_to_file: removes a goto web; MIN(9999, age) and the
  NULL-name fallback in the fprintf arguments (integer compare order
  disclosed; constant-first MIN is attested in Bungie source)
- _action_guard_perform: short firing-position index matching the
  actor_select_firing_position return type

render_debug, game_engine_ctf, action_uncover, bitmaps_quantitize,
lruv_cache and action_guard are now all-function exact.
Stable diff: 0 regressions; active parks 219 -> 213.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 20:12:07 -07:00
Jonas VolmanandClaude Opus 5 c2593b885a Wave 3: eight functions strict exact (screen_effect object complete)
Reviewed reconstructions, each strict exact in its whole-TU gate with
zero inherited losses, guard passing and no new owners:
- rasterizer_xbox_screen_effect (13/13): complete per-arm shader setups,
  load-before-call locals, January assert texts, PIN clamp; screen_flash
  projection spelling and the defined inverse-pixel default arm
- hs_compile: _hs_parse_begin (per-branch result type; January's extra
  sprintf name argument kept with a BUG comment), _hs_parse_cond_recursive
  (single exit; January's always-true negation test kept with a BUG
  comment, byte-proven and recorded in HCEA)
- geometry: definitions in January object order (assert lines ascend),
  duplicate prototype removed, _get_edge_vertex single exit
- render_cameras: view_to_screen and build_frustum_bounds simplifications
- sound_manager: _sound_dispose_from_old_map loop-exit flag

Rejected in review: _encounter_test_rule (redundant default stores),
_render_camera_mirror (point_from_line3d COMDAT), _sound_set_definition_end
(prototype contradicting its definition).
Stable diff vs 9062b1e96: 0 regressions; parks 255 -> 250.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 13:06:38 -07:00
Jonas VolmanandClaude Opus 5 6d6529d987 Land two owner-ruled closures: debug player text extent and RGB pixel helper
Both admitted by explicit owner rulings on 2026-09-16; each lands as the minimum
hunk after a whole-TU gate, and neither involves undefined behaviour or steering.

render_debug _render_debug_player (+266, park reopened and removed). LAW D, from
the research campaign's frame study, proves January's `sub esp,0x404` cannot come
from a dead local or any other declaration - a dead whole object costs 0 frame -
and only a declared text extent of 1025-1028 yields it. Written in the house
idiom as a named capacity plus its terminator, added to the file's existing
constants enum rather than a new block: `MAXIMUM_RENDER_DEBUG_PLAYER_TEXT_LENGTH =
1024` and `char text[MAXIMUM_RENDER_DEBUG_PLAYER_TEXT_LENGTH + 1]`. The tree
already uses `[X_LENGTH+1]` string buffers 70+ times. This ruling supersedes the
pre-LAW-D park rejection of enlarging the buffer. Whole-TU gate 34 -> 35 with only
this row changing; the sibling park _render_debug_add_cache_entry is unchanged; the
added enumerator shifted no declaration-count-keyed row; fake scan 0 leads.

hud_draw _real_rgb_color_to_pixel32 (+181, previously unwritten). A genuine
bitmaps_inlines.h color-conversion helper, admitted under house rule 10. The owner
ruling rests on affirmative hand-written-assembly evidence in January's bytes -
dword fistp and fmul on non-top x87 stack slots (fmul st(3),st(0)) - not merely on
asm being able to force a match. The permission covers this one body only; it does
not authorize _real_argb_color_to_pixel32, _fast_ftol_C or assembly elsewhere.
Whole-TU gate 20 -> 21 exact, including _hud_draw_meter, which calls it three
times. fake_match_scan: 3 leads, 2 of them pre-existing at HEAD (the naked
get_return_eip); the only new lead is this admitted block.

Full ninja, parks 271 active / 0 stale / 0 invalid, stable diff vs
scratch/opus5-next150-before.json: gained 12 / 8,992 padded, regressions 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 07:43:21 -07:00
Jonas VolmanandClaude Opus 5 be0fb070de render_debug: 5 function(s) strict exact
Wave w2 landing, adversarially verified. exact: _build_circle_points, _build_pill_points, _render_debug_circle, _render_debug_sphere; park reopens: _render_debug_point. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:54 -07:00
Jonas VolmanandClaude Opus 5 ab0fbecfa6 render_objects: 2 function(s) strict exact
Wave w1 landing, adversarially verified. exact: _render_object_shadow_end, _object_render_state_refresh. Full build of the combined batch: 54 strict gains / 29,440 padded, 0 regressions, parks 355/0/0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 02:51:07 -07:00
Jonas VolmanandClaude Opus 5 b9cef202bf render_cameras: reopen render_frustum_cube_view_fraction exact
The edge factors are spelled (-inverse_z) inside the MIN/MAX arguments (macro argument duplication) instead of hoisted positive locals. 1 park(s) removed. Adversarially verified (wave D park re-investigation); full build of the combined wave D set: 0 regressions, parks 402/0/0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 23:09:01 -07:00
Jonas VolmanandClaude Opus 5 5dcb9e15ff render_objects: close render_object_list
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:39:16 -07:00
Jonas VolmanandClaude Opus 5 65277e66c0 Match build_sprite_get_group
+1 strict exact function, 384 padded bytes (previously residual). Adversarial
review accepted; no top-level declaration was added and the other three
render_sprite residuals keep their tags. A proposed spelling for
build_sprite_transform_origin_and_direction that would write a vector over its
own parameter home was not landed (owner/UB ruling required).
render_sprite: 7 exact / 3 residual.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 15:21:30 -07:00
Jonas Volman 5d3444f799 Reconcile eighth 10K exact source batch 2026-09-13 02:47:59 -07:00
Jonas Volman eb61c0f746 Reconcile seventh 10K exact source batch 2026-09-12 17:23:46 -07:00
Jonas Volman d6250fa794 Reconcile sixth 10K exact source batch 2026-09-12 12:36:44 -07:00
Jonas Volman a565219da1 Reconcile fifth 10K exact source batch 2026-09-09 22:29:33 -07:00
Jonas Volman 2d5cd93c77 Reconcile device debug and lens flare rotation 2026-09-09 12:11:14 -07:00
Jonas Volman 0a3013791c render: match narrow camera projection pair 2026-09-09 08:29:31 -07:00
Jonas Volman b727d0a077 render: match debug string projection 2026-09-09 08:18:18 -07:00
Jonas Volman db720270ec Reconcile HUD bitmap retrieval pair 2026-09-09 07:05:53 -07:00
Jonas Volman 105d9acaac Reconcile 10K exact-byte Claude batch 2026-09-09 00:07:34 -07:00
Jonas Volman 4ebe0ff6ec Reconcile HUD geometry and sound caller graphs 2026-09-08 20:28:22 -07:00
Jonas Volman f7afb70475 Reconcile UI, weather, aim, and render lanes 2026-09-08 08:23:20 -07:00
Jonas Volman 34db75424b Reconcile solid RenderDebug box with owner and actual-x86 checks 2026-09-07 19:15:07 -07:00
Jonas Volman ef631fb896 Reconcile three exact RenderDebug 2D wrappers with runtime checks 2026-09-06 06:22:14 -07:00
Jonas Volman 2fbd3e3bb6 Reconcile RenderDebug line and box primitives with natural point residual 2026-09-06 05:21:26 -07:00
Jonas Volman e98e3ff628 Reconcile natural RenderDebug cache string closure and retain vblank boundary 2026-09-05 20:40:09 -07:00