Hello
First of all, Thank you for the great work made for GroovyMame !!!
I have 2 things to report.
1)
I compile the mame.exe for windows from source with gcc / llvm-ld in a mingw64 environment (msys2), without SDL on windows 7.
the GroovyMame compilation was broken in 273 (I started modifying the source to work around this, and stopped because lack of time). The 246 was fine in my environment. And in 277 it's almost corrected. (Of course unpatched mame 246, 273 and 277 compile fine in my environment)
I corrected it myself.
The "#define MISTER_INPUT 1" line must be moved from input_common.h to input_mister.cpp (before the first #include)
2) But there is another problem, I use a JAMMAsd USB hardware to connect my arcade cabinet to my PC.
The cabinet inputs are seen in my PC as a keyboard, and buttons pressed on the cabinet produce key-stroke on PC (standard MAME binding)
.
In GM246 the pseudo keyboard is detected correctly :
Input: Adding keyboard #0: Périphérique clavier PIH (device id: \\?\HID#VID_0461&PID_4DD7&MI_00#7&38a8056e&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding keyboard #1: Périphérique clavier PIH (device id: \\?\HID#VID_04D8&PID_F3AD&MI_01&Col01#7&14c413dd&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding mouse #0: Souris HID (device id: \\?\HID#VID_046D&PID_C05A#6&370e698b&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding lightgun #0: Souris HID (device id: \\?\HID#VID_046D&PID_C05A#6&370e698b&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd})
(one keyboard is the regular keyboard attached to the PC, the other one is the jammaSD usb connected.
in regular (unpatched) mame 277 I have this :
Input: Adding keyboard #1: Périphérique clavier PIH (device id: \\?\HID#VID_0461&PID_4DD7&MI_00#7&38a8056e&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding keyboard #2: Périphérique clavier PIH (device id: \\?\HID#VID_04D8&PID_F3AD&MI_01&Col01#7&14c413dd&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding mouse #1: Souris HID (device id: \\?\HID#VID_046D&PID_C05A#6&370e698b&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding lightgun #1: Souris HID (device id: \\?\HID#VID_046D&PID_C05A#6&370e698b&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd})
In GM277 (maybe before, I'm not sure since I had compilation problem due to SDL etc...) :
Input: Adding keyboard #1: HP USB Multimedia Keyboard (Ð%) (device id: \\?\HID#VID_0461&PID_4DD7&MI_00#7&38a8056e&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding mouse #1: USB Optical Mouse (Logitech) (device id: \\?\HID#VID_046D&PID_C05A#6&370e698b&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd})
Input: Adding lightgun #1: USB Optical Mouse (Logitech) (device id: \\?\HID#VID_046D&PID_C05A#6&370e698b&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd})
So The jammasd pseudo keyboard is not seen and no arcade cabinet control work, only regular keyboard on pc.
I managed to get it working by reverting the function in src/osd/module/input/input_rawinput.cpp (I'm not certain of the path)
template<class TDevice>
TDevice *create_rawinput_device
to the mame 277 (unpatched) version of this function.
But there must be a correct way to fix this.
I attached my register dump of the CurrentControlSet\Enum\HID , I suspect a problem with the parsing of this tree, but I've never tried to run gdb on a mame.exe (is it possible ?, symbol table not too big ?)
added verbose log with GM277 and with the workaround (reverting the function above to original mame version)
Thank you for your help