2026-09-01 (foreground retail game process & Title ID resolution) (D288)
Diagnosed why running retail titles (e.g. candidate Title ID
PPSA04263) were not detected by
target_find_foreground_app():
- Root Cause Analysis:
proc->p_commstores the binary executable's basename (eboot.bin), NOT the Title ID (PPSA...). Checkingobs_strncmp(comm, "PPSA", 4)never matched.- For
comm == "eboot.bin", D286 requiredkrw_get_proc_jaildir(pid) != 0. On PS5, retail titles run under Sony's container sandbox which does not populate FreeBSDp_fd->fd_jdirat offset0x20.krw_get_proc_jaildir()returned 0, silently discarding the running game. - An arbitrary filter
pid > 100needlessly skipped lower PIDs.
- Remediation:
- In
src/injector/target.c, eliminated the bogusjaildir != 0requirement andpid > 100filter. - Added
get_proc_title_id(proc, out_title)to scanstruct procforPPSAxxxxxorCUSAxxxxxTitle ID patterns, allowingtarget_find_by_name()andtarget_resolve()to look up processes directly by Title ID. - In
target_find_foreground_app(), any non-system process withcomm == "eboot.bin"(excludingmypidandNPXS.../NPXX...system daemons) is identified as the running retail game. - In
src/injector/injector.c, eliminated hardcoded game title references from error messages.
- In
Verified:
make -C <OOPS>/obscene check BUILD=$HOME/obs passes
100% clean.