Commit Graph
83 Commits
Author SHA1 Message Date
Stefan MaierandClaude Opus 5.5 73e9bed243 VR test aid: both sticks held in spawn the map's next vehicle
debug.vehicle_spawn: holding both thumbsticks in for 1.5 s puts the next
vehicle the map has loaded (not the Pelican, dropship or lifepod) a few
metres ahead of the player, cycling through them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:55:25 +02:00
MrBruh ae7284c3ce Skip map build checks 2026-09-28 19:11:23 +13:00
MrBruh 1bcd57afe4 Merge branch 'bnunu:main' into main 2026-09-28 14:46:17 +13: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 5389a16360 Merge branch 'bnunu:main' into main 2026-09-27 23:57:12 +13:00
Jonas Volman 27c9736126 Reconcile hardware bitmap table ownership and structured upload loops 2026-09-27 03:00:10 -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
Jonas Volman 193a68682a Reconcile Claude fifty-object round two 2026-09-24 17:10:07 -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 Volman 843009da78 Correct xbox sound cache private symbol ownership 2026-09-24 16:11:10 -07:00
Jonas VolmanandClaude Opus 5.5 6eef02f1b1 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 15:12:09 -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 b9a8d587a0 Batch 3: admit twelve objects; four exact functions; verified storage and data fixes
Objects admitted (Halo 363 -> 375), each with an independent adversarial review:
units (first-party names incl. the reviewer-corrected unit_vectors_are_valid, 49
static flags, '$'-defect data entry), collision_debug (/Od helper calls),
render_objects (b807f9f6 provider packet), editor_flying_camera
(_editor_camera_set_position_and_roll 432, storage + grouped entry re-pin),
rasterizer_xbox_shadows (shadow_model_draw 688), cache_files_windows
(open_cache_files 752), light_volumes (light_volume_render 912, reviewer-amended
/Od declaration order), actor_firing_position, path, biped_limp_noodle (HCEX file
statics), leaf_map and model_animations (/Od helper calls replace hand expansions).

Zero-credit/data: path_structure_bsp HCEX tables (+200 data), hud_nav_points
storage, first_person_weapons patch A (park re-baselined).

Gate (full ninja, objdiff 3.3.1): stable diff +4 strict / 2,784 padded, 0
regressions; parks 89/0/0; admission 11/0/5/0; fake scan 26 (new lead is the
/Od-attested empty then-arm in the still-parked fpw update); pytest 1157 passed;
diff --check clean. Ledger: docs/object_matching_logs/claude_fifty_objects_20260925.md
(adds the Layer 2 owner-ruling disclosure, tallies and held items).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 23:53:28 -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 5e81dabff0 Close five Halo objects with verified shared-helper ownership 2026-09-23 10:38:14 -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 VolmanandClaude Opus 5 2f24377a5a Wave 19: six parks reopened as strict exact (collision_bsp, comms, caches)
- _collision_bsp_test_vector_recursive: reads the leaf flags through the
  typed tag-block macro inline (HCEA spelling)
- _collision_surface_find_closest_point2d: vector_from_points2d and
  cross_product2d replace hand-expanded math, as the exact sibling
  collision_surface_test_point2d does
- _ai_communication_update_speech_timers: includes the owner header
  cseries/errors.h for error() and names the timer label
- _cached_map_file_read_header: the exact wait helper snapshots the
  completion flag before returning, reproducing January's double volatile
  load at both inlined sites; the still-parked _cache_files_open_cache_files
  is re-measured (closer, non-exact)
- _update_client_local_ticks: countdown tick loop and a machine_index
  local passed to both server calls (January calls the build helper out of
  line, which a literal 0 argument does not reproduce; disclosed)
- _rasterizer_sort_external: plain indexed loops; the object's eight
  file-private globals are static, as only this object uses them

Stable diff: 0 regressions; admission 28 candidates / 0 contradicted;
active parks 201 -> 195.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 22:11:55 -07:00
Jonas VolmanandClaude Opus 5 fa96a1ee08 Name the texture cache debug bitmap array (_texture_cache_debug_render strict exact)
symbols.json renames the _bss_004d1198 placeholder in place to
_texture_cache_debug_bitmaps (static), the name xbox_texture_cache.c
already declares for its only user; the name is descriptive and marked
provisional in the source (house rule 8 forbids the bss+address form).
The debug listing computes both tab stops from frame_bounds.x0, as
January's bytes do. Full ninja + stable diff: +1 function (784 B),
0 regressions; active parks 220 -> 219.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 18:59:24 -07:00
Jonas VolmanandClaude Opus 5 336fecdbb7 Wave 12: three functions strict exact (connected_geometry, cache helpers)
- _connected_geometry_add_triangle: declare+init, short-index for loops
  with the modulo edge neighbour, single-exit NONE result
