435. The library was guest code all along

2026-09-08 - directed, continuing 434

What was done

One command settled three iterations of mystery. orbistoun-cli exports on the replacement fakelib/libSceAmpr.sprx reports 118 exports, and all five known sceAmpr* NIDs are among them. The guest does call the command-buffer constructor and the read-file function; the calls go into the fakelib's own code, which orbistoun places and the processor runs natively. Guest code calling guest code, which no thunk sees - principle 7 working as designed (D592).

So the architecture is legible: the dump replaced the vendor library with a shim that implements the Ampr API in guest code and calls the three sceKernelApr* functions in libkernel. Those three are the whole contract, and ampr_emu.index is what they answer from.

The index is parsed and answers in-run. orbistoun_fs::amprindex reads the format decoded in D591, refuses anything that is not it, and is installed through the hook built for the delivery experiment:

orbistoun:   the index has /app0/Media/globalgamemanagers as entry 26, 224748 byte(s)

Two negatives, over spaces rather than points

So the resolve call is not what the fakelib waits on, and this now covers the case where the planted values are the right ones - which the marker experiment of D589 could not.

Surprises

Next