Changes

54 bytes removed ,  00:12, 2 January 2018
Line 227: Line 227:     
== Device 3 ==
 
== Device 3 ==
 +
  ro = read-only (writing is no-op)
 +
  rw = read-write
 +
  wo = write-only (reading will yield 00, FF, or unpredictable data)
 +
  s* = shared register (explaination below this table)
 +
  *v = volatile (survives reboots)
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  REGISTER
 
!  REGISTER
Line 319: Line 324:  
| 0x15
 
| 0x15
 
| s
 
| s
| rw
+
| rw v
| ? (volatile;survives reboot and power off)
+
| ?
 
|-
 
|-
 
| 0x16
 
| 0x16
 
| s
 
| s
| rw
+
| rw v
| ? (volatile;survives reboot and power off)
+
| ?
 
|-
 
|-
 
| 0x17
 
| 0x17
 
| s
 
| s
| rw
+
| rw v
| ? (volatile;survives reboot and power off)
+
| ?
 
|-
 
|-
 
| 0x18
 
| 0x18
Line 365: Line 370:  
| 0x1C
 
| 0x1C
 
| s
 
| s
| rw
+
| rw v
| ? (volatile;survives reboot and power off)
+
| ?
 
|-
 
|-
 
| 0x1D
 
| 0x1D
 
| s
 
| s
| rw
+
| rw v
| ? (volatile;survives reboot and power off)
+
| ?
 
|-
 
|-
 
| 0x1E
 
| 0x1E
 
| s
 
| s
| rw
+
| rw v
| ? (volatile;survives reboot and power off)
+
| ?
 
|-
 
|-
 
| 0x1F
 
| 0x1F
 
| s
 
| s
| rw
+
| rw v
| ? (volatile;survives reboot and power off)
+
| ?
 
|-
 
|-
 
| 0x20
 
| 0x20
Line 407: Line 412:  
   bit2: bottom screen backlight off
 
   bit2: bottom screen backlight off
 
   bit3: bottom screen backlight on
 
   bit3: bottom screen backlight on
   bit4: top screen backlight off (does nothing on 2DS as the backlight is bottom only)
+
   bit4: top screen backlight off
   bit5: top screen backlight on (see above)
+
   bit5: top screen backlight on
 +
 
 +
bits 4 and 5 have no effect on a 2DS because the backlight source is the bottom screen
 
|-
 
|-
 
| 0x23
 
| 0x23
Line 448: Line 455:  
| s
 
| s
 
| rw
 
| rw
| WiFi LED state, non-0 value turns on the WiFi LED, capped at 0x0F
+
| WiFi LED state, non-0 value turns on the WiFi LED, 4 bits wide
 
|-
 
|-
 
| 0x2B
 
| 0x2B
Line 458: Line 465:  
| s
 
| s
 
| rw
 
| rw
| 3D LED state, capped at 0x0F
+
| 3D LED state, 4 bits wide
 
|-
 
|-
 
| 0x2D
 
| 0x2D
Line 483: Line 490:  
   byte 1: minutes
 
   byte 1: minutes
 
   byte 2: hours
 
   byte 2: hours
   byte 3: current day of the week (unused)
+
   byte 3: current week (unused)
 
   byte 4: days
 
   byte 4: days
 
   byte 5: months
 
   byte 5: months
 
   byte 6: years
 
   byte 6: years
   byte 7: leap year counter (unused)
+
   byte 7: leap year counter / "watch error correction" register (unused)
 
|-
 
|-
 
| 0x38
 
| 0x38
- 0x3C
+
- 0x3A
 
| s
 
| s
 
| rw
 
| rw
 
| RTC alarm registers
 
| RTC alarm registers
Register 0x3B could be used to upload [[MCU_Services#MCU_firmware_versions|MCU firmware]] if some conditions are met.
+
  byte 0: minutes
 +
  byte 1: hours
 +
  byte 2: week
 +
|-
 +
| 0x3B
 +
- 0x3D
 +
| s
 +
| rw
 +
| Register 0x3B could be used to upload [[MCU_Services#MCU_firmware_versions|MCU firmware]] if some conditions are met.
 
|-
 
|-
 
| 0x3D
 
| 0x3D
Line 505: Line 520:  
| s
 
| s
 
| wo
 
| wo
| Peripheral power related? bit0 seems to depower everything, pressing the power key afterwards instantly turns the whole 3DS off
+
| Register-mapped MCU RESET?
 
|-
 
|-
 
| 0x40
 
| 0x40
Line 533: Line 548:  
|-
 
|-
 
| 0x45
 
| 0x45
 +
- 0x4A
 
| s
 
| s
| rw
+
| ro
| ?
+
| Gyroscope 3D rotation from the 12bit ADC, left shifted 4 to fit in a 16bit signed short
 +
{| class="wikitable" border="1"
 +
!  AXIS
 +
!  V=0x00
 +
!  V=0x40
 +
!  V=0xC0
 
|-
 
|-
| 0x46
+
| Y (=roll)
| s
+
| held vertically
| ro
+
| vertical right side
| Gyro Y(?) axis rotation (0x00 = flat, 0x40 = 3DS standing on right side, 0xBE = 3DS standing on left side)
+
| vertical left side
 
|-
 
|-
| 0x48
+
| Z? (=yaw)
| s
+
| ???
| ro
+
| ???
| Gyro Z(?) axis rotation (0x00 = flat, 0x40 = 3DS standing horizontally, 0xBE = 3DS base is horizontally upside-down)
+
| ???
 
|-
 
|-
| 0x4A
+
| X? (=pitch)
| s
+
| held vertically
| ro
+
| ???
| Gyro X(?) axis rotation (0x00 = 3DS base facing upwards, 0x40 = face-down flat, 0xBE = standing(?) flat)
+
| ???
 +
|}
 
|-
 
|-
 
| 0x4B
 
| 0x4B
Line 596: Line 618:  
| s
 
| s
 
| rw
 
| rw
| DSP volume slider 0% volume offset (setting this to 0xFF will esentially mute the DSP as it's the volume slider's maximum raw value)
+
| Register-mapped ADC register
 +
DSP volume slider 0% volume offset (setting this to 0xFF will esentially mute the DSP as it's the volume slider's maximum raw value)
 
|-
 
|-
 
| 0x59
 
| 0x59
 
| s
 
| s
 
| rw
 
| rw
| DSP volume slider 100% volume offset (setting both this and the above to 0 will disable the volume slider with 100% volume, setting this to a lower value than the above will make the volume slider have only 2 states; on and off)
+
| Register-mapped ADC register
 +
DSP volume slider 100% volume offset (setting both this and the above to 0 will disable the volume slider with 100% volume, setting this to a lower value than the above will make the volume slider have only 2 states; on and off)
 
|-
 
|-
 
| 0x5A
 
| 0x5A
Trusted
225

edits