Pokémon Pokopia (Switch 2) recompiled to run natively on Windows, with multiplayer support.
Releases · Changelog · Contributing · Credits · Parent: pokopia-native · Security · Legal · Issues · Discord
English · 简体中文 · Español · العربية · हिन्दी · Português (Brasil) · Português (Portugal)
Important
No game files are included. You need your own extracted copy of the game, version 2.0.1a. This project provides no game files, keys or dumping tools. Not affiliated with Nintendo, The Pokémon Company or Koei Tecmo; Pokémon is a trademark of Nintendo, Creatures Inc. and GAME FREAK inc. (see LEGAL.md).
Note
Built with AI, supervised by humans. This project is developed primarily with AI, with Dittobyte developers as the supervisors. Note on Josh - They say they have a handful of years of development experience, so it's not all slop. Every commit is reviewed, verified and tested by before it lands.
Title screen |
Building your island |
Play on New Aspect Ratios |
Link Play with a friend |
- Visit a friend's island, or invite them to yours, on the same Wi-Fi or over the internet.
- Cross-play with pokopia-native players.
- Set it up in the launcher's Link Play page. No files to edit.
- Step-by-step guide: Playing together.
- Already playing on Eden or Ryujinx? One button in Settings finds your save and brings it over. Your emulator's copy isn't touched.
- Got a save somewhere else? Pick its folder (the one with
B00,G00andS00inside). - Your current save is never deleted. It's kept as a backup folder first.
- If a save can't be written (a full disk, OneDrive or antivirus holding the file), your last good save is kept and the game tells you.
- Use your dump as it comes: a folder (with
baseandupdates) or a single.nupor.nxfile. - Clear messages if something is wrong with your dump: the wrong game version, a missing update, or files damaged while copying. The launcher tells you what to do.
- Checks before it starts: enough disk space, a working graphics driver, enough memory.
- Use fewer cores keeps your PC usable while it builds. You can pause and carry on later.
- Updates are quick: only the parts that changed are rebuilt.
- The launcher tells you when a new version is out.
- Any controller: Xbox, PlayStation, Switch Pro and more, with rumble and motion. Buttons follow the Switch layout by default.
- Keyboard and mouse. The mouse also works in menus: click to confirm the highlighted item; scroll or use the arrow keys to move the highlight.
- Change any button on the F1 Controls page.
- On-screen button icons match what you're holding: keyboard, Xbox, PlayStation, Steam Controller or Switch.
- Typing your name works with a controller, mouse or keyboard.
- Quit without Alt+F4: hold Select and Start (View and Menu on an Xbox pad), or use Quit game in F1.
- Open the F1 menu from a controller: click both sticks (L3 + R3); change or turn it off with
[overlay] padincontrols.ini(none= off). It cannot be the quit combination.
- Steam Deck, Legion Go S and other handhelds are recognised: controller icons stay on screen and the picture size suits the screen.
- 16:10 screens are filled edge to edge, with no black bars.
- Runs natively on SteamOS, with handheld speed-ups (about 26 to 53 fps on a Steam Deck and 55 to 75 fps on a Legion Go S, measured by players).
- The launcher runs on Linux and SteamOS too: see Linux, SteamOS and the Steam Deck.
- Play at any resolution, 4K and above. Lower Render scale if it runs slowly.
- Quality presets (Switch 2, High, Ultra) set how far you can see and how sharp textures are.
- HDR on HDR screens.
- Window, borderless or full screen. Choose the monitor, cap the frame rate, show an FPS counter. Alt+Enter switches modes while playing.
- Upscalers: FSR 1 and NVIDIA Image Scaling work.
- FSR 3 and DLSS / DLAA are there but don't look good yet and need rework. Leave them off for now.
Press F1 in the game to change graphics, controls and sound (volume, output device, mute when the window is in the background). Most changes apply straight away.
- Download the zip from the latest release and extract it anywhere.
- Run
PokopiaLauncher.exe. If SmartScreen warns, choose More info → Run anyway. Pick your dump folder and press Set up: it compiles the game on your PC (about 7 minutes), then builds the shader cache (1 to 2 hours, you can pause and continue later). - Press Play.
F1 opens the settings in game. Middle mouse toggles Joy-Con 2 mouse mode (point and click to place and break blocks).
- Download
PokopiaRecomp-<version>-linux-x64.tar.gzfrom the latest release and extract it anywhere (for example your home folder). - Run
PokopiaLauncher.AppImagein that folder (double-click it, or./PokopiaLauncher.AppImagein a terminal). Pick your dump folder and press Set up: the first time it downloads its build tools (Python and Zig, about 100 MB), compiles the game, then builds the shader cache. You can pause and continue later. - Press Play.
Nothing runs through Proton or Wine: the launcher, the game, the shader translator and the build tools are all native Linux programs.
If PokopiaLauncher.AppImage does not start on a system without FUSE, run ./PokopiaLauncher.AppImage --appimage-extract-and-run.
To start the game from Steam (Game Mode on the Deck): in Desktop Mode, Add a Non-Steam Game, pick PokopiaLauncher.AppImage, and set its launch options to --play. More detail, and what was tested, in launcher/README.md.
You can layer a folder of replacement files (a text or texture mod, a translation) over the game without touching the game dump: Settings > Game > Mods, or romfs_mod under [fs] in pkp.ini. Nothing is bundled with this project; get a mod from its author.
The folder you choose must look like the game's own romfs: the same files and folders, starting at the top level. Its files replace the game's files with the same path, folders are merged, and files that only the mod has are served as well.
MyMod/ <- choose this folder in Settings > Game > Mods
├── LD_C0_R.BIN <- same path as in the game's romfs
├── LI_C0_R.IDX
└── motor_asset_re/
└── ...
If a download has an outer folder (for example 2.0.1/romfs/...), choose the inner romfs folder, the one that contains LD_C0_R.BIN, not the outer one. If the folder level is wrong, pkp.log says that none of the mod's files replaces a game file. Mods that replace files containing shaders are not supported.
Você pode colocar uma pasta de arquivos de substituição (um mod de texto ou de texturas, uma tradução) por cima do jogo sem mexer no dump: Settings > Game > Mods, ou romfs_mod em [fs] no pkp.ini. Este projeto não inclui nenhum mod; peça ao autor do mod.
A pasta escolhida precisa ter a mesma estrutura da pasta romfs do jogo: os mesmos arquivos e pastas, a partir do nível mais alto. Os arquivos dela substituem os arquivos do jogo com o mesmo caminho, as pastas são mescladas, e arquivos que só existem no mod também são usados.
Se o download tiver uma pasta externa (por exemplo 2.0.1/romfs/...), escolha a pasta romfs de dentro, a que contém LD_C0_R.BIN, e não a pasta externa. Se o nível da pasta estiver errado, o pkp.log avisa que nenhum arquivo do mod substitui um arquivo do jogo. Mods que substituem arquivos com shaders não são suportados.
Your saves, settings and shaders stay.
From 0.7.5 on: press Update on Home (or in Settings > About). The launcher downloads the new release, checks it, swaps its own files and restarts. When the release changes the game code, the launcher first builds the new game program (pkp.exe) next to the one you have, with the new release's own tools. That takes from a few minutes to an hour, depending on your PC, and you can keep playing the whole time: Home shows the progress, and the update installs once the game is closed. Cancel stops it until then and changes nothing; the next Update picks up where it stopped.
From 0.7.0 or older: download the new zip (Windows) or PokopiaRecomp-<version>-linux-x64.tar.gz (Linux) from the latest release, close the game and the launcher, and extract it over your install, into the same folder. It holds no saves, settings, shader cache or game files, so nothing of yours is replaced.
If Home shows Finish update after an update: that release changed the game code and it could not be built before the update (an install that was extracted by hand, or an older version picked in Settings), so the launcher builds the game program (pkp.exe) again from your game files. It also happens when you skipped such a release earlier and update by hand later. This takes from a few minutes to an hour, depending on your PC, and your shaders and saves are kept. It is not the long first setup: shaders are only translated again when the release notes say so, and then only the ones that changed. The old pkp.exe stays until the new one is ready.
Copy the save folder somewhere first if you want a backup. A save that a newer version wrote may not load in an older one.
Link Play puts several players on one island. Cross-play works with pokopia-native players on game version 2.0.1. Players on game 1.0.5 cannot join.
What changed. Link Play now speaks pokopia-native's co-op protocol. It does not work with earlier Link Play builds of this port, so everyone updates to this release.
Each player needs their own save. A copy of someone else's save cannot join its original.
Set it up. In the launcher, open Link Play and pick one:
| Choice | Use it for |
|---|---|
| Off | No Link Play. |
| Same network | The default. Same Wi-Fi or network: the host is found by itself. If not, type the host's address, for example 192.0.2.10 (under This PC on the host's page), in Join directly. |
| Internet | Play over the internet. Every room shows up in the game's Visit a Friend list: no room code, nothing to forward. |
Changes apply the next time the game starts.
In the game, open the PC in your first house, then Link Play (it unlocks after Environment Level 2 in the Withered Wasteland) and pick Local connection. (Online connection is Nintendo's own service and does not work here.) The host picks Invite Others to Visit, the others Visit a Friend.
Same network. Everyone picks Same network. Steam Deck and other Proton or Linux devices find hosts and are found too, on whatever network they are on. Cafe, hotel and guest Wi-Fi often keeps devices apart: there, play over the internet instead.
Over the internet. Everyone picks Internet. Nothing to forward and no code to type: the launcher uses the project's public relay, and every room on it shows up in the game's Visit a Friend list. For a private room, say yes when the game asks to set a Link Code: only players who type it can join. Your own relay or a forwarded port are under Advanced; any pokopia-native co-op relay works there too, and PokopiaLauncher --host runs one on a server. The Link Play guide has the steps and what to check when it does not connect; the full multiplayer page has relays and ports. The relay does not encrypt the game's traffic.
Ports and firewall. The first time you host, Windows Firewall asks about pkp.exe: allow Private networks. Your network must be Private too (Settings, Network & internet, your connection, Network profile type: Private).
| Port | Who | Protocol |
|---|---|---|
| 47600 | the host | TCP and UDP |
| 47610 | the relay | TCP, and UDP for the faster path |
Interact everywhere and Story co-op (experimental, off by default). In the story areas the game puts visitors in Spectator Mode. Interact everywhere lets them use moves and items, pick up, place and build there. Story co-op lets them talk to the story characters, and turns Interact everywhere on. Every player needs the same two switches, or the host is not listed. Only the host's save keeps the story progress.
Link Play: joining and walking around together work. See docs/multiplayer for how it works and the pkp.ini keys.
- The window is black, or the game stutters a lot, on the first launch. The game makes some shaders while it runs. The launcher translates the ones it has seen before every start and again after you quit, so the first runs are rough and later ones are better. Give it a minute and keep playing. If the setup stopped half way, open Game files and press Set up to continue. It keeps finished work.
- The launcher says the game files are from an older version, or that the update is missing. This release needs version 2.0.1a. Dump the game again with the update installed. The base game alone is not enough.
- The launcher says it found no usable game files, or Set up says a file does not match. Pick the folder that holds
baseandupdates(for examplePokopia_v2.0.1a). Each needsexefs(main,sdk,subsdk0,rtld,main.npdm) andromfs. A file that does not match is damaged. Dump it again, or copy it again. - The launcher says the game data (romfs) is incomplete, or the game closed at start with "pkp.exe exited with code 4". Your dumping tool wrote the update's
romfswithout the base game's files under it (an update only holds the files it changes). Keep the base game in the same dump (basenext toupdates, each withexefsandromfs) and pick the folder that holds both: the launcher adds the missing files frombaseitself. Then press Set up once more. Otherwise dump the game again with the update merged into the base game. - The launcher says the dump was copied in text mode. You copied it with FTP in text mode, which damages
main,sdkandsubsdk0. Copy theexefsandromfsfolders again with the transfer type set to Binary (FileZilla: Transfer, Transfer type, Binary). - Your dump is one file (
.nsp,.xci). The launcher takes the game as folders, or as a.nupor.nxpackage (an.nxmade from extracted files or from a.nup, not straight from the.nspor.xci). Extract the.nspor.xcito folders with your dumping tool. - Setup stops with an error about a file that cannot be opened or removed. Put the folder somewhere plain, like
C:\Pokopia, not in a folder that OneDrive syncs. Your antivirus may be scanning the files it is building: wait for it, or allow the folder. Open setup log shows where it stopped. - Set up warns before it starts. It checks free disk space (about 14 GB with packed shader files, the default, or about 31 GB with loose ones), Vulkan, memory and the processor first. On an Intel 13th or 14th generation desktop CPU, update the BIOS before you set up: without Intel's fix these CPUs can crash under long full load. If the PC gets hot or hard to use while it builds, tick Use fewer cores.
- Low frame rate, or a blurry picture. The picture size is fixed when the game starts. It is the size of the window or screen at that moment (Settings, Display).
- Start in Borderless on a 4K screen and the game draws at 4K. That is heavy. Lower Render scale.
- Start Windowed (1280x720 by default) and press Alt+Enter, and the picture stays 720p, scaled up. Set Window mode before you press Play.
- Set Frame rate limit to what your screen can show.
- Link Play: the visitor cannot find the host. Pick Visit by address and type the host's address (the host's Link Play page shows it). Check that the host started the game and picked Invite Others to Visit, that Windows Firewall allows
pkp.exeon Private networks, and that the network is Private. Cafe, hotel and guest Wi-Fi that keeps devices apart blocks LAN play for everyone: use Internet with a relay and a room code. Over the internet, check the relay address and the room code. Changes on the Link Play page apply the next time the game starts. - Link Play: the connection is refused. The players do not match. Everyone needs game 2.0.1, the same release (or pokopia-native for cross-play), and the same mods and the same Interact everywhere and Story co-op switches.
- Link Play: "Communication error" (9005) when you visit. You are both playing copies of the same save, so both have the same player ID. Each player needs their own save.
- The controller is not detected. Open the game with F1 and look at the Gamepad line on the Controls page. It says "No gamepad open" when the game sees none. Connect it before you press Play, then try the other cable or port. Close other programs that may be holding the pad.
If it is none of these, see Reporting problems.
All of these are in the game folder: the folder with PokopiaLauncher.exe and pkp.exe, unless you chose another one in Settings, Game folder.
| What | Where |
|---|---|
| Saves | save (Settings can point it elsewhere: Save folder) |
| Settings | pkp.ini and controls.ini (F1 in game writes controls.ini) |
| Log | pkp.log, written on every start from the launcher. A crash also writes pkp_crash.txt, pkp_freeze.txt or pkp_fatal.txt. |
| Translated shaders | shader_cache (about 26 GB) |
| Build files | build (the setup's work folder) |
Unpacked .nup or .nx |
nup_dump, if you picked a .nup or .nx (its add-ons, if any, in nup_dump/aoc) |
| Launcher settings | %APPDATA%\org.pkp-recomp.launcher\launcher.json (your dump folder and game folder) |
Never attach game files, the build or shader_cache folders, or saves to an issue. pkp.log is enough.
Questions, bug help, testing and chat: join the Recompia Discord. The launcher also has a Join Discord button under Settings > About > Community. Bugs that need a fix are still reported on GitHub.
Open an issue with pkp.log from the session where it happened, your GPU and your Windows version (on Linux: your distribution, the Proton version and the device).
Linux, SteamOS and Linux handhelds: I (Jerban) look after the Linux side, so Linux bugs get fixed and sent out quickly through the one-click updater. Sorry for the frequent updates, and thanks for your patience. Please keep reporting Linux bugs, always with your logs: pkp.log, and setup.log for problems with Set up (see Where your saves, logs and settings are). Anything outside Linux is reviewed by Josh first.
GPL-3.0. Third-party code keeps its own licence, see CREDITS.md.
