Snap64 Recomp is a native port of Pokémon Snap (Nintendo 64, US release) made by static recompilation: the game's own code runs on your PC, the port only hosts it, and everything about how it looks is off unless you turn it on. 1.0.8 is the release for the speed keys: hold one and the game runs faster, hold the other and it runs slower, and the game itself cannot tell. It also puts Photo Detail right, which had been showing some photos at the console's own resolution since 1.0.0.
Downloads
| File | For |
|---|---|
Snap64Recomp-1.0.8-win64.zip
| Windows 10 or 11, 64-bit, with a GPU driver that provides Direct3D 12. Nothing else to install. |
Snap64Recomp-1.0.8-linux-x86_64.tar.gz
| Linux, experimental: needs the system's SDL2, GTK 3 and a Vulkan 1.2 driver. Played on a Steam Deck in Desktop Mode and in Gaming Mode. |
You need your own cartridge dump. No game data is included. Start the program and choose your pokemonsnap.z64 when it asks (US, SHA-1 edc7c49cc568c045fe48be0d18011c30f393cbaf), or put the file next to the executable yourself. START HERE.txt in either archive says the rest, in one page.
What's new
Fast forward and slow motion
- Hold Tab, or the pad's right shoulder button, and the game runs at 3x. Let go and it is back at once. Options > Controls > Fast Forward sets the speed: Off, 2x, 3x or 4x. It is the console run faster, not the game changed: every clock the game reads runs that much faster, so it steps through exactly the frames it would have anyway, with the same Pokémon, the same scores and the same saves. The picture shows the latest frame at your display's rate, and the sound plays quicker and higher, as a tape does.
- Hold Space, or press the left stick in, and the game runs at half or a quarter speed. Options > Controls > Slow Motion turns it on, Off as shipped, since a shot lined up at half speed is an easier shot than the cartridge ever offered. The picture stays smooth, frame interpolation running over each stretched frame, and the sound plays slower and lower. The key sits on the left hand so your right thumb stays free for A.
- Both keys are entries of the settings file's
keystable,fast_forwardandslow_motion, and can be moved like any other. - These two are the idea of Video Game Esoterica, whose video on the port, "Pokemon Snap Recomp Out NOW! More Pokemon PC Ports", asked for a speed multiplier. Thank you for the video, and for the ask.
Photo Detail
- Some photos, or the bottom rows of one, showed at the console's own resolution with Photo Detail on, some runs and not others (issue #15, Succulent-Puppet; my own reviews). Three faults in the ring of sharp copies the port keeps, found one at a time from my own logs: the interface's tiny renders were pinned as if they might be photos and flooded the ring within a frame; the last strip of a 105-row photo never matched, because it runs past the bitmap's end; and browsing the Report churned the ring so hard that a photo the game draws again later without re-rendering it, as Oak's comparison does, had lost its copy. All three are fixed, and the log now names any photo that fails to match and why.
Smaller things
snap64.logcan be copied while the game runs. It was opened for exclusive access, so a report needed a quit first.
Every change, with its cause, is in CHANGELOG.md.
Note
Upgrading from any 1.0.x: unpack the new archive over the old folder or beside it. Your save is in saves/ and your settings in snapsettings.json, both untouched by the upgrade and both read by 1.0.8 as they are. If you keep the old folder, copy those two across, and pokemonsnap.z64 with them, or let the new one ask you for it.
Warning
The Windows executable is not signed. SmartScreen may say "Windows protected your PC" on the first start, and an antivirus may flag a program it has never seen; the builds on this page are what the source produces, and the .sha256 beside each archive lets you check what you downloaded.
First start
- On Windows, past SmartScreen: choose More info, then Run anyway, once.
- The box asks for your ROM; choose the file and the game starts. The first start also compiles the shipped shader list during the boot logos and takes longer.
- The Snap Station's Print restarts the program twice, on purpose.
- On a Deck, add the executable as a non-Steam game and run it in either mode; the README's Deck section has the shortcut and gyro settings, and the log tells which mode it saw.
Known limitations
- The speed keys have been played on my PC and not on a Deck yet. On an N64-shaped pad, which has no right shoulder button, fast forward has only its key until the file names another button.
- A Pokémon pops out of the picture before it has fully left it: the cartridge draws a Pokémon only while its collision point projects within 1.5 times the half-screen of the centre, so a big, close one, Snorlax on the Beach with the camera pitched up to the limit, vanishes with part of its body still in frame and returns as the camera comes down. The console does the same; the port keeps the rule as the cartridge has it.
- Gyro has been confirmed on a Steam Deck and no other pad yet.
- A Nintendo pad over Bluetooth is put by SDL's driver in the report mode that only speaks when a button moves, and declared gone after three seconds of silence; the port takes it back at the next touch, on its own thread, so the first press after a pause may arrive a moment late. Read from SDL's code, not seen on such a pad here.
- The Linux build has no crash reporter.
- The two sticks can be swapped but not bound to anything else, and the pad's Back button keeps its job of saving the photo on screen.
How this release was checked
The speed keys were proved two ways: a real Tab hold during the Beach ride took the pacing meter from 64 drawn frames per report to 600 and back, a real Space hold from 64 to 32 with the display's rate unchanged, both releasing cleanly; and the scoring replay, run at 3x and at half speed, scored the same 45 photos with the same numbers as at full speed. Photo Detail was proved on my own screens: the review photo sharp to its bottom edge and both of Oak's comparison thumbnails sharp, with the log showing every strip served and nothing evicted. The release suite, now with checks for both speeds, passed on the shipped executable: 26 of 26 checks in 1103 seconds on the 1.0.8 executable (SHA-256 beginning 9963a410), and the Snap Station's 5 of 5 in 488. The numbers, and every release's before it, are in the README.
Reporting a problem
Open an issue here and attach snap64.log from the folder with the executable (and Snap64Recomp.map if the log has [SNAP-AV] lines), your snapsettings.json, and what you were doing.
Verify the download
Each archive's .sha256 holds its SHA-256: certutil -hashfile Snap64Recomp-1.0.8-win64.zip SHA256 on Windows, or sha256sum -c Snap64Recomp-1.0.8-linux-x86_64.tar.gz.sha256 on Linux, prints or checks yours.
Licensed under the GPLv3; third-party notices are in NOTICE.md and licenses/. This project is not affiliated with, endorsed by or connected to Nintendo, Creatures Inc., GAME FREAK inc., HAL Laboratory or The Pokémon Company. Pokémon and Pokémon Snap are their trademarks.



