Skip to content

Instantly share code, notes, and snippets.

@shinyquagsire23
Created February 23, 2023 07:43

Revisions

  1. shinyquagsire23 created this gist Feb 23, 2023.
    681 changes: 681 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,681 @@
    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!@#