Jump to content
LaunchBox Community Forums

Sbaby

Members
  • Posts

    583
  • Joined

  • Last visited

Posts posted by Sbaby

  1. 8 hours ago, Nixx said:

    @Sbaby
    Yeah, my bad.
    In case you need it, i use an home made custom version of DS4Win. Not fully tested, but that should work.
    https://github.com/nixxou/DS4Windows/releases/tag/V1
    One option that can be relevant if the only type of xinput controller as gamepad you use are DS4, is the 360 knockoff option. It will force controller to use a different vendorId, productId than regular 360 controller.
    That way, instead of Type=ArcadeStick... you use "VendorID=0x045E<>ProductID=0x028E" and instead of Type=GamePad, you use "VendorID=0x046D<>ProductID=0xC21F"
    That way, you're arcade stick will be recognized as arcade stick. The bad thing is that regular wired 360 controller will also be recognized as arcade stick.

    I have tried it, it works, thank you very much it will be useful to me

  2. 10 minutes ago, Nixx said:

    Ah, that's annoying, your Madcatz Fightstick pro mimic exactly an xbox 360 controller, so i can't tell it apart with the xinput library.
    In your case, i may have a way, to disting it from the DS4 controller (in fact the other way around, to distinct the DS4 controller from regular 360 gamepad), but i need to do some test.

    I do not own the Madcatz Fightstick Pro, my arcade stick is Qanba

  3. 1 minute ago, Nixx said:

     

    @Sbaby I'm curious, can you give me the output when you click on the "Show Xinput Device Data" button ?
    I only have one arcade stick (a Madzcat Fightstick pro) and i lack info about how other brand report their xinput data.
    (And btw, if someone have a 8bit do arcade stick, i would love to see the result too)

    I was editing the message with new information, you can see it now, is it sufficient?

  4. 2 hours ago, Nixx said:

    For the first point, in my app i do not simply take Xinput1 = player1, i use a priority order.
    If the game have wheel layout, i take wheel as priority, regardless of their xinput number.
    Then, i take arcade stick as priority (if there is an arcade layout available for the game)
    And only then gamepad.
    And for each of them, i take the first available xinput slot.
    So, if you have two gamepad, one in xinput 1, and one in xinput 2, if you disconnect the gamepad 1, it will use the xinput2 as player 1. If you plug your wheel as xinput 3 and the game have wheel support, it will just use your wheel regardless of the xinput number.
    I could probably make an option to have some timer on boot to reassign player number (like 5 seconds on start when you press start on the controller you want as P1) but that's not my priority right now.

    Your work on teknoparrot is fantastic that's exactly why i was asking if you would be able, in the future, when you feel like it, to think of a launchbox plugin that could put a display with the controllers connected, the user link i showed you does this job, unfortunately though it doesn't distinguish xinputs and sees them all the same, so if i have a lightgun xinput and a joypad xinput it creates confusion.

    This is an example from Batocera, you can see in the top left corner the icons of the two controllers, one is the joypad and the other is the lightgun :

    image.png.d0eaf767b2cf61795606aa581fa2453e.png

    Similarly, I have noticed that there are applications that correctly detect the controllers despite the fact that they are both xinput, I give you this example, one is arcadestick qanba in xinput mode, while the other is joypad360 :

    image.thumb.png.8d50c561f058cd49d54c7c10ae8b8266.png

    Windows instead detects both as xbox360 :

    image.png.3ac2e8ae6bb0c52c97d081f68ce0f865.png

     

    -----------------

     

    2 hours ago, Nixx said:

    For the second point, that's really annoying.
    XinputEx.dll is a dll i make from some C++ code to get some extra info about xinput devices, the ProductID and VendorID. It's an undocumented feature of xinput, and i was not skilled enough to implement this directly in C# (if someone read this, and have the skill to do it, i would love to have a POC)
    It's based on this, i basically just turn it from a console executable to a dll : https://stackoverflow.com/questions/64251320/is-it-possible-to-get-an-xinput-devices-name-product-id-vendor-id-or-some-oth
    The point of having vendor and product id is to be able to auto detect some controller as arcade stick when they falsely report themself as arcade but still send their own product id / vendor Id.
    One user told me that his antivirus didn't like my dll and removed it, maybe that's what happen ? Do you still have the dll in your folder ?
    Is there other people having (or not having) this issue ?

    Dll file is intact, I have tried disabling the antivirus but the problem persists.

     

    -----------------

     

    2 hours ago, Nixx said:

    I worked on the issue to integrate the code i did previously in C++ directly inside my C# code, can you try this build, if that works fine, i will push the modification
    TeknoparrotAutoXinput_alpha_v0.06b.zip

    This version works 😜 i really appreciate this 👍

    image.thumb.png.cb3edf5b483dd7aba7c399f2dd155d11.png

     

    one is qanba arcade stick in xinput mode, while the second is Ps4 joypad in Ds4windows mode

  5. @Nixx  You are very good, congratulations nice work.

    I have several xinput controllers, considering that windows often keeps the controller position in memory even if you disconnect it, I often have to disconnect all of them in order to get back to the correct player 1.

    It would be nice to have a test of the controllers directly in launchbox, that way a person can start teknoparrot safely by choosing the correct controller.
    There has already been one person who has started to do this, unfortunately it is not yet completed, have a look here if you think it might be an idea to create an un plugin for launchbox

    https://forums.launchbox-app.com/topic/68276-ctrlr-cyclr-select-any-controller-you-want-from-launchbox/

    Windows always assigns an id number to the connected xinput controller, often even if you disconnect the first controller, it doesn't turn the second controller into id number 1, sometimes it does, sometimes it doesn't, so you are forced to disconnect them all and reconnect them, and then start the game. If Launchbox with a plugin would detect the controller ide, that would be great, so that a person could see which player is connected. For example, if I disconnect player 1 and end up with only one xbox360 joypad connected, and windows doesn't assign the correct id1 but keeps the id2, launchbox should also see only one joypad connected but marked as player2, and at this point one can know in advance what to do before starting the game.

     

    .................

    Now we come to my real problem, if I click on 'Show Xinput Devices Data' it gives me this error :

    image.thumb.png.421cd271479e229b7bba5de705beaf9d.png

    Right now I had two controllers, 1)arcadestick 2) joypad ,,, both are seen as xinput by windows

    image.png.3ac2e8ae6bb0c52c97d081f68ce0f865.png

     

  6. 49 minutes ago, JoeViking245 said:

    Most likely your Windows games' executable is a launcher to the actual games exe.  So the 'launcher' is only active (being "played") for a few seconds.  Which is the 'game' that LaunchBox is measuring.

    AlanWake2.exe 

  7. Do you think it is possible to block bigbox input from joypad when an executable or window exists?

    For example for Model 2, winclass is "MYWIN". , wintitle is "Model 2 Emulator" , the executable name is "emulator_multicpu.EXE"

    My problem is that sometimes randomly, bigBox intercepts my joypad inputs while I'm playing, so I play Daytona quietly but when I exit the game I find myself in the bigbox options, or I find myself in another platform

    I've tried a thousand scripts that keep BigBox forcibly minimised while running Model 2 but it still happens, randomly, i.e. most of the time it's correct, but sometimes it happens and that makes me nervous. Don't ask me what configuration I have of Model 2 because I've tried thousands of all possible combinations and on various computers, the only thing I haven't changed is Ds4Windows, maybe that's the problem, I don't know.

    I know the Blockinput function with autohotkey but it only works with mouse and keyboard but I would need to block the xinput for BigBox (excluding the LaunchBox Pause Screen as in this case the input must work)

    Doom

    I would like to play new espansione "Sigil 2, anyone recommend me the best way to play doom nowadays with launchbox and mods ?   In 2024 which is the best ? brutal doom, zdoom , others ? and the best way to launch them with LaunchBox ?

    Good advice would be much appreciated and thank you very much in advance 😌

  8. 1 hour ago, skizzosjt said:

    This runs the script as an admin, which results in the UAC prompt popping up. Did you disable UAC down to "Never notify" on your system to get around that? Regardless, that's not necessary to close the emulator.  All that is needed in that script is the Esc hotkey (all lines above it should be deleted). The issue seems to be exclusive to using the "close active window" controller binding in Big Box or the "Exit Game" controller binding in LaunchBox. Keyboard input for closing Cemu works the same as it has in the past for both LaunchBox and Big Box.

    Yes I have that disabled all the time. Anyway, mine was just a test attempt to help find the problem for our friend. . No I understood that it was only concerning the controller . Now everything is working with your scripts .😊

  9. In Bigbox, assigning the joypad buttons to 'SHOW LAUNCHBOX'. tries to start LaunchBox inside BigBox without succeeding and the system crashes, what is this for?

    You need to do a massive overhaul of the joypad button issue, there have been other problems for years, for example in some situations while you are playing you can hear the Bigbox buttons being pressed underneath and when you exit the game you find yourself in another section of Bigbox. This is frustrating and definitely needs to be fixed, it happens randomly, for example with Model 2 (which is an old emulator) it happens a lot. Out of 10 plays, 9 times out of 10 it works fine, but there is always a moment when I am forced to exit the game and start it again because BigBox keeps intercepting the buttons I press in the game. Please implement a function so that if the emulator executable is active, bigbox should have input blocking. this happens sometimes even if it is minimized, it is serious

    thank you very much for your support, and i hope it will be taken into consideration 

  10. 6 hours ago, skizzosjt said:

    TRY THIS


    full_command_line := DllCall("GetCommandLine", "str")

    if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)"))
    {
        try
        {
            if A_IsCompiled
                Run *RunAs "%A_ScriptFullPath%" /restart
            else
                Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
        }
       ExitApp
    }
     
    SetTitleMatchMode, 2
    DetectHiddenWindows, on
    #SingleInstance, Force

    $Esc::
    {
    WinClose, ahk_exe {{{StartupEXE}}}
    }
     

  11. 9 hours ago, JoeViking245 said:

    Grabbed from some old notes for doing something different, but the result is what you want...

    ; Master application
    Process, Wait, BigBox.exe
    Sleep, 5000
    Process, Wait, BigBox.exe
    Process, WaitClose, BigBox.exe

    I'm not sure when exactly when the Startup App gets triggered, so for a safety measure we wait 2 times.   The 1st Wait is for BB launched from LB's root folder.  That exe starts BigBox.exe that's in the /Core/ folder then closes itself. 

    We give the 1st exe a few seconds to do its thing then Wait for /Core/BigBox.exe to be running.  Lastly, wait for it to exit before restoring things. 

     

    You might be able to do away with the 1st two lines of code.  But having them in there won't hurt anything and the cost (programmatically and financially) is free. 😎

    it works, very nice , thank you.

     

    Programmatically and financially, it was a bargain 😁

    • Game On 1
  12. @JoeViking245

    again with regard to your fantastic scriptToggleAllLibrary.ahk, I usually start it directly in this way:

    ; To hide Icons, taskbar, minimize all windows, set wallpaper null, set background black, set cursor
        ToggleEverything := HideDesktop()

    ; Master application
    Runwait, "M:\Giochi\Utility\Launchbox\core\BigBox.exe"

    ; To restore everything
        RestoreDesktop(ToggleEverything[1], ToggleEverything[2])

    ecc.etc....

     

    but if I wanted to put it inside the startup application options (Bigbox Only) instead, how should I modify the script?

    i tried winwait instead of runwait but it doesn't work very well

  13. 7 hours ago, faeran said:

    I believe this is something that's always been the case when it comes to missing folder locations. Can you add your 2 cents to this ticket so we can keep track of it:  https://bitbucket.org/jasondavidcarr/launchbox/issues/8030/hard-crash-while-using-platform-edit

    Ok thanks . 

     

    in the meantime I can confirm that the problem is due to the presence or absence of the external disk containing the roms. That is, as you can see from this video, if I insert my external disk containing the playstation 3 roms in H:\PS3ISO the launchbox behaves correctly and does not crash. But if the external disk H: is not present it crashes

     

    2023-12-13 00-06-00.mkv

  14. 6 minutes ago, faeran said:

    Just tested this on the latest experimental build, using the default settings in LaunchBox, but the emulator paused just fine.

    In LaunchBox, you can edit the CEMU emulator, navigate to the Pause Screen section and make sure you have "Suspend Emulator Process While Paused" and see if that helps.

    I'm also not sure if CEMU itself has an option to suspend gameplay when not in focus or another setting like that. Maybe they do.

    I've never had Big Box continue to operate after launching an emulator, so unfortunately, can't help you there at the moment.

    yes yes, i meant that the menu pause starts correctly but the cemu does not suspend, it doesn't seem that the cemu has an option to be suspended, i was asking if somehow it was possible, but you already answered me

     

    for the other problem I am investigating my system because it also happens to me with other emulators

  15. In bigbox I set the buttons correctly, in fact if I select the game manual in detail before running it, the zoom works correctly. If instead I choose the manual in the pause menu I cannot zoom in, I can only page up and page down with other buttons

  16. 2 hours ago, Lordmonkus said:

    For retrogaming and games that do not require analog sticks the Hori Fight Commander is by far the best controller, the d-pad on it is as close to perfect as you can get.

    For general purpose PC gaming that requires an analog stick the MS Xbox controller is more than adequate for my needs.

    That Scuf Envision controller does look nice but at 130$ USD that d-pad better not suck like it does on most every other controller out there.

    how does windows detect hori fight stick controller ? As xinput ? For windows control panel is the button position numbering the same as xbox360? ?
    I have to make up my mind before buying 😌

  17. On 12/1/2023 at 2:55 PM, Retro808 said:

    Moved to own thread as this is not a beta issue. 

    It would be helpful if you post pics of your LB set-up for Mame. Go to Manage Emulators and edit Mame. Post a pics of the items below:

    1. Details page

    2. Associated Platforms page

    3. Startup Screen page

    4. Running Script page

    5. Exit Script page

     

    news : I'm here to confirm that the bug is in the BigBox start and close screen, I had to disable it and for other emulators that gave me the same problem like OPENBOR I had to put the flag on the option, go in and un-flag all of them one by one.

    I really regret not being able to use these screens, I really like them.

    The second problem unfortunately remains, namely the stuttering and the feeling of lack of fluidity when navigating in BigBox after exiting these emulators.

  18. 41 minutes ago, JoeViking245 said:

    I think you got lucky 'simply adding another one'. ;)  But as I illuded towards, a pretty cool happenstance. 

     

    😁😁😁

     

    42 minutes ago, JoeViking245 said:

    Why there are two "ToggleEverything":

    We set the variable ToggleEverything to equal the return value of the method HideDesktop().  So looking at what HideDesktop() does, the last thing it does is it returns 2 values.  So now ToggleEverything is holding (equal to) 2 separate values.  Making it an 'Array'.  The 1st value in the array is stored in ToggleEverything[1] and the 2nd value is in ToggleEverything[2].

    Now when you look at the method RestoreDesktop, it requires that 2 parameters be sent to it.  "originalWallpaper" and "origBackground)".  So when you execute it under "To Restore Everything", you have to send with it, the 2 parameters.  Note, we place these 2 parameters inside of the methods parenthesis.  

    RestoreDesktop ( ToggleEverything[1] , ToggleEverything[2] )       (added spaces and colors for clarity)

     

    Now adding a comma after the last (closing) parenthesis of this method we're executing, allows us to string together multiple commands.  (so I had learned, today)

    I'm not sure how far you can go with it   command_1, command_2, command_3, command_4 ...   But from a coding readability aspect, probably don't want to go too far.

    my brain is bursting, but I think I understand 🦾

    • Like 1
  19. 40 minutes ago, JoeViking245 said:

    That's quite elegant.  I'd never thought to put 2 methods onto one line.  TBH, I didn't know you could [and just separate them with a comma].  Today is a good day as I learned something new.  :D  Thanks for this!

    ; To hide blah, blah, blah and set custom cursor
    ToggleEverything := HideDesktop(), SetSystemCursor(file)
     
    ;*** VS ***
     
    ; To hide blah, blah, blah
    ToggleEverything := HideDesktop()
     
    ; Set custom cursor
    SetSystemCursor(file)

     

    😁 I'm delighted with your enthusiasm and I'm very pleased, but to be exact I made your approach similar to :

    ; To restore everything
        RestoreDesktop(ToggleEverything[1], ToggleEverything[2])


    I had seen that you had put an additional variable after a comma although I never understood why there are two "ToggleEverything". so I simply tried adding another one and it became :

    ; To restore everything
        RestoreDesktop(ToggleEverything[1], ToggleEverything[2]), RestoreCursors()

     

     

     

    40 minutes ago, JoeViking245 said:

    Out of curiosity, what did you do differenly to make it work?

     

    Actually it always worked, the thing is that I thought it disabled the screen saver from the control panel, so I kept looking at that... instead it actually forces activation by completely ignoring the Windows settings. Works even better for me, perfect 

    • Like 1
×
×
  • Create New...