#!/usr/bin/env node const path = require("path"); const fs = require("fs"); const config = { "Dolphin": { "BluetoothPassthrough": { "Enabled": false } }, "WiimoteNew": { "Wiimote1": { "Device": "SDL/0/Steam Controller", "Buttons/A": "`Button S`", "Buttons/B": "`Trigger R` | `Button E`", "Buttons/1": "`Button W`", "Buttons/2": "`Button N`", "Buttons/-": "Back", "Buttons/+": "Start", "Buttons/Home": "Return", "D-Pad/Up": "`Pad N`", "D-Pad/Down": "`Pad S`", "D-Pad/Left": "`Pad W`", "D-Pad/Right": "`Pad E`", "IR/Up": "`XInput2/0/Virtual core pointer:Cursor Y-`", "IR/Down": "`XInput2/0/Virtual core pointer:Cursor Y+`", "IR/Left": "`XInput2/0/Virtual core pointer:Cursor X-`", "IR/Right": "`XInput2/0/Virtual core pointer:Cursor X+`", "Shake/X": "`Button W`", "Shake/Y": "`Click 2`", "Shake/Z": "`Click 2`", "IRPassthrough/Object 1 X": "`IR Object 1 X`", "IRPassthrough/Object 1 Y": "`IR Object 1 Y`", "IRPassthrough/Object 1 Size": "`IR Object 1 Size`", "IRPassthrough/Object 2 X": "`IR Object 2 X`", "IRPassthrough/Object 2 Y": "`IR Object 2 Y`", "IRPassthrough/Object 2 Size": "`IR Object 2 Size`", "IRPassthrough/Object 3 X": "`IR Object 3 X`", "IRPassthrough/Object 3 Y": "`IR Object 3 Y`", "IRPassthrough/Object 3 Size": "`IR Object 3 Size`", "IRPassthrough/Object 4 X": "`IR Object 4 X`", "IRPassthrough/Object 4 Y": "`IR Object 4 Y`", "IRPassthrough/Object 4 Size": "`IR Object 4 Size`", "IMUAccelerometer/Up": "`Shoulder R`", "IMUAccelerometer/Down": "`Accel Down`", "IMUAccelerometer/Left": "`Accel Left`", "IMUAccelerometer/Right": "`Accel Right`", "IMUAccelerometer/Forward": "`Accel Forward`", "IMUAccelerometer/Backward": "`Accel Backward`", "IMUGyroscope/Pitch Up": "`Gyro Pitch Up`", "IMUGyroscope/Pitch Down": "`Gyro Pitch Down`", "IMUGyroscope/Roll Left": "`Gyro Roll Left`", "IMUGyroscope/Roll Right": "`Gyro Roll Right`", "IMUGyroscope/Yaw Left": "`Gyro Yaw Left`", "IMUGyroscope/Yaw Right": "`Gyro Yaw Right`", "Extension": "Nunchuk", "Nunchuk/Buttons/C": "`Shoulder L`", "Nunchuk/Buttons/Z": "`Trigger L`", "Nunchuk/Stick/Up": "`Left Y+`", "Nunchuk/Stick/Down": "`Left Y-`", "Nunchuk/Stick/Left": "`Left X-`", "Nunchuk/Stick/Right": "`Left X+`", "Nunchuk/Stick/Calibration": "100.00 101.96 108.24 115.81 116.93 116.65 108.24 101.96 100.00 101.96 108.24 109.55 109.52 109.58 108.24 101.96 100.00 101.96 108.24 112.38 113.77 113.06 108.24 101.96 100.00 101.96 108.24 112.86 114.09 114.41 108.24 101.96", "Nunchuk/Shake/X": "`Click 2`", "Nunchuk/Shake/Y": "`Click 2`", "Nunchuk/Shake/Z": "`Click 2`", "Source": "1", "IMUIR/Enabled": "False", "IR/Auto-Hide": "True", "Extension/Attach MotionPlus": "False" }, "Wiimote2": { "Device": "XInput2/0/Virtual core pointer", "Source": "0" }, "Wiimote3": { "Device": "XInput2/0/Virtual core pointer", "Source": "0" }, "Wiimote4": { "Device": "XInput2/0/Virtual core pointer", "Source": "0" }, "BalanceBoard": { "Device": "XInput2/0/Virtual core pointer", "Source": "0" } } } function format_value(value){ if(typeof value== "boolean"){ return value? "True" : "False"; }else{return value} } for (const [system, sections] of Object.entries(config)) { if(system =="WiimoteNew"){ let content = ""; for (const [section, keys] of Object.entries(sections)) { content += `[${section}]\n`; for (const [key, value] of Object.entries(keys)) { content += `${key} = ${format_value(value)}\n`; } content += "\n"; } fs.writeFileSync(path.resolve(process.env.DOLPHIN_CONFIG_DIR, "WiimoteNew.ini"), content); continue; } for (const [section, keys] of Object.entries(sections)) { for (const [key, value] of Object.entries(keys)) { console.log(`--config=${system}.${section}.${key}=${format_value(value)}`); } } }