Commit Graph
13 Commits
Author SHA1 Message Date
MrBruh 4adc3a87a5 Remove matching tooling and HALO_LINUX ifdefs 2026-09-30 21:49:46 +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 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 171feb2757 Match physical_memory_verify 2026-07-14 15:20:46 -07:00
Jonas Volman cd3d69664c Match physical_memory_allocate 2026-07-14 15:20:46 -07:00
Jonas Volman 8870c37efb Match physical_memory_free 2026-07-14 15:10:37 -07:00
Jonas Volman 27e1bfd11f Match physical_memory_get_sound_cache_base_address 2026-07-14 14:32:10 -07:00
Jonas Volman b575b4262d Match physical_memory_get_texture_cache_base_address 2026-07-14 14:32:10 -07:00
Jonas Volman aedd84d99e Match physical_memory_get_tag_cache_base_address 2026-07-14 14:32:10 -07:00
Jonas Volman 0eaea7602c Match physical_memory_get_game_state_base_address 2026-07-14 14:32:10 -07:00
punpckhdq e830efbd7c Initial commit 2025-11-27 02:27:27 +00:00