EMG
EMG is a launcher for mupen64plus using Electron. For controller input, a custom build of sdl2-jstest is used.
Bundled plugins:
- GFX: Angrylion Plus, GLideN64, Parallel
- Audio: Mupen64Plus Audio SDL
- Input: GameCube Adapter, Mupen64Plus Input SDL, Raphnetraw
- RSP: Mupen64Plus HLE, Static Interpreter, Parallel RSP
Hardware requirements:
- CPU: SSE3 capable (Electron)
- GPU: OpenGL 3.3 (Angrylion Plus, GLideN64), Vulkan 1.1 (Parallel)
Operating system requirements:
- build: CMake v3.15 or newer (Ubuntu 20.04, Debian 11 or similar)
- run: Linux or Windows 7+ (64-bit)
- win7: Release requires Windows 7 or newer (uses Electron v22.3.27)
- win10: Release requires Windows 10 or newer (uses up-to-date Electron)
GameCube adapter:
Follow the instructions to set up the adapter. Third party adapters may fail to work.
Build files:
Can be found in build/EMG
after running compile.sh
. See below for more details.
Linux
Install dependencies:
sudo apt install -y build-essential cmake curl freeglut3-dev gcc git libfreetype-dev libhidapi-dev libhidapi-hidraw0 libpng-dev libsamplerate0-dev libsdl2-dev libspeexdsp-dev libvulkan-dev make nasm ninja-build p7zip-full wget zlib1g-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
Clone repository, change directory and run compile.sh
:
git clone https://github.com/GhostlyDark/EMG EMG
cd EMG
chmod u+x compile.sh && ./compile.sh
Windows
Releases can be found here.
To build EMG instead, download and install MSYS2. Run MSYS2 MinGW x64
and install dependencies.
pacman -S --needed git make mingw-w64-x86_64-cmake mingw-w64-x86_64-freetype mingw-w64-x86_64-gcc mingw-w64-x86_64-hidapi mingw-w64-x86_64-libpng mingw-w64-x86_64-libsamplerate mingw-w64-x86_64-nasm mingw-w64-x86_64-ninja mingw-w64-x86_64-rust mingw-w64-x86_64-SDL2 mingw-w64-x86_64-speex mingw-w64-x86_64-vulkan p7zip
Clone repository, change directory and run compile.sh
:
git clone https://github.com/GhostlyDark/EMG EMG
cd EMG
./compile.sh
Building options
The build script compile.sh
can be run with additional parameters:
./compile.sh [threads] [electron]
Limit the building process to one thread and grab Electron v26.4.2:
./compile.sh 1 v26.4.2
Adding plugins
Plugin files are stored in resources/m64p/plugin
. EMG does allow for plugins to be added, as long as they follow the mupen64plus-[type]-[name].[extension]
naming scheme. Accepted plugin types are audio
, input
, rsp
and video
.
Shortcuts
Ctrl
+I
: Toggle developer toolsCtrl
+L
: Launch mupen64plusCtrl
+N
: Reset all settingsCtrl
+O
: Open ROMCtrl
+R
: ReloadCtrl
+Numpad+
: Zoom inCtrl
+Numpad-
: Zoom outCtrl
+Numpad0
: Zoom reset
Troubleshooting
Logging happens once mupen64plus closes after pressing Launch
. To view the log, open developer tools and switch to the Console
tab. Right click on the relevant log -> Save as...
to save it as text file.