Commit Graph
16 Commits
Author SHA1 Message Date
Stefan MaierandClaude Opus 5.5 034842dc4d VR: no first-person weapon at any vehicle's controls
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:02:53 +02:00
Stefan MaierandClaude Opus 5.5 57ecc722c3 VR: no own body in a Ghost, a Banshee or a Covenant gun
Their rider bends down into the vehicle, and the eyes at his head looked
into his own shoulders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 14:59:55 +02:00
Stefan MaierandClaude Opus 5.5 a6710f68ee VR: no first-person weapon at a wheel or a gun
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 12:55:29 +02:00
Stefan MaierandClaude Opus 5.5 2c32a7032c VR: own body at the wheel and the gun, gunner view back, clearer glass
Seated as a driver or gunner, the player's body is drawn (its hands on
the wheel or the gun's handles, as the seat animates them), its head
shrunk to nothing out of the eyes' way. A gunner's view is moved back from
the gun's sights (vr.gunner_camera_back). Glass tints and reflects half as
much (vr.glass_strength), which up close hid the view through the
Warthog's windscreen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 12:50:55 +02:00
MrBruh b0e3bc96e3 Fix framerate-dependent timing 2026-09-27 19:23:44 +13: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 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 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 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 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 Volman 6d351b3578 Reconcile Opus first-person weapon reconstruction 2026-09-04 01:45:18 -07:00
Jonas Volman 3bfde7bd15 Reconcile object lighting source packet 2026-09-03 23:39:15 -07:00
Jonas Volman be69b99c22 Complete structure_render object reconstruction 2026-09-03 23:01:10 -07:00
Jonas Volman 3be7d02614 Reconcile Opus small rendering units 2026-09-03 01:07:17 -07:00
Jonas Volman ddbcd02eb8 Match render object lifecycle 2026-07-15 08:58:07 -07:00
punpckhdq e830efbd7c Initial commit 2025-11-27 02:27:27 +00:00