Commit Graph
115 Commits
Author SHA1 Message Date
Madison 821a8c9e7c Time textures for the profiler only while its graph is shown
profile_texture_start and _end read the clock around every texture set,
thousands of times a frame (4.7 of the 5.3 million clock reads in 10 s of
a30), for a timer only the profile graph reads. On the device the game
thread's CPU time a frame in a30 went from 6.2 to 5.9 ms.
2026-10-03 14:17:38 +09:00
MrBruh cdd0291a3f Add console log verbosity setting 2026-10-01 14:17:47 +13:00
MrBruh e7d1ed3a67 Harden and fix the netcode 2026-10-01 01:22:46 +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
MrBruh f15c1e26b0 Log failed asserts in release builds 2026-09-30 16:18:57 +13:00
MrBruh 30709dbf0f Fix late joiners missing players and crashing 2026-09-30 13:53:49 +13: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
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
MrBruh 755f610025 Fix 128-player multiplayer issues 2026-09-27 18:17:24 +13:00
Jonas VolmanandClaude Opus 5.5 e1e55bd22e Port: keep the debug log open between lines
write_to_error_file opened and closed debug.txt for every line, which takes
milliseconds on Windows. A host logs thousands of lines when a hundred
machines join, load or leave at once, and while it writes them its own
client and every other machine wait. The native builds now keep the file
open and flush each line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 10:18:07 -07:00
MrBruh 95881a5f91 Replace port assembly with C 2026-09-26 23:56:21 +12:00
MrBruh 5fb655c7c1 Add release build option 2026-09-26 20:24:34 +12:00
MrBruh e29125b50e Port decomp to Android 2026-09-26 16:16:00 +12:00
MrBruh ebb0eac50b Port decomp to Linux 2026-09-26 12:15:09 +12: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 bf937aac0f Batch 1: admit files_windows and objects; five exact functions
- files_windows: _file_get_size strict exact from the /Od single-exit
  result and file_error's named GetLastError() local; park retired.
- objects: Layer 1 helper-provider repair (action_charge, player_control,
  bored_camera, path_obstacles, decals use the genuine real_math.h
  inlines instead of hand-written NODUP copies; every provider row
  unchanged, emitted COMDATs byte-identical to January's selected copies,
  pair links pass both orders) plus the pinned objects_update data entry.
- Exact functions: _dead_camera_new, _actor_perception_refresh_danger_zone,
  _actor_look_idle_find_prop, _texture_cache_steal_memory.
- Zero-credit PDB/HCEX ownership corrections: profile, transport endpoint,
  actor_firing_position, game_engine, real_math, model_animations.

Halo objects 361 -> 363, code +2,769 meaningful bytes, data +1,530,
stable diff +5 functions / 0 regressions, parks 94/0/0, pytest green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 20:42:50 -07:00
Jonas Volman b0992d0ebe Admit nine verified Halo object closures 2026-09-23 14:25:38 -07:00
Jonas Volman 7d3c53c83d Admit five Halo objects after ownership checks 2026-09-23 04:13:22 -07:00
Jonas VolmanandClaude Opus 5.5 dc58693c9f Match stack walk, main render and small systems functions
Lane D refresh packet 4: systems, +3,984 padded bytes strict exact
(11 functions), zero stable-verdict regressions; stack_walk_windows.obj is
now a whole-object code match (16/16).

- stack_walk_windows.c: _walk_up, _is_valid_ebp, _walk_stack,
  _walk_stack_context and _stack_walk_with_context exact. The debug build
  attests `if (ignore_levels) while (--ignore_levels) walk_up();`, the
  global re-reads and the four instruction-byte locals.
- main.c: _compute_subframe_counts (debug-build byte local and ?: column
  test) and _main_game_render (PIN, goto-free player-window assignment).
- bink_playback.c: _bink_draw_frame (the ((index+1)&2) corner idiom used by
  interface.c and hud_draw.c; debug locals scoped to the debug block).
- draw_string.c: _parse_string; styled_font_get takes (font_index, style)
  per the debug build's parameter homes.
- prime_numbers.c: _primegen as a plain sieve.
- transport_endpoint_set_winsock.c: _add_endpoint_to_set single exit.
  fake_match_scan flags its listening-bit test as identical branches; the
  debug build has two separate FD_SET expansions under the same test and
  January's bytes carry the test, so the shape is original (commented).
  _poll_endpoint_set moves to the target's 560-byte size (fuzzy 72.3% ->
  98.5%); its park is re-measured in place.
- parked.json: unpark the six newly exact parked functions; refresh
  _poll_endpoint_set.

