Revise the Markdown docs against the code and the fork's state

Checked every claim that names a setting, default, log line, binding or
script against the source, and brought the docs up to date with the
Steam Frame build:

- README: the recommended settings show their Frame defaults (render
  scale 0.8, resolution multiplier 1) and add eye-tracked foveation and
  the refresh rate; the settings panel's gamepad-mode button (both
  sticks); by-hand release tags moved to frame-beta-2; the AI usage note
  points at a section that exists.
- OPENXR.md: the intro and requirements cover all three backends; the
  Linux Vulkan backend, its patched Dawn and time conversion; Frame
  defaults for render scale and culling; the Frame controller profile in
  the binding list and limitations; foveation on the Frame and its
  per-map memory; scope of passthrough and tracked hands; Linux log path.
- quest-port.md: Known gaps rewritten (it still said the app had not run
  on a Quest, foveation was off by default, haptics unused and the pack
  not downloadable); intro names every product sharing the spec.
- DISTRIBUTION.md: how this fork's source-only frame-* releases are made.
- THIRD-PARTY-NOTICES.md: libco's aarch64 backend, Dawn built from source
  for the Quest and the Frame, and the tools the Frame installer fetches.
- CONTRIBUTING, RELEASE_VALIDATION, android/README, translator/README,
  building-macos: fork context, broken pointers, list formatting, typos.
- aurora-main/README: drop a screenshot that was not vendored.

All relative links and anchors resolve.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019HBRGKTE1GnN2ah8gcZKr3
This commit is contained in:
Claude committed 2026-10-05 07:42:16 +00:00
1 parent 56b853d5ef
commit 09ef5f4eea
11 files changed
+200 -139

No files matched your search

+26 -29
View File
@@ -13,17 +13,14 @@ A project manifest (YAML) names the input DOL and pins its layout; everything el
Translation is four commands:
1. **`translate-recursive <entry-point> --project <manifest>`** - walks the call graph from the
entry point, decodes every reachable function, and emits C++ (plus JSON metadata describing
what was emitted).
2. **`generate-data-init --project <manifest>`** - writes the embedded `.data`/`.rodata`/`.sdata`
section initializer and `RuntimeConfig.h`.
3. **`emit-build-shards --project <manifest>`** - emits the CMake build graph (`shards.cmake`)
covering both generated sources and `runtime/src`.
4. **CMake + Ninja with Clang** compiles `runtime/` plus the generated output into one executable.
1. **`translate-recursive <entry-point> --project <manifest>`** walks the call graph from the
entry point, decodes every reachable function, and emits C++ (plus JSON metadata describing
what was emitted).
2. **`generate-data-init --project <manifest>`** writes the embedded `.data`/`.rodata`/`.sdata`
section initializer and `RuntimeConfig.h`.
3. **`emit-build-shards --project <manifest>`** emits the CMake build graph (`shards.cmake`)
covering both generated sources and `runtime/src`.
4. **CMake + Ninja with Clang** compiles `runtime/` plus the generated output into one executable.
Discovery is purely recursive from the entry point unless the manifest provides an optional
`function_map` (one `hexaddr name` per line) that seeds additional function boundaries. Unsupported
@@ -37,7 +34,7 @@ See `projects/examples/generic-dol.yml` for a minimal manifest driven by `RECOMP
| --- | --- |
| .NET 8 SDK | Builds and runs the translator. |
| CMake ≥ 3.16 and Ninja | Configures and drives the native build. |
| Clang / LLVM | The shipped build uses LLVM-MinGW targeting `x86-64-v3`. MSVC is not the tested path. |
| Clang / LLVM | The Windows build uses LLVM-MinGW targeting `x86-64-v3`; the Steam Frame build uses LLVM 22 for ARM64 (`Launcher/prepare-portable-tools.sh`). MSVC is not the tested path. |
Build the CLI once and invoke the assembly directly:
@@ -48,28 +45,28 @@ $translator = 'translator/src/Translator.Cli/bin/Release/net8.0/Translator.Cli.d
## Manifest essentials
- `inputs.dol.path` - the DOL to translate; optional SHA-256 pinning rejects wrong revisions.
- `memory.base` / `size` - guest address space.
- `memory.sda_base` / `sda2_base` - the r13/r2 Small Data Area bases your DOL's boot code installs
(`lis`/`ori` pairs in `__init_registers`). Required by any command that writes `RuntimeConfig.h`;
the translator does not guess them.
- `translation.function_map.path` - optional symbol map used as the discovery oracle.
- `translation.allow_unsupported_instructions` - off by default; enabling it emits runtime traps
instead of failing, and such a build can never ship.
- `translation.entry_observer` - optional header, C symbol, and entry-point list for a read-only
host observer. Its callback must accept `(uint32_t, const CpuContext*)`; the translator materializes
the complete guest context before every direct or transitive path that can reach it.
- `inputs.dol.path` - the DOL to translate; optional SHA-256 pinning rejects wrong revisions.
- `memory.base` / `size` - guest address space.
- `memory.sda_base` / `sda2_base` - the r13/r2 Small Data Area bases your DOL's boot code installs
(`lis`/`ori` pairs in `__init_registers`). Required by any command that writes `RuntimeConfig.h`;
the translator does not guess them.
- `translation.function_map.path` - optional symbol map used as the discovery oracle.
- `translation.allow_unsupported_instructions` - off by default; enabling it emits runtime traps
instead of failing, and such a build can never ship.
- `translation.entry_observer` - optional header, C symbol, and entry-point list for a read-only
host observer. Its callback must accept `(uint32_t, const CpuContext*)`; the translator
materializes the complete guest context before every direct or transitive path that can reach it.
Relative paths resolve from `workspace_root`, which itself resolves from the manifest directory.
## Commands
- `info [--project path]`
- `translate-recursive <address> --project path`
- `generate-data-init --project path`
- `emit-base-manifest --project path`
- `emit-build-shards --project path`
- `translate-mod --project path [--profile name] ...` - static Kamek/Pulsar module translation
- `info [--project path]`
- `translate-recursive <address> --project path`
- `generate-data-init --project path`
- `emit-base-manifest --project path`
- `emit-build-shards --project path`
- `translate-mod --project path [--profile name] ...` - static Kamek/Pulsar module translation
Any command prints its own option list with `--help`.