Troubleshooting & fixes

Verified solutions for setup errors, exit code 4, Vulkan device loss, shader translation stops, and Link Play connection issues.

  • Logs: pkp.log & setup.log
  • Relay IP: 204.216.111.91:47610
  • Crash logs: pkp_crash.txt
  • Stable fix: v0.11.1
Macro view of the Valve Steam Deck mainboard PCB and RDNA2 APU assembly
Handheld RDNA2 mainboard and unified memory architecture

Common error messages & verified fixes

Every symptom and fix below is sourced directly from the Dittobyte/Recompia README, issue tracker, and release notes through v0.11.1 and v0.12.0-beta.1:

Error / SymptomRoot Cause & Verified Fix
"pkp.exe exited with code 4" or launcher says romfs is incompleteYour dumping tool wrote the 2.0.1a update’s romfs without the base game’s files underneath it. Keep base/ next to updates/ (each with exefs/ and romfs/) inside one parent folder, pick that parent folder in PokopiaLauncher, and press Set up again so the launcher merges the missing base files automatically.
"pkp.exe exited with code -1073740791 (0xC0000409)" at start on AMD GPUsFixed in v0.10.3 (#487): a compute shader requested a 32-wide subgroup on an AMD workgroup too large for it. Update to {TAG} or newer so oversized compute workgroups run at the driver’s native width.
"The graphics device was lost" on Steam Deck / Linux or full freeze on Linux NVIDIAFixed in v0.11.0 (#531, #533): stale host-visible graphics memory next to an active GPU write caused compute light-list shaders to loop indefinitely. Update to {TAG}; the runtime now synchronizes that memory and enforces [nvn] loop_guard.
"Translating shaders: 0 of 99012" (translator closes silently during Set up under Proton)Fixed in v0.11.0 (#530): when a shader batch runs out of memory under Proton, Set up automatically retries the batch with lighter settings (workstation GC and 2 worker jobs) and keeps them for the rest of the run.
Set up fails at "Linking pkp.exe" (undefined symbol) after a power cut or forced shutdownFixed in v0.12.0-beta.1 (#579): an interrupted build could leave a zeroed object file with a valid size. Set up now flushes each compiled file to disk before marking it done and automatically recompiles any damaged object file.
Launcher says the dump was copied in text modeYou transferred exefs/ and romfs/ over FTP in ASCII/Text mode, corrupting main, sdk, and subsdk0. Re-transfer the dump with your FTP client set to Binary mode.
Link Play: "the relay does not answer" when hosting or visiting over the Internetv0.11.0 used an outdated relay IP. Update to v0.11.1, or manually enter 204.216.111.91:47610 under Link Play > Advanced > Use my own relay or address.
Link Play: "Communication error" (9005) when visiting an islandBoth players are running copies of the same save file and have identical Player IDs. Create a separate profile under Settings > Saves > Profiles or use your own save.
1-second walking/camera hitch even at high FPSFixed in v0.8.1+ (#276, #280): texture readbacks no longer wait a full 17 ms frame ([nvn] readback_grace_ms = 0 by default, cutting slowest readbacks from 79 ms to 6 ms), and title-screen prompt checks run every 10 s instead of every 1 s.
Setup stops with a file-lock error ("file cannot be opened or removed")Move your Recompia folder out of OneDrive, Dropbox, or Desktop folders into a plain path like C:\Pokopia, and add an antivirus exclusion if real-time scanning locks newly generated object files.

Key pkp.ini & controls.ini settings reference

pkp.ini and controls.ini sit inside your game folder next to PokopiaLauncher.exe and pkp.exe. Most options can be changed live with F1 or in the launcher, and diagnostic switches help isolate regressions:

pkp.ini KeyDefaultWhat It Controls
[nvn] readback_grace_ms0Starts GPU texture readbacks immediately instead of waiting one frame (set -2 for legacy behavior; readback_log = true logs timings).
[nvn] loop_guardonPrevents compute light-list shaders from walking past table bounds and triggering Vulkan device loss (#531, #533).
[latency] vblank_lock0Set to 1 with Vsync on and a half-refresh frame cap (e.g., 45 fps on 90 Hz Steam Deck OLED) for even refresh pacing.
[memory] limit_gb16Caps game memory allocation in GiB (works under both Windows and Linux Proton since v0.10.2-beta.3, #455).
[pkp] pokemon_cap_limit31Sets maximum Pokémon town residents from 25 (console default) up to 64 (#524).
[pkp] jump_momentum0Set to 1 so running jumps keep your running speed; tune with jump_momentum_strength (0.0–1.0).
camera_shoulder_side / height0 / 0Offsets the camera (-2 to 2 blocks sideways, -1 to 2 blocks vertically) for an over-the-shoulder view (v0.10.3).
[display] unpaced_loading0Set to 1 (or enable Fast loading screens in Settings > Game > Experimental) to uncap FPS during loading screens.
[fs] romfs_modemptyPath to a layered mod directory containing top-level romfs replacements (LD_C0_R.BIN).

How to report a bug upstream

If an issue persists on v0.11.1 or v0.12.0-beta.1, open a ticket at github.com/Dittobyte/Recompia/issues or ask in the Recompia Discord:

  1. Attach pkp.log from the session where the problem occurred (and setup.log if the failure happened during Set up).
  2. On Steam Deck, ROG Ally, or Legion Go, play for ~20 minutes and click Settings > Testing > Copy handheld report (#443) to include anonymized device, driver, and frame-time telemetry.
  3. If a crash followed enabling a mod, test once using Start without mods (Settings > About > Troubleshooting) first.
  4. Never attach copyrighted game files, build/, shader_cache/, or personal save files to a public GitHub issue.
Desktop gaming PC workstation with dual monitors and illuminated tower
Windows 10/11 x64 desktop workstation for Recompia compilation and 4K play
Open road alongside purple lavender fields in Provence under daylight
Wide-aspect scenery matching Recompia 16:10, 21:9 and 32:9 display presets
Side profile of an Apple MacBook laptop resting on a desk
Apple Silicon macOS ARM64 build running natively via Metal and MoltenVK

Common questions

Why is the window black or stuttering during the first minute of play?

The game creates several pipeline state objects while running. PokopiaLauncher translates known shaders before launch and updates the cache when you exit, so the first run stutters briefly while later runs start smoothly.

Why does the launcher say my game files are from an older version?

Recompia requires Pokémon Pokopia version 2.0.1a (both the base game and the 2.0.1a update). A base 1.0.0 or 1.0.5 dump alone will not pass verification.

How do I roll back v0.11.0 threading or Vulkan submission changes for debugging?

In v0.11.0, upstream documented diagnostic rollback switches in pkp.ini: gpu_split_ms = 0 and pool_reg_skip_same = false under [nvn]; poll_wait = false, short_sleep = sleep, and early_wake = off under [kernel]; boundary_count = render under [latency]; or environment variable PKP_LOCALS=off before running Set up again.