The title's launch background, scaled down without smoothing. Assisted-by: LLM Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Syobon Action for PlayStation 5
A native PS5 homebrew port of Syobon Action (しょぼんのアクション), the deliberately unfair platformer by Chiku. It starts from the home screen like any other title, as PPSA99310.
The game is OpenSyobonAction, the open-source SDL rewrite, moved from SDL 1.2 to SDL2 and packaged with ps5-native-app-boilerplate.
Status
Tested on one console, firmware 13.42 with kstuff-lite and ShadowMountPlus.
- Plays from the title screen through the stages with picture, music and sound effects.
- The 480x420 picture is scaled to 1920x1080, keeping its shape.
- DualSense controls, a pause menu and a stage select.
Install
You need a PS5 that already runs homebrew, with ShadowMountPlus (it lists titles in /data/homebrew on the home screen) and an FTP server.
- Build the title (below), or take
PPSA99310.zipfrom a release and unzip it. - Copy the
PPSA99310folder to the console, so that it becomes/data/homebrew/PPSA99310/. - Let ShadowMountPlus rescan, then start Syobon Action from the home screen.
To update, close the game and replace the folder's files. If the home screen keeps an old icon, remove the title from the home screen and let it be added again.
Controls
| DualSense | Keyboard | Action |
|---|---|---|
| D-pad, left stick | Arrow keys | Move |
| Cross, Circle | Z | Jump |
| Square (hold) | Space | Double speed |
| Options | Enter | Start; pause and resume during a stage |
| Triangle | F1 | Back to the title (from the pause menu) |
| L1, R1 (title screen) | Page Up, Page Down | Previous and next stage |
| Create | Escape | Quit |
The stage select stays hidden until L1 or R1 is pressed on the title screen.
Building
The build runs on Linux, WSL and macOS. It fetches the public PS5 payload SDK, zlib and the PacBrew SDL2 libraries into .deps/ on first use.
On macOS, Homebrew's LLVM 18 and the GNU tools have to come first in PATH:
brew install llvm@18 coreutils gnu-sed findutils ninja pkg-config wget
export PATH="$(brew --prefix coreutils)/libexec/gnubin:$(brew --prefix gnu-sed)/libexec/gnubin:$(brew --prefix findutils)/libexec/gnubin:$(brew --prefix llvm@18)/bin:$PATH"
Then:
make USE_CCACHE=0
The title folder is dist/PPSA99310/, and dist/PPSA99310.zip holds the same folder.
The game writes a short start-up log to /data/syobon/log.txt when it can, or to its own /download0/log.txt.
Port notes
What a native title needs beyond the original SDL 1.2 code:
src/DxLib.cppdraws into a 480x420 surface and scales it into the window surface: PacBrew's SDL2 for the PS5 has a framebuffer video driver and noSDL_Renderer. SDL2_gfx primitives draw into the surface through a software renderer, and take colours as0xAABBGGRR.- Game files are opened under
/app0/assets/, since a title's working directory is not its folder. src/ps5_compat.cppprovides what the title's runtime lacks:nl_langinfo,strcasestrand two libc++ helpers. It also stubs the keyboard calls SDL's video driver makes (in a titlesceKeyboardInitcrashes) and serves allocations of 256 KiB and more frommmap, because the title's libc heap stops at about 16 MiB.Makefilewraps those symbols withAPP_WRAP_SYMBOLS.sce_sys/param.jsonasks for 256 MiB of flexible memory.
The home-screen art in sce_sys/ is made from the game's own sprites by art/make.sh. It uses bc7enc_rdo for the BC7 backgrounds, in place of the template's Windows texconv.
The template's own documentation is in docs/TEMPLATE.md and the rest of docs/.
Credits and licences
- Syobon Action, its graphics and sounds: Chiku (ちく), who asks to be credited.
- OpenSyobonAction: the SDL rewrite and its later maintainers; it carries no licence of its own.
- ps5-native-app-boilerplate: BlackBearReloaded, GPL-3.0-or-later (
LICENSE), with its third-party notices inTHIRD_PARTY_NOTICES.md. - SDL2 and its libraries come from PacBrew under their own licences.
No Sony software or keys are included.
