Mods for Snap64 Recomp, the
native PC port of Pokémon Snap. Each mod is one .nrm file, also packed as
a Thunderstore zip, and each has a page of its own with its options and its
changelog.
Island Skies: the Beach at sunset, the River at night, the Valley in rain and the Volcano in snow. More pictures are on its page.
| Mod | Version | Needs | Download |
|---|---|---|---|
| Island Skies | 1.1.1 | Snap64 Recomp 1.1.3 or later | snap64_island_skies.nrm |
| Unlimited Film | 1.0.2 | Snap64 Recomp 1.0.9 or later | snap64_unlimited_film.nrm |
| Unlock Everything | 1.0.2 | Snap64 Recomp 1.0.9 or later | snap64_unlock_everything.nrm |
The links are the latest release's files. Every
release
carries all three mods, each as its .nrm and as a Thunderstore zip; the
release's name says which mod changed and its new version, and the tag
counts the releases. Installing is one step, under Installing.
The island's sky at any hour and in any weather: night, sunset, dawn, a dusk that falls during the ride, or live by your own clock, under weather of the island's own that holds from one ride to the next and turns during a ride when its time comes. Stars, a moon with its glint on the water, shooting stars, the Volcano's embers; rain, storms with lightning, snow that lies, ash over the Volcano. By day the island is exactly as the cartridge draws it, and photos keep the sky of their instant. Simple set-up is three rows, Live adds only the sun's, Custom opens every row.
The roll never runs out. Every course still starts with 60 shots, but the counter never falls and the ride never ends for want of film: when the roll is full, each new photo pushes the oldest one out, so the 60 you bring to Professor Oak are the newest 60. An option lets the counter in the corner show 60 throughout (the default) or count the shots you have taken.
Every course open from the start, with the Apple, the Pester Ball, the Poké
Flute and the Dash Engine in hand and the Beach tutorial marked done. It
sets these in your save the way the game itself does when you earn them, so
they stay when the game next saves. Your Pokémon Report and your album are
not touched. Copy saves/ somewhere safe first if you may want to go back.
Download a mod from the
Releases page:
the .nrm, or the Thunderstore zip, which carries the .nrm with an icon
and a README.
- Snap64 Recomp 1.1.0 or later: drop the
.nrmor the zip on the game window, or put either in themods/folder next toSnap64Recomp.exe(or the Linux binary; on a Mac, themods/folder in~/Library/Application Support/Snap64 Recomp/). The mod loads the next time the game starts. - Snap64 Recomp 1.0.9: put the
.nrmin themods/folder (take it out of the zip first).
A new mod is on the first time it is found. Options > Mods in the game turns it on or off, and Z there opens a mod's own settings.
- Unlimited Film. A scripted Beach ride of 108 photos on the released 1.0.9: the roll dropped its oldest 48 times, the ride ended as usual and Oak's evaluation scored the photos. The port's scoring replay on 1.1.0: 45 photos scored with the mod on.
- Unlock Everything. On 1.1.0, from a save with only the Beach open and
no items: with the mod on, the course map listed all seven courses and
the Beach showed the three item buttons, where the same moment without
the mod shows none. That the change stays in the save is read from the
game's code, not watched: the mod's setters write the save the game keeps
in memory (the decompilation's
src/more_funcs/5BF20.c), and the game's save writes that whole record to the cartridge's flash. - Island Skies. The port's scoring replay (
tools/check_mod.py): the 45 photos of the ride scored the same with the mod on as off. The cycle, the weather's turns, the moon and the sounds were checked frame by frame in captured rides, and so were 1.1.1's Tunnel photos in rain, its storm over the Tunnel, and the River by day under Island's own, which matched the game without the mod pixel for pixel.
The same tools as the
mod template:
clang and ld.lld with the MIPS target, make, and RecompModTool from
N64Recomp. Check out the
decompilation as pokemonsnap
and the symbol files as
Snap64RecompSyms beside this README (no build of the decompilation is
needed), then, for each of unlimited_film, unlock_everything and
island_skies:
make MOD=unlimited_film
RecompModTool mods/unlimited_film/mod.toml build/unlimited_film
build/unlimited_film/snap64_unlimited_film.nrm is the mod. Then
python tools/pack_thunderstore.py unlimited_film unlock_everything island_skies
writes each mod's Thunderstore zip to dist/: a manifest.json made from
mod.toml, and the README, changelog and icon from
mods/<mod>/thunderstore/, beside the .nrm. The CI workflow does all of
this from a clean clone on every push.
This Makefile passes -fno-builtin-memcpy -fno-builtin-memmove -fno-builtin-bcopy, because clang otherwise turns a copy into a call to
memmove, which the game does not have. At 1.0.9 a mod's hook failed on
three kinds of function: one that calls the game's memcpy, one the port's
own patches replace, and one that waits a frame. Snap64 Recomp 1.1.0 fixes
all three; Unlimited Film was written around the first, with a patch of a
small function that runs at the same moment, so it runs on 1.0.9 too.
The mod template
is the place to start: a mod's skeleton, the tool chain and the steps, the
same ones the Building section above uses. The port's
MODS.md
says what the port does with a mod, what it refuses to load, and where a
mod's settings and the log go. The three mods here are working examples:
each is a mod.toml (the manifest and the options page), a src/ folder
and a Thunderstore page under mods/<mod>/, and the Makefile and
tools/pack_thunderstore.py take a new one by name. A mod that may touch
the scoring is checked with tools/check_mod.py, below.
tools/pack_thunderstore.pypacks a built mod as a Thunderstore zip.tools/make_icons.pydraws the mods' icons from the port's own logo, with the port'stools/icon_gen.py; the same picture is each mod'sthumb.png.tools/check_mod.pyproves a mod leaves the game's scoring alone: the port's evaluation replay, run without the mod and with it, must score every photo the same.mods/island_skies/tools/gen_night.pywrites Island Skies' star and moon data from the player's own ROM.
GPLv3, like the port. Copyright (C) 2026 JackandBeans.



