Created
February 23, 2023 07:43
-
-
Save shinyquagsire23/7ddd17d1569acb21920683866570cb35 to your computer and use it in GitHub Desktop.
LG MStar firmware disorganized notes -- Hotwords: AEON B2, MStar, LG DualUp Firmware, MST9W00V4, MST9U
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DDC/CI Command Codes (antiquated MStar function, not real): | |
------ | |
0xCC, 0xF1, 0xF0 - LG special? Only CC actually used. | |
3 | |
1 | |
0xC6 | |
0xC8 | |
0xF3 | |
0xF5 | |
0xB1 | |
0xCC cmds (incomplete): | |
----- | |
0x20 | |
0x21 | |
0x30 | |
0x31 | |
0x34 | |
0x35 | |
0x37 | |
0x38 | |
0x3a - Returns a version number "1.1.5" | |
0x3b | |
0x3c | |
0x8e | |
0x8f | |
0x90 | |
0xa7 | |
0xa8 | |
0xa9 | |
0xf1 - Returns 0x89abcdef | |
VCP List: | |
----- | |
0x2 -> | |
0x4 -> | |
0x5 -> | |
0x6, 0x1E, 0x20, 0x30, 0x3E, 0xE5 -> | |
0x8 -> | |
0xc -> color temp | |
0x10 -> brightness | |
0x12 -> ? | |
0x14 -> | |
0x15 -> | |
0x16, 0x18, 0x18 -> | |
0x1b -> idk | |
0x50 -> reads eeprom idk | |
0x52 -> sets some value, scratchpad/debug? | |
0x60 - current monitor input, setting 0 resets? | |
0x62 -> sets volume with UI indicator | |
0x64 -> eMCCS_OPCODE_AUDIO_MICROPHONE_VOLUME | |
0x6c, 0x6E, 0x70 -> RGB adjust | |
0x8d -> eMCCS_OPCODE_AUDIO_MUTE mute vs unmute, 0 brings up the overlay, 1 mutes, 2 unmutes | |
0xa1 -> eMCCS_OPCODE_GET_MONITOR_ID_EXTENDED monitor extend id | |
0xaf -> eMCCS_OPCODE_MONITOR_MODEL_NAME returns some serial, "28MQ780-V32S" | |
0xb6 -> eMCCS_OPCODE_MISC_DISPLAY_TECHNOLOGY_TYPE | |
0xc0 -> eMCCS_OPCODE_DISPLAY_DISPLY_USAGE_TIME | |
0xc1 -> also returns brightness? | |
0xc6 -> ? | |
0xc8 -> ? | |
0xc9 -> eMCCS_OPCODE_DISPLAY_DISPLY_FIRMWARE_LEVEL returns FF FF 03 03? Scaler version (from NXP) | |
0xca -> button control status | |
0xCC -> language | |
0xcf -> reads eeprom? | |
0xd0 -> "eMCCS_OPCODE_MISC_OUTPUT_SELECT" no-op | |
0xd6 -> eMCCS_OPCODE_DISPLAY_POWER_MODE VCP_PowerMode -- setting 5 turns off the display. | |
0xd7 - 0 when pdp on, 1 when off -- setting 0xd7 to 1 exits PBP, 0x5 and 0x3 are vertical side by side | |
0xe0 -> picture presets eMCCS_OPCODE_EYE_FINE_WINDOW | |
0xe2 - eMCCS_OPCODE_HDR_VALUE | |
0xe3 -> factory mode related | |
0xe4 -> subcommands: "eMCCS_OPCODE_MANUFACTURER_CALIBATION_COMMAND" | |
0x02 -> toggle OSD lock | |
0x03 -> ? | |
0x04 -> ? | |
0x05 -> n/a | |
0x06 -> toggles... brightness? | |
0x07 -> also brightness | |
0x08 -> calibration settings? | |
0xe6 -> eMCCS_OPCODE_MANUFACTURER_WRITE_GAMMA_LUT ---- in NXP fw, TCP on/off? | |
0xe7 -> eMCCS_OPCODE_MANUFACTURER_WRITE_COLOR_MATRIX | |
0xe8 -> vals 0-12, one blacks out only the main monitor? | |
0xea -> calib related, flood fills colors | |
0xeb -> OSD lock | |
0xec -> eMCCS_OPCODE_SMARTRESOLUTION | |
0xed -> eMCCS_OPCODE_MANUFACTURER_PIPMODE_OPCODE | |
0xee -> "eMCCS_OPCODE_SCREENSPLIT_OSD_MENU", no-op | |
0xef -> monitor id? | |
0xF2 -> screen lock? | |
0xf4 -> eMCCS_OPCODE_MANUFACTURER_GET_RATIO_LIST | |
0xf5 -> eMCCS_OPCODE_MANUFACTURER_RATIO_VALUE | |
0xf6 -> eMCCS_OPCODE_MANUFACTURER_SES | |
0xf7 -> eMCCS_OPCODE_MANUFACTURER_RESPONSE_TIME | |
0xf8 -> eMCCS_OPCODE_MANUFACTURER_FREE_SYNC | |
0xf9 -> image related, eMCCS_OPCODE_MANUFACTURER_BLACK_STABILIZER | |
0xfa -> eMCCS_OPCODE_MANUFACTURER_MOTION_BLUR | |
0xfb -> also reads eeprom | |
0xfc -> eMCCS_OPCODE_MANUFACTURER_FENGINE_MODE_SELECT | |
0xfd -> eMCCS_OPCODE_MANUFACTURER_POWER_LAMP_INDICATOR | |
0xfe -> eMCCS_OPCODE_MANUFACTURER_IMAGE_GAMMA_PRESET | |
0x50 DDC2AB: | |
------- | |
0x10 - backlight | |
0x12 - also backlight? | |
0x16 - R GAIN | |
0x18 - G GAIN | |
0x1A - B GAIN | |
0x1C - | |
0x40 - | |
0x41 - max 100 | |
0x42 - returns 0 1 or 2 | |
0x43 - ? | |
0x44 - ? | |
0x45 - no-op | |
0x46 - ? | |
0x47 - ? | |
0x68 - no-op (language select?) | |
0x69 - no-op | |
0x75 - ? | |
0x76 - | |
0x77 - "EDID SN UPDATE" | |
0x78 - serial number (from NXP fw) | |
0x79 - ? | |
0xa7 - ? | |
0xa8 - ? | |
0xa9 - ? | |
0xb0 - ? | |
0xB2 - "Peak luminance" | |
0xc0 - | |
0xc1 - | |
0xc2 - | |
0xc7 - fans? from NXP | |
0xc8 - some version? "PID"? from NXP fw | |
0xc9 - Scalar FW version? | |
0xca - Model number (from NXP) | |
0xcb - GoshenRidgeFirmwareVersion? | |
0xcd - disables UI loop | |
0xcf - ScalerFirmwareCurrentResourceVersion (no-op) | |
0xd0 - sets some value, same func as 0xd2, 0xd4, ... | |
0xd1 - returns some value, same func as 0xd3, 0xd5, ... | |
0xd2 - sets some value, same func as 0xd2, 0xd4, ... | |
0xd3 - returns some value, same func as 0xd3, 0xd5, ... | |
0xd4 - sets some value, same func as 0xd2, 0xd4, ... | |
0xd5 - returns some value, same func as 0xd3, 0xd5, ... | |
0xd6 - sets some value, same func as 0xd2, 0xd4, ... | |
0xd7 - returns some value, same func as 0xd3, 0xd5, ... | |
0xd8 - sets some value, same func as 0xd2, 0xd4, ... | |
0xd9 - returns some value, same func as 0xd3, 0xd5, ... | |
0xda - sets some value, same func as 0xd2, 0xd4, ... | |
0xdb - returns some value, same func as 0xd3, 0xd5, ... | |
0xdc - sets some value, same func as 0xd2, 0xd4, ... | |
0xdd - returns some value, same func as 0xd3, 0xd5, ... | |
0xde - sets some value, same func as 0xd2, 0xd4, ... | |
0xdf - returns some value, same func as 0xd3, 0xd5, ... --- scratchpad? unused. | |
0xe3 - no-op | |
0xe4 - "EEPROM ALL INITIAL" | |
0xe6 - ? | |
0xe7 - not eeprom? | |
0xe8 - not eeprom? | |
0xE9 - elapsed time clear | |
0xEB - ? | |
0xed - no-op | |
0xEF - ? | |
0xf0 - factory reset | |
0xF1 - AUTO_COLOR_ADJUST (no-op) | |
0xF2 - COLOR_MODE_CHANGE 01 warm 02 cool | |
0xF3 - aging on/off | |
0xf4 - Input switch 0x90 (HDMI1) 0xD0 (DP) 0xD2 (USB-C) | |
0xf5 - system reset (reset monitor) | |
0xf6 - ? | |
0xf7 - "APD command" (no-op) | |
0xf8 - probably eeprom read | |
0xf9 - probably eeprom write | |
0xfb - available ISP area? | |
Garbage: | |
0x5a - other pbp input? | |
0x55 - 0 when pdp on, 1 when off -- switching the bottom PDP from HDMI 1 to 2 => 0x1 -> 0x16 | |
0xf5 - one pbp input -- 2 when usb c is at the top, 1 when at the bottom -- setting 0 when pdp off resets? -- setting 0xf when pdp on only resets top screen? | |
FIRMWARE UPDATE JUNK | |
---------------------------------------------------------------------------- | |
ISP Mode Device 0x53: | |
------ | |
ISP Mode Device 0x59 (I2C_IO_EXPANDER_ADDR): | |
------ | |
MST_EnterIspMode: | |
MST_EnterSerialDbg_ConfigGPIOreg() | |
MST_EnterSerialDbg_pausingR2() | |
Send to 0x49: ("MSTAR") | |
Send to 0x49: (10 05) | |
Send to 0x49: (11) | |
read 11 | |
Send to 0x49: (12) | |
Send to 0x49: (10 9f) | |
Send to 0x49: (11) | |
read 3 | |
Send to 0x49: (12) | |
Send to 0x49: (10 05) | |
Send to 0x49: (11) | |
read 3 | |
... | |
send: 02 07 f4 02 0f 99 32 32 00 22 ff 02 05 5c 8f 38 8d 39 22 02 0a 4d e4 ff fe 22 ff 02 0e 7e 12 94 | |
# see: https://www.mouser.com/datasheet/2/870/gd25q127c_v2.3_20200220-1634067.pdf | |
BlockWriteCheck: | |
Send to 0x49: (10 02 hh mm ll) ex (10 02 80 10 00) | |
send 0x100 bytes | |
Send to 0x49: (12) | |
read 32 | |
Send to 0x49: (12) | |
BlockVerifyCheck: | |
Send to 0x49: (10 03 hh mm ll) | |
Send to 0x49: (11) | |
read 32 | |
Send to 0x49: (12) | |
MST_EnterSerialDbg_ConfigGPIOreg: | |
Enter_SerialDebugMode ("SERDB", 0x53 = 'S') | |
Enter_SingleStepMode (10 c0 c1 53, 10 1F C1 53) | |
MST_i2cCh0Config: 80, 82, 84, 51, 7F, 37, 61 | |
MST_IicBusCtrl: 35, 71, read 1 | |
MST_DbgReadScalerReg(4, 0x26) | |
10 04 26 | |
MST_DbgReadScalerReg(4, 0x28) | |
10 04 28 | |
Exit_SerialDebugMode (34, 45) | |
MST_EnterSerialDbg_pausingR2: | |
Enter_SingleStepMode (10 c0 c1 53, 10 1F C1 53) | |
MST_i2cCh4Config: 80, 82, 85, 53, 7F | |
MST_IicBusCtrl: 35, 71 | |
?: 10 00 10 0F D7 | |
?: 10 00 10 0F D7 | |
read 11? | |
MST_DbgReadScalerReg(aa, bb): | |
?: 10 aa bb | |
read 1 byte ret | |
0x10 - Enter_SingleStepMode (10 c0 c1 53, 10 1F C1 53) | |
0x10 - Exit_SingleStepMode (10 c0 c1 FF, 10 1F C1 FF) | |
0x45 - exit ISP mode | |
0x53 - Enter_SerialDebugMode ("SERDB", 0x53 = 'S') | |
0x80 - ? | |
0x82 - ? | |
0x84 - ? | |
0x51 - ? | |
0x7F - ? | |
0x37 - ? | |
0x61 - ? | |
From LG's .NET app: | |
------------------------------------------------------------------------ | |
eMCCS_OPCODE_MISC_DEGAUSS = 1, | |
eMCCS_OPCODE_MISC_NEW_CONTROL_VALUE = 2, | |
eMCCS_OPCODE_MISC_SOFT_CONTROL_VALUE = 3, | |
eMCCS_OPCODE_PRESET_RESTORE_FACTORY_DEFAULT = 4, | |
eMCCS_OPCODE_PRESET_RESTORE_FACTORY_LUMINANCE_DEFAULT = 5, | |
eMCCS_OPCODE_PRESET_RESTORE_FACTORY_GEOMETRY_DEFAULT = 6, | |
eMCCS_OPCODE_PRESET_RESTORE_FACTORY_COLOR_DEFAULT = 8, | |
eMCCS_OPCODE_PRESET_RESTORE_FACTORY_TV_DEFAULT = 10, // 0x0000000A | |
eMCCS_OPCODE_IMAGE_COLOR_TEMPARATURE_INCREMENT = 11, // 0x0000000B | |
eMCCS_OPCODE_IMAGE_COLOR_TEMPARATURE_REQUEST = 12, // 0x0000000C | |
eMCCS_OPCODE_IMAGE_CLOCK = 14, // 0x0000000E | |
eMCCS_OPCODE_IMAGE_LUMINANCE = 16, // 0x00000010 | |
eMCCS_OPCODE_IMAGE_FLESH_TONE_ENHANCEMENT = 17, // 0x00000011 | |
eMCCS_OPCODE_IMAGE_CONTRAST = 18, // 0x00000012 | |
eMCCS_OPCODE_IMAGE_BLACKLIGHT_CONTROL = 19, // 0x00000013 | |
eMCCS_OPCODE_IMAGE_COLOR_PRESET = 20, // 0x00000014 | |
eMCCS_OPCODE_MANUFACTURER_PICTURE_MODE_VALUE = 21, // 0x00000015 | |
eMCCS_OPCODE_IMAGE_RED_VEDIO_GAIN = 22, // 0x00000016 | |
eMCCS_OPCODE_IMAGE_USER_COLOR_VISION_COMPENSATION = 23, // 0x00000017 | |
eMCCS_OPCODE_IMAGE_GREEN_VEDIO_GAIN = 24, // 0x00000018 | |
eMCCS_OPCODE_IMAGE_BLUE_VEDIO_GAIN = 26, // 0x0000001A | |
eMCCS_OPCODE_IMAGE_FOCUS = 28, // 0x0000001C | |
eMCCS_OPCODE_IMAGE_AUTO_SETUP = 30, // 0x0000001E | |
eMCCS_OPCODE_IMAGE_AUTO_COLOR_SETUP = 31, // 0x0000001F | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_POSITION = 32, // 0x00000020 | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_SIZE = 34, // 0x00000022 | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_PINCUSHION = 36, // 0x00000024 | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_PINCUSHION_BALANCE = 38, // 0x00000026 | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_CONVERGENCE_RB = 40, // 0x00000028 | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_CONVERGENCE_MG = 41, // 0x00000029 | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_LINEARITY = 42, // 0x0000002A | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_LINEARITY_BALANCE = 44, // 0x0000002C | |
eMCCS_OPCODE_IMAGE_GRAY_SCALE_EXPANSION = 46, // 0x0000002E | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_POSITION = 48, // 0x00000030 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_SIZE = 50, // 0x00000032 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_PINCUSHION = 52, // 0x00000034 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_PINCUSHION_BALANCE = 54, // 0x00000036 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_CONVERGENCE_RB = 56, // 0x00000038 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_CONVERGENCE_MG = 57, // 0x00000039 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_LINEARITY = 58, // 0x0000003A | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_LINEARITY_BALANCE = 60, // 0x0000003C | |
eMCCS_OPCODE_IMAGE_CLOCK_PHASE = 62, // 0x0000003E | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_PARELLELOGRAM = 64, // 0x00000040 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_PARELLELOGRAM = 65, // 0x00000041 | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_KEYSTONE = 66, // 0x00000042 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_KEYSTONE = 67, // 0x00000043 | |
eMCCS_OPCODE_GEOMETRY_ROTATIONS = 68, // 0x00000044 | |
eMCCS_OPCODE_MANUFACTURER_GET_PICTURE_MODE_LIST3 = 69, // 0x00000045 | |
eMCCS_OPCODE_GEOMETRY_TOP_CORNER_FLARE = 70, // 0x00000046 | |
eMCCS_OPCODE_GEOMETRY_TOP_CORNER_HOOK = 72, // 0x00000048 | |
eMCCS_OPCODE_GEOMETRY_BOTTOM_CORNERF_LARE = 74, // 0x0000004A | |
eMCCS_OPCODE_GEOMETRY_BOTTOM_CORNER_HOOK = 76, // 0x0000004C | |
eMCCS_OPCODE_MANUFACTURER_GET_PICTURE_MODE_LIST = 77, // 0x0000004D | |
eMCCS_OPCODE_MANUFACTURER_GET_PICTURE_MODE_LIST1 = 78, // 0x0000004E | |
eMCCS_OPCODE_MANUFACTURER_GET_PICTURE_MODE_LIST2 = 79, // 0x0000004F | |
eMCCS_OPCODE_MISC_ACTIVE_CONTROL = 82, // 0x00000052 | |
eMCCS_OPCODE_MISC_PERFORMANCE_PRESERVATION = 84, // 0x00000054 | |
eMCCS_OPCODE_IMAGE_HORIZONTAL_MOIRE = 86, // 0x00000056 | |
eMCCS_OPCODE_IMAGE_VERTICAL_MOIRE = 88, // 0x00000058 | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_SATURATION_CONTROLRED = 89, // 0x00000059 | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_SATURATION_CONTROLYELLOW = 90, // 0x0000005A | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_SATURATION_CONTROLGREEN = 91, // 0x0000005B | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_SATURATION_CONTROLCYAN = 92, // 0x0000005C | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_SATURATION_CONTROLBLUE = 93, // 0x0000005D | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_SATURATION_CONTROLMAGENTA = 94, // 0x0000005E | |
eMCCS_OPCODE_MISC_INPUT_SOURCE = 96, // 0x00000060 | |
eMCCS_OPCODE_AUDIO_SPEAKER_VOLUME = 98, // 0x00000062 | |
eMCCS_OPCODE_MANUFACTURER_VOLUME = 98, // 0x00000062 | |
eMCCS_OPCODE_AUDIO_MICROPHONE_VOLUME = 100, // 0x00000064 | |
eMCCS_OPCODE_MISC_AMBIENT_LIGHT_SENSOR = 102, // 0x00000066 | |
eMCCS_OPCODE_COLOR_TEMP_VALUE = 105, // 0x00000069 | |
eMCCS_OPCODE_COLOR_TEMP_LIST = 106, // 0x0000006A | |
eMCCS_OPCODE_IMAGE_RED_VEDIOBLACK_LEVEL = 108, // 0x0000006C | |
eMCCS_OPCODE_IMAGE_GREEN_VEDIOBLACK_LEVEL = 110, // 0x0000006E | |
eMCCS_OPCODE_IMAGE_BLUE_VEDIOBLACK_LEVEL = 112, // 0x00000070 | |
eMCCS_OPCODE_IMAGE_GAMMA = 114, // 0x00000072 | |
eMCCS_OPCODE_IMAGE_LUTSIZE = 115, // 0x00000073 | |
eMCCS_OPCODE_IMAGE_SINGLEPOINT_LUT_OPERATION = 116, // 0x00000074 | |
eMCCS_OPCODE_IMAGE_BLOCK_LUT_OPERATION = 117, // 0x00000075 | |
eMCCS_OPCODE_MISC_REMOTR_PROCEDURE_CALL = 118, // 0x00000076 | |
eMCCS_OPCODE_MISC_EDID_OPERATION = 120, // 0x00000078 | |
eMCCS_OPCODE_IMAGE_GET_GAMMA_LIST = 122, // 0x0000007A | |
eMCCS_OPCODE_IMAGE_ADJUST_ZOOM = 124, // 0x0000007C | |
eMCCS_OPCODE_GEOMETRY_HORIZONTAL_MIRROR_FLIP = 130, // 0x00000082 | |
eMCCS_OPCODE_GEOMETRY_VERTICAL_MIRROR_FLIP = 132, // 0x00000084 | |
eMCCS_OPCODE_GEOMETRY_DISPLAY_SCALING = 134, // 0x00000086 | |
eMCCS_OPCODE_IMAGE_SHARPNESS = 135, // 0x00000087 | |
eMCCS_OPCODE_IMAGE_VELOCITY_SCAN_MODULATION = 136, // 0x00000088 | |
eMCCS_OPCODE_IMAGE_COLOR_SATURATION = 138, // 0x0000008A | |
eMCCS_OPCODE_MISC_TVCHANNEL_UPORDOWN = 139, // 0x0000008B | |
eMCCS_OPCODE_IMAGE_TV_SHARPNESS = 140, // 0x0000008C | |
eMCCS_OPCODE_AUDIO_MUTE = 141, // 0x0000008D | |
eMCCS_OPCODE_AUDIO_TREBLE = 141, // 0x0000008D | |
eMCCS_OPCODE_IMAGE_TV_CONTRAST = 142, // 0x0000008E | |
eMCCS_OPCODE_IMAGE_HUE = 144, // 0x00000090 | |
eMCCS_OPCODE_AUDIO_BASS = 145, // 0x00000091 | |
eMCCS_OPCODE_IMAGE_TV_BLACKLEVELLUMINANCE = 146, // 0x00000092 | |
eMCCS_OPCODE_AUDIO_BALANCELR = 147, // 0x00000093 | |
eMCCS_OPCODE_AUDIO_STEREO_MODE = 148, // 0x00000094 | |
eMCCS_OPCODE_GEOMETRY_WINDOW_POSITION_TLX = 149, // 0x00000095 | |
eMCCS_OPCODE_GEOMETRY_WINDOW_POSITION_TLY = 150, // 0x00000096 | |
eMCCS_OPCODE_GEOMETRY_WINDOW_POSITION_BRX = 151, // 0x00000097 | |
eMCCS_OPCODE_GEOMETRY_WINDOW_POSITION_BRY = 152, // 0x00000098 | |
eMCCS_OPCODE_IMAGE_WINDOW_BACKGROUND = 154, // 0x0000009A | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_HUE_CONTROLRED = 155, // 0x0000009B | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_HUE_CONTROLYELLOW = 156, // 0x0000009C | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_HUE_CONTROLGREEN = 157, // 0x0000009D | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_HUE_CONTROLCYAN = 158, // 0x0000009E | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_HUE_CONTROLBLUE = 159, // 0x0000009F | |
eMCCS_OPCODE_IMAGE_SIX_AXIS_HUE_CONTROLMAGENTA = 160, // 0x000000A0 | |
eMCCS_OPCODE_GET_MONITOR_ID_EXTENDED = 161, // 0x000000A1 | |
eMCCS_OPCODE_IMAGE_AUTO_SETUP_ONOFF = 162, // 0x000000A2 | |
eMCCS_OPCODE_IMAGE_WINDOCONTROL_ONOFF = 164, // 0x000000A4 | |
eMCCS_OPCODE_IMAGE_WINDOW_SELECT = 165, // 0x000000A5 | |
eMCCS_OPCODE_IMAGE_SCREEN_ORIENTATION = 170, // 0x000000AA | |
eMCCS_OPCODE_DISPLAY_HORIZONTAL_FREQUENCY = 172, // 0x000000AC | |
eMCCS_OPCODE_DISPLAY_VERTICAL_FREQUENCY = 174, // 0x000000AE | |
eMCCS_OPCODE_MONITOR_MODEL_NAME = 175, // 0x000000AF | |
eMCCS_OPCODE_PRESET_SETTINGS = 176, // 0x000000B0 | |
eMCCS_OPCODE_MISC_FLATPANEL_SUBPIXEL_LAYOUT = 178, // 0x000000B2 | |
eMCCS_OPCODE_MISC_DISPLAY_TECHNOLOGY_TYPE = 182, // 0x000000B6 | |
eMCCS_OPCODE_DPVL_MONITOR_STATUS = 183, // 0x000000B7 | |
eMCCS_OPCODE_DPVL_PACKET_COUNT = 184, // 0x000000B8 | |
eMCCS_OPCODE_DPVL_MONITOR_X_ORIGIN = 185, // 0x000000B9 | |
eMCCS_OPCODE_DPVL_MONITOR_Y_ORIGIN = 186, // 0x000000BA | |
eMCCS_OPCODE_DPVL_HEADER_ERROR_COUNT = 187, // 0x000000BB | |
eMCCS_OPCODE_DPVL_BODY_CRC_ERROR_COUNT = 188, // 0x000000BC | |
eMCCS_OPCODE_DPVL_CLIENT_ID = 189, // 0x000000BD | |
eMCCS_OPCODE_DPVL_LINK_CONTROL = 190, // 0x000000BE | |
eMCCS_OPCODE_DISPLAY_DISPLY_USAGE_TIME = 192, // 0x000000C0 | |
eMCCS_OPCODE_MISC_DISPLAY_DESCRIPTOR_LENGTH = 194, // 0x000000C2 | |
eMCCS_OPCODE_MISC_TRANSMIT_DISPLAY_DESCRIPTOR = 195, // 0x000000C3 | |
eMCCS_OPCODE_MISC_ENABLE_DISPLAY_OF_DISPLAY_DESCRIPTOR = 196, // 0x000000C4 | |
eMCCS_OPCODE_MISC_APPLICATION_ENABLEKEY = 198, // 0x000000C6 | |
eMCCS_OPCODE_MISC_DISPLAY_ENABLEKEY = 199, // 0x000000C7 | |
eMCCS_OPCODE_DISPLAY_DISPLY_CONTROLLER_TYPE = 200, // 0x000000C8 | |
eMCCS_OPCODE_DISPLAY_DISPLY_FIRMWARE_LEVEL = 201, // 0x000000C9 | |
eMCCS_OPCODE_DISPLAY_OSD = 202, // 0x000000CA | |
eMCCS_OPCODE_DISPLAY_OSD_LANGUAGE = 204, // 0x000000CC | |
eMCCS_OPCODE_MISC_STATUS_INDICATORS = 205, // 0x000000CD | |
eMCCS_OPCODE_MISC_AUXILLARY_DISPLAY_SIZE = 206, // 0x000000CE | |
eMCCS_OPCODE_MISC_AUXILLARY_DISPLAY_DATA = 207, // 0x000000CF | |
eMCCS_OPCODE_MISC_OUTPUT_SELECT = 208, // 0x000000D0 | |
eMCCS_OPCODE_IMAGE_STEREO_VEDIO_MODE = 212, // 0x000000D4 | |
eMCCS_OPCODE_DISPLAY_POWER_MODE = 214, // 0x000000D6 | |
eMCCS_OPCODE_MISC_AUXILLARY_POWER_OUTPUT = 215, // 0x000000D7 | |
eMCCS_OPCODE_DPVL_POWER_ON_OFF = 216, // 0x000000D8 | |
eMCCS_OPCODE_GEOMETRY_SCAN_MODE = 218, // 0x000000DA | |
eMCCS_OPCODE_IMAGE_DISPLAY_APPLICATION = 220, // 0x000000DC | |
eMCCS_OPCODE_MISC_OPERATION_MODE = 222, // 0x000000DE | |
eMCCS_OPCODE_DISPLAY_VCP_VERSION = 223, // 0x000000DF | |
eMCCS_OPCODE_EYE_FINE_WINDOW = 224, // 0x000000E0 | |
eMCCS_OPCODE_DUAL_WEB_MODE = 225, // 0x000000E1 | |
eMCCS_OPCODE_HDR_VALUE = 226, // 0x000000E2 | |
eMCCS_OPCODE_SMARTDUALMON = 227, // 0x000000E3 | |
eMCCS_OPCODE_MANUFACTURER_CALIBATION_COMMAND = 228, // 0x000000E4 | |
eMCCS_OPCODE_MANUFACTURER_GETGAMMA_FROM_SCALER_COMMAND = 229, // 0x000000E5 | |
eMCCS_OPCODE_MANUFACTURER_WRITE_GAMMA_LUT = 230, // 0x000000E6 | |
eMCCS_OPCODE_MANUFACTURER_WRITE_COLOR_MATRIX = 231, // 0x000000E7 | |
eMCCS_OPCODE_MANUFACTURER_SCALERBLOCK_ENABLE_DISABLE_COMMAND = 232, // 0x000000E8 | |
eMCCS_OPCODE_MANUFACTURER_ENABLE_DISABLE_SCALER_PATTERN = 233, // 0x000000E9 | |
eMCCS_OPCODE_MANUFACTURER_DISPLAY_SCALER_INTERNAL_PATTERN = 234, // 0x000000EA | |
eMCCS_OPCODE_MANUFACTURER_WRITE_NEW_COLOR_MATRIX = 235, // 0x000000EB | |
eMCCS_OPCODE_SMARTRESOLUTION = 236, // 0x000000EC | |
eMCCS_OPCODE_MANUFACTURER_PIPMODE_OPCODE = 237, // 0x000000ED | |
eMCCS_OPCODE_SCREENSPLIT_OSD_MENU = 238, // 0x000000EE | |
eMCCS_OPCODE_MANUFACTURER_DISPLAYID = 239, // 0x000000EF | |
eMCCS_OPCODE_MANUFACTURER_HEARTBEAT = 240, // 0x000000F0 | |
eMCCS_OPCODE_MANUFACTURER_FENGINE_BRIGHTNESS = 241, // 0x000000F1 | |
eMCCS_OPCODE_MANUFACTURER_FENGINE_ACE = 242, // 0x000000F2 | |
eMCCS_OPCODE_MANUFACTURER_FENGINE_RCM = 243, // 0x000000F3 | |
eMCCS_OPCODE_MANUFACTURER_GET_RATIO_LIST = 244, // 0x000000F4 | |
eMCCS_OPCODE_MANUFACTURER_RATIO_VALUE = 245, // 0x000000F5 | |
eMCCS_OPCODE_MANUFACTURER_SES = 246, // 0x000000F6 | |
eMCCS_OPCODE_MANUFACTURER_RESPONSE_TIME = 247, // 0x000000F7 | |
eMCCS_OPCODE_MANUFACTURER_FREE_SYNC = 248, // 0x000000F8 | |
eMCCS_OPCODE_MANUFACTURER_BLACK_STABILIZER = 249, // 0x000000F9 | |
eMCCS_OPCODE_MANUFACTURER_MOTION_BLUR = 250, // 0x000000FA | |
eMCCS_OPCODE_MANUFACTURER_SCALER_ISP_AREA = 251, // 0x000000FB | |
eMCCS_OPCODE_MANUFACTURER_FENGINE_MODE_SELECT = 252, // 0x000000FC | |
eMCCS_OPCODE_MANUFACTURER_POWER_LAMP_INDICATOR = 253, // 0x000000FD | |
eMCCS_OPCODE_MANUFACTURER_IMAGE_GAMMA_PRESET = 254, // 0x000000FE | |
namespace OSC.MonitorParameterDataStruture | |
{ | |
public class MonitorParameterConstants | |
{ | |
public const int Max_Connected_Monitor = 6; | |
public const int ACTIVE_PICTURE_MODE_PROFILE = 60; | |
public const int MAX_GAMMA_OPTIONS = 14; | |
public const int MAX_COLOR_TEMP_OPTIONS = 10; | |
public const int MAX_COLOR_TEMP_MANUAL_OPTIONS = 11; | |
public const int MAX_RESPONSE_TIME_OPTIONS = 4; | |
public const int MAX_FREE_SYNC_OPTIONS = 4; | |
public const int MAX_MOTION_BLUR_OPTIONS = 2; | |
public const int MAX_OSC_OPCODE_LIST = 26; | |
public const int PROFILE_GET_OPCODE_WAIT_TIME_FOR_ONE = 5000; | |
public const int IMPORT_PROFILE_GET_OPCODE_PROGRESS_RANGE = 10; | |
public const int IMPORT_PROFILE_SET_OPCODE_PROGRESS_RANGE = 70; | |
public const int IMPORT_PROFILE_VERIFY_OPCODE_PROGRESS_RANGE = 10; | |
public enum T_E_REQUEST_TYPE | |
{ | |
eRequestNone, | |
eInitializeStatus, | |
eInitializeStatusReply, | |
eGetSupportedOpcodeList, | |
eGetSupportedOpcodeListFailed, | |
eSupportedOpcodeList, | |
eSetOpcodeRequest, | |
eSetOpcodeReply, | |
eGetAllOpcodeRequest, | |
eGetAllOpcodeReply, | |
eGetOpcodeRequest, | |
eGetOpcodeReply, | |
eScreenSplit, | |
eApplicationPresetm, | |
eGetScreenSplitLayout, | |
eApplicationPosition, | |
ePreviewWindowMoveStarted, | |
ePreviewWindowDropped, | |
eLayoutInitialization, | |
ePreviewLayoutWindowClicked, | |
GetGameWindowOpcode, | |
GetMonitorControlOpcode, | |
eProcessRequestForAllMonitor, | |
eExitOSCAppManager, | |
eModifiedInfoOfMonitor, | |
eGetColorAdjustOpcode, | |
eGetProfileOpcode, | |
eSetScreenSplitNone, | |
eGetMonitorModelName, | |
eGetGameSSOpcodeList, | |
eGameSSOpcodeList, | |
ePivotChange, | |
eModelNamePIDVID, | |
eSetPivotStatus, | |
eFWUpdateSdkStatus, | |
} | |
public enum T_E_PICTURE_MODE | |
{ | |
eCustom, | |
eReader, | |
eReader1, | |
eReader2, | |
ePhoto, | |
eCinema, | |
eGame, | |
eRed_Weakness, | |
eGreen_Weakness, | |
eDark_Room_1, | |
eDark_Room_2, | |
eFPS_Game_1, | |
eFPS_Game_2, | |
eRTS_Game, | |
eCustom_Game, | |
esRGB, | |
Adobe, | |
Calibration, | |
Calibration1, | |
Calibration2, | |
DICOM, | |
DCI, | |
EBU, | |
REC709, | |
SMPTE_C, | |
DCI_P3, | |
Custom_AV, | |
Vivid1, | |
Vivid2, | |
Standard, | |
Color_Weakness, | |
Cinema_AV, | |
Text, | |
HDR_Effect, | |
HDR_Vivid, | |
HDR_Standard, | |
HDR_Game, | |
HDR_Cinema, | |
Mono, | |
Gamer1, | |
Gamer2, | |
Vivid, | |
REC2020, | |
FPS, | |
RTS, | |
Pathology, | |
Dicom_Clinical, | |
Extention, | |
Dicom_Diagnostic, | |
HGIG, | |
P3_D65_PQ, | |
BT_2100_PQ, | |
BT_2100_HLG, | |
BT_709, | |
BT_2020, | |
P3_D65, | |
DICOM_Custom, | |
P3_D65_PQ2, | |
BT_2100_PQ2, | |
BT_2100_HLG2, | |
} | |
public enum T_E_GAMMA_MODE | |
{ | |
eGammaOff, | |
eGamma0, | |
eGamma1, | |
eGamma2, | |
eMode1, | |
eMode2, | |
eMode3, | |
eMode4, | |
eGamma1dot8, | |
eGamma2dot0, | |
eGamma2dot2, | |
eGamma2dot4, | |
eGamma2dot6, | |
eDicomGammaCurve, | |
} | |
public enum T_E_COLOR_TEMP | |
{ | |
eColorTemp_Warm, | |
eColorTemp_Medium, | |
eColorTemp_Cool, | |
eColorTemp_Custom, | |
eColorTemp_6500K, | |
eColorTemp_7500K, | |
eColorTemp_9300K, | |
eColorTemp_Manual1, | |
eColorTemp_Manual2, | |
eColorTemp_Manual3, | |
} | |
public enum T_E_RESPONSE_TIME | |
{ | |
eRESPONSE_TIME_OFF = 0, | |
eRESPONSE_TIME_HIGH = 1, | |
eRESPONSE_TIME_MIDDLE = 2, | |
eRESPONSE_TIME_LOW = 3, | |
eRESPONSE_TIME_UNSUPPORTED = 255, // 0x000000FF | |
} | |
public enum T_E_BLACKSTABILIZER_VAL | |
{ | |
eBLACKSTABILIZER_OFF = 0, | |
eBLACKSTABILIZER_LOW = 1, | |
eBLACKSTABILIZER_MIDDLE = 2, | |
eBLACKSTABILIZER_HIGH = 3, | |
eBLACKSTABILIZER_UNSUPPORTED = 255, // 0x000000FF | |
} | |
public enum T_E_PBP_MODE_OPTION | |
{ | |
ePBPOff, | |
eOneRationOne_PBP, | |
eFiveRationNine_PBP, | |
eSmall_PBP, | |
eLarge_PBP, | |
} | |
public enum T_E_RATIO_LIST | |
{ | |
eRatio_One_One, | |
eRation_Wide, | |
eRation_Original, | |
eRatio_Cinema1, | |
eRatio_Cinema2, | |
} | |
public enum T_E_SES | |
{ | |
eSES_Off = 0, | |
eSES_Low = 1, | |
eSES_High = 2, | |
eSES_UnSupported = 255, // 0x000000FF | |
} | |
public enum T_E_FREE_SYNC | |
{ | |
eFREE_SYNC_OFF = 0, | |
eFREE_SYNC_ON = 1, | |
eFREE_SYNC_BASIC = 2, | |
eFREE_SYNC_EXTENDED = 3, | |
eFREE_SYNC_UNSUPPORTED = 255, // 0x000000FF | |
} | |
public enum T_E_MOTION_BLUR | |
{ | |
eMOTION_BLUR_NOTSUPPORTED, | |
eMOTION_BLUR_ON, | |
eMOTION_BLUR_OFF, | |
} | |
public enum T_E_MONITOR_TYPE | |
{ | |
PROFILE, | |
GSYNC, | |
GSYNC_PROFILE, | |
GSYNC1, | |
GSYNC2, | |
GSYNC1_PROFILE, | |
GSYNC2_PROFILE, | |
GSYNCR4, | |
GSYNCR425GR75FG, | |
NORMAL, | |
FOCUSVIEW, | |
MD_MONITOR, | |
} | |
} | |
} | |
LG FIRMWARE URLS | |
------------------------------------------ | |
Real: https://lmu.lge.com/ExternalService/onscreencontrol/fw/28MQ780/MODEL_28MQ780_SV3.03_PV0.12.16_NV4.18_20221219.zip | |
Constant: https://lmu.lge.com/ExternalService/onscreencontrol/fw/28MQ780/FWLatestVersion.txt | |
Password: 28MQ780!LGdasusodkug!@# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://lmu.lge.com/ExternalService/onscreencontrol/fw/28MQ780/FWLatestVersion.txt
Hi,
did you use wireshark on "lg onscreen control" to extract this information?
EDIT: You used strings, but 38GN950 "FWLatestVersion.txt" dosn't exist :(
mine is a LG 38GN950 and is a mstar "gaming" without some functions as PBP