top of page
loading_reduced.jpg

1.1.10 / 07-11-2025

average rating is 4.2 out of 5

Performance

average rating is 4.1 out of 5

Features

average rating is 4.5 out of 5

gopher64

Accuracy

competition

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







Show Previous Changes
bottom of page