Gate: ninja PASS, parks 134 active / 0 stale / 0 invalid, admission 0
contradicted / 0 revoked, castcheck clean; fake scan adds only the
adjudicated identical-branches lead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 01:09:42 -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 37d513310b Reconcile evidence-backed 10K exact batch 2026-09-19 23:12:42 -07:00
Jonas VolmanandClaude Opus 5 6be078ec96 Wave 20: seven functions strict exact (encounters, network_connection, stack walk)
- encounters: _encounter_update_status (stay_active flag, direct
  accumulations in January's store order), _encounters_test_activation
  (January's non-short-circuit activation OR chain, HCEA-corroborated;
  bound parent and link locals), and park reopens
  _encounter_compute_activation_cluster_bit_vector (named parent locals,
  store-once dormant desire) and _encounter_update_respawn (bounded
  respawn while loop)
- network_connection: _network_connection_write (real
  notify_traffic_event calls replace a hand copy; January's double
  would-block loop test; single exit) and _network_connection_new
  (single-exit success flag replaces the goto teardown; January assert
  texts) - both park reopens
- _symbol_name_from_address: reads through symbol_table directly

Stable diff vs 9062b1e96: 0 regressions; active parks 195 -> 191.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 22:32:21 -07:00
Jonas VolmanandClaude Opus 5 af9f444aa3 Wave 17: six functions strict exact (five parks, progress bar noise texture)
- _shader_transparent_chicago_create: per-map shader_map_verify(map,
  map_index) call as in the exact generic sibling (January's inlined
  TRUE-returning verify leaves its store in the loop tail) (park reopen)
- _complete_key_exchange: plain short packet locals replace a long/short
  union type-pun (park reopen)
- _debug_realloc: parameter-home reuse and a block-local old_header,
  both proven by January's frame (park reopen)
- _lra_allocate: single-exit size check and a conditional round-up
  `size = (size & 3) ? (size | 3) + 1 : size` (disclosed) (park reopen)
- _game_state_open_persistent_storage: single-exit success flag (park reopen)
- _progress_bar_create_noise_texture: symbols.json renames _code_000d16d0
  in place (static) to the name the 2001-09-25 Xbox linker maps give; an
  empty static step called from progress_bar_setup (call position
  inferred from map order; the call is required for emission)

Stable diff: 0 regressions; active parks 206 -> 201.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 21:27:45 -07:00
Jonas VolmanandClaude Opus 5 efb4624aa0 Wave 4: two functions strict exact (particle_systems, stack_walk_windows)
- _particle_system_update: single state loop with in-loop state
  definition, January's 16-bit particle cursor and post-delete next read,
  pointer-walk variable lerp, match_assert with January's text/line; the
  block-top NULL initializer of transition_state_variables follows the
  admitted conditional-initializer form (laws_w2 A10), disclosed
- _load_symbol_table: loop-control flag instead of while(TRUE)/break,
  natural fgets loop, per-arm error handling, January statement order

Rejected in review (point_from_line3d COMDAT hold): _infection_swarm_control,
_weather_particle_update_physics. Stable diff vs 9062b1e96: 0 regressions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 13:17:35 -07:00
Jonas VolmanandClaude Opus 5 543a5ca663 profile: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _profile_dump. 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:37 -07:00
Jonas VolmanandClaude Opus 5 9f3ea79c8c Declare actor look-graph callees in actors.h and complete the primary look priority enum
Adds actor_move_force_stop and actor_combat_currently_firing_burst prototypes, returns boolean from actor_look_secondary (January al=1/0), and restores the eight-value primary look priority domain (HCEA DIA; agrees with action_charge/flee/obey copies and January stores). Consumer renames are value-preserving (action_vehicle 4/3, action_converse 3, actor_look_affect_movement >=3). Removes the verbatim duplicate trailing profile_initialize(void) prototype from profile.h; without it the two prototypes regress units::_unit_preprocess_node_orientations (declaration count, bisected). Full build with the look graph: 0 regressions, parks clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:51:20 -07:00
Jonas VolmanandClaude Opus 5 3be9c17038 Restore symbol_sort_proc through the genuine map-file loader
+1 strict exact function, 48 padded / 47 meaningful bytes: the private qsort
comparator _symbol_sort_proc, emitted by its genuine January caller. The
reviewed 2026-09-04 natural load_symbol_table reconstruction lands as fuzzy
source (1568 bytes, 94 vs 93 relocations, zero credit). The file's wrong
TU-local void prototype is removed: the public loader is defined before its
only caller in this TU, keeping January's external linkage. A cseries_windows.h
declaration was tested and rejected because it regressed
game_engine::_populate_statistic_buffer. stack_walk_windows: 9 exact / 7 residual.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 16:15:16 -07:00
Jonas Volman 5d3444f799 Reconcile eighth 10K exact source batch 2026-09-13 02:47:59 -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 99a194a4b9 Share diagnostic contracts and source reconstruction references 2026-09-06 10:31:31 -07:00
Jonas Volman e6190391e3 Reconcile Profile getters with authentic real API and audited header boundary 2026-09-05 01:03:31 -07:00
Jonas Volman f90b7f0c38 Reconcile natural Profile dump and comparator through their real owner API 2026-09-05 00:22:55 -07:00
Jonas Volman 93a4e0fefa Reconcile Profile frame-end cluster and Main flag ownership 2026-09-04 23:44:17 -07:00
Jonas Volman e677549fdf Reconcile authentic vblank counter and texture cache memory-steal path 2026-09-04 22:57:58 -07:00
Jonas Volman 937f26f0d2 Reconcile Profile window timer and genuine boolean caller API 2026-09-04 22:26:55 -07:00
Jonas Volman 17f448ed93 Reconcile Profile starters and verify Xbox profile data accounting 2026-09-04 22:17:43 -07:00
Jonas Volman 857b355d80 Reconcile Profile enter-exit ownership and park typed Biped placement 2026-09-04 21:58:41 -07:00
Jonas Volman 22a6e2c9d6 Reconcile Opus geometry and timer leaves; preserve withheld StackWalk research 2026-09-04 21:25:47 -07:00
Jonas Volman 4795da4089 Recover device, input, HUD and game leaves without exact regressions 2026-09-04 15:43:51 -07:00
Jonas Volman 43bc9e0749 Match profile render texture and idle timers 2026-09-04 01:34:17 -07:00
Jonas Volman 775cee0e22 Narrow rasterizer profiling interface 2026-09-03 01:22:55 -07:00
Jonas Volman beb469942d Correct rasterizer profile statistics ABI 2026-09-03 01:06:42 -07:00
Jonas Volman 9ab48c9f6c Reconcile Fable frame statistics wave 2026-09-02 10:33:39 -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 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 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 9f74e9937f Import 909 authenticated January and HCEA symbol names 2026-08-31 16:11:03 -07:00