Module
Known NIDs
Version |
Name |
World |
Privilege |
NID
|
1.69 |
SceOled |
Non-secure |
Kernel |
0x5410837A
|
Libraries
Known NIDs
Version |
Name |
World |
Visibility |
NID
|
1.69 |
SceOledForDriver |
Non-secure |
Kernel |
0x60C7478A
|
Resources
TODO: move to OLED.
Types
enum SceOledError {
SCE_OLED_ERROR_INVALID_BRIGHTNESS_VALUE = 0x803F0A02,
SCE_OLED_ERROR_INVALID_READY_STATUS = 0x803F0A03,
SCE_OLED_ERROR_NOT_READY = 0x803F0A04,
SCE_OLED_ERROR_INTERNAL = 0x803F0A05
};
enum SceOledStatus {
SCE_OLED_STATUS_NOT_READY = 0,
SCE_OLED_STATUS_READY = 1,
SCE_OLED_STATUS_ERROR = 2
};
struct SceOledCmd {
unsigned char cmd,
unsigned char size,
unsigned char buf[size]
}
A cmd_queue
is a contiguous array of SceOledCmd
of different sizes. To get the next SceOledCmd
of a queue, do:
struct SceOledCmd *cur_cmd = ...
struct SceOledCmd *next_cmd = &(cur_cmd->buf) + cur_cmd->size;
if (next_cmd->cmd == 0 || next_cmd->cmd == 255) {...} // End of queue
Available commands
Cmd
|
Size
|
Buf
|
Description
|
178
|
1
|
Unknown
|
Unknown
|
249
|
1 or 22
|
Unknown, for example <0x01, 0xCFBE9F9F, 0xCBC2C9D7, 0xDEE3E1BB, 0xFAD3D0D6, 0x002FE6ED, 0x2F> (Little-Endian)
|
Change Brightness
|
SceOledForDriver
ksceOledWaitReady
Version |
NID
|
3.60 |
0x0CC6BCB4
|
int ksceOledWaitReady();
Waits until the OLED has been initialized.
ksceOledForDriver_2F0C4B67
Version |
NID
|
3.60 |
0x2F0C4B67
|
int ksceOledForDriver_2F0C4B67(u8 cmd, void *buffer, int size);
Sends a command to the OLED.
ksceOledGetBrightness
Version |
NID
|
3.60 |
0x43EF811A
|
int ksceOledGetBrightness();
Get the wide brightness value (0-65536
).
ksceOledDisplayOn
Version |
NID
|
3.60 |
0x4C7836C7
|
int ksceOledDisplayOn();
ksceOledDisplayOff
Version |
NID
|
3.60 |
0xBC84602E
|
int ksceOledDisplayOff();
ksceOledSetDisplayColorSpaceMode
Version |
NID
|
3.60 |
0xDABBD9D3
|
int ksceOledSetDisplayColorSpaceMode(int mode);
ksceOledForDriver_E30604CC
Version |
NID
|
3.60 |
0xE30604CC
|
Dispatches the OLED cmd list (using ksceOledForDriver_2F0C4B67).
ksceOledSetBrightness
Version |
NID
|
3.60 |
0xF9624C47 (wrong nid?)
|
int ksceOledSetBrightness(unsigned int brightness);
Set the brightness (brightness needs to be in the range 0-65536
). 0
means screen turned off, 1
means screen dimmed (like if you wait for a long time without touching your screen).
The brightness has actually 17 different values: 1 special value for brightness=0
, and 16 different values for the rest (real_value=brightness/4096
).