A system allowing anyone to enjoy zero-contact Wii with their friends!
- Install dependencies:
cd web
pnpm i --shamefully-hoist
- Create
config.json
with your server URL:
{
"server": "ws://localhost:5454"
}
- Build the project
node_modules/.bin/parcel build index.html
- Install dependencies:
cd server
pnpm i
- Create
config.json
with the server port:
{
"port": 5454
}
- Run the server:
node index.js
- Install dependencies:
cd dolphin
pnpm i
- Create
config.json
with your server URL:
{
"server": "ws://localhost:5454"
}
- Run the server:
node index.js
- With Dolphin, connect to the DSU server in Dolphin in
Controls
>Alternate Input Sources
. Tick theEnable
box and add the server (should be127.0.0.1:26760
). - For every Wii remote in the list, select
Emulated Wii Remote
- Click
Configure
onWii Remote 1
- Select controller 0 of the DSU server in the dropdown in the top-left
- Click every button in the list and bind it by pushing the corresponding button on your mobile device
- Make sure you have
None
selected forExtension
- Open the
Motion Input
tab - Right click every empty button and select the corresponding input from the list. This is a long manual process.
- At the top right, type a name on the
Profile
dropdown and clickSave
- Close the configuration window
- Open Wii Remotes 2-4, select your saved profile, click
Load
, and select the correct numbered DSUClient input device in the top-left
Once you have the Dolphin server running, users can open the web interface and type the pin that was shown to gain control of a Wii remote.
At some point, I'd like to explore having the client use WebRTC for message passing instead of WebSockets for reduced latency, but the current WebSocket approach was chosen due to WebRTC sometimes being blocked by some corporate firewalls.