Skip to content
/ RMG-K Public
forked from Rosalie241/RMG

Rosalie's Mupen GUI with Kaillera implementation

License

Notifications You must be signed in to change notification settings

Jay-Day/RMG-K

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,926 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RMG-K (Rosalie's Mupen GUI - Kaillera)

Rosalie's Mupen GUI is a free and open-source mupen64plus front-end written in C++. This fork is focused around netplay with the Kaillera protocol.

Buy Me a Coffee at ko-fi.com

image

The Kaillera Part:

N02 Client

image

Frame Delay (Previously Ping Spoofing)

  • This allows the users to set their own frame delay
  • Auto, Server will assign frame delay based on ping.
  • 1 - 9 frames = sets your frame delay by spoofing your ping toward the middle of the frame window (every 16ms)
  • Notifies lobby and game room of frame delay spoofing

Drop Actually Works!

  • Clicking Drop will stop emulation (if player 1 does it first, it will stop emulation for everyone. Everyone must still click drop
  • After all players drop, the room owner is able to restart emulation for everyone

General Features

  • Timestamps
  • Direct Messaging (with colors)

Static Netplay Settings

FOR NOW, the following settings are hard coded when a user starts a netplay session:

Setting Local Play Kaillera Netplay
RandomizeInterrupt true (random) false (deterministic)
CPU_Emulator User's choice (default 2) 2 (dynarec)
CountPerOp ROM database / overlay 0 (use ROM database)
CountPerOpDenomPot 0 0
SiDmaDuration -1 -1
DisableExtraMem User's choice false (8MB enabled)
DisableSaveFileLoading false (loads saves) true (fresh saves)
RSP_Plugin User's choice Hacktarux/Azimer HLE RSP Plugin

Input

Raphnet N64 Adapter support

  • Yes, your N64 controller works :D

GCC Adapter Support

  • OEM Nintendo Gamecube adapter and Input Integrity Lossless adapter tested and working image

RMG-Input (pronounced Nrage)

RMG-Input was changed so it now uses independent per-axis scaling similar to the Ownasaurus USBtoN64v2 adapter and N-Rage input plugin:

  • Should support most xinput devices
  • Configurable range slider (0-100%) with default 66% to match N-Rage
  • Linear scale: 100% = 127 (protocol max)
  • Per-axis deadzone handling instead of circular deadzone Screenshot 2026-01-16 181813

Building

Linux

  • Portable Debian/Ubuntu

    sudo apt-get -y install cmake libusb-1.0-0-dev libhidapi-dev libsamplerate0-dev libspeex-dev libminizip-dev libsdl3-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev pkg-config zlib1g-dev binutils-dev libspeexdsp-dev qt6-base-dev qt6-websockets-dev libqt6svg6-dev libvulkan-dev build-essential nasm git zip ninja-build
    ./Source/Script/Build.sh Release
  • Portable Fedora

    sudo dnf install libusb1-devel hidapi-devel libsamplerate-devel minizip-compat-devel SDL3-devel freetype-devel mesa-libGL-devel mesa-libGLU-devel pkgconfig zlib-ng-devel binutils-devel speexdsp-devel qt6-qtbase-devel qt6-qtsvg-devel qt6-qtwebsockets-devel vulkan-devel gcc-c++ nasm git ninja-build
    ./Source/Script/Build.sh Release
  • Portable Arch Linux

    sudo pacman -S --needed make cmake gcc libusb hidapi freetype2 libpng qt6 sdl3 libsamplerate nasm minizip pkgconf vulkan-headers git
    ./Source/Script/Build.sh Release
  • Portable OpenSUSE Tumbleweed

    sudo zypper install SDL3-devel cmake freetype2-devel gcc gcc-c++ libusb-1_0-devel libhidapi-devel libhidapi-hidraw0 libpng16-devel libsamplerate-devel make nasm ninja pkgconf-pkg-config speex-devel vulkan-devel zlib-devel qt6-tools-devel qt6-opengl-devel qt6-widgets-devel qt6-svg-devel minizip-devel git
    ./Source/Script/Build.sh Release

When it's done building, executables can be found in Bin/Release

  • Installation/Packaging
export src_dir="$(pwd)"
export build_dir="$(pwd)/build"
mkdir -p "$build_dir"
cmake -S "$src_dir" -B "$build_dir" -DCMAKE_BUILD_TYPE="Release" -DPORTABLE_INSTALL="OFF" -DCMAKE_INSTALL_PREFIX="/usr" -G "Ninja"
cmake --build "$build_dir"
cmake --install "$build_dir" --prefix="/usr"

Windows

  • Download & Install MSYS2 (UCRT64)
pacman -S --needed make mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-libusb mingw-w64-ucrt-x86_64-hidapi mingw-w64-ucrt-x86_64-freetype mingw-w64-ucrt-x86_64-libpng mingw-w64-ucrt-x86_64-qt6 mingw-w64-ucrt-x86_64-sdl3 mingw-w64-ucrt-x86_64-speexdsp mingw-w64-ucrt-x86_64-libsamplerate mingw-w64-ucrt-x86_64-libusb mingw-w64-ucrt-x86_64-nasm mingw-w64-ucrt-x86_64-minizip mingw-w64-ucrt-x86_64-vulkan-headers git
./Source/Script/Build.sh Release

When it's done building, executables can be found in Bin/Release

License

Rosalie's Mupen GUI is licensed under the GNU General Public License v3.0.

About

Rosalie's Mupen GUI with Kaillera implementation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 92.2%
  • C 5.4%
  • CMake 1.4%
  • Other 1.0%