github JackandBeans/Snap64Recomp v1.0.5
Snap64 Recomp 1.0.5

3 hours ago

The title screen

The Options screen, with Exit Game The Snap Station's printer, three stars

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.5 closes the Steam Deck's last known blemish, keeps fullscreen where you put it, makes anti-aliasing changes take effect at once, and lets a gyro or a mouse satisfy the Beach tutorial.

Downloads

File For
Snap64Recomp-1.0.5-win64.zip Windows 10 or 11, 64-bit, with a GPU driver that provides Direct3D 12. Nothing else to install.
Snap64Recomp-1.0.5-linux-x86_64.tar.gz Linux, experimental: needs the system's SDL2, GTK 3 and a Vulkan driver. Played on a Steam Deck in Desktop Mode and in Gaming Mode.

You need your own cartridge dump. No game data is included. Put your pokemonsnap.z64 (US, SHA-1 edc7c49cc568c045fe48be0d18011c30f393cbaf) next to the executable and start it. START HERE.txt in either archive says the rest, in one page.

What's new

Steam Deck

  • The corner chunk at the start of a course is gone. In Widescreen, a course's first seconds after the opening cinematic showed a chunk at the top-left, black bands and a piece of an earlier picture, until the viewfinder's first raise repainted it; it had been there since 1.0.1. One triangle of the sky dome has a vertex on the camera plane there, and the Deck's Mesa driver culls that triangle in its NGG stage, in software, before the hardware clipper that copes with it. Found by photographing the presented frames on the Deck and settled with the driver's own switches: only the one that turns that culling off restores the frame. The port now asks the driver to leave that culling off before it starts Vulkan; other drivers ignore the request, and the log's first lines say what was set.

Windows and Linux

  • Fullscreen stays (issue #13, flamespeedy and dCo3lh0). A fullscreen entered with the maximize button or F11 was dropped by the next change of any setting on the Graphics page, because the page wrote a stale windowed flag back. Every change made outside the pages now reaches them first. A saved fullscreen is also restored a moment after the window opens, on every platform; 1.0.4 forgot it on every launch.
  • Anti-aliasing changes take effect at once. A change on the Graphics page, or with F9, used to wait for the next launch: the code that rebuilds the render targets compared the new sample count with itself. Seen in a Steam Deck's log with the renderer at one sample and the setting at 8x.
  • The Beach tutorial and the gyro or mouse. With Gyro Aim or Mouse Aim on, the tutorial asked for the Control Stick after ten seconds of looking around, because neither moves the stick. A turn of the view by gyro or mouse now counts for that one check; with both off the check is the cartridge's.
  • SNAP_DATA_DIR=<absolute path> moves the data directory on Windows as it already did on Linux (asked for by PortForge's author, issue #8), and the runtime no longer reads the game's video mode before the game has chosen one (appleforever11, pull request #2).

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.5 as they are. If you keep the old folder, copy those two across.

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 first start 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

  • A freeze aiming at Moltres on a Steam Deck (issue #11) has not reproduced on the author's Deck or on Windows; the log now reports a stall, and the reporter's log is what the fix needs.
  • A few pixelated frames in the Cave on a Deck still need a capture from a Deck.
  • Widescreen is untested beyond the Beach.
  • 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.
  • Rebinding is the settings file until the in-game page arrives; the sticks themselves cannot be rebound.

Thanks

To flamespeedy and dCo3lh0, whose fullscreen reports were the same fault seen from Windows and from Linux, to zamiba for PortForge and the data-directory request, and to everyone who has played it so far and written back: this is a port of a game people love, kept as the cartridge had it, and your reports are how it gets there.

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.5-win64.zip SHA256 on Windows, or sha256sum -c Snap64Recomp-1.0.5-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.

Don't miss a new Snap64Recomp release

NewReleases is sending notifications on new releases.