Skip to content
Jay-DayPublic
forked from Rosalie241/RMG

About

Rosalie's Mupen GUI with Kaillera and GekkoNet Rollback implementation

Resources

Stars

171 stars

Watchers

2 watching

Forks

 
 

Repository files navigation

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

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, supporting both traditional Kaillera servers and direct peer-to-peer connections. Available on Windows and Linux.

image

Netplay

Peer-to-Peer (P2P) Mode

  • NAT traversal via connect codes: No port forwarding required
  • Persistent connect codes: Your code is saved across sessions
  • Frame delay selector: Choose Auto or 1-9 frames, with ping-range labels showing the recommended range for each setting
  • Live ping display: See your connection quality in real-time
  • Public game listing: Optionally list your hosted game on the public waiting-games browser
  • Ready sync: Both players must ready up before the game starts
image image

Kaillera Server Mode

  • Server browser with sortable columns, ping, and region info
  • Favorite servers with custom server support
  • Right-click tools: Copy IP, Ping, Traceroute (with live output dialog)
  • Frame delay: Auto (server-assigned) or manual override (1-9 frames)
  • Connection persistence: Stay connected between games for quick restarts
  • Beep/flash on join: Get notified when a player joins your game room
  • Auto host message: Configurable message sent to players joining your room

image image image

In-Game Chat

  • On-Screen Chat Display: See what your opponent is saying without alt-tabbing. Customizable or disableable in Settings -> OSD
  • Press Enter to Chat: Chat while in-game without switching windows. Press ESC to cancel. Rebindable in Hotkeys -> System

Replays

  • Record and replay Kaillera sessions (.krec files)
  • Configurable storage cap to auto-disable recording when full
  • Playback with pause, resume, and frame-advance controls
  • Player names visible in the replay list
image

Input

Raphnet N64 Adapter Support

  • Yes, your N64 controller works :D
image

GCC Adapter Support

  • OEM Nintendo / Mayflash / Input Integrity Lossless / HHL GC Pocket+ adapters all have been tested and work online
image

RMG-Input (pronounced Nrage)

RMG-Input 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
image

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-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 and GekkoNet Rollback implementation

Resources

Stars

171 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages