f7bab16 / 11-09-2023
simple64 (formally m64p) uses mupen64plus-gui front-end written in Qt6. It supports all things you’d expect from a frontend (savestate management, pausing, screenshots, etc.), netplay and comes bundled with ParaLLEl-RDP as the graphics plugin.
Starting with a fresh config
If you’ve ever used any version of mupen64plus before, you might have a configuration file saved on your computer. I suggest starting with a fresh config if this is your first time here.
Go to Settings -> Core and Plugin Settings. At the bottom click on Reset All Settings.
Check here for last build with GLideN64.
Windows: 64-bit required
Linux: 64-bit required
Most Recent Changes
Tip: If you're struggling with performance, try unchecking "SynchronousRDP" in the Settings->Core and Video Settings->ParaLLEl Video. Some games require this option, many don't, disabling it can increase your FPS.
Add the ability to specify custom cheat codes
Cheat support, including syncing cheats during netplay (based on player one settings)
In order to apply a cheat, you need to start a game, then open the cheat menu, select your cheats, and then restart the game
Just some code cleanup in preparation for future work
sync mupen64plus-core and parallel-rdp with latest releases
cleanup some netplay lobby code
Fix VRU on windows
Play audio at native sample rate (let OS resample if needed)
Windows build compiled against UCRT rather than MSVCRT
Changed the way RSP tasks are scheduled. This should hopefully result in a large performance boost for the emulator.
Disabled supersampled readbacks during netplay (can cause desyncs)
Small bug fixes in the netplay lobby code
Fix for "Mupen64Plus" (empty) folder being created in AppData\Roaming despite setting a custom path
Hotkeys can now be configured in the settings.
Reverted some timing changes from the last release that made things run slower than normal.
Update Parallel RDP to the latest release
Some timing tweaks
Fix for diagonal input values when using the keyboard
Hopefully a fix for some games that have been freezing (notably Jet Force Gemini and Conkers).
Fix a crash in some games
Just some small changes to the netplay code. I apologize for the frequent updates, I'm just trying to sort out some bugs with the new server code.
Bug fix for out-of-bounds RDRAM reads (link)
Bug fix for netplay desync when one or more players has the expansion pak disabled
GNU lightning updated to 2.2.2 in Parallel RSP
Netplay server re-written from C++/Qt to Go. Please report any new netplay bugs.
Fix an issue where controller wouldn't respond after being disconnected and reconnected
Remove some deprecated Discord code
A small fix for ParaLLEl-RDP + AMD GPUs
Update Parallel-RDP to latest release
Rasky's sytembench ROM recently added tests for the Serial Interface (controller) timings. I've updated simple64 to try and match those timings.
Fix for RSP cycle calculations
Changes to the build system to support aarch64
Move SDL input polling to right before it is needed by the game (may slightly reduce input latency).
Correction to the cycle counter
Parallel-RDP updated to latest version
MD5 is now appended to new save files to prevent issues with ROM hacks overwriting OG game saves
Parallel-RDP updated to latest version
Fix for an issue in the v2022.12.1 release that broke netplay
Support for homebrew ROM header: link
Simplify core options
Fix an issue with netplay when people are using different controller pak types
Just some minor tweaks to the compiler flags
LLE boot process using PIF ROM
New icon thanks to Gasper
One last fix for Flatpak/Linux as a result of the new build system
Correct an error in cache emulation that should fix some timing issues (Xena (E) now boots and flickering in Vigilante 8 multiplayer is greatly reduced, other games may benefit as well)
Update Parallel-RDP to latest version (should be a step closer to Mac support)
Fix for crashes in NHL Breakaway '99 (E) and Mario Story (J)
Better libdragon/homebrew compatibility (fixes a number of games from the 2021 Game Jam)
Update Discord SDK to 3.2.1
Fix for emulation thread being stuck in the background if a game freezes.
Some performance optimizations
Support for 64DD cartridge ports; see DUMPs and TRANSLATIONS links. You can safely ignore the warnings about emulator support on that page, simple64 now supports saving with 64DD cartridge ports. This means you can play these 64DD games like you would any other game.Technical details for those interested: 64DD cartridge ports write to the ROM, which is normally not allowed. On flash carts, as far as I know, this is accomplished by modifying the ROM file on the flash cart. simple64 creates an xdelta file and saves it as a .romsave file along with other saves (eep, fla, mpk) if the game writes to the ROM. When the game is loaded, if a .romsave file exists for that game, xdelta is used to apply the differences to the ROM in memory. The xdelta is always taken based on the Big Endian/z64 ROM image, regardless of the file type of the ROM. This should be an emulator agnostic way to save these files, and could be standard used to allow these saves to be cross-emulator compatible.
Some performance optimizations
Fix for refresh rate calculation, see #299 for details (NTSC games now refresh at slightly under 60 FPS, as per the NTSC standard)
The emulator has a new name! simple64. People were often confused about the difference between the upstream mupen64plus project, and m64p. This new name should help people differentiate the 2 when discussing them. I think the auto updater should work, but to be safe, I would recommend downloading this release as a fresh install.
The exe is now called simple64-gui.exe. If you use the auto-updater, your folder will still have the old mupen64plus-gui.exe. You can delete the old exe, or just download a fresh copy of the emulator to clean up the folder.
Fix for the broken application icon in the previous release
Current USA games list of known issues #288
Some performance improvements that should slightly lower the CPU usage
Fix for a regression in the last release (caused freezing/lockups in some games)
This release marks the removal of the last game-specific hack/setting. There was a hack in place that prevented flickering in San Francisco Rush, which is no longer required.
Tweaks to how RDP (graphics) are timed. Fixes Tetris 64, may provide slightly improved performance when SynchronousRDP is enabled.
Tweaks to memory access timing based on (https://github.com/rasky/n64-systembench)
Fixes for some tests in Lemmy's system-test ROM (https://github.com/lemmy-64/n64-systemtest). Probably won't impact any commercial games but you never know.
Fixes for the following games: NFL Quarterback Club 1999/2000/2001, The Powerpuff Girls - Chemical X-Traction.
Performance improvements for games that make heavy use of TLB addressing (Indiana Jones for instance)
Some small timing corrections
Some performance improvements based on code analysis
Improved synchronization between CPU and RSP tasks (fixes a lock-up in Pilot Wings and hopefully other unreported issues)
Fix for shader stutter on Nvidia GPUs
Further tweaks to timing, removed game-specific hacks for some RSP and audio timing issues that existed in the past
Properly emulate PI DMA timing
Better estimation of RSP task timing
Fix for an error/freeze created in the last update
Further tweaks to timing
Extremely rough estimation of RSP timing
I want to be clear that "better timing" doesn't mean "perfect timing". m64p is still not cycle accurate, and never will be, it's just much better at guessing the correct cycle count now. There still may be areas where the cycles aren't counted correctly.
Fix save states
More timing tweaks
Fix for HiDPI screens
This is a significant reworking of the timing code in the emulator. "CountPerOp" has been removed. The N64 instruction and data cache have been fully emulated. Timings for DMAs have been corrected.
Timing is now much more accurate, for example, in the DK64 intro, Donkey Kong now correctly grabs the vines and swings across the water.
This was the result of many weeks of work. I looked at CEN64, Ares, and lots of independent research. It's definitely not perfect, but a massive step toward accurate timing in the emulator. I would appreciate bug reports if issues are discovered.
m64p strives to be an accurate emulator. Many original N64 games lagged at times. If a game has a low framerate, but the audio sounds good, this is likely in-game lag, and it is not a bug. Choppy/popping audio is likely a bug.
Support for libdragon rspq. This is a library used for homebrew games
Reworking of RSP timing code, should offer performance improvements in some games - Gauntlet Legends for instance
Small accuracy improvement for audio and RSP DMAs
The new RSP code requires a version bump of the netplay servers, you'll need to update to this version to continue using netplay
Fix auto updater - you'll need to manually update to this version before it starts working again
Fix issue when configuring controller profile where inputs were sometimes picked up twice
This release includes a new feature I'll call "Dynamic SI DMA Duration" for now. The SI (Serial Interface) is the hardware that communicates with the game controllers. The emulator now dynamically calculates an optimal value for how long data transfers should take. This greatly improves performance when using the Raphnet adapter (used to play with a real N64 controller). It also improves the performance generally in some games, for instance, Body Harvest CPU usage is roughly halved.
Fix resolution setting
Fix bilinear filtering setting
Add back screenshot support using Vulkan
Built using Qt6 (instead of Qt5).
Native Vulkan rendering. The shim that was in place to present the final image in OpenGL has been removed. Everything should look the same, but this is a fairly large change under the hood. Please report any bugs you find.
Fix for the Windows build of the previous release.
Just a small fix for the last release to fix an issue with Wayland on Linux
Some fixes in Parallel RDP YUV emulation - see here for details.
Mempak emulation improvements - see here for details.
Fix a bug in VRU emluation introduced in the last release
Use CentOS for Linux build, build against Qt 5.15, disable dynarec
Small fix for rendering in Wayland on Linux
Fixed semicolon in ROM filename causes multiple Open Recent menu entries
Add option for VSync
Fix for some audio choppiness issues
Fix lag in Bottom of the 9th
ROM entries for new Smash Remix versions, as well as SM64 splitscreen multiplayer
Show .rom files in file picker
Option to set vertical stretch in video settings. Meant to correct PAL roms with bad aspect ratios.
Remove minizip dependency on Linux
Update URLs for main github repository
Make mupen64plus-gui.ini portable
Validate controller profile names
Fix for Radeon gfx when using the Linux Snap package
Updated Parallel RDP
Validate netplay room and player names
Better handling of situations where the GFX card doesn't support vulkan
Added support for Donkey Kong 64 - Tag Anywhere mupen64plus/mupen64plus-core#911
Fix for broken audio from yesterdays release
Just some minor fixes for the Snap package
Fixed a bug that caused Rumble to stop working on some controllers.
Fixed a bug that totally broke netplay. It is no longer totally broken.
mupen64plus-core has changed (added a CPU overclocking option), necessitating an update to the netplay backend. The netplay servers have been updated. This means that you need to update to at least this version to continue using netplay.
Updates to ParaLLEl RDP, mostly to improve graphics card compatibility (fixes for newer Intel GPUs)
Update custom ROM settings (performance improvements) for Smash Remix 1.0.0 and 1.0.1
Updates dependencies (Vosk for voice, Qt, etc)
Update Discord link
Updates to Parallel RDP from the upstream repo
Fix for Dinosaur Planet crashes when loading a new game
Just some minor fixes for the dynamic recompiler
Just some minor fixes for the dynamic recompiler
Linux builds now built using Ubuntu 20.04
Fix for corrupt screenshots and/or crashing when using non-native window resolutions
IS Viewer support. You can view the output from IS Viewer by going to Emulation->View Log. This log view is now updated live, so you can leave that window open while you play
Some bug fixes for the dynarec, including Indiana Jones crashes and Densha de Go (English) not booting.
Improvements to VRU speech recognition
Fix for flickering in San Francisco Rush
This release now includes mupen64plus's "new dynarec". It's enabled by default for new installs. For existing installs, you can enable it by going Settings->Core and Video Settings and setting "R4300Emulator" to "2". This should reduce the load on the CPU for most games.
A first for any N64 emulator: VRU (Voice Recognition Unit) support! Only 2 games made use of it: Hey You, Pikachu! and Densha de Go! (English translation here. Both of these games expect the VRU to be connected to controller port 4:
Once you click "Emulate VRU", it will begin to download an English language voice model, which is required for speech-to-text recognition. It only does this the first time.
It will download the model into the same directory as the EXE, so that directory needs to be writeable.
You need a microphone to use the VRU. You can search on YouTube for some gameplay footage of Hey You, Pikachu! to see how it's used.
Only English is supported.
A couple of minor emulation accuracy improvements for PI and RSP DMAs. I'm not aware of any impact on games.
Widescreen support (you'll find it in the ParaLLEl Video options). This is the equivalent of setting your TV to "force 16:9". This would normally be used on a game like GoldenEye, which has a widescreen option in the pause menu. Using this on a regular 4:3 game is just going to stretch the image.
There are quite a few games created with this toolchain, you can google "N64 homebrew" to find some.
If you know of other homebrew games that have issues, I'd be curious to hear about them!
Hopefully some more audio improvements (popping & crackling)
Fix saving in Pokemon Puzzle League
Full support for Unicode characters in filepaths on Windows
Fix for shaking video when interlacing is enabled
Fix for crash at 8x upscaling.
Performance improvements when using upscaling in ParaLLEl-RDP.
Some tweaks to the audio code to try and reduce crackling in some cases.
GLideN64 (and Angrylion Plus) has been replaced by ParaLLEl-RDP
You can read about ParaLLEl-RDP here.
The emulator now requires Vulkan 1.1 to run. This means if you have an Intel GPU, you generally need a Skylake or newer processor. If you have an Nvidia GPU, you generally need it to be Kepler series or newer. If you have AMD, I have no idea. You may want to update your graphics drivers if it's not working.
By default, ParaLLEl-RDP displays the game in native resolution, you can change this by going to Settings->Core and Video Settings->ParaLLEl Video->Upscaling, and changing the value of "1" to "2", "4", or "8".
I understand that this will be very exciting news for some, and for others, it will be disappointing. ParaLLEl-RDP has higher system requirements than GLideN64. I know some people will wonder why I didn't just include both. From the beginning, I set out to create a very easy-to-use, accurate emulator. Since the dawn of time, the plugin system has been a source of complexity and confusion in the N64 scene. Most of all, I am creating an emulator that I enjoy using.
I am trying to reduce the complexity and provide an accurate and playable emulator for a majority of people. It's not going to be perfect for everyone. Both Project64 and RetroArch provide good N64 emulators that include GLideN64 bundled in.6a5db81
Synced with latest mupen64plus-core changes (mupen64plus/mupen64plus-core#1001)
Fix issue loading ROMs/settings when the path contains non-Latin characters
A number of improvements to GLideN64
Smash Remix 0.9.7 performance settings
Some bug fixes for GLideN64
Improvements to the speed limiter, should improve netplay performance
Just a small fix for Dinosaur Planet that was affecting the player's ability to hit enemies.
Contains some improvements for Dinosaur Planet, a recently discovered prototype/beta ROM.
GLideN64 software vertex clipping, mostly an improvement for mobile devices, shouldn't make much of a difference on the desktop:
64DD save improvements
Improvement to the way mempaks are formatted (accuracy improvement)
Some minor setting improvements to some games
Updates to Angrylion :
A few updates for GLideN64, including pixel coverage emulation support. It's off by default, there is a new option in the video settings if you want to try it out.
Netplay create/join dialogs will now show your ping to your selected server (you used to have to enter a waiting room before being able to see your ping). Credit to @joeldenning for this improvement.
Improvements to 64DD saving.
A new option for netplay: Fixed Input Delay. Normally the server will dynamically set the input delay based on latency, but this allows you to set a fixed number of frames of delay. If you set this number too low, it will cause stuttering/freezing. Thanks to @joeldenning for implementing this feature.
Most players are better off leaving this option unchecked. This is mostly for players that want to play using very low input latency, the tradeoff being that you'll experience stuttering and freezing at times.
Just a few bug fixes and stability improvements for GLideN64
This is the first release with official Mac OS X support. A big thanks to @joeldenning for getting this working. Mac OS 10.14+ is required. It should support everything except the auto updater. You can netplay cross platform, meaning Mac, Windows, and Linux users can play together.
This release includes support for LLE Graphics (Settings->LLE Graphics). For the uninitiated, LLE graphics is basically "super accurate graphics mode". It is quite CPU intensive and may not work full speed on every computer. It is also supported in netplay, if the player creating the room has LLE enabled, it will be required for all others joining that match. I wouldn't recommend enabling it for netplay unless you are sure that everyone you are playing with has an adequate CPU. If someone can't run the game at full speed, they are going to experience extreme input lag.
m64p is a little late to the game with Discord support, but here it is! It supports Rich Presence, this means that your status will update with the game you're playing:
It also supports voice integration for netplay, there is a new option in the netplay wait room:
If you have the Discord app installed and running on your PC, that checkbox should make itself available. If you click that button, you're in a voice channel with the other players! That's it. Very simple. You don't need to share a server with them, or be friends on Discord. This will connect you with whoever you happen to be playing with. Pretty cool.
Unfortunately Discord currently suffers from a rather odd bug (discord/gamesdk-and-dispatch#55). There won't be any indication in Discord that you're connected to the netplay voice channel. You're just going to have to trust me that it works. Hopefully someday soon Discord will correct this bug, and a proper overlay will appear showing the voice channel members (and options like mute/volume, etc)
Small bug fix for the "auto" controller option. If you've ever had the situation where your controller worked when making a profile, but then didn't work in-game, this update is for you.
For those of you who downloaded the release yesterday, here is your chance to try the auto updater! Just open your current install, and click "yes" when it prompts you to update.
One of the most frequently requested features: an auto updater, is here! You're not going to notice anything this time, but the next time an update is available, you'll see this when you launch the emulator.
Clicking yes will download the auto updater, close the emulator, extract the new version, and relaunch the emulator. This is a very new feature, so the next time you use it, if you run into bugs, please let me know.
This releases contains a fix for some Mayflash adapters. Some of these adapters didn't work properly in the controller profile configuration wizard. Mayflash adapters still won't work with the "Auto" profile, they need a custom profile created.
Also, sometimes the controller profile wizard wouldn't work after playing a game, this has been corrected.
No need to update if you aren't having controller configuration issues.
This release contains a fix for a very pesky bug on the Windows version that would sometimes make the emulator crash when starting a game. This bug was related to the input plugin, fixing it involved re-writing how the input settings are stored. Thus, all input settings will be wiped on start, you'll need to re-create any input profiles you had.
Apologies for the back-to-back releases. As mentioned, a large amount of the underlying GUI code has been re-written. I found some last minute bugs that are addressed in this release. No reason to upgrade if you aren't having issues with the GUI
Known Issues: Sometimes the emulator will crash when launching a game in Windows. As best I can tell this seems to be a bug related to Qt. I'm hoping the next minor release of Qt will address the issue, if it doesn't I'll need to come up with an alternative solution.
Performance improvements for Smash Bros and Smash Remix
Netplay packets are tagged for QoS on Linux (Windows guide is here: https://github.com/loganmc10/m64p/wiki/Quality-of-Service)
Under the hood code improvements to GUI
Paths for core/plugins and emulator config no longer get hard coded into the config. There are new macros, $APP_PATH$ and $CONFIG_PATH$ that are put into the config file. This allows for better portability.
Changing the Config Dir Path to
$APP_PATH$allows for a portable build, which will put the emulator configs in the same directory as the EXE, instead of the users AppData/Roaming folder.
Given the large amount of code that has been re-written for the GUI, bugs are possible. Please report any bugs you find here: https://github.com/loganmc10/m64p/issues
I've also been working quite a bit on the netplay backend to improve performance and stability, as well as improve logging.
If you are able, please consider subscribing to the Patreon here: https://www.patreon.com/m64p . I've updated the goals, my focus as of late has been better netplay support. My main goal is to raise enough money to connect the service to AWS Global Accelerator which would greatly reduce latency.
Just a few minor GLideN64 updates in this release. Also updates to dependencies like Qt.
The N64 emulation scene has been quiet this summer. This release contains some small bug fixes for GLideN64 (video) as well as updates to dependencies like Qt.
--Please check here for older releases--