/EMG

Electron mupen64plus GUI

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

EMG

EMG is a launcher for mupen64plus using Electron. For controller input, a custom build of sdl2-jstest is used.

Bundled plugins:

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 tools
  • Ctrl + L: Launch mupen64plus
  • Ctrl + N: Reset all settings
  • Ctrl + O: Open ROM
  • Ctrl + R: Reload
  • Ctrl + Numpad+: Zoom in
  • Ctrl + Numpad-: Zoom out
  • Ctrl + 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.