psp-prx-plugin-maintenance
Skill2 starsChanged 2 months agoMITView on GitHub
Use when building/debugging PSP prx kernel plugins.
In this repository58 other files it gives its agents.
- ad-hoc-script-verificationSkill
- architecture-diagramSkill
- blocked-page-recoverySkill
- cadquery-enclosure-designSkill
- canonical-thumbnailSkill
- circuit-designSkill
- competitor-news-monitorSkill
- component-alternativesSkill
- debugging-hermes-tui-commandsSkill
- docker-container-update-checkSkill
- document-to-action-itemsSkill
- docxSkill
- email-inbox-triageSkill
- embedded-porting-patternsSkill
- ephemeral-file-sharingSkill
- excalidrawSkill
- flash-game-researchSkill
- flutter-android-buildSkill
- flutter-content-renderingSkill
- github-code-reviewSkill
- githubSkill
- goatcounter-analyticsSkill
- google-oauth-file-pollSkill
- grounded-citationsSkill
- hermes-agent-skill-authoringSkill
- hermes-gateway-slash-commandSkill
- hermes-gateway-supervisionSkill
- jellyseerr-watch-suggestionsSkill
- maintained-fork-publishingSkill
- meeting-action-itemsSkill
- native-mcpSkill
- obsidian-mapsSkill
- pdf-flattenSkill
- pdfSkill
- pdf-surgical-editsSkill
- planSkill
- product-price-monitorSkill
- psp-developmentSkill
- psp-homebrew-testingSkill
- python-debugpySkill
- python-webapp-patternsSkill
- reddit-readingSkill
- retro-fansiteSkill
- reverse-proxy-websocket-debuggingSkill
- rss-feedsSkill
- simplify-codeSkill
- sketchSkill
- skit-thumbnailSkill
- spikeSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- usb-device-enumerationSkill
- weekly-review-planningSkill
- wiki-media-asset-pipelineSkill
- windows-c-build-toolchainSkill
- windows-crash-forensicsSkill
- writing-plansSkill
- yt-dlp-anti-botSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 32
Multiple kernel plugins contaminate field tests: If the stick carries other plugins (AutoCat, PSPSysMon, etc.), disable them for a clean …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
PSP PRX Plugin Maintenance
Building and debugging PSP kernel plugins (.prx) — cheat devices, VSH tools, sysmon overlays — especially when rebuilding legacy codebases with modern toolchains. Homebrew EBOOT ports are psp-development's territory; this skill covers prx plugins and real-hardware validation.
Trigger
- User reports a PSP plugin fork/rebuild crashes on real hardware ("CI passed but my PSP crashes")
- Working on TempAR / CWCheat-style prx plugins or any
seplugins/-deployed kernel plugin - Toolchain upgrade of a legacy PSP plugin (moving pspdev to GCC 14/15)
Core rules
- CI green ≠ hardware-valid. Rebuilding 2010s-era PSP plugin C with modern pspdev (GCC 14/15) can pass CI yet crash on a real PSP: the old code relies on UB (stack layout, OOB reads like
for(i=0;i<3;i++)over a 2-element array) that newer compilers compile differently. The game may even boot and play intros, then crash at asset-load. Field-test the actual prx before claiming success, and tell the user explicitly that CI is not proof. - Find the original working release binary FIRST. Upstream repos often still host original release assets (e.g.
raing3/temparv1.6.4 tar.gz = the old-toolchain TempAR binary, 122,450 B). Download and diff: size, md5,psp-readelf -Ssection sizes (.text/.data/.bss). Near-identical sections → the regression is codegen behavior, not footprint — stop chasing memory-size theories. - Keep the ELF for disassembly.
make releaserunscleanand deletessrc/*.elf. Usemake prep <tgt>so the ELF survives, thenpsp-objdump -d src/<tgt>.elf | awk '/<fn>:/,/\$/'. On Windows, objdump/readelf must run via the toolchain on the build host (homelab), not local. - Sysmem partitions matter at game RAM peaks.
sceKernelAllocPartitionMemoryfrom the game's own partitions (1/6) steals RAM the game needs at its asset-load peak → hard crash (GTA LCS pattern: boots, title cards, crash when 3D assets start). The original TempAR alloc list was{9,1,6}(still visible commented out in kmalloc.c). A "correct" loop-count fix that truncates the fallback partitions removes the safety net that made older builds survive. Fix: restore the author's original partition list AND fail closed — if all named partitions are exhausted,return NULLinstead of callingsceKernelAllocPartitionMemory(0, ...)(partition 0 may silently draw from the game's pool). - CFLAGS overrides drop include paths. A command-line
CFLAGS=...makes build.mak'sCFLAGS += -I...inert (command-line vars ignore+=). Re-add explicitly:-I$PSPDEV/psp/include -I$PSPSDK/include -Iinclude -Isrc. - Old toolchain images are gone from Docker Hub (oldest
pspdev/pspdevtag ≈ v20240701, GCC 14-era;pspdev/pspsdkno longer exists). Original codegen cannot be reproduced via Docker — diff against the original release binary instead. - Multiple kernel plugins contaminate field tests. If the stick carries other plugins (AutoCat, PSPSysMon, etc.), disable them for a clean control run before blaming the binary under test.
Release workflow (GitHub Actions)
- Repos of this class often auto-release on
v*tags via a build workflow (docker run pspdev/pspdev make prep psp lite+make pack+softprops/action-gh-release). - Version bump:
RELVERis hardcoded in the makefile — bump it or the packaged zip keeps the old name despite the new tag. - Beware cp1252/MSYS mangling of non-ASCII commit messages on Windows git-bash — the pushed subject garbles (cosmetic; do not force-push history to fix it).
- Watch CI with
gh run watch <id> --repo <owner>/<repo> --exit-status; verify release assets (prx sizes) after.
Pitfalls
- Patch-tool edits on CRLF C sources mangled indentation this session — use a Python normalize-replace-save (match on
\n, write back\r\n) for block edits in this codebase (same lesson as the homelabrepair_*.pypattern). - Windows Defender/vendors may delete freshly downloaded .prx binaries from temp dirs (curl reports success, file vanishes) — download on the Linux build host instead.
- Shell
$(cmd)interpolation inside ssh one-liners can trip the terminal hardline parser — useawktwo-pass instead of mid-command variable capture.
See references/psp-plugin-toolchain-triage.md for the full TempAR case study (evidence, fixes, tags).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