- _render_inverse_transform_screen_point in xbox_texture_cache and
  xbox_sound_cache: add_vectors3d(frustum apex, global_zero_vector3d)
  replaces the hand-expanded origin sum (both park reopens; select-any
  _add_vectors3d COMDAT, A30 class). The static helper's January register
  convention returns at both callers; their fuzzy parks
  _texture_cache_debug_render and _sound_cache_debug_render are
  re-measured (non-exact before and after, objdiff slightly closer).

Stable diff: 0 regressions; active parks 222 -> 220.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 18:58:34 -07:00
Jonas VolmanandClaude Opus 5 4dc236312e xbox_texture_cache: 3 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _texture_cache_locked_block_proc, _texture_cache_build_hardware_format, _texture_cache_start_loading_bitmap. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 3 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:35 -07:00
Jonas VolmanandClaude Opus 5 232f3b979f xbox_sound_cache: 1 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: __sound_cache_sound_request. 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:34 -07:00
Jonas VolmanandClaude Opus 5 2755cc2671 cache_files_decompress_windows: 3 function(s) strict exact
Wave w1 landing, adversarially verified. park reopens: _cache_copy_update_write_buffers, _cache_copy_get_status, _acquire_read_request. Full build of the combined batch: 54 strict gains / 29,440 padded, 0 regressions, parks 355/0/0. 3 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 02:50:54 -07:00
Jonas Volman 5d3444f799 Reconcile eighth 10K exact source batch 2026-09-13 02:47:59 -07:00
Jonas Volman a565219da1 Reconcile fifth 10K exact source batch 2026-09-09 22:29:33 -07:00
Jonas Volman d574f4ff45 Restore five source-attested network server functions 2026-09-06 11:04:14 -07:00
Jonas Volman 39a0c5bbb2 Retain natural Main startup and texture-cache callback reconstructions 2026-09-05 16:50:55 -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 4795da4089 Recover device, input, HUD and game leaves without exact regressions 2026-09-04 15:43:51 -07:00
Jonas Volman 7d74519b10 Reconcile Opus network client reconstruction 2026-09-04 02:31:03 -07:00
Jonas Volman 933b9df1d3 Reconcile cache decompression worker 2026-09-04 01:04:31 -07:00
Jonas Volman 4b84e8fdc3 Reconcile safe Xbox rasterizer core 2026-09-03 22:54:39 -07:00
Jonas Volman 08d3d87932 Reconstruct Opus network and cache units 2026-09-02 23:53:33 -07:00
Jonas Volman 43451b4dd0 Repair network and cache owner interfaces 2026-09-02 23:53:20 -07:00
Jonas Volman e9a1b0c7cb bitmaps: recover bitmap group postprocess 2026-09-02 01:04:39 -07:00
Jonas Volman 8269a8c0b6 Complete Xbox sound cache reconstruction 2026-09-01 23:29:46 -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
Jonas Volman 69324deca1 Replace cache BSP byte forcing with natural scope 2026-08-30 21:18:28 -07:00
Jonas Volman 2652041f74 Recover xbox texture cache delete callback pair 2026-08-30 16:42:19 -07:00
Jonas Volman 08cc4a5398 Recover xbox sound cache private helper cluster 2026-08-30 16:23:50 -07:00
Jonas Volman 7c5b2e100b Match xbox texture cache XDK device wrappers 2026-08-30 08:40:51 -07:00
Jonas Volman f09572504d Advance Xbox texture cache public leaves 2026-08-28 19:34:48 -07:00
Jonas Volman 81eeeb81d1 Advance main and sound cache public leaves 2026-08-28 19:11:07 -07:00
Jonas Volman c8c40b2cea Advance three objects with exact public leaves 2026-08-28 17:34:21 -07:00
Jonas Volman 540093129a Match physical_memory_map object exactly 2026-08-27 16:00:18 -07:00
bnunu 6e54eff7e4 Revert incomplete physical memory ownership wave 2026-08-27 15:12:36 -07:00
bnunu a86c35334c Advance physical_memory_map ownership exactness 2026-08-27 15:04:43 -07:00
Jonas Volman a1acd23908 Recover cache files forwarding pair 2026-08-21 13:19:48 -07:00
Jonas Volman a2105b64c3 Recover cache decompression completion pair 2026-08-21 10:34:03 -07:00
Jonas Volman 376ff50f40 Recover texture cache flush and close 2026-08-21 09:37:52 -07:00