Difference between revisions of "MCUHWC:ReadRegister"

From 3dbrew
Jump to navigation Jump to search
Line 42: Line 42:
 
| size=1, ??
 
| size=1, ??
 
| ???
 
| ???
 +
|-
 +
| 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
 
| 0x27
Line 54: Line 62:
 
0x2D
 
0x2D
 
| size=n/a, ??
 
| size=n/a, ??
| ??? (all zeroes)
+
| ???
 +
|-
 +
| 0x2C
 +
| size=1, rw
 +
| 3D LED state, always AND'd with 0x0F
 
|-
 
|-
 
| 0x30
 
| 0x30
 
| size=6(?), rw
 
| size=6(?), rw
| Hexadecimal RTC
+
| Hexadecimal RTC (0x30 is seconds, 0x31 is minutes, 0x32 is most likely hours)
|-
 
| 0x31
 
| size=?, rw
 
| This value is always ORed with 0x80, and writing 0x7F (or 0xFF) into this value makes the 3DS crash when pressing the home button. Occasionally changes.
 
 
|-
 
|-
 
| 0x3D
 
| 0x3D
Line 83: Line 91:
 
| 0x4F
 
| 0x4F
 
| size=6(?), ??
 
| size=6(?), ??
| ??? (reading past 6 is FF-filled)
+
| ??? (reading past 6th byte is FF-filled)
 
|-
 
|-
 
| 0x60
 
| 0x60
Line 91: Line 99:
 
|-
 
|-
 
| 0x7F
 
| 0x7F
| size=??, ??
+
| size=35(?), ??
| ???
+
| ??? (reading past the 35th byte is FF-filled)
 
|}
 
|}

Revision as of 04:07, 3 November 2016

Request

Index Word Description
0 Header code [0x00010082]
1 u8 register
2 size
3 Descriptor for mapping a write-only buffer in the target process
4 data pointer

Response

Index Word Description
0 Header code
1 Result code

Description

This function reads data from the MCU

Registers

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

0x0F size=1, ?? ???
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

0x2D

size=n/a, ?? ???
0x2C size=1, rw 3D LED state, always AND'd with 0x0F
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 Value rapidly changes, looks like RTC tick counter (resets to 0 when the seconds increase)
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

(bugs out reg. 0x61)

size=0x100(?), ?? ???, looping queue
0x7F size=35(?), ?? ??? (reading past the 35th byte is FF-filled)