# Platform Contract

Status: `Draft`

## Purpose

Define the boundary between retroDE platform integration and PS2-specific
subsystems.

## Owns

- top-level clock/reset entry,
- reset sequencing policy,
- bridge into retroDE HPS/peripheral shell,
- HDMI/audio adaptation boundary,
- top-level debug/trace export path,
- manifest/backend-visible identity plumbing.

## Inputs

- board clocks and resets,
- HPS bridge traffic,
- retroDE platform services,
- user input events from the shared shell.

## Outputs

- clean subsystem clocks/resets,
- adapted video stream,
- adapted audio stream,
- debug visibility path,
- PS2-facing controller/media service inputs.

## Key questions

- Which subsystem clocks are generated locally?
- Which debug signals are exported at the top level by default?
- How much platform assistance is acceptable before the design stops being a
  PS2 core and becomes a hybrid?

## Allowed early stubs

- fixed clock plan placeholders,
- static backend identity values,
- synthetic input injection for tests,
- simple framebuffer-style output adapter.

## Not owned here

- EE memory map semantics,
- GS packet semantics,
- SIF semantics,
- PS2-specific peripheral register behavior.
