138 lines
7.9 KiB
Markdown
138 lines
7.9 KiB
Markdown
# StarletOS integration handoff — 2026-10-03
|
|
|
|
This checkpoint publishes the existing emulator changes used by the companion
|
|
[StarletOS repository](https://git.yaya48.xyz/Yaya48/StarletOS). It is a recovered
|
|
source checkpoint, not a new claim that stock IOS or physical hardware is fully
|
|
supported. The Rust project's current phase is 10C, stock NCD probe H02B awaiting
|
|
SD staging and its physical result; consult its HANDOFF and phase reports.
|
|
|
|
## Published work
|
|
|
|
- The existing local commits c230971f07 (NAND conformance/diagnostic tools) and
|
|
a8dbbab62d (SD CMD6/conformance report) precede this integration checkpoint.
|
|
- 16 modified files and 6 previously untracked files are now tracked here:
|
|
ARM bootstrap ELF loader and tests, direct PPC/Starlet launch, read-only NAND
|
|
and explicit disposable-copy support, diagnostics and regression runner,
|
|
ARMv5TE LDRD/STRD handling, and the existing MSVC dependency-detection fix.
|
|
- `docs/StarletOS_Checkpoint.json` records SHA-256s of the 22 exact source files.
|
|
The companion repository also pins the published Dolphin commit.
|
|
- Every runtime byte matches the source snapshot captured before publication.
|
|
Only Git attributes, ignore rules and handoff metadata were added this turn.
|
|
- Inspection of 67 changed file versions in the two pending commits found no
|
|
available private NAND key/content markers, device identifiers or credentials.
|
|
The staged integration files were inspected separately before publication.
|
|
- No full rebuild, new emulator test or Wii test is claimed by this Git import.
|
|
Historical qualification remains in the companion project's phase reports.
|
|
|
|
## Other computers
|
|
|
|
Clone this fork beside `starlet-ios-rust`, checkout the commit pinned in
|
|
`StarletOS/support/dolphin/manifest.json`, then follow the companion
|
|
`docs/DEVELOPMENT.md`. The previous private base bundle and source overlay are
|
|
no longer needed to retrieve these sources: their commits are on this server.
|
|
Use `docs/Wii_Starlet_Bootstrap.md` for the existing build and test runner.
|
|
|
|
NAND, keys, user profiles, traces and generated builds remain local/ignored.
|
|
The `.starlet_user3` profile is needed only for the full Menu scenarios; the
|
|
standalone Starlet bootstrap probe does not need a NAND or keys.
|
|
The old `.before-p10a-h07b` script is retained locally as an ignored backup.
|
|
|
|
## Future sessions
|
|
|
|
Read AGENTS.md. Record the starting commit, changed behavior, actual tests and
|
|
remaining work. Update this handoff and any changed file hashes, commit to this
|
|
fork, then update the pinned dependency in StarletOS. Never label a build, a
|
|
source comparison or a fake emulator device as a physical Wii observation.
|
|
|
|
|
|
## Linux qualification — 2026-10-03
|
|
|
|
Starting checkout: master `54f5a74bbf4e3be8418a3e98d006436c16a23e40`, clean;
|
|
fetch and fast-forward-only pull found no divergence. All recursive submodules
|
|
were initialized at their recorded commits. No runtime/source bytes changed;
|
|
this addition records the first build on the destination Linux PC.
|
|
|
|
- Debian 13 x86_64, GCC 14.2.0, CMake 3.31.6, Ninja 1.12.1. Release build in
|
|
`.starlet_linux`: `StarletBootstrapProbe`, `dolphin-nogui`, `tests` succeeded.
|
|
Qt, X11/EGL, desktop audio/input, LLVM disassembly and optional integrations
|
|
were disabled; headless and tests enabled. The complete configuration is in
|
|
the companion `docs/LINUX_QUALIFICATION.md`. This is not a GUI qualification.
|
|
- 95 selected tests of bootstrap ELF loading, ARM execution, SRAM, DMA,
|
|
timer, register and IPC behavior passed. Google Test also reports two
|
|
existing disabled tests; they were not enabled. The rest of Dolphin's
|
|
unit suite was not run.
|
|
- Ten standalone bootstrap runs passed: idle, panic, fatal data, undefined
|
|
instruction and Phase 02 self-test, each in interpreter and JIT. Rust used
|
|
the companion's pinned nightly-2026-09-20. The Phase 02 trace still says
|
|
IRQ delivery deferred and timer flag relatch untested; no hardware inference.
|
|
- SHA-256 of Linux `StarletBootstrapProbe`:
|
|
`a536e5125c193d3ae23f3a5028e2f34df0359785d86191500c65ce7bcd9610f9`.
|
|
Tests: `6acf5f26206e5afee2b3fbe3fd149b7c7c4dcd1f035d4dc12b89193df1d13a6f`.
|
|
NoGUI: `bd0f9420428f07a1c8785c131f430cc0f9eed88a5723e2e56546291fa3b72544`.
|
|
- Logs are private/local in companion `target/linux-qualification-20261003/`;
|
|
their hashes and commands are summarized in its public traceability report.
|
|
All 22 pinned integration file hashes still match. The private Menu profile
|
|
and NAND were not used or modified by these standalone tests. No full Menu
|
|
replay or physical Wii test is established by this build.
|
|
|
|
Next: use the companion handoff. Stock-IOS H02B has now been copied to the
|
|
identified SD and verified after remount; the console result is pending.
|
|
Rebuilding its PPC binary under Linux remains unqualified (the exact devkitPro
|
|
packages could not be downloaded: HTTP 403). Preserve the archived probe.
|
|
This documentation commit changes the dependency pin, not the built code;
|
|
the executables above still report their build's original commit.
|
|
|
|
|
|
## Phase 11 IPC trace for the original IOS — 2026-10-06
|
|
|
|
Starting checkout: master `78738093ece433e9198213f91d43a3a0d60e3fa2`, clean;
|
|
fetch found no divergence. Companion: StarletOS Phase 11 proposal L2
|
|
(`docs/PHASE11_PROPOSAL.md`), approved by the user.
|
|
|
|
- `Source/Core/Core/HW/WII_IPC.cpp`: with the environment variable
|
|
`DOLPHIN_IPC_TRACE=1` and the original IOS running on the emulated Starlet
|
|
(`WiiIOSLLE`), every request Broadway posts (PPCCTRL X1) is logged as
|
|
`IPCTRACE RQ <addr> C <command> FD <fd> A <five argument words>` (an OPEN
|
|
adds ` P <path>`), and every reply Starlet posts (ARMCTRL Y1) as
|
|
`IPCTRACE RP <addr> C <original command> RC <result>`. Notice level, `WII_IPC`
|
|
log type. Metadata only: buffer contents are never read. Without the
|
|
variable, or in HLE mode, nothing changes.
|
|
- The file is now an exact integration file (`.gitattributes -text`, hash in
|
|
`docs/StarletOS_Checkpoint.json`, 23 files).
|
|
- Build: `.starlet_linux` `dolphin-emu-nogui` and `tests` rebuilt; the 95
|
|
selected Starlet tests (filter in the companion `docs/LINUX_QUALIFICATION.md`)
|
|
passed.
|
|
- Emulation smoke run (supporting evidence only, private log in the companion
|
|
`target/phase11/l2/`): headless, Null video, the companion's Phase 10C NAND
|
|
read-only behind a private profile's COW journal, original boot chain to the
|
|
System Menu for 5 minutes: 74342 requests and 74337 replies traced (5
|
|
asynchronous requests still pending at the stop).
|
|
- Limitation: this Linux build has no window platform (X11 disabled; the
|
|
system lacks the `xi` development package), so no one can point and click in
|
|
it yet. A separate X11 build directory is the next step once `libxi-dev` is
|
|
installed; the qualified headless build stays unchanged.
|
|
|
|
Next: the companion's Phase 11 L2c (the user launches the Mii Channel from the
|
|
Menu in a window with the trace on); analysis stays in the companion.
|
|
|
|
## X11 window build and the reference launch — 2026-10-06
|
|
|
|
No source change. The user installed `libxi-dev` and `libxrandr-dev`; a
|
|
separate build directory `.starlet_linux_x11` (the qualified options with
|
|
`ENABLE_X11=ON`, tests off) built `dolphin-nogui` in 2 min 53 s
|
|
(SHA-256 `a7d372f47e7265a4ebe20c71bde6f8dd63f22416b422551b960f526a604ebda4`).
|
|
The qualified headless `.starlet_linux` build is unchanged. On KDE Plasma
|
|
Wayland the window runs through XWayland (`-p x11`, Vulkan); the emulated
|
|
Wii Remote reads the mouse through XInput2.
|
|
|
|
Companion session L2c (emulation, supporting only): original boot chain and
|
|
IOS80, the companion's Phase 10C NAND read-only (hash unchanged after), no
|
|
Ethernet NAT; the user launched the Mii Channel from the System Menu and it
|
|
started. The `IPCTRACE` log shows ES LAUNCH right after the WiiConnect24
|
|
shutdown request; analysis is in the companion's Phase 11 STATUS (finding 9).
|
|
|
|
Known limit for the next companion step: in bootstrap (Revolution) mode the
|
|
emulated Wii Remotes are not initialized (`m_initialized` stays false), so
|
|
nobody can point at a channel there. Changing that is proposed in the
|
|
companion (proposal M1), not done.
|