CE-Programming / CEmu

Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features
https://ce-programming.github.io/CEmu/
Other
1.07k stars 76 forks source link

Custom keymap can't contain keys with multiple modifiers #339

Closed CalcMeister closed 4 years ago

CalcMeister commented 4 years ago

What's wrong, and with what software version?

Operating System: macOS High Sierra 10.13.6 CEmu version: v1.3 Describe your issue: In an attempt to create a custom keymap using the USB HID values from TI-SmartPad, I discovered there is no documented way to tell CEmu that the key combination you wish to bind to the emulator uses more than one modifier. For instance, the [2] button in TI-SmartPad returns Shift Control Alt F11.

What are the steps to reproduce this issue?

  1. Attempt to load a keymap.ini using this data:
    
    [0]
    keys=F3
    masks=None
    modifiers=Shift Control Alt
    native_codes=0
    native_masks=0

[1] keys=F2 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[2] keys=F11 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[2nd] keys=F6 masks=None, None modifiers=Control, None native_codes=0 native_masks=0

[3] keys=F7 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[4] keys=F1 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[5] keys=F10 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[6] keys=F6 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[7] keys=F11 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[8] keys=F9 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[9] keys=F5 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[add] keys=NumPlus masks=None modifiers=Control native_codes=0 native_masks=0

[alpha] keys=F7 masks=None modifiers=Control native_codes=0 native_masks=0

[apps] keys=F8 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[clr] keys=F9 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[comma] keys=F10 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[cos] keys=F7 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[del] keys=F4 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[div] keys=NumSlash masks=None modifiers=Control native_codes=0 native_masks=0

[dot] keys=F1 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[down] keys=Down masks=None modifiers=None native_codes=0 native_masks=0

[enter] keys=Enter masks=None modifiers=None native_codes=0 native_masks=0

[graph] keys=F5 masks=None modifiers=Control native_codes=0 native_masks=0

[inv] keys=F9 masks=None modifiers=Control native_codes=0 native_masks=0

[left] keys=Left masks=None modifiers=None native_codes=0 native_masks=0

[ln] keys=F3 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[log] keys=F2 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[lpar] keys=F8 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[math] keys=F8 masks=None modifiers=Control native_codes=0 native_masks=0

[mode] keys=F6 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[mul] keys=NumAsterisk masks=None modifiers=Control native_codes=0 native_masks=0

[neg] keys=F8 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[on] keys=F5 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[pow] keys=F11 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[prgm] keys=F6 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[right] keys=Right masks=None modifiers=None native_codes=0 native_masks=0

[rpar] keys=F4 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[sin] keys=F9 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[sq] keys=F1 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[stat] keys=F5 masks=None modifiers=Shift Control Alt native_codes=0 native_masks=0

[sto] keys=F4 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[sub] keys=NumMinus masks=None modifiers=Control native_codes=0 native_masks=0

[tan] keys=F3 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[trace] keys=T masks=None modifiers=Control native_codes=0 native_masks=0

[up] keys=Up masks=None modifiers=None native_codes=0 native_masks=0

[vars] keys=F2 masks=None modifiers=Shift Control native_codes=0 native_masks=0

[wind] keys=F2 masks=None modifiers=Control native_codes=0 native_masks=0

[xton] keys=F7 masks=None modifiers=Control Alt native_codes=0 native_masks=0

[yequ] keys=F1 masks=None modifiers=Control native_codes=0 native_masks=0

[zoom] keys=F3 masks=None modifiers=Control native_codes=0 native_masks=0


2. …
3. …

Any logs, error output, screenshot, other comments...?
------------------------------------------------------
CEmu gives error: Unable to set custom keymap.
mateoconlechuga commented 4 years ago
modifiers=ShiftCtrlAlt

Possible modifiers are Shift, Ctrl, Alt, and Meta (Meta is usually for the windows or Mac key on the keyboard)

CalcMeister commented 4 years ago

Using that format, I fixed the file, but it still won't load. File in question:

[0]
keys=F3
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[1]
keys=F2
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[2]
keys=F11
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[2nd]
keys=F6
masks=None,None
modifiers=Ctrl,None
native_codes=0
native_masks=0

[3]
keys=F7
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[4]
keys=F1
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[5]
keys=F10
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[6]
keys=F6
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[7]
keys=F11
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[8]
keys=F9
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[9]
keys=F5
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[add]
keys=NumPlus
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[alpha]
keys=F7
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[apps]
keys=F8
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[clr]
keys=F9
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[comma]
keys=F10
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[cos]
keys=F7
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[del]
keys=F4
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[div]
keys=NumSlash
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[dot]
keys=F1
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[down]
keys=Down
masks=None
modifiers=None
native_codes=0
native_masks=0

[enter]
keys=Enter
masks=None
modifiers=None
native_codes=0
native_masks=0

[graph]
keys=F5
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[inv]
keys=F9
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[left]
keys=Left
masks=None
modifiers=None
native_codes=0
native_masks=0

[ln]
keys=F3
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[log]
keys=F2
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[lpar]
keys=F8
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[math]
keys=F8
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[mode]
keys=F6
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[mul]
keys=NumAsterisk
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[neg]
keys=F8
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[on]
keys=F5
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[pow]
keys=F11
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[prgm]
keys=F6
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[right]
keys=Right
masks=None
modifiers=None
native_codes=0
native_masks=0

[rpar]
keys=F4
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[sin]
keys=F9
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[sq]
keys=F1
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[stat]
keys=F5
masks=None
modifiers=ShiftCtrlAlt
native_codes=0
native_masks=0

[sto]
keys=F4
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[sub]
keys=NumMinus
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[tan]
keys=F3
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[trace]
keys=T
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[up]
keys=Up
masks=None
modifiers=None
native_codes=0
native_masks=0

[vars]
keys=F2
masks=None
modifiers=ShiftCtrl
native_codes=0
native_masks=0

[wind]
keys=F2
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[xton]
keys=F7
masks=None
modifiers=CtrlAlt
native_codes=0
native_masks=0

[yequ]
keys=F1
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0

[zoom]
keys=F3
masks=None
modifiers=Ctrl
native_codes=0
native_masks=0