Turn your Mac desktop into a living grid of NES games and tool-assisted speedruns.
NES Wallpaper runs games behind your desktop icons using the FCEUX emulator and FM2 movies from TASVideos. It is a modern macOS recreation of the 2016 UberNES “Nintendo Saver.”
Important: ROMs are not included. You must provide your own legally obtained NES ROMs.
Features
- A configurable, multi-display grid rendered as your desktop wallpaper
- Automatic ROM and FM2 matching, rotation, and TASVideos browsing
- CRT-style video filters and a 30 fps Low Power Mode
- Live keyboard takeover for playing any tile
- An optional companion screensaver, including lock-screen playback
- Menu bar controls, a configurable global takeover shortcut, launch at login, and remappable controls
Install
NES Wallpaper requires macOS 14 or later.
- Download the signed
.dmgfrom GitHub Releases when one is available, or build from source. - Open the disk image and drag NES Wallpaper.app to Applications.
- Open NES Wallpaper from Applications.
- In Settings → Library, choose folders containing your
.nesROMs and.fm2movies.
The app lives in the menu bar. You can download FM2 movies from the built-in TASVideos browser; NES Wallpaper matches them to compatible ROMs by checksum.
Press Control-Option-G from any app to raise the wallpaper and click the game you want to play. Change or disable this shortcut in Settings → Controls.
To use the screensaver, open Settings → General, install it, then select NES Wallpaper in macOS System Settings → Wallpaper → Screen Saver.
Updates
The app checks GitHub Releases for updates via Sparkle — use Check for Updates… in the menu bar, or turn on automatic checks in Settings → General. In-app updating only works after the app has been moved to Applications (macOS runs apps launched from the disk image or ~/Downloads translocated, which Sparkle cannot update in place).
Build from source
Install Xcode Command Line Tools, clone the repository, then run:
./Scripts/make-app.sh
open "dist/NES Wallpaper.app"
For development:
swift build
swift test
./Scripts/smoke-test.sh
On toolchains that use the new SwiftPM build system (Swift 6.4+, products under .build/out), swift test needs Sparkle.framework copied beside the test products once per clean build:
mkdir -p .build/out/Products/Debug/PackageFrameworks
cp -R .build/artifacts/sparkle/Sparkle/Sparkle.xcframework/macos-arm64_x86_64/Sparkle.framework \
.build/out/Products/Debug/PackageFrameworks/
See vendor/VENDOR.md for details about the vendored FCEUX core.
If you fork this repository and distribute your own builds, replace SUFeedURL and SUPublicEDKey in Scripts/Info.plist with your own update feed and Sparkle signing key — the committed values belong to the official releases, so fork builds would otherwise try to update from this repository's feed.
License
NES Wallpaper is free software licensed under GPL-2.0-only. Third-party attributions are listed in THIRD_PARTY_NOTICES.md, and information about the corresponding source included with releases is in SOURCE.md.