Snap64 Recomp
Snap64 Recomp brings Pokemon Snap to PC.
- Type: PC port
- Game: Pokemon Snap
- Runs on Linux and Windows
- By JackandBeans
- Latest release v1.0.9, 2026-09-20
- Source: https://github.com/JackandBeans/Snap64Recomp
- Website: https://github.com/JackandBeans/Snap64Recomp/releases/latest
README

Snap64 Recomp
Snap64 Recomp is a native PC port of Pokémon Snap (Nintendo 64, US release) for Windows, Linux, the Steam Deck and macOS. It is made with N64: Recompiled, which translates the game's own code so that it runs directly on a PC. The method is called static recompilation. RT64 draws the picture.
Out of the box it plays like the cartridge. Widescreen, higher frame rates, mouse and gyro aim, button rebinding, fast forward, photo export and the Snap Station's printer are there when you want them, and each stays off until you turn it on.
Download the latest release
This repository and its releases contain no game assets. You need your own ROM of the US cartridge to play.
The Releases page of this repository is the only official download.
Contents: Get it running · Screenshots · System requirements · Features · Faithful by default · Controls · Linux and Steam Deck · macOS · FAQ · Known issues · What's next · Reporting a bug · Contributing · What has been verified · Building · How it was made · Thanks · Documentation · License
The manual has every control, page, hotkey and setting. The rest of the documentation is listed near the end.
Get it running
In a hurry? The download holds a
START HERE.txtwith the short version. The one thing to know: this port has no launcher and no overlay. Everything it adds is inside the game's own Options screen. Press Esc, or Select on a pad, and it opens over the screen you are on: the title, the lab, the course map, a paused course. Widescreen, the frame rate and the other enhancements are under Options > Graphics. They all start off, set to what the console did.
These steps are for Windows. Linux and the Steam Deck are further down.
- Download
Snap64Recomp-1.1.0-win64.zipfrom the Releases page and unpack it anywhere. It holds one folder,Snap64Recomp-1.1.0-win64, withSnap64Recomp.exeinside. Nothing has to be installed. - Have your ROM of the US cartridge ready. (A ROM is the cartridge's
contents, read out into one file.) Put it next to
Snap64Recomp.exewith the namepokemonsnap.z64, or just start the program. If no ROM is there, the program asks for the file, checks it, and copies it into place under that name. It only asks once. You do not have to check the file yourself: a wrong one is refused, with a message that says why. - Start
Snap64Recomp.exe. The program is not signed, so Windows may first show a "Windows protected your PC" box (SmartScreen). Click "More info", then "Run anyway", and it will not ask again. The first start takes a little longer than later ones, because the renderer builds the shader programs your GPU needs. They are kept incache/, so the next start is quick.
A few keys to know first:
- Esc opens the port's Options on almost any screen, and closes them again. On a pad it is Select. The Graphics and Sound pages are in there. In-game pages in the manual names the few screens where the key does nothing.
- Enter is the game's Start. In a course it opens the pause menu: Continue, Quit Course, Retry, Options.
- F11 switches fullscreen on and off, in a course or anywhere else. The window's maximize button goes to fullscreen too.
- To quit, choose Exit Game, the last row of the game's Options screen: A asks, a second A closes, B stays. Or hold Esc for a second and let go. A box asks first, and Enter or Esc keeps you playing, so a hand resting on the key cannot end a run.
Saves live in saves/ next to the program, so keep that folder when you
update. Keyboard and controller mappings are under Controls.
If something goes wrong, Running in the manual
says what Windows or an antivirus may object to, and what to attach to a
bug report.
Screenshots
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
Every picture is the port's own render at 1440p, with Render Scale and Anti-Aliasing both at 8x on the Graphics page, cropped to the game's picture. The full set, with a caption for each, is in docs/SCREENSHOTS.md.
System requirements
- Windows: 64-bit Windows 10 or 11, and a GPU whose driver supports Direct3D 12 with Shader Model 6.0.
- Linux and Steam Deck: a Vulkan 1.2 driver, and either Flatpak or the system's SDL2 and GTK 3; x86_64, or ARM64 for the tarball built for it. The Linux builds are experimental.
- macOS: macOS 14 (Sonoma) or newer, on Apple Silicon or Intel; one app runs on both. The Mac build has run on GitHub's virtual Mac and not yet on a physical one (see macOS).
- CPU: a 64-bit x86 processor with SSE4.1. That is Intel from 2008 (Penryn), AMD from 2011 (Bulldozer), or anything newer.
- Your own ROM of the US cartridge. Its SHA-1 checksum is
edc7c49cc568c045fe48be0d18011c30f393cbaf, the value the decompilation project publishes..z64,.v64and.n64files all work. The port checks the file for you, and refuses a wrong one with both checksums shown.
Nothing has to be installed. The download holds everything but the game.
No one has tested how old a graphics card can be and still run the port. Zelda 64: Recompiled, which uses the same renderer, names the GeForce GT 630, the Radeon HD 7750 and the Intel HD 510 as the oldest that should work. This port has run on an AMD Radeon RX 9060 XT, an NVIDIA GeForce RTX 4070 Ti Super, an Intel UHD 630 and the Steam Deck. If it closes at start, update the graphics driver first. The detail is in the manual.
Features
Each of these is a row on the game's own Options screen, or a key. Each starts off, or at the console's setting. The manual has every one in full.
- Settings inside the game. The port adds Graphics, Sound, Controls and Mods pages to the game's own Options screen, drawn in the game's own font. The Graphics page has sixteen rows, from Render Scale and Anti-Aliasing to Widescreen and Frame Rate.
- Widescreen shows more of the course: a wider field of view that fills the window's own shape, 16:9, the Deck's 16:10 or an ultrawide 21:9, not a stretched picture. The title, the lab and the menus stay 4:3.
- Higher frame rates, matched to your display or set to a rate you choose. The game's own logic still runs at its thirty frames a second; the renderer draws the frames in between (frame interpolation).
- Keyboard and mouse. W A S D and the mouse aim the camera in a course, the way a mouse does in any first-person game.
- Controllers and gyro. Anything SDL has a mapping for works, and the community's list of more pads ships beside the program. A DualSense, a DualShock 4, a Switch Pro controller and the Steam Deck can aim by gyro.
- Button rebinding in the game. Every key, mouse button and pad button can be changed on the Button Setup page, or in the settings file.
- Fast forward and slow motion, each while a key is held. The console's own clocks run faster or slower, so the game steps through the same frames it would have anyway, with the same scores and the same saves.
- Photo export. P, or the pad's right stick pressed in, saves the photo on screen as a PNG at the game's own resolution.
- Photo Detail shows Oak's photos and the album from the renderer's full-resolution render, instead of the console's 320x210 pixels.
- The Snap Station was the 1999 kiosk that printed your photos as a sheet of sixteen stickers. The port emulates it on controller port 4, from the cartridge's own code for it, and Print gives you the sheet as PNG files (SNAP-STATION.md).
- Two things the re-releases changed, reproduced and off by default. One is the Virtual Console's Jynx recolour. The other is a Cutscene Fix for the one frame the console drew from inside the player model, at the end of two intros.
- Linux and the Steam Deck. A native Linux build, played on a Deck in Desktop Mode and in Gaming Mode. The Windows build also runs under Proton (STEAM-DECK.md).
- Mods and texture packs. The runtime's
.nrmmod loader and RT64's texture-pack loader are built in, and the Options screen has a Mods page for them. A mod template and the game's symbol files let anyone write a mod (MODS.md). No mods or packs ship with the port.
Faithful by default
The port behaves like the console by default, and every enhancement is something you turn on. Frame rate, aspect ratio, anti-aliasing, overscan, texture filtering and dithering all start as the console had them. Only what you turn on changes.
Three defaults are not the console's own. The 3D picture is drawn at the window's resolution. 2D content that would be scaled anyway is drawn sharp. The finished frame is scaled with anti-aliasing. Each is one setting away from the original, and Faithful by default in the manual names the setting for each. It also says how higher frame rates sit with the game's photo scoring.
Controls
Keyboard and mouse, as the port ships them:
| N64 | Key | Mouse | In a course |
|---|---|---|---|
| Control stick | W A S D | moving the mouse | aims the camera |
| A | X | left button | the photo when zoomed, an apple when not |
| B | Z | middle button | the pester ball |
| Z | Left Shift | right button | zoom (hold or switch, the game's own option) |
| R | E | dash | |
| L | Q | ||
| C-Down | K | wheel down | the Poké Flute |
| C-Up | I | wheel up | turn to face behind |
| C-Left / C-Right | J / L | side buttons (back / forward) | turn left / right |
| Start | Enter | pause | |
| D-pad | Arrow keys |
A pad works as soon as it is plugged in:
| N64 | Pad |
|---|---|
| Control stick | left stick |
| A | A |
| B | B or X |
| Z | left shoulder button |
| L and R | the triggers |
| C buttons | right stick |
On a pad, the right stick pressed in saves the photo on screen, and Select opens the port's Options.
Hold Tab, or the right shoulder button, for fast forward. Hold Space, or press the left stick in, for slow motion. A tap on Esc opens the port's Options on almost any screen. Esc held for a second and released asks whether to quit. From a pad, Exit Game, the last row of the Options screen, quits.
Every binding can be changed in the game, on the Controls page's Button
Setup row, or in the settings file's keys table. The mouse's speed, the
gyro, the dead zone, the pad's stick layout and which controllers work are
in the manual.
Linux and Steam Deck
The release page has three native Linux builds, marked experimental,
beside the Windows one: a tarball for x86_64, a Flatpak for x86_64, and a
tarball for ARM64. On a Steam Deck either the tarball, the Flatpak or the
Windows build through Proton works; players ran Proton on the day of the
first release, and the x86_64 tarball has been played on a Deck, in Desktop
Mode and in Gaming Mode. The tarball needs the system's SDL2, GTK 3 and a
Vulkan 1.2 driver; the Flatpak brings its own and installs with one
command, flatpak install --user Snap64Recomp-<version>-linux-x86_64.flatpak,
keeping everything it writes under ~/.var/app/io.github.jackandbeans.Snap64Recomp/.
Rendering is Vulkan only. The Flatpak and the ARM64 build are made and
started on GitHub's machines and have not been played on any; the first
report from a Deck or an ARM machine would be welcome.
STEAM-DECK.md has the steps for each route, the
Deck's controls and gyro, its screen, quitting from a pad, and the icon.
macOS
The release page has a Mac build, Snap64Recomp-<version>-macos-universal.zip:
one app for Apple Silicon and Intel Macs, macOS 14 or newer. Unzip it and
move Snap64Recomp.app anywhere. It is signed by nobody, so the first start
is a right-click and Open, or on macOS 15 a double-click, then System
Settings > Privacy & Security > Open Anyway; once is enough. The port asks
for your ROM on the first start and keeps everything it writes in
~/Library/Application Support/Snap64 Recomp/ (the ROM, saves, photos,
settings, the log and the mods folder); nothing goes inside the app.
Rendering is Metal. Mods load as on the other platforms.
What has been seen: GitHub's own Mac builds the app and runs it on every
release candidate, and on it the game boots to the intro, plays the Beach
with photos scored, loads a mod, and quits cleanly, natively and through
Rosetta 2. No physical Mac has run it yet; the first report from one would
be welcome, with snap64.log from the folder above.
FAQ
What is static recompilation?
The game's own program code is translated into C and compiled for the PC. The translation is done once, ahead of time, and not while you play. N64: Recompiled does it. N64ModernRuntime stands in for the console's operating system, RT64 draws the picture, and SDL2 provides the window, the input and the sound.
How is this related to the decompilation project?
The game's code is recompiled from the ROM, not built from the decompilation's source. The port still depends on that project. The functions the port changes are copies of their decompiled source, compiled against its headers and symbols, and what is known about the game's code was learned there.
Where is the settings menu? Is there a launcher?
There is no launcher. Everything is inside the game's own Options screen: press Esc, or Select on a pad. In-game pages in the manual shows every page.
Where are my save and my settings?
Next to the program. The save is saves/pokemonsnap.bin and the settings
are snapsettings.json; keep both when you update. Everything the port
writes is in that folder, so the folder can be moved as it is. On Linux, if
the folder cannot be written, the files go to ~/.config/Snap64Recomp.
How do I use a different ROM file?
The port uses pokemonsnap.z64 next to the program. Remove or replace that
file. With none there, the port asks for one at the next start.
How do I set up gyro aim on a Steam Deck?
In Desktop Mode, or with Steam Input off for the shortcut, turn on Options > Controls > Gyro Aim. In Gaming Mode the game cannot read the Deck's gyro itself. Set Steam's Gyro Behavior to As Mouse there, and the port's mouse aim follows it. STEAM-DECK.md has the steps.
Windows warns me about the program. Is that normal?
Yes. The program is not signed, so SmartScreen may show "Windows protected your PC" the first time: "More info", then "Run anyway". Download it only from this repository's Releases page, where each file comes with a SHA-256 checksum. The port opens no network connection at all.
Can I use mods or HD texture packs?
Yes. Mods go in mods/ and texture packs in texture_packs/, and Options >
Mods turns mods on and off. MODS.md says how to install
them, and how to write one.
Known issues
- Some 2D pictures still move at the game's rate when the frame rate is raised: the photo panels, Oak's thumbnails, and full-screen backgrounds while they slide.
- Parts of the Snap Station printer's look are estimates: its lettering, and the timing of its passes.
- A Pokémon can pop out of the picture before it has fully left it. The console does the same, and the port keeps the cartridge's rule.
- A Nintendo pad over Bluetooth may answer a moment late after a pause. This is read from SDL's code and has not been seen on such a pad; a report from one would settle it.
- Vulkan on Windows is lightly tested. It is there for a machine whose Direct3D 12 path fails.
- With Overscan Crop off, a thin light strip shows at the left of the lab's panel. The console drew the same pixels; Overscan Crop (F2) is the television's view.
KNOWN-ISSUES.md explains each one in full.
What's next
Planned, roughly in this order.
- Reports from other machines. Most releases so far were made of what
players reported, and later ones will be too. The issue form is the way
to send one, with
snap64.logattached. - A Linux desktop. The native build has run under WSL and on a Deck, and on no Linux desktop yet. The first report from one would be welcome.
- macOS. The Mac build runs on GitHub's virtual Mac; it needs someone with a physical one to try it.
The same list, with a place to reply, is







