Commit Graph
24 Commits
Author SHA1 Message Date
MrBruh 083eef0c42 Validate player and machine names 2026-10-01 13:45:46 +13:00
MrBruh c5fcfbd46a Kick speed hacks and add bans 2026-10-01 13:12:54 +13:00
MrBruh 71ae1f47bc Fix seventh netcode review 2026-10-01 12:03:52 +13:00
MrBruh 0d548798e5 Fix second netcode review 2026-10-01 03:54:02 +13:00
MrBruh e7d1ed3a67 Harden and fix the netcode 2026-10-01 01:22:46 +13:00
MrBruh a3ed50c56d Remove the lockstep netcode 2026-09-30 22:12:05 +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
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
MrBruh c0c86bda26 Allow joining games in progress 2026-09-29 13:53:13 +13:00
MrBruh 087c1f5685 Improve netcode, add network versions 2026-09-29 11:32:57 +13:00
MrBruh 8fcfe9e653 Finish distributed netcode 2026-09-29 00:27:28 +13:00
MrBruh 391e83b11f Add distributed netcode 2026-09-28 22:27:37 +13:00
MrBruh 755f610025 Fix 128-player multiplayer issues 2026-09-27 18:17:24 +13:00
Jonas VolmanandClaude Opus 5.5 db207ea1a4 Networking: 128 players on up to 128 machines in the native builds
The Xbox game allows 16 players on 4 machines (4 split screen players
each). The native builds raise both limits to 128, keeping 4 players per
machine, and leave the byte-matching build unchanged: every change is
under HALO_LINUX (the MSVC objects compare identical).

- Limits: every local copy of the player and machine limits, and the
  bare 4s and 16s that stood for them, follow halo_port_limits.h. The
  player data array, the machine-to-player table (and its reset) and the
  per-tick update arrays grow with them.
- Records: the copies of struct network_game agree on the larger layout
  and check it against halo_port_limits.h; maximum_player_count becomes
  a byte (128 does not fit a signed char); network_player_is_valid
  checks the machine against the machine limit, not the split screen
  one; a machine's input carries MAXIMUM_LOCAL_PLAYERS actions (16/4
  would have become 128/128).
- Protocol: a message holds at most 4095 bytes (its header has a 12-bit
  length), so the 13 KB game settings record is sent in 3.5 KB pieces
  that clients reassemble; the per-tick update of 128 players (3,857
  bytes) fits. Buffers and the packet codec's limits grow to match, and
  the game search uses protocol version 2 so these builds and the Xbox
  game never see each other's games.
- Connections: the host accepts a client connection per machine (the
  split screen count stood in for it), FD_SETSIZE is 256, stream writes
  send all of a message or drop a peer that stops reading instead of
  corrupting the stream, and the input and update queues are larger.
- Host: lobby changes are sent at most every 250 ms instead of on every
  change (a full lobby would otherwise send ~650 MB), in-game joins wait
  in a queue instead of being dropped, the random name and colour
  pickers stop looping forever once names or colours run out, machines
  get 60 s to load a map, and the debug dump lists only the slots in
  use (128 empty slots took seconds to log).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 10:18:07 -07:00
Jonas VolmanandClaude Opus 5.5 f7cd2e722e Batch 4a: admit player_ui and sound_manager with their shared-header packets
player_ui (header prerequisite + admission; reviewer-amended):
- game_engine.h: the opaque game_variant view becomes the recovered January
  layout (universal/ctf/slayer/oddball/king/race variant members, HCEX names
  where January's offsets attest them); member renames across the game
  engine variants, network managers and playlist_profile.
- player_ui.h: player_ui_get_edit_playlist_profile returns struct game_variant *;
  ui_widget_game_data_input_functions adopts it (reviewer patch 07 removes the
  two C4133 warnings the worker's packet introduced).
- player_ui.c drops its partial playlist_profile view; symbols.json names
  player1_profile_path; rejection retired; status Matching.

sound_manager (shared header sound_definitions.h, 18 consumers):
- sound_definition_find_pitch_range_by_pitch takes HCEX `short old_range_index`
  with the /Od 0x877810 single-exit body (prototype and definition together).
- update_channel_for_looping_sound (1360) and sound_set_definition_end (208) are
  exact in the /Od-attested shape; 45 static flags per cachebeta publics; parks
  retired; status Matching.

Gate (full ninja, objdiff 3.3.1): Halo objects 375 -> 377; stable diff +2
strict / 1,568 padded, 0 regressions across both header consumer sets; parks
87/0/0; admission 11/0/4/0; fake scan 26 (unchanged); pytest 1157 passed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 02:21:50 -07:00
Jonas VolmanandClaude Opus 5 94654d61fc network_server_message_handler: 2 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _network_game_server_handle_message_client_ping, _network_game_server_handle_datagram. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 2 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:39:46 -07:00
Jonas Volman 5d3444f799 Reconcile eighth 10K exact source batch 2026-09-13 02:47:59 -07:00
Jonas Volman 52612df62d Reconstruct server creation and rejection with safe disposal 2026-09-06 16:25:54 -07:00
Jonas Volman fc057d673a Reconcile Opus network server manager reconstruction 2026-09-04 04:17:10 -07:00
Jonas Volman 10e330359a Reconcile Opus network server message handlers 2026-09-04 02:46:43 -07:00
Jonas Volman 27cf965153 Match server broadcast message senders 2026-08-29 00:01:11 -07:00
Jonas Volman 50a724f6f1 Match server machine message send 2026-08-28 23:53:56 -07:00
punpckhdq e830efbd7c Initial commit 2025-11-27 02:27:27 +00:00