You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, GenHub includes basic replay header and CRC detection (PR #422), but lacks a comprehensive, deep binary replay parser and a rich match inspection UI.
This feature will implement a pure C# SAGE .rep body packet parser, match outcome analyzer, and modern Avalonia inspection view inspired by the match details layout from GameReplays and research across leading community replay decoders.
Winner & Match Outcome Determination: Extracts player quit/self-destruct message indices (e.g., messages 27, 1001-1097), tracks last CRC sync frames, checks for idle kicks and disconnects, and evaluates the true match winner/loser across teams and FFA formats.
PRNG Tracking (prng.py): Simulates the SAGE engine's deterministic pseudo-random number generator to follow randomized events and match state changes.
Match Configuration: Parses the SAGE game options string (M=, S=, H=, SC=, CH=, SR=, G=, O=) for map dimensions, starting cash, camera height, slot settings, colors, and player factions/armies.
Overview & Motivation
Currently, GenHub includes basic replay header and CRC detection (PR #422), but lacks a comprehensive, deep binary replay parser and a rich match inspection UI.
This feature will implement a pure C# SAGE
.repbody packet parser, match outcome analyzer, and modern Avalonia inspection view inspired by the match details layout from GameReplays and research across leading community replay decoders.Investigation of Community Implementations
rhaivorn/replay-info27,1001-1097), tracks last CRC sync frames, checks for idle kicks and disconnects, and evaluates the true match winner/loser across teams and FFA formats.prng.py): Simulates the SAGE engine's deterministic pseudo-random number generator to follow randomized events and match state changes.M=,S=,H=,SC=,CH=,SR=,G=,O=) for map dimensions, starting cash, camera height, slot settings, colors, and player factions/armies.dsalzner/cnc-generals-replay-parserdrag0nD/generals-replay-parserparseV2.py,check_winner.py): Demonstrates offline batch processing, statistical aggregation, filtering corrupted/AI replays, and calculating player performance metrics.UI & UX Specification (Match Details View)
Based on modern match detail designs (such as GameReplays):
[AS][🛡️] 4 VS 4 50K No Rules)Destruction Station) and starting spawn positions.082826_QFE1) & Data Pack (e.g.,Community Patch 1.0.1)1v1,2v2,3v3,4v4,FFA)34m 32s)Aug 30, 2026 19:13 – 19:47 GMT)$50,000)510)Team 1,Team 2, etc.)GLA,USA Airforce,China Infantry,GLA Demo,USA Super Weapon,USA Laser,China Tank)Wonin green,Lostin red,Observer)Technical Architecture & Requirements
IReplayParserService& Packet Decoder (GenHub.Core/Interfaces/Tools/ReplayManager/):GENREPbinary chunk stream into strongly typed frame packets (ReplayPacket,CommandPacket).Outcome & Winner Determination Engine:
Type 1003/1058/ quit frames).MatchResult(Won,Lost,Draw,Desync,NoResult).Replay Viewer Dialog & Inspection ViewModel (
GenHub/Features/Tools/ReplayManager/):ReplayInspectionViewModelandReplayInspectionWindow.axaml(or integrated split-pane inspector).ThemeResources.axaml).Unit & Integration Tests (
GenHub.Tests.Core):Acceptance Criteria
OperationResult<T>pattern.