用于 Wii System Menu 的 GameCube 控制器光标
GameCube Controller Cursor for the Wii System Menu
Gbatemp 用户发布 Priiloader hack,让 GameCube 控制器在无 Wii Remote 时驱动 Wii System Menu 光标。该 hack 仅兼容 System Menu 4.3U (v513) 与 Priiloader 0.9.1,已在真实 Wii 主机及 Dolphin 测试,不支持 vWii / Wii U。
GameCube Controller Cursor for the Wii System Menu
Navigate the Wii Menu with a GameCube controller, no Wii Remote required
Hey everyone! I made a Priiloader hack that lets a GameCube controller drive the Wii Menu pointer when no Wii Remote is connected. The control stick moves the cursor, and the GameCube buttons act as Wii Remote buttons, including the HOME Menu.
Handy if your remotes are dead, missing, or you just want to boot straight into GC/Nintendont games without digging out a Wii Remote.
Tested on real hardware and in Dolphin.
Download
The hack is attached to this post (gc_cursor_hack.ini, plus the debug version).
Source code, docs and the latest version are on GitHub: search for Zeldocto/gc-wiimenu-cursor (MIT license). I'm a new member so I can't post links yet.
Compatibility
- System Menu: 4.3U (v513) only. Priiloader only lists the hack on v513, so other versions can't enable it by accident
- Priiloader: tested with 0.9.1 (current releases use the same hack format)
- Console: Wii (not tested on vWii / Wii U)
Controls
| GameCube | Wii Remote |
|---|---|
| Control stick | Pointer |
| A / B | A / B |
| Start | HOME |
| D-pad | D-pad |
| L | − |
| R or Z | + |
| X / Y | 1 / 2 |
- Works from any GameCube port, with hot-plugging supported
- If a Wii Remote is turned on, it takes over and works normally. The GC controller is only used while no remote is connected
Install
You need a softmodded Wii with Priiloader and an SD card.
- Make sure you can reach Priiloader (hold RESET while powering on). This is also how you turn the hack off if anything goes wrong.
- In System Menu Hacks, write down which hacks you already have enabled.
- Open SD:/apps/priiloader/hacks_hash.ini in a text editor (turn off Word Wrap in Notepad).
- Copy everything from the attached gc_cursor_hack.ini and paste it at the very end of the file on a new line. Each patch= line must stay on one line. Save.
- Boot into Priiloader, open System Menu Hacks, enable GameCube Controller Cursor, re-enable your other hacks from step 2, and Save.
- Turn off your Wii Remotes, plug in a GC controller, and boot the System Menu.
⚠ Important: Priiloader remembers hacks by their position in the list, so adding a new hack switches off all your existing hacks (Block Updates, Region Free, etc.). That's why step 2 matters, so turn them back on before saving.
Uninstall
Hold RESET on boot → System Menu Hacks → turn off GameCube Controller Cursor → Save.
The hack only patches the menu in memory at boot. Nothing on your NAND is modified (apart from Priiloader saving its own settings).
- Hack isn't in Priiloader's list: check the file path, that no patch= line got wrapped or cut, and that you're on 4.3U.
- Listed and enabled, but nothing happens: make sure you selected Save and every Wii Remote is off.
- Region-free / other hacks stopped working: see the warning above, re-enable them and Save.
The attached debug build (gc_cursor_hack_debug.ini) is the same hack. Use it instead of the normal one, not both. It uses the blue disc slot light to show status:
- Solid: working, GC controller is driving the menu
- Blinking: hack is running but doesn't see a GC controller
- Off: hack isn't running (not enabled/saved, or wrong menu version)
The menu already contains Nintendo's GameCube pad library, but it only reads the pad once at boot (for the recovery-mode check). Every frame, the menu's controller manager calls WPADProbe to check for a Wii Remote, then KPADRead to read it. The hack redirects both calls:
- Probe: if no Wii Remote is found, it reads the GC pads (PADRead, plus PADReset for hot-plugging) and reports "Wii Remote connected" if one is present.
- Read: fills in the Wii Remote data the menu expects: pointer position (stick-driven cursor with dead zone and acceleration), buttons, press/release events and button repeat.
The code lives in two never-called functions inside the menu, written there at boot by Priiloader using offset= patches. Full details (addresses, data layouts, how it was found) are in docs/TECHNICAL.md in the repo. Cursor speed, dead zone and button mapping can be tweaked in tools/build.py if you build from source.
Disclaimer
Not affiliated with or endorsed by Nintendo. No Nintendo code or files are included, only original code and the branch instructions that call it. Use at your own risk, and keep a BootMii NAND backup.
Thanks to DacoTaco and contributors for Priiloader, and to the Dolphin team.
Feedback and bug reports welcome! Ports to other menu versions are very welcome too.
来源:Gbatemp · gbatemp.net