Main > Lightguns

QMamehook - The Cross-platform MAMEHOOKER-compatible alternative for PCLightguns

<< < (5/6) > >>

bandicoot:
No for that it should works with HID Interface Writes , like LEDWizz it's doesn't support  :cry: , hope one day this two thing will be add

IntegrumRetro:
This is a fantastic tool! I've been dying to use retroarch with mame_libretro. I had to use standard MAME to support outputs which was a mess having games using different emulators. So far the tests work great! Well done!

I especially like you auto assign based on ORDER, not by COM port, that helps save some automation of dealing with that when writing the .ini files dynamically.

Two small requests/asks?

1) How do you determine the serial number? I always had to assign device order by HID_VID detection
2) Can you make the .ini location a command line parameter for windows? I wrote automation to autoconfigure all the .ini files and keeping it in the source directory, or a relative directory to where QMamehooker is put is ideal. Ex. "-c ./QMamehooker/ini"

ThatOneSeong:

--- Quote from: IntegrumRetro on March 25, 2024, 03:30:13 am ---1) How do you determine the serial number? I always had to assign device order by HID_VID detection
--- End quote ---
The COM devices list is filtered against a builtin whitelist for compatible devices (right now, this checks for GUN4IR's VID, and GUN4ALL's VID - naturally, since that is also a thing I made and primarily use/test against :P ).

As for the exact order, I believe that is still technically based on the COM port number (from lowest to highest) - so if the first compatible gun is detected @ COM1 (Wendies) or ACM0 (Loonix), it will take virtual port no. 1, then if the next's @ COM4 goes to port no. 2, and so on. At least, that's how I assume and what I've vaguely observed QSerialPort handles it.


--- Quote ---2) Can you make the .ini location a command line parameter for windows? I wrote automation to autoconfigure all the .ini files and keeping it in the source directory, or a relative directory to where QMamehooker is put is ideal. Ex. "-c ./QMamehooker/ini"

--- End quote ---
Suppose I could add an arg for that, ye. We'll see.

ThatOneSeong:
@IntegrumRetro, I guess your new answer is here you go!

v1.6.1 adds custom paths support - invoked with -p followed by a path either absolute (starting with a drive letter on Windows, or root on Linux) or relative (specifically to the path that QMamehook is launched from).
Tangentially, this release also contains a fix to the redundant (now default) Windows path; now, the full default path is %LOCALAPPDATA%\QMamehook\ini - just as it should've been.

From my limited testing it should work as expected on both platforms, but do let me know how it goes for you!

--- Quote from: dgrace on March 25, 2024, 01:57:43 am ---Would this be compatible potentially with the Aliens Extermination mounted guns? They essentially act as joysticks and have potentiometers. I currently use mamehooker with them, but it can be quite buggy at times. Thanks

--- End quote ---

--- Quote from: bandicoot on March 25, 2024, 03:03:26 am ---No for that it should works with HID Interface Writes , like LEDWizz it's doesn't support  :cry: , hope one day this two thing will be add

--- End quote ---
Unfortunately, if I don't have the hardware, I wouldn't exactly be able to trust myself to blindly implement something that I can't verify works as it should. :(

Then again, that is the beauty of open-source software: anyone is free to work on the code and implement such things if they have the desire, equipment, and time to do so. And I will happily take pull requests (given that it doesn't break any preexisting functionality, lol). It is a nice thought though, hearing so many people find usefulness in the idea of this weird thing I made mostly for myself. :>

IntegrumRetro:

--- Quote from: ThatOneSeong on March 26, 2024, 12:08:11 am ---@IntegrumRetro, I guess your new answer is here you go!

v1.6.1 adds custom paths support - invoked with -p followed by a path either absolute (starting with a drive letter on Windows, or root on Linux) or relative (specifically to the path that QMamehook is launched from).
Tangentially, this release also contains a fix to the redundant (now default) Windows path; now, the full default path is %LOCALAPPDATA%\QMamehook\ini - just as it should've been.

From my limited testing it should work as expected on both platforms, but do let me know how it goes for you!

--- End quote ---

Tested and it works great on mame_libretro on windows. Ran into a snag with demulshooter 12.0 and Flycast it seems to be appending a portion of the actual .ini file as the rom name, including display data? Here is the output

Enabling verbose output!
Found device @ "\\\\.\\COM5"
Assigning port no. 1
Waiting for MAME-compatible Network Output @ localhost:8000 ...
Connected to output server instance!
Detected game name!
"1\rmame_start=deathcox\rOrientation(\\\\.\\DISPLAY1)=0\rP1_LmpStart=255\rP2_LmpStart=255\rP1_Ammo=0\rP2_Ammo=0\rP1_Clip=0\rP2_Clip=0\rP1_CtmRecoil=0\rP2_CtmRecoil=0\rP1_Life=0\rP2_Life=0\rP1_Damaged=0\rP2_Damaged=0\rCredits=255"
Error loading file at: "C:/Launchbox/Scripts/qmamehooker/ini/1\rmame_start=deathcox\rOrientation(\\\\.\\DISPLAY1)=0\rP1_LmpStart=255\rP2_LmpStart=255\rP1_Ammo=0\rP2_Ammo=0\rP1_Clip=0\rP2_Clip=0\rP1_CtmRecoil=0\rP2_CtmRecoil=0\rP1_Life=0\rP2_Life=0\rP1_Damaged=0\rP2_Damaged=0\rCredits=255.ini"

Here are the contents of the ini file being loaded:
-------------------------------------------------------

[General]
MameStart=cmo 1 baud=9600_parity=N_data=8_stop=1, cmo 0 baud=9600_parity=N_data=8_stop=1, cmw 1 S6M1.1.M3.0., cmw 0 S6M1.1.M3.0.
MameStop=cmc 1 M1.2.M3.0E, cmc 0 M1.2.M3.0E, cmc 1, cmc 0
StateChange=
OnRotate=
OnPause=
[KeyStates]
RefreshTime=
[Output]
P1_LmpStart=
P2_LmpStart=
P1_Ammo=
P2_Ammo=
P1_Clip=
P2_Clip=
P1_CtmRecoil=cmw 1 F0.%s%.1.F4.%s%.255
P2_CtmRecoil=cmw 0 F0.%s%.1.F4.%s%.255
P1_Life=
P2_Life=
P1_Damaged=cmw 1 F1.%s%.255.F2.%s%.255
P2_Damaged=cmw 0 F1.%s%.255.F2.%s%.255
Credits=


Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version