D622 - The probe runs here too

Status: measured Date: 2026-09-08

The oracle that was sitting there

obSCEne is the only guest whose source this project holds. It passes on a console. And its payload build runs under orbistoun, emitting the same OBS| record stream the hardware reports carry.

So the same binary can be run in both places and its own verdicts compared. A check that passes on the console and fails here is not a wall to be reverse-engineered - it is a named, sourced defect with the probe's own sentence attached.

That is a different kind of evidence from everything else available. A title's wall says where it stopped. This says what is wrong, in the words of the thing that tried it.

One command

orbistoun-cli probe <local transcript> --against <hardware transcript>
against …-pkg.obs.log: 256 of 635 check(s) both ran concluded differently
  115 passed there and failed here - each is a defect with its own words
  pass -> fail  020-memory/allocate            allocation was refused
  pass -> fail  020-memory/virtual-query-text  virtual query on code address refused
  pass -> fail  050-time/usleep                a short sleep was refused
  pass -> fail  120-measure/sleep-fidelity     a sleep returned far sooner than asked
  pass -> fail  102-net/sockaddr-bind          bind refused both sockaddr lengths
  pass -> fail  900-surface/control            a symbol that does not exist reported present;
                                               every count in this section is meaningless

Only checks both sides ran are compared. A check one side skipped is a difference in what was reachable, not in behaviour, and listing it as a defect buries the ones that are (principle 3). Ordered so that passed there, failed here comes first, because that is the one class that is unambiguously ours.

What it says immediately

900-surface/control is the probe telling us sceKernelDlsym reports a symbol present that does not exist - the divergence tests/dlsym_divergence.rs already records - and that it invalidates every count in that section. That is a defect reporting its own blast radius, which no wall has ever done.

The memory and sleep entries are core and in scope: one refused sceKernelAllocateDirectMemory cascades into six skipped checks, and a sleep returned far sooner than asked sits next to D614's early-timeout fix in a way that wants looking at.

The payload is in the corpus now

titles/obscene-payload reaches 223 distinct imports at 100% standing and exits cleanly - more of the interface than any title, and the only guest that terminates rather than crashing or timing out.

And the eboot no longer loads

Today's eboot.bin is refused: no usable dynamic table: lacks a string table, symbol table, or hash table. The corpus copy is a week old and loads. The builds differ:

1 September today
program headers 6 5
vendor segments 1 2
mapped segments none 0, 1, 2
SDK version 0x00000000 0x08050001
proc-param pointers set all zero

So the corpus has been measuring a week-old probe without anything saying so. Recorded here rather than fixed, because what changed in the container is a reading job of its own.

A local transcript carries every record twice

obSCEne writes each line to descriptor 1 and descriptor 2, deliberately: "one emulator's stdout is not the handle a parent process redirects - the write succeeds and the bytes are not reachable - so the same line goes to stderr as well." Orbistoun sends both to the host's error stream, equally deliberately, because its standard output carries the worker protocol.

Both are right, and the result is that a locally captured transcript has every record twice.

diverges_from is unaffected - verdicts keys by check, so a repeat is an overwrite. Raw counts are not: the payload run's real figures are 162 pass and 378 fail, and the 324 and 756 first read off it were the doubled ones. Anything counting records out of a local transcript has to know this, which is why it is written down here rather than quietly deduplicated - a hardware transcript may legitimately run a check twice, and silently collapsing that would lose a real observation to tidy up an artefact of two descriptors.