mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-22 10:00:30 +02:00
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>