In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Changes

Jump to navigation Jump to search
m
no edit summary
Line 6: Line 6:  
The extension is initialised by writing 0x55 to 0x(4)a600f0. But there is no need to write 00 to 0x(4)a500fb, since Wii games don't do that. While the Motion Plus is initialising, the value at 0x(4)a600f7 changes from 0x02 to 0x04 to 0x08 to 0x0C to 0x0E then stays at 0x0E. There is no need to read this byte, since games don't. While initialising, the 128 bytes from 0x(4)a60050 - 0x(4)a600cf also change briefly, but randomly, after the extension is initialized. More examples of this data block changing over time can be found here: [https://docs.google.com/Doc?id=dds4pks_606fmcd6zwt&hl=en Three Data Samples from Wii Motion Plus (Google Doc)] (dead link). See this [https://web.archive.org/web/20170828032153/https://docs.google.com/document/d/1hxPAoLksTn0kq1rd5BCJmWKPNkrpub6i62m8cNxlfe8/edit archive].
 
The extension is initialised by writing 0x55 to 0x(4)a600f0. But there is no need to write 00 to 0x(4)a500fb, since Wii games don't do that. While the Motion Plus is initialising, the value at 0x(4)a600f7 changes from 0x02 to 0x04 to 0x08 to 0x0C to 0x0E then stays at 0x0E. There is no need to read this byte, since games don't. While initialising, the 128 bytes from 0x(4)a60050 - 0x(4)a600cf also change briefly, but randomly, after the extension is initialized. More examples of this data block changing over time can be found here: [https://docs.google.com/Doc?id=dds4pks_606fmcd6zwt&hl=en Three Data Samples from Wii Motion Plus (Google Doc)] (dead link). See this [https://web.archive.org/web/20170828032153/https://docs.google.com/document/d/1hxPAoLksTn0kq1rd5BCJmWKPNkrpub6i62m8cNxlfe8/edit archive].
   −
The 32 bytes from 0x(4)a60020 are, as usual, calibration information, described as follows.
+
The 32 bytes from 0x(4)a60020 are, as usual, calibration information, described as follows:
    
{| class="wikitable" style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em;"
 
{| class="wikitable" style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em;"
 
|- style="text-align: center;"
 
|- style="text-align: center;"
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''x'''
+
| | {{zwsp}}
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x00'''
+
| | {{zwsp}}
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x01'''
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" colspan="8" | '''Offset'''
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x02'''
  −
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x03'''
  −
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x04'''
  −
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x05'''
  −
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x06'''
  −
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" | '''0x07'''
   
|-
 
|-
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" | '''0x(4)a60020'''
+
| | {{zwsp}}
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Fast mode'' yaw zero value
+
| | {{zwsp}}
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Fast mode'' roll zero value
+
| style="text-align: center background-color: #ddf;" | '''0x00'''
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Fast mode'' pitch zero value
+
| style="text-align: center background-color: #ddf;" | '''0x01'''
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Fast mode'' yaw scale value
+
| style="text-align: center background-color: #ddf;" | '''0x02'''
 +
| style="text-align: center background-color: #ddf;" | '''0x03'''
 +
| style="text-align: center background-color: #ddf;" | '''0x04'''
 +
| style="text-align: center background-color: #ddf;" | '''0x05'''
 +
| style="text-align: center background-color: #ddf;" | '''0x06'''
 +
| style="text-align: center background-color: #ddf;" | '''0x07'''
 
|-
 
|-
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" | '''0x(4)a60028'''
+
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddf;" rowspan="4" | {{RotateText|90|'''Address'''}}
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Fast mode'' roll scale value
+
| style="background-color: #ddf; text-align: center;" | '''0x(4)a60020'''
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Fast mode'' pitch scale value
+
| style="text-align: center;" colspan="2" | ''Fast mode'' yaw zero value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="1" | ''Fast mode''vu8 degrees_div_6 (what the hell is this?)
+
| style="text-align: center;" colspan="2" | ''Fast mode'' roll zero value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="1" | UID 1 (seems to just be a unique id)
+
| style="text-align: center;" colspan="2" | ''Fast mode'' pitch zero value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | CRC32 Hash of all calibration data's MSB
+
| style="text-align: center;" colspan="2" | ''Fast mode'' yaw scale value
 
|-
 
|-
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" | '''0x(4)a60036'''
+
| style="background-color: #ddf; text-align: center;" | '''0x(4)a60028'''
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Slow mode'' yaw zero value
+
| style="text-align: center;" colspan="2" | ''Fast mode'' roll scale value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Slow mode'' roll zero value
+
| style="text-align: center;" colspan="2" | ''Fast mode'' pitch scale value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Slow mode'' pitch zero value
+
| style="text-align: center;" colspan="1" | ''Fast mode'' degrees_div_6
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Slow mode'' yaw scale value
+
| style="text-align: center;" colspan="1" | UID 1 (seems to just be a unique id)
 +
| style="text-align: center;" colspan="2" | CRC32 Hash of all calibration data's MSB
 
|-
 
|-
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" | '''0x(4)a60042'''
+
| style="background-color: #ddf; text-align: center;" | '''0x(4)a60036'''
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Slow mode'' roll scale value
+
| style="text-align: center;" colspan="2" | ''Slow mode'' yaw zero value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | ''Slow mode'' pitch scale value
+
| style="text-align: center;" colspan="2" | ''Slow mode'' roll zero value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="1" | ''Slow mode''vu8 degrees_div_6 (what the hell is this?)
+
| style="text-align: center;" colspan="2" | ''Slow mode'' pitch zero value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="1" | UID 2 (seems to just be a unique id)
+
| style="text-align: center;" colspan="2" | ''Slow mode'' yaw scale value
| style="border: 1px solid #ccc; padding: 0.2em; text-align: center;" colspan="2" | CRC32 Hash of all calibration data's LSB
+
|-
 +
| style="background-color: #ddf; text-align: center;" | '''0x(4)a60044'''
 +
| style="text-align: center;" colspan="2" | ''Slow mode'' roll scale value
 +
| style="text-align: center;" colspan="2" | ''Slow mode'' pitch scale value
 +
| style="text-align: center;" colspan="1" | ''Slow mode'' degrees_div_6
 +
| style="text-align: center;" colspan="1" | UID 2 (seems to just be a unique id)
 +
| style="text-align: center;" colspan="2" | CRC32 Hash of all calibration data's LSB
 
|}
 
|}
  
281

edits

Navigation menu