Emulator Issues #13736
open[Feature Request] Overhaul WiiMote input in DTMs to record disconnects and extension changes
0%
Description
Currently, Dolphin records WiiMote input to DTM files by reusing the format used by real WiiMotes to send input data to the console. This helps reduce file sizes and avoids Dolphin having to do more work on the fly, as the resolution and type of input data used by WiiMotes can vary greatly during play. However, this format comes with a number of limitations compared to its GameCube Controller counterpart.
For one, it is impossible to record a WiiMote disconnecting, as there's nothing in the DTM format to indicate that a gap in input has occurred or how long it lasted. This makes speedrunning tricks that rely on controller disconnects (such as those in Wii Sports Golf) impossible to implement. DTMs also don't record what extensions a WiiMote has attached to it. Having the wrong extension attached to a WiiMote when playing an input recording can cause desyncs, and some games (such as Wii Sports) expect the player to connect and disconnect extensions at different points in the play session. This is inconvenient for both the creator and the verifier of an input recording, as the creator needs to give specifications as to what extensions are used where, and the verifier has to manually pause the game and change Dolphin settings at different points in the run to avoid desyncs. Additionally, extension data is encrypted, making it difficult to reuse inputs from other TASes.
Overhauling WiiMote input in DTMs to work more like the system used for GameCube controller input would allow these aspects to be properly utilised in tool-assisted speedruns. While this would likely lead to an inevitable increase in file size, I would argue that DTMs are already relatively small, and that submission sites like TASVideos already compress uploaded input files to reduce space. However, I do want to note that Dolphin's current TAS tools do not reflect the full range of WiiMote IR inputs (https://bugs.dolphin-emu.org/issues/11185). It is important that this is taken into account if such an overhaul is implemented, to avoid regressions in input recordings.
Updated by Billiard26 7 days ago
ยท Edited
This PR makes extension changes in DTMs work and eliminates the encryption problems: https://github.com/dolphin-emu/dolphin/pull/13348