Thank you for helping preserve Mirror's Edge Catalyst. Because the game client is brittle and sensitive to protocol deviations, all contributions must adhere to the standards below
To protect the project, there's a strict policy:
- No Copyrighted Material: Do not submit code, documentation, or assets extracted directly from the game client or proprietary SDKs
- No Leaks: Contributions derived from leaked source code or internal EA documents will be rejected
- Verification: All logic must be reconstructed via network analysis or other observations of in-game behavior
The backend is written in Rust. PRs must pass standard quality checks:
- Formatting: Run
cargo fmt --all -- --check - Linting: Run
cargo clippy --all-targets --all-features -- -D warnings - Dependencies: Keep dependencies minimal; only introduce crates when necessary
Currently there is no automated testing - you must manually verify all changes against a running game client
When opening an issue or PR, keep it focused and structured
Provide the following context for debugging:
- Target Component: e.g.
gateway,blaze,redirector - Logs: Logs from the failure window
- Network Telemetry: Hex dumps or JSON-RPC payloads of the affected packets
- Client Symptoms: Exact in-game behavior (e.g. loading hangs, connection error codes)
- Isolate Changes: One bug fix or endpoint implementation per PR
- Branch Naming: Use descriptive names (e.g.,
fix/gateway-leaderboardorfeature/blaze-notifications)