GhostlyDark / EMG

Electron mupen64plus GUI
GNU General Public License v3.0
10 stars 0 forks source link
electron emulation emulator-frontend n64

EMG

EMG is a launcher for mupen64plus and its mupen64plus-ui-console using Electron.

Bundled plugins:

Bundled tools:

System requirements:

GameCube adapter:

Follow the instructions to set up the adapter. Third party adapters may fail to work.

Shortcuts:

Release files:

[!NOTE] Prebuilt binaries can be found here. Linux users may need to install required dependencies.

Build files:

Can be found in build/EMG after running compile.sh. See below for more details.

Supported platforms

Windows

Download and install MSYS2. Run MSYS2 MinGW x64 and install dependencies:

pacman -S --needed --noconfirm git make mingw-w64-x86_64-cmake mingw-w64-x86_64-freetype mingw-w64-x86_64-gcc mingw-w64-x86_64-glew 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-headers unzip

Clone repository:

git clone https://github.com/GhostlyDark/EMG

Change directory:

cd EMG

Run compile.sh:

./compile.sh

Linux

Install dependencies (including rust):

Clone repository:

git clone https://github.com/GhostlyDark/EMG

Change directory:

cd EMG

Make compile.sh executable and run it:

chmod u+x compile.sh
./compile.sh

macOS

Download a compatible version of Xcode:

After downloading an .xip archive, extract and move Xcode.app into the /Applications folder and run it.

[!TIP] If an older Xcode installation exists, delete /Applications/Xcode.app as well as the command line tools:

sudo rm -rf /Library/Developer/CommandLineTools

If the installation fails, it may be caused by an expired certificate. This can be worked around by changing the system date back to a specific year in the past, when the certificate was still valid.

Install MacPorts, start a new terminal session and install dependencies:

sudo port -N install cargo cmake coreutils freeglut freetype git glew gtk3 hidapi libgcc libpng libsamplerate libsdl2 nasm ninja pkgconfig rust speex speexDSP vulkan-headers wget zlib

Reboot terminal and clone the repository:

git clone https://github.com/GhostlyDark/EMG

Change directory:

cd EMG

Make scripts executable and run them:

chmod u+x compile.sh && chmod u+x macdep.sh
./compile.sh && ./macdep.sh

Additional info

Build options

The build script compile.sh can be run with additional parameters:

./compile.sh [threads]

To limit the building process to one thread:

./compile.sh 1

Additionally, near the beginning of CMakeLists.txt, compile options for mupen64plus-core and settings to disable building certain plugins can be set. Activate NO_ASM if compiling the core fails (which can happen on macOS).

Custom plugins

Plugin files are stored in resources/m64p/plugin.

EMG does allow for unknown 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.

Launching via Steam

The application may not boot unless the following parameter is passed as launch option:

--no-sandbox

Portable mode

By default, EMG stores its settings in:

To override the default location, create a folder resources/data.

If that directory exists, EMG settings are instead stored in data/user. At the same time, data/n64 becomes the default directory for mupen64plus configuration, save files and various plugin data (like cache and textures).

The output folder for EMG settings cannot be reconfigured by other means, but the directories for mupen64plus data can still be changed individually, even if portable mode is active.

Delete or rename the data directory to restore the original behavior.

Troubleshooting

Logging happens once a mupen64plus instance closes successfully. To view the log, open developer tools by pressing Ctrl + I and switch to the Console tab. Right click on the relevant log -> Save as... to save it as text file.