You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ghost of Yōtei (PPSA26344): unsupported scalar source operand code 235 at program counter 856 #1920
Ghost of Yōtei (PPSA26344, 01.008) aborts after roughly 13 minutes of running:
[libc] unhandled exception 'St16invalid_argument' thrown from 0x7f0d1c5bdfe9
terminate called after throwing an instance of 'std::invalid_argument'
what(): unsupported scalar source operand code 235 at program counter 856
Nothing in the tracker matches this message — searched unsupported scalar, scalar source operand, code 235, program counter 856.
How it was measured
decrypted eboot.bin relinked (822 NID references), staged runtime layout, RTX 3080 Ti, Linux
Correction and cross-reference after digging further: this case is not new — it is already documented, in the technical-debt entry that #1190 adds (not yet on main, which is why searching the tracker for the message found nothing, and gh search prs does not index diffs):
src_shared_base, src_shared_limit, src_private_base and src_private_limit (scalar source codes 235 to 238) are not modelled: decoding throws unsupported scalar source operand code with the code and the program counter, so a shader that reads one does not compile. Operand 235 (src_shared_base) was reported on #1182 from PPSA26344 …
So codes 235–238 are a known unmodelled set, and PPSA26344 is the title that keeps surfacing them — this is the second report of the same operand, after #1182. If the maintainers would rather this knowledge live only in #1190's debt entry, close this and I will not reopen it; I am leaving it because nothing in the issue tracker points at the gap.
What this report adds to that entry is the surrounding context:
The open question for whoever implements it: what the base operands should evaluate to when a shader actually reads one. The debt entry says the flat aperture routing does not read the base, so shapes that build an aperture address without reading it can be modelled; shapes that read it cannot yet.
Fixed by #1940: the four codes now decode to their own operand kinds and names, and a read of one refuses with a message that names the source (the value stays unmodelled, so a shader that reads one is left unprepared rather than given a plausible address).
Measured on the title: with #757 + #1836 + #1940, PPSA26344 no longer aborts at this call — it runs about 24 minutes (897 shaders, 106 deferrals) and its next wall is a different one, filed as a separate issue because it is a decode-side miss in another decoder.
Note for the fix: readScalarCode's default answered 0, so decoding alone would have produced a silently wrong aperture base on the code path that uses scalar codes rather than decoded operands; #1940 adds explicit refusal cases there too.
#1940 decodes scalar sources 235..238 and refuses a read with the source named, covered by aperture_sources; the value of the apertures is still not modelled and the title was not run here.
Closing: #1940 decodes scalar sources 235 to 238, and with it the reporter's run gets past this stop. A shader that reads one of the aperture bases is still refused with the source named (TechnicalDebt); reopen if the title stops on that.
Activity
Dextroid17 commentedon Oct 9, 2026
Correction and cross-reference after digging further: this case is not new — it is already documented, in the technical-debt entry that #1190 adds (not yet on
main, which is why searching the tracker for the message found nothing, andgh search prsdoes not index diffs):So codes 235–238 are a known unmodelled set, and PPSA26344 is the title that keeps surfacing them — this is the second report of the same operand, after #1182. If the maintainers would rather this knowledge live only in #1190's debt entry, close this and I will not reopen it; I am leaving it because nothing in the issue tracker points at the gap.
What this report adds to that entry is the surrounding context:
main+ feat(agc): implement image and sampler tables indexed at runtime offsets #757 + fix(agc): defer shaders that cannot be prepared at registration to their first use #1836) is the only one that does — onmainalone the title dies two walls earlier.The open question for whoever implements it: what the base operands should evaluate to when a shader actually reads one. The debt entry says the flat aperture routing does not read the base, so shapes that build an aperture address without reading it can be modelled; shapes that read it cannot yet.
Written with AI assistance.
Dextroid17 commentedon Oct 9, 2026
Fixed by #1940: the four codes now decode to their own operand kinds and names, and a read of one refuses with a message that names the source (the value stays unmodelled, so a shader that reads one is left unprepared rather than given a plausible address).
Measured on the title: with #757 + #1836 + #1940, PPSA26344 no longer aborts at this call — it runs about 24 minutes (897 shaders, 106 deferrals) and its next wall is a different one, filed as a separate issue because it is a decode-side miss in another decoder.
Note for the fix:
readScalarCode'sdefaultanswered 0, so decoding alone would have produced a silently wrong aperture base on the code path that uses scalar codes rather than decoded operands; #1940 adds explicit refusal cases there too.Written with AI assistance.
adriadam10 commentedon Oct 10, 2026
#1940 decodes scalar sources 235..238 and refuses a read with the source named, covered by
aperture_sources; the value of the apertures is still not modelled and the title was not run here.oneandonlydean commentedon Oct 11, 2026
Closing: #1940 decodes scalar sources 235 to 238, and with it the reporter's run gets past this stop. A shader that reads one of the aperture bases is still refused with the source named (TechnicalDebt); reopen if the title stops on that.