-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Confirm the WonderSwan target is installed and the toolchain binaries are on
PATH. Story Forge defaults to /opt/wonderful.
/opt/wonderful/bin/wf-pacman -Q target-wswanInstall Pillow for the same Python interpreter used by the scripts:
python3 -m pip install Pillow
python3 -c "import PIL; print(PIL.__version__)"Reports are evidence, not decorative caches. Re-run the builder or doctor that owns the report so it records the current source paths and hashes. Do not fix a hash-bound report with a text editor and call it fresh.
Compilation proves only one layer. Inspect the first failing report in this order:
- game/project validation;
- graphics contract;
- text contract;
- visual contract or game readiness;
- build report;
- emulator smoke;
- game audit;
- release verification.
For current generic games, insert SwanSong playthrough between game audit and
release packaging. Inspect reports/swansong-playthrough-report.json first.
Do not treat a rendered frame as accepted input. Run the exhaustive SwanSong playtest and inspect requested masks, observed keys, accepted-action counters, mailbox phase/node, and the stall snapshot. Confirm presses use a three-frame press and three-frame release so the emulated keypad sees an edge.
If the failure occurs only in the app UI, run Scripts/check-player-input.sh
from the SwanSong source checkout. Exit 77 means macOS blocked event injection;
grant Accessibility permission and rerun.
Check the report's persistence_test, not only save-state replay. A save state
proves engine serialization; cartridge persistence proves an in-game save can
survive a fresh engine. The runtime currently uses save schema 5 and
intentionally invalidates schema-4 data.
branch and chapter nodes can execute without producing an observable frame.
Keep them in graph plans but filter them from the expected runtime node trace.
Compare the engine dynamic-library hash and check for
Contents/Helpers/SwanSongRouteRunner. Do not rely on the visible version
number alone. Test with --swansong-dylib to bind the intended bundle.
The frames were probably quantized or segmented independently. Return to one locked neutral master, reuse its palette and binary alpha, and edit only the mouth or eye region. Re-run the audition and approval.
The limit is not the layout. Run the text contract against the exact runtime
font and inspect text-preview-sheet.png. Rewrite to three wrapped lines or
fewer when the screen needs breathing room.
Confirm the Story Forge runtime patch is applied and the runtime advances at the WonderSwan’s roughly 75.472 Hz frame timing rather than 60 Hz.
Boot proof and visual proof are separate. Capture a clean native framebuffer, review it by eye, and bind the approved screenshot through the ship command.
Record hardware status as pending. Do not promote emulator evidence into a
hardware claim.
The canonical public locations are:
- Repository: https://github.com/RegionallyFamous/swansong-story-forge
- Wiki: https://github.com/RegionallyFamous/swansong-story-forge/wiki
- SwanSong Desktop: https://github.com/RegionallyFamous/SwanSong-Desktop
The local Wiki source checkout is the separate
swansong-story-forge.wiki.git repository. Update and validate it alongside
source changes that alter build, test, player, or release behavior.