
1.1.10 / 07-11-2025
Performance
Features
gopher64
Accuracy
Gopher64 is an open-source Nintendo 64 emulator written in Rust that is the spiritual successor to the Simple64 emulator. It is praised for its high compatibility across the commercial N64 library and homebrew ROMs. Key features include integrated online netplay with cloud servers, upscaling capabilities, and it is built without game-specific hacks or plugins, relying instead on the parallel-rdp graphics engine and original CPU/RSP interpreters.
--
Windows: 10+
Linux: Not Reported
--1.1.10--
Use skia backend for gui by @loganmc10 in #605
--1.1.9--
Update to Rust 1.91
Update to latest SDL3
Fix issues with NHL Breakaway and Fifa 98 Road to World Cup
Fix hanging during games that don't poll for input (some demos)
--1.1.8--
Fix some audio crackling issues in the last release
--1.1.7--
Enable option for 8x resolution
Improve framebuffer tracking code
--1.1.6--
Update to Rust 1.90 and SDL 3.2.22
Re-enable "selective RDP sync", a performance enhancement that should improve FPS
Re-arrange and cleanup some RSP code, hopefully without introducing any bugs...
Other minor code cleanup
--1.1.5--
Add option for analog deadzone when creating a controller profile (defaults to 5%)
Because this changes the data structure of the profiles, existing profiles will need to be re-created
Fixing pausing so that it pauses after drawing screen, rather than before drawing
--1.1.4--
Add frame advance hotkey (/, for use while paused)
UNFLoader/N64-Netlib support. Currently requires a pre-release build of UNFLoader.
Fix an issue with uppercase extensions (like .N64) not being recognized.
Fix an issue with diagonal d-pad inputs not being recognized on some controllers.
--1.1.3--
Save state slots are supported. Press Alt+0-9 to change which save state you are saving/loading from.
On-screen messages (no more robotic Scottish voice). These will let you know when you change your controller pak, save or load a state, when cheats are enabled, etc..
Small improvements to the controller selection dropdowns
Update to latest versions of Rust and SDL
Use nearest filtering for final image rendering (results in a sharper image)
--1.1.2--
On-demand netplay cloud servers. Previously, there were 3 always-running netplay servers (US West, US East, and Europe). Now, you can create a netplay server across many different regions (as of now, there are 12 regions, please let me know if you would like one that isn't there today).
This works by creating the server on demand when you request it. This means that when you create a server, it will take about 20-30 seconds for it to complete. This is the time it takes to provision the server.
There is also now a unified session browser. All games from across all regions are shown in the "Join Session" window.
--1.1.1--
Windows build now signed with a certificate from SignPath
New icon
Pause/unpause emulator with Alt+P
Update parallel-rdp vulkan backend
Fix crash in wrestlemania
Netplay IPv6 support
Support for connecting to a custom netplay server
Remember previous ROM dir when selecting a ROM to open
--1.1.0--
I am very happy to announce v1.1.0! With this release, I can say that Gopher64 has reached feature parity with Simple64 (with the inclusion of cheat support). I have also squashed a couple minor bugs along the way.
What's Changed
bump to 1.0.21 by @loganmc10 in #477
print sdl errors by @loganmc10 in #478
avoid syncing RDP too much by @loganmc10 in #479
Sync sdl window to prevent fullscreen issues by @loganmc10 in #481
Move SDL_PumpEvents by @loganmc10 in #482
Bump zip from 4.2.0 to 4.3.0 by @dependabot[bot] in #483
fix compile warning by @loganmc10 in #485
savestate speed improvements by @loganmc10 in #486
bump to 1.1.0 by @loganmc10 in #489
--1.0.20--
bump to 1.0.20 by @loganmc10 in #470
re-order destruction of UI elements by @loganmc10 in #471
Use Clang by @loganmc10 in #473
LTO2 by @loganmc10 in #474
use thin lto by @loganmc10 in #475
--1.0.19--
Update to 1.0.19 by @loganmc10 in #448
Fix netplay server url by @loganmc10 in #449
Add new version button to main screen by @loganmc10 in #450
add some more about buttons by @loganmc10 in #451
add button for netplay discord by @loganmc10 in #452
netplay feedback button by @loganmc10 in #454
cleanup aarch64 flags by @loganmc10 in #455
Don't adjust variable limit after toggle by @loganmc10 in #458
Make expansion pak optional by @loganmc10 in #463
better RAM access checks by @loganmc10 in #464
non-empty default value for ram by @loganmc10 in #465
Cheat support by @loganmc10 in #459
Update cheats by @loganmc10 in #467
use is_multiple_of by @loganmc10 in #468
update socket2 by @loganmc10 in #469
--1.0.18--
Bump to 1.0.18 by @loganmc10 in #418
Bump bindgen from 0.71.1 to 0.72.0 by @dependabot in #420
Bump cc from 1.2.25 to 1.2.27 by @dependabot in #425
Bump zip from 4.0.0 to 4.1.0 by @dependabot in #424
Bump tungstenite from 0.26.2 to 0.27.0 by @dependabot in #426
Bump sevenz-rust2 from 0.14.1 to 0.15.1 by @dependabot in #428
Don't panic on invalid transferpak access by @loganmc10 in #430
Use Slint for GUI by @loganmc10 in #432
Slint fixes by @loganmc10 in #433
Don't enable VRU during netplay by @loganmc10 in #445
use rust 1.88 by @loganmc10 in #447
--1.0.17--
bump to 1.0.17 by @loganmc10 in #384
Update rust to 1.87 by @loganmc10 in #400
update linux deps by @loganmc10 in #401
Bump zip from 3.0.0 to 4.0.0 by @dependabot in #404
Potential fix for code scanning alert no. 4: Workflow does not contain permissions by @loganmc10 in #413
Potential fix for code scanning alert no. 2: Workflow does not contain permissions by @loganmc10 in #416
Fix netplay crash when server is down by @loganmc10 in #417
--1.0.16--
bump to 1.0.16 by @loganmc10 in #368
Bump zip from 2.5.0 to 2.6.0 by @dependabot in #369
update 7z package by @loganmc10 in #370
Cleanup some controller code by @loganmc10 in #378
remove framebuffer tracking by @loganmc10 in #381
--1.0.15--
Highlights
Fixed a graphics issue in Works Armageddon
Controller input works even if window doesn't have focus
What's Changed
bump to 1.0.15 by @loganmc10 in #358
gather controller input even without focus by @loganmc10 in #360
Bump governor from 0.9.0 to 0.10.0 by @dependabot in #362
sync parallel rdp for texture images by @loganmc10 in #361
Update rust to 1.86.0 by @loganmc10 in #367
--1.0.14--
bump to 1.0.14 by @loganmc10 in #328
add way to change audio volume by @loganmc10 in #330
allow up to 200% audio volume by @loganmc10 in #331
disable mempak for Chameleon Twist by @loganmc10 in #332
remove un-needed mut by @loganmc10 in #333
remove more mut by @loganmc10 in #334
catch possible error in loading save state by @loganmc10 in #335
fix windows cross compile by @loganmc10 in #336
Fix freeze in Bass Hunter 64 by @loganmc10 in #339
Bump zip from 2.2.3 to 2.4.1 by @dependabot in #341
add cic entry for libdragon ipl3 by @loganmc10 in #344
fix crash when attempting to read zip without rom by @loganmc10 in #345
use loop for cache by @loganmc10 in #346
add a few more loops by @loganmc10 in #347
Add RDP to savestate by @loganmc10 in #348
add audit action by @loganmc10 in #349
fix audit workflow by @loganmc10 in #350
remove rusttype by @loganmc10 in #355
Bump zip from 2.4.2 to 2.5.0 by @dependabot in #354
let server determine netplay buffer target by @loganmc10 in #356
Bump governor from 0.8.1 to 0.9.0 by @dependabot in #357
--1.0.13--
bump to 1.0.13 by @loganmc10 in #318
use glow for egui by @loganmc10 in #321
use vector for rdram_dirty by @loganmc10 in #322
--1.0.12--
bump to 1.0.12 by @loganmc10 in #316
fix image scale when using upscaling by @loganmc10 in #317
--1.0.11--
bump to 1.0.11 by @loganmc10 in #301
always make the window resizeable by @loganmc10 in #305
condense code by @loganmc10 in #308
GB MBC1 support by @loganmc10 in #309
re-arrange UI struct by @loganmc10 in #310
show VRU dialog in main window by @loganmc10 in #311
Add option for CRT shader by @loganmc10 in #314
update shaders by @loganmc10 in #315
--1.0.10--
bump to 1.0.10 by @loganmc10 in #290
add widescreen stretch option by @loganmc10 in #291
add option to crop out letterbox by @loganmc10 in #292
Add option for overclocking by @loganmc10 in #293
add some randomness by @loganmc10 in #297
remove some code duplication by @loganmc10 in #298
make is viewer optional by @loganmc10 in #299
set netplay buffer target by @loganmc10 in #300
Highlights
Transferpak support
N64FlashCartMenu emulation
Fixed an issue that would sometimes cause the emulator to crash
What's Changed
Bump to 1.0.9 by @loganmc10 in #272
check for new version by @loganmc10 in #273
more tpak code by @loganmc10 in #274
more tpak code by @loganmc10 in #275
more tpak code by @loganmc10 in #276
move UI elements around by @loganmc10 in #277
tpak cleanup by @loganmc10 in #278
Transfer Pak UI by @loganmc10 in #279
fix GB tower by @loganmc10 in #280
fix Stadium 2 GB games by @loganmc10 in #281
add links to wiki and discord by @loganmc10 in #282
flash cart menu support by @loganmc10 in #283
some mbc3 rtc code by @loganmc10 in #284
use GL backend for GUI to avoid conflicts with game window by @loganmc10 in #287
use deterministic rtc time by @loganmc10 in #288
add button to open save folder by @loganmc10 in #289
--1.0.8--
bump to 1.0.8 by @loganmc10 in #255
use audio for netplay messages by @loganmc10 in #256
rename artifacts by @loganmc10 in #257
Use struct instead of tuple by @loganmc10 in #258
toggle speed limiter by @loganmc10 in #260
track RDP RDRAM writes by @loganmc10 in #259
Bump clap from 4.5.29 to 4.5.30 by @dependabot in #261
clean up data struct by @loganmc10 in #262
reduce binary size by @loganmc10 in #263
add slider for resolution by @loganmc10 in #264
use struct in netplay code by @loganmc10 in #265
use better data struct for netplay servers by @loganmc10 in #269
use rust 2024 edition by @loganmc10 in #268
--1.0.7--
bump to 1.0.7 by @loganmc10 in #249
update_screen after speed limiter by @loganmc10 in #250
add cycles for rsp mfc0 by @loganmc10 in #251
alt_return to toggle fullscreen by @loganmc10 in #252
set DPC_PIPEBUSY_REG by @loganmc10 in #253
Transferpak stub by @loganmc10 in #254
--1.0.6--
bump to 1.0.6 by @loganmc10 in #239
Bump clap from 4.5.28 to 4.5.29 by @dependabot in #240
fix PAL aspect ratio by @loganmc10 in #241
PAL aspect ratio adjustment by @loganmc10 in #242
don't modify cart.rom by @loganmc10 in #243
add a way to show internal FPS by @loganmc10 in #244
dynamically calculate speed limit frequency by @loganmc10 in #245
fix rsp reserved commands by @loganmc10 in #246
add some sdl window flags by @loganmc10 in #247
only try to assign enabled controllers by @loganmc10 in #248
--1.0.5--
bump to 1.0.5 by @loganmc10 in #232
add some CPU read cycles by @loganmc10 in #233
use git hash for netplay sync by @loganmc10 in #234
Remove fat LTO by @loganmc10 in #235
Savestate support by @loganmc10 in #236
update cargo packages by @loganmc10 in #237
use cache-apt-pkgs-action@v1 by @loganmc10 in #238
--1.0.4--
Bump to 1.0.4 by @loganmc10 in #227
Improve RDP emulation performance by @loganmc10 in #228
disable rdp sync optimization to be safe by @loganmc10 in #229
modify rdp sync code by @loganmc10 in #230
update cargo packages by @loganmc10 in #231
--1.0.3--
Bump to 1.0.3 by @loganmc10 in #215
Fix crash when game name cannot be parsed by @loganmc10 in #216
Ignore summercart64 USB commands by @loganmc10 in #217
emulate summercart64 ROM_WRITE_ENABLE flag by @loganmc10 in #218
No need to check for ROM bounds on write by @loganmc10 in #219
compress sd and rom saves during netplay by @loganmc10 in #220
Update eframe requirement from 0.30 to 0.31 by @dependabot in #221
Fix address masking in sc64 read/write by @loganmc10 in #222
Fix out-of-bounds ROM dma by @loganmc10 in #223
further sc64 cleanup by @loganmc10 in #224
add Cargo.lock by @loganmc10 in #225
remove some dependencies by @loganmc10 in #226
--1.0.2--
Important note on saves!
The naming convention for save files changed in this version. This means that the emulator won't find saves that previously existed. You'll need to go into the save file folder and rename your save file to the new naming convention if you want to keep using it.
For example, Ocarina of time was previously (the part after CZL- is the sha256sum of the ROM):
CZL-49ACD3885F13B0730119B78FB970911CC8ABA614FE383368015C21565983368D.sra
But is now:
THE LEGEND OF ZELDA-49ACD3885F13B0730119B78FB970911CC8ABA614FE383368015C21565983368D.sra
--
What's Changed
minor tweak to interrupt system by @loganmc10 in #211
bump to 1.0.2 by @loganmc10 in #212
support for Advanced Homebrew ROM Header by @loganmc10 in #213
SD card emulation by @loganmc10 in #214
--
https://github.com/gopher64/gopher64/releases?page=4