Changes

865 bytes added ,  05:42, 24 October 2019
→‎0xDD DVDLowSetMaximumRotation: Document partially based on testing
Line 1,403: Line 1,403:  
=== 0xDD DVDLowSetMaximumRotation ===
 
=== 0xDD DVDLowSetMaximumRotation ===
   −
Sets the maximum rotation speed{{check}}?
+
Sets the maximum rotation speed, allegedly{{check}}? Does not actually seem to have any impact on the speed of the drive (based on the sound it makes; Gamecube games continue to make one sound and Wii games continue to make a faster sound, regardless of the value used).
 +
 
 +
Using a speed of 3 will result in the drive erroring with code 0x052400 (Invalid Field in command packet) and the ioctl returning 2.
 +
 
 +
Nintendo's wrapper code internally shifts its parameter down by 16 (so titles pass 0x20000 and the ioctl uses 2).  It looks like titles also only ever use the speed of 2{{check}} (the higher-level DVDDownRotationAsync only uses speed 2, and the other calls that happen in the drive reset handler also only use 2 — though they also only happen when the value at 800030e6 is 0x8003, apparently tied to the device code returned from inquiry or'd with 0x8000, and my drive has a device code of 2).
    
The output buffer is not used, and it may be null. Its size is not checked.
 
The output buffer is not used, and it may be null. Its size is not checked.
303

edits