Line 19: |
Line 19: |
| | | |
| =Registers= | | =Registers= |
− | {| class="wikitable" border="1"
| + | This table has been merged to the [[I2C_Registers#Device_3|I2C Registers]] page. |
− | |-
| |
− | ! ID
| |
− | ! Info
| |
− | ! Description
| |
− | |-
| |
− | | 0x04
| |
− | 0x05
| |
− | | size=1, rw
| |
− | | Top/bottom screen flicker
| |
− | |-
| |
− | | 0x08
| |
− | | size=1, ro
| |
− | | Raw 3D slider state
| |
− | |-
| |
− | | 0x09
| |
− | | size=1, ro
| |
− | | Volume slider state (0x00 - 0x3F)
| |
− | This is the same value returned by [[MCUHWC:GetSoundVolume|MCUHWC:GetSoundVolume]] | |
− | |-
| |
− | | 0x0B
| |
− | | size=1, ro
| |
− | | Battery percentage
| |
− | |-
| |
− | | 0x0D
| |
− | | size=1, ro
| |
− | | System voltage
| |
− | |-
| |
− | | 0x0F
| |
− | | size=1, ro
| |
− | | Flags (it changes when plugging/unplugging charger)
| |
− | |-
| |
− | | 0x20
| |
− | | size=1, wo(?)
| |
− | | MCU power register (0xFF is instant depower, 0x01 is poweroff, 0x02 is reboot)
| |
− | |-
| |
− | | 0x22
| |
− | | size=1, rw
| |
− | | LCD (power?) related register, AND'd with 0x3C
| |
− | |-
| |
− | | 0x27
| |
− | | size=1, ro
| |
− | | Raw volume slider state
| |
− | |-
| |
− | | 0x28
| |
− | | size=1, ro
| |
− | | 3D slider state(?) (0xFF if 3D is not enabled(?))
| |
− | |-
| |
− | | 0x29
| |
− | | size=dynamic(?), rw
| |
− | | Repeat register, any byte written here gets repeated indefinitely(?)
| |
− | |-
| |
− | | 0x2A
| |
− | | size=1, rw
| |
− | | Wifi LED state, non-0 value turns on the Wifi LED, AND'd with 0x0F
| |
− | |-
| |
− | | 0x2B
| |
− | | size=1, rw
| |
− | | Camera LED state, 0, 3, 6-0xF = off, 1 = slowly blinking, 2 = constantly on, 4 = flash once, 5 = delay before changing to 2
| |
− | |-
| |
− | | 0x2C
| |
− | | size=1, rw
| |
− | | 3D LED state, always AND'd with 0x0F
| |
− | |-
| |
− | | 0x2D
| |
− | | size=??, ro(?)
| |
− | | ???
| |
− | |-
| |
− | | 0x30
| |
− | | size=6(?), rw
| |
− | | Hexadecimal RTC (0x30 is seconds, 0x31 is minutes, 0x32 is most likely hours)
| |
− | |-
| |
− | | 0x3D
| |
− | (bugs out reg. 0x3E)
| |
− | | size=2, ro
| |
− | | RTC tick counter (resets to 0 when the seconds increase)
| |
− | |-
| |
− | | 0x3F
| |
− | | size=1, rw
| |
− | | Peripheral power related? bit0 seems to depower everything, and pressing the power key instantly turns the 3DS off
| |
− | |-
| |
− | | 0x46
| |
− | | size=1, ro
| |
− | | Gyro Y(?) axis rotation (0x00 = flat, 0x40 = 3DS standing on right side, 0xBE = 3DS standing on left side)
| |
− | |-
| |
− | | 0x48
| |
− | | size=1, ro
| |
− | | Gyro Z(?) axis rotation (0x00 = flat, 0x40 = 3DS standing vertically, 0xBE = 3DS base is vertically upside-down)
| |
− | |-
| |
− | | 0x4A
| |
− | | size=1, ro
| |
− | | Gyro X(?) axis rotation (0x00 = 3DS standing vertically, 0x40 = face-down flat, 0xBE = flat)
| |
− | |-
| |
− | | 0x4F
| |
− | | size=6(?), ??
| |
− | | ??? (reading past 6th byte is FF-filled)
| |
− | |-
| |
− | | 0x60
| |
− | | size=0x100, ro (first byte is wo)
| |
− | | Looping queue register
| |
− | Writing to first byte resets the queue position to the nth element
| |
− | Reading from this register causes the values to shift up by one byte, and returns read-1 bytes from the bottom of the stack
| |
− | |-
| |
− | | 0x61
| |
− | | size=dynamic(?), rw
| |
− | | Writing to this register pushes values on top of reg. 0x60's stack (most likely in byte order(?))
| |
− | |-
| |
− | | 0x7F
| |
− | | size=19(?), ro(?)
| |
− | | ???
| |
− | byte 06: battery related? (seems to decrase while charging and increase while discharging)
| |
− | | |
− | byte 10: power LED related? 0 is off, 1 is red
| |
− | | |
− | byte 13: RGB LED red factor
| |
− | | |
− | byte 14: RGB LED green factor
| |
− | | |
− | byte 15: RGB LED blue factor
| |
− | | |
− | byte 17: Wifi LED brightness
| |
− | | |
− | byte 18:
| |
− | bit0: unset while power button is held,
| |
− | bit1: unset while home button is held,
| |
− | bit2: unset while Wifi slider is held,
| |
− | bit4: unset when charger is plugged in,
| |
− | bit6: unset when charging LED is active
| |
− |
| |
− | this byte is reset to 0 before an svcBreak takes effect
| |
− | |}
| |