uic_eeprom_structure
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
uic_eeprom_structure [2025/02/24 09:20] – arisotura | uic_eeprom_structure [2025/04/18 09:54] (current) – arisotura | ||
---|---|---|---|
Line 4: | Line 4: | ||
The first 256 bytes are used internally, while the rest is used for user data storage. | The first 256 bytes are used internally, while the rest is used for user data storage. | ||
+ | |||
+ | https:// | ||
^ Address ^ Length ^ Description ^ | ^ Address ^ Length ^ Description ^ | ||
Line 30: | Line 32: | ||
| 0x1125 | | 0x1125 | ||
| 0x1165 | | 0x1165 | ||
+ | | 0x1166 | ||
| 0x116B | | 0x116B | ||
| 0x116D | | 0x116D | ||
Line 43: | Line 46: | ||
| 0x1203 | | 0x1203 | ||
| 0x1204 | | 0x1204 | ||
+ | | 0x1206 | ||
+ | | 0x1207 | ||
| 0x121A | | 0x121A | ||
| 0x121C | | 0x121C | ||
Line 58: | Line 63: | ||
| 0x1283 | | 0x1283 | ||
| 0x1284 | | 0x1284 | ||
+ | | 0x1286 | ||
+ | | 0x1287 | ||
| 0x129A | | 0x129A | ||
| 0x129C | | 0x129C | ||
Line 72: | Line 79: | ||
| 0x12FE | | 0x12FE | ||
| -- | -- | -- | | | -- | -- | -- | | ||
- | | 0x1300 | + | | 0x1300 |
- | (0-3 = America) | + | |
- | (4-11 = Europe) | + | |
- | 0 = English | + | |
- | 1 = French | + | |
- | 2 = Spanish | + | |
- | 3 = Portuguese | + | |
- | 4 = English | + | |
- | 5 = French | + | |
- | 6 = Spanish | + | |
- | 7 = Portuguese | + | |
- | 8 = Dutch | + | |
- | 9 = Italian | + | |
- | 10 = German | + | |
- | 11 = Russian | + | |
- | 12 = Japanese | + | |
- | 13 = Chinese (simplified) | + | |
- | 14 = Korean | + | |
- | 15 = Chinese (traditional) | + | |
- | | | + | |
| 0x1301 | | 0x1301 | ||
| 0x1303 | | 0x1303 | ||
Line 126: | Line 114: | ||
| 0x13FD | | 0x13FD | ||
| 0x13FE | | 0x13FE | ||
+ | | -- | -- | -- | | ||
+ | | 0x1400 | ||
+ | | 0x1500 | ||
+ | | -- | -- | -- | | ||
+ | | 0x1580 | ||
+ | | 0x1680 | ||
Data is stored in little-endian order. | Data is stored in little-endian order. | ||
Line 175: | Line 169: | ||
* 5 = Taiwan | * 5 = Taiwan | ||
* 6 = Australia | * 6 = Australia | ||
+ | |||
+ | |||
+ | ===== Board config ===== | ||
+ | |||
+ | Value is 0x15 for retail boards. | ||
+ | |||
+ | If bit0-1 are any value other than 1, the gamepad will enter service mode upon boot. | ||
+ | |||
+ | |||
+ | ===== Language ===== | ||
+ | |||
+ | (0-3 = America, 4-11 = Europe) | ||
+ | |||
+ | * 0 = English | ||
+ | * 1 = French | ||
+ | * 2 = Spanish | ||
+ | * 3 = Portuguese | ||
+ | * 4 = English | ||
+ | * 5 = French | ||
+ | * 6 = Spanish | ||
+ | * 7 = Portuguese | ||
+ | * 8 = Dutch | ||
+ | * 9 = Italian | ||
+ | * 10 = German | ||
+ | * 11 = Russian | ||
+ | * 12 = Japanese | ||
+ | * 13 = Chinese (simplified) | ||
+ | * 14 = Korean | ||
+ | * 15 = Chinese (traditional) | ||
Line 186: | Line 209: | ||
TODO: detail how that reading is converted to the final volume setting passed to the audio amplifier | TODO: detail how that reading is converted to the final volume setting passed to the audio amplifier | ||
+ | |||
+ | |||
+ | ===== Gyroscope calibration ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 3 | Zero X | | ||
+ | | 0x03 | 3 | Zero Y | | ||
+ | | 0x06 | 3 | Zero Z | | ||
+ | | 0x09 | 3 | Rotation X | | ||
+ | | 0x0C | 3 | Rotation Y | | ||
+ | | 0x0F | 3 | Rotation Z | | ||
+ | | 0x12 | 1 | Speed | | ||
+ | |||
+ | |||
+ | ===== Accelerometer calibration ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 2 | 0G X | | ||
+ | | 0x02 | 2 | 0G Y | | ||
+ | | 0x04 | 2 | 0G Z | | ||
+ | | 0x06 | 2 | 1G X | | ||
+ | | 0x08 | 2 | 1G Y | | ||
+ | | 0x0A | 2 | 1G Z | | ||
+ | |||
+ | |||
+ | ===== Touchscreen calibration ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 2 | Point 1 screen X | | ||
+ | | 0x02 | 2 | Point 1 screen Y | | ||
+ | | 0x04 | 2 | Point 2 screen X | | ||
+ | | 0x06 | 2 | Point 2 screen Y | | ||
+ | | 0x08 | 2 | Point 1 raw X | | ||
+ | | 0x0A | 2 | Point 1 raw Y | | ||
+ | | 0x0C | 2 | Point 2 raw X | | ||
+ | | 0x0E | 2 | Point 2 raw Y | | ||
+ | |||
+ | Raw coordinates are 12-bit TSC readings, while screen coordinates are their corresponding values in pixels. | ||
+ | |||
+ | Observed screen coordinates are: 53,30 802,451 | ||
+ | |||
+ | |||
+ | ===== LCD brightness levels ===== | ||
+ | |||
+ | ^ Offset ^ Length ^ Description ^ | ||
+ | | 0x00 | 1 | Level 0 brightness level (setting A) | | ||
+ | | 0x01 | 1 | Level 0 frequency (setting B) | | ||
+ | | 0x02 | 1 | Level 1 brightness level | | ||
+ | | 0x03 | 1 | Level 1 frequency | | ||
+ | | 0x04 | 1 | Level 2 brightness level | | ||
+ | | 0x05 | 1 | Level 2 frequency | | ||
+ | | 0x06 | 1 | Level 3 brightness level | | ||
+ | | 0x07 | 1 | Level 3 frequency | | ||
+ | | 0x08 | 1 | Level 4 brightness level | | ||
+ | | 0x09 | 1 | Level 4 frequency | | ||
+ | | 0x0A | 1 | Level 5 brightness level | | ||
+ | | 0x0B | 1 | Level 5 frequency | | ||
+ | | 0x0C | 1 | Threshold level | | ||
+ | |||
+ | This table maps 6 predefined brightness levels to their adequate LCD parameters. See [[LCD# | ||
uic_eeprom_structure.1740388832.txt.gz · Last modified: 2025/02/24 09:20 by arisotura