# Generated by ReXGlue v0.8.0.0-dev.unknown on 2026-06-17 15:29:23 UTC. [project] name = "sciv" sdk_version = "0.8.0.0" game_root = "../Assets/SCIV" [entrypoint] file_path = "../Assets/SCIV/default.xex" out_directory_path = "generated/default" # Seed restored after the Step 11 bisect (2026-06-18): disabling vtables/callbacks # did NOT fix the registry fault — it traded it for an earlier missing-function # trap at 0x8258FCE0 (a legitimate vtable getter the init path calls indirectly). # Conclusion: the bulk seed is load-bearing and largely correct; the registry # under-population is a registration-logic bug, not seed noise. # sciv_hooks.toml (Step-11 registry-dump diagnostics) dropped 2026-06-18: the # dcbz 128-byte cache-line fix made the type registry fill 14/14, so the # per-iteration registry dumps (firing ~600x each) are now just noise that # throttles boot via synchronous log flushing. Re-add to re-enable the dumps. # # Keep sciv_fixups.toml last: it is the hand-authored overlay, so its names and # explicit boundaries must win over regenerated vtable/callback seed entries. includes = [ "sciv_config.toml", "sciv_vtables.toml", "sciv_callbacks.toml", "sciv_fixups.toml" ] # CRT setjmp/longjmp — located in Step 5 by disassembling the decrypted basefile # (xex1tool -b) and matching the callee-saved register save/restore signature. # Codegen special-cases calls to these into ppc_setjmp/ppc_longjmp; without them # the non-local jump is mis-lifted as an ordinary call (crashes at runtime). # # Both bodies are byte-for-byte identical to the MSXX reference setjmp/longjmp # (same opcodes, same jmp_buf offsets), differing only in the absolute address # and the global TOCTTOU guard pointer the setjmp prologue loads. # # setjmp @ 0x825E6740: prologue `lis r4 / lwz r0 / cmpwi r0,0 / mtctr / bnectr` # (CPU-feature dispatch guard), then `mflr r0 / mfcr r4`, then saves # f14-f31 (stfd, offsets 0..136), r13-r31 (std, offsets 152..296) and the # VMX128 bank (stvlx128 v64.., offsets 320+) into the jmp_buf in r3; returns 0. # The distinctive marker `stfd f14,0(r3)` is unique in the image (1 hit). # longjmp @ 0x825E6420: `mflr r0 / stwu r1,-80(r1) / ... / mr r7,r3` to hold the # jmp_buf, then restores f14-f31 (lfd), r13-r31 (ld) and VMX128 (lvx128) from # r7 (offsets mirroring setjmp); returns the supplied value (or 1 if 0). # The distinctive marker `lfd f14,0(r7)` is unique in the image (1 hit). setjmp_address = 0x825E6740 longjmp_address = 0x825E6420