Skip to content

Repository files navigation

BukuDolphin — one-click GameCube/Wii netplay from the browser

Lets buku.chat / BukuNet users jump into Dolphin netplay with a single click in the browser. The BukuNet NETPLAY tab fires a bukudolphin:// deep link → a packaged, netplay-CLI Dolphin opens straight into a hosted/joined session (no manual Dolphin setup).

How it works

  • Custom Dolphin build = upstream Dolphin + the approved PR #13288 which adds the CLI flags:
    • --netplay_host=<port> — host a session (needs --exec=<game>)
    • --netplay_join=<host code> or <ip:port> — join
  • Deep link bukudolphin://:
    • bukudolphin://host?game=NAMEDolphin --exec=<resolved ISO> -C Dolphin.NetPlay.TraversalChoice=traversal --netplay_host=6262
    • bukudolphin://join?code=ABCD1234&game=NAMEDolphin --exec=<ISO> --netplay_join=ABCD1234
    • bukudolphin://join?host=1.2.3.4:6262&game=NAME → direct join
    • game=NAME is resolved against the user's Dolphin ISO paths (both peers need the same ISO).
  • BukuNet wiring: bukunet/src/views/netplay.js (BN.NETPLAY.launch_fireScheme on desktop; handheld still uses the native bridge).

Build

  • macOS (arm64): bash build-mac.sh~/Documents/dolphin/build/Binaries/Dolphin.app. Includes the one Qt-6.11 fix (link Qt6::GuiPrivate for the qpa/ private header). Then bash setup-mac.sh installs ~/Applications/BukuDolphin Launcher.app + registers bukudolphin://. Verified end-to-end 2026-06-20: open "bukudolphin://host?game=SSX 3" boots SSX 3 + opens the NetPlay host window with a Room code.
  • Windows (x64): built by GitHub Actions (.github/workflows/bukudolphin-windows.yml) — clones Dolphin + PR #13288, pulls the bundled Externals/Qt (prebuilt Qt 6.5.1, so no Qt install + no GuiPrivate patch — that was only Homebrew's Qt 6.11 on macOS), msbuild Release x64, and uploads a BukuDolphin-Windows-x64 artifact with Dolphin.exe + the handler scripts. On the PC: run setup-win.ps1 (registers bukudolphin:// per-user in HKCU → launch-win.ps1, which maps the URL to Dolphin flags and resolves the ISO from Dolphin.ini). Windows uses the same desktop Qt frontend as macOS, so the PR's netplay CLI works unchanged → Windows ↔ macOS netplay is fully unblocked once built.
  • Android (RG406V + handhelds): the real "different job" — Dolphin Android has never shipped netplay: the engine (Core/NetPlayClient/NetPlayServer, frontend-agnostic) exists, but the Qt NetPlayDialog (1280 lines) is the NetPlayUI callback that orchestrates a session, and the Android frontend has no equivalent. So Android needs a custom headless NetPlayUI (auto-host/ auto-join, no dialog) + JNI + EmulationActivity intent extras + an NDK/Gradle APK build. BukuNet's APK (BukuNative.launchRom) already launches Dolphin via intent and would pass the netplay extras. See android/ in this folder.

Files

  • build-mac.sh — reproducible macOS build (clone + PR #13288 + Qt6.11 patch + cmake/ninja).
  • launch-mac.sh — maps a bukudolphin:// URL → Dolphin netplay flags (resolves the ISO).
  • handler.applescript — the macOS URL-scheme handler app source.
  • setup-mac.sh — compiles the handler app + registers bukudolphin:// with LaunchServices.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages