Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
[WIP] Balance Board emulation #8268
This PR adds support for balance board emulation.
This isn't completely finished, and the UI for it isn't too great. In particular, there isn't any way to specify the current weight on the main UI, only to adjust the weight in terms of percentages, though it does exist on the TAS UI. The UI also doesn't support all possible inputs, only cases where actual balance is used; this means that e.g. walking doesn't work too well (or the step game). The balance board is treated as a regular extension and can be set on any remote, and also needs to be manually set for the actual balance board. Also, games that don't support the balance board will continuously disconnect it, and dolphin will then repeatedly attempt to reconnect it. But it is perfectly usable.
I've implemented movie support, which seems to work correctly at least when starting from a save state right before selecting a game. Wii Fit (Plus) seems to be rather annoying with synchronization though, especially with the random fitness tips on startup. (Possibly I just don't know how to work with the realtime clock or saves or something; I haven't used the movie functionality much.)
I haven't tested netplay yet, and I suspect it also has the same expectations of 4 wiimotes or gamecube controllers. I'm looking into that one now. (I don't have anything to test it on either as Wii Fit isn't really a multiplayer game and you can only use one balance board, but I should be able to make the same kinds of code changes.)
EDIT: I don't think I'll be able to handle netplay at the moment; I don't feel confident in modifying the protocol for it which I'm pretty sure would be needed to add support (especially since you'd generally have one player using both the remote and the balance board)
I've found my previous code that calibrated 34kg as
I've also adjusted the TAS code to use 4 doubles internally instead of direct sensor values. That seems to be causing some issues (a stackoverflow sometimes) which I haven't fixed yet, but the UI looks and behaves about the way I want it to. Fixed point is probably preferable in the long run.
The only thing that I'd say is missing is a more complete UI for normal use. Everything works balance-wise, but for functions involving walking or jumping it's a bit of a mess and there's no way to directly specify a weight.