Jump to content
LaunchBox Community Forums

skizzosjt

Members
  • Posts

    614
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by skizzosjt

  1. I don't see anything for the guide button in the library, so that may not be possible. To make sure we're on the same page, this is the same button to power on/off the wireless controllers? The rest is already done though! So far, I'm having luck here! I got all buttons working, A, B, X, Y, Left Shoulder, Right Shoulder, Back, Start, Left Joystick Click and Right Joystick Click. Having a tough time figuring out wtf is going on with the joystick axis though. I got it to...."work".....but it's not exactly doing what I want it to. Still trying to figure out what the script is doing here with the axis and what the values are when it's moved to different positions. So I think the joysticks axis is the last bit of this puzzle! Here's what I got playing around tonight. I'll have to come back at this after letting it stew in the old noggin' for a bit. Perhaps someone else with more AHK experience will dissect this and give me a good lesson! *Beware, after seeing Joes cleaned up script just now, mine looks like a nightmare! 🤣 Also please keep in mind this is just playing around troubleshooting work in progress! I'm well aware all these outputs make zero practical sense, I just needed to see something different happen so I could keep track of what's working as I go about this #Include Xinput.ahk #Persistent #SingleInstance, Force SetTimer, checkForJoy1, 10 checkForJoy1: ;******** ;A BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { a_pressed := state.wButtons & 4096 if(a_pressed) { ;Msgbox, Does this work [%a_pressed%] ;Sleep, 2000 Send {k down} Sleep, 50 Send {k up} } ;******** ;B BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { b_pressed := state.wButtons & 8192 if(b_pressed) { ;Msgbox, Does this work [%b_pressed%] ;Sleep, 2000 Send {p down} Sleep, 50 Send {p up} } ;******** ;X BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { x_pressed := state.wButtons & 16384 if(x_pressed) { ;Msgbox, Does this work [%x_pressed%] ;Sleep, 2000 Send {d down} Sleep, 50 Send {d up} } ;******** ;Y BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { y_pressed := state.wButtons & 32768 if(y_pressed) { ;Msgbox, Does this work [%y_pressed%] ;Sleep, 2000 Send {e down} Sleep, 50 Send {e up} } ;******** ;D-PAD UP ;******** XInput_Init() state := Xinput_GetState(0) if(state) { dpadUP_pressed := state.wButtons & 1 if(dpadUP_pressed) { ;Msgbox, Does this work [%dpadUP_pressed%] ;Sleep, 2000 Send {Up down} Sleep, 50 Send {Up up} } ;********** ;D-PAD DOWN ;********** XInput_Init() state := Xinput_GetState(0) if(state) { dpadDOWN_pressed := state.wButtons & 2 if(dpadDOWN_pressed) { ;Msgbox, Does this work [%dpadDOWN_pressed%] ;Sleep, 2000 Send {Down down} Sleep, 50 Send {Down up} } ;********** ;D-PAD LEFT ;********** XInput_Init() state := Xinput_GetState(0) if(state) { dpadLEFT_pressed := state.wButtons & 4 if(dpadLEFT_pressed) { ;Msgbox, Does this work [%dpadLEFT_pressed%] ;Sleep, 2000 Send {Left down} Sleep, 50 Send {Left up} } ;********** ;D-PAD RIGHT ;********** XInput_Init() state := Xinput_GetState(0) if(state) { dpadRIGHT_pressed := state.wButtons & 8 if(dpadRIGHT_pressed) { ;Msgbox, Does this work [%dpadRIGHT_pressed%] ;Sleep, 2000 Send {Right down} Sleep, 50 Send {Right up} } ;********** ;START ;********** XInput_Init() state := Xinput_GetState(0) if(state) { start_pressed := state.wButtons & 16 if(start_pressed) { ;Msgbox, Does this work [%start_pressed%] ;Sleep, 2000 Send {S down} Sleep, 50 Send {S up} } ;********** ;BACK ;********** XInput_Init() state := Xinput_GetState(0) if(state) { back_pressed := state.wButtons & 32 if(back_pressed) { ;Msgbox, Does this work [%back_pressed%] ;Sleep, 2000 Send {B down} Sleep, 50 Send {B up} } ;************* ;LEFT SHOULDER ;************* XInput_Init() state := Xinput_GetState(0) if(state) { LShoulder_pressed := state.wButtons & 256 if(LShoulder_pressed) { ;Msgbox, Does this work [%LShoulder_pressed%] ;Sleep, 2000 Send {L down} Sleep, 50 Send {L up} } ;************** ;RIGHT SHOULDER ;************** XInput_Init() state := Xinput_GetState(0) if(state) { RShoulder_pressed := state.wButtons & 512 if(RShoulder_pressed) { ;Msgbox, Does this work [%RShoulder_pressed%] ;Sleep, 2000 Send {R down} Sleep, 50 Send {R up} } ;************** ;L-THUMB CLICK ;************** XInput_Init() state := Xinput_GetState(0) if(state) { LTClick_pressed := state.wButtons & 64 if(LTClick_pressed) { ;Msgbox, Does this work [%LTClick_pressed%] Send LEFT THUMB CLICK } ;************** ;R-THUMB CLICK ;************** XInput_Init() state := Xinput_GetState(0) if(state) { RTClick_pressed := state.wButtons & 128 if(RTClick_pressed) { ;Msgbox, Does this work [%RTClick_pressed%] Send RIGHT THUMB CLICK } ;********** ;L-TRIGGER ;********** XInput_Init() state := Xinput_GetState(0) if(state) { LTrigger_pressed := state.bLeftTrigger ;the "& [insert # here]" part doesn't seem to be required for the triggers if(LTrigger_pressed) { ;Msgbox, Does this work [%LTrigger_pressed%] ;Sleep, 2000 Send LEFT TRIGGER } ;********** ;R-TRIGGER ;********** XInput_Init() state := Xinput_GetState(0) if(state) { RTrigger_pressed := state.bRightTrigger ;the "& [insert # here]" part doesn't seem to be required for the triggers if(RTrigger_pressed) { ;Msgbox, Does this work [%RTrigger_pressed%] Send RIGHT TRIGGER } ;******************* ;L-THUMB Y AXIS DOWN ;******************* XInput_Init() state := Xinput_GetState(0) if(state) { LT_Yaxis_Down := state.sThumbLY & 3000 if not(LT_Yaxis_Down) { Msgbox, Does this work [%LT_Yaxis_Down%] pressed down } /* ;******************* ;L-THUMB Y AXIS UP ;******************* XInput_Init() state := Xinput_GetState(0) if(state) { LT_Yaxis_Up := state.sThumbLY & -32000 if not(LT_Yaxis_Up) { Msgbox, Does this work [%LT_Yaxis_Up%] pressed up } */ Return ;The number of closed braces below will match the number of buttons/triggers/joysticks being checked above } } } } } } } } } } } } } } } } } ;} ;this brace is commented out currently due to commenting out "L-THUMB AXIS UP" section F11::ExitApp F12::Reload F10::Pause, Toggle ; These nubmers are decimal conversions from the hexidecimal values in Xinput.ahk "Constants for gamepad buttons" section ; 4096 = A button ; 8192 = B button ; 16384 = X button ; 32768 = Y button ; D-pad UP = 1 ; D-pad DOWN = 2 ; D-pad LEFT = 4 ; D-pad RIGHT = 8 ; Start = 16 ; Back = 32 ; LEFT SHOULDER = 256 ; RIGHT SHOULDER = 512 ; LEFT THUMB CLICK = 64 ; RIGHT THUMB CLICK = 128 This is excellent! Sooooo much easier to read! Thanks for doing it, and for sharing! I will def use this execution as I keep poking away at this. The buttons/triggers were kinda easy....but the joysticks are proving to be a bit more of a challenge.
  2. wow....fuck me......this.....works! 🎉 There's no restriction with needing the AHK tray icon window open to read the controllers input! You also need the Xinput.ahk library for this to work of course! I'm still not 100% convinced this is going to be better than existing methods using other various remapping programs, but this is a HUGE hurdle that both of you have helped out with! Here is me testing with adding in additional buttons. all 4 face buttons work here, A, B, X, and Y. The values are hexidecimal in Xinput.ahk so needed to be converted into decimal format apparently in the main script. I encourage others to play around with this and come back with their experience! After I kid you not, months of random intervals of investigating this.....this is the first time I've gotten anything even remotely useful working! Thanks so much @JoeViking245 and @drw4013 👏😁 for coming along on what feels like a crazy roller coaster of info pulling us in different directions! #Include Xinput.ahk #Persistent SetTimer, checkForJoy1, 10 checkForJoy1: ;******** ;A BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { a_pressed := state.wButtons & 4096 if(a_pressed) { ;Msgbox, Does this work [%a_pressed%] ;Sleep, 2000 Send {k down} Sleep, 50 Send {k up} } ;******** ;B BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { b_pressed := state.wButtons & 8192 if(b_pressed) { ;Msgbox, Does this work [%b_pressed%] ;Sleep, 2000 Send {p down} Sleep, 50 Send {p up} } ;******** ;X BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { x_pressed := state.wButtons & 16384 if(x_pressed) { ;Msgbox, Does this work [%x_pressed%] ;Sleep, 2000 Send {d down} Sleep, 50 Send {d up} } ;******** ;Y BUTTON ;******** XInput_Init() state := Xinput_GetState(0) if(state) { y_pressed := state.wButtons & 32768 if(y_pressed) { ;Msgbox, Does this work [%y_pressed%] ;Sleep, 2000 Send {e down} Sleep, 50 Send {e up} } Return } } } } ; 4096 = A button ; 8192 = B button ; 16384 = X button ; 32768 = Y button
  3. I think we're on the same page. That user, evilC, is the author of UCR and seems to be a knowledgeable authority on these topics. I did like JoeViking's idea we should test with a MsgBox, I don't think I tried that. I always was trying to map for example the "A" button aka "button 0" (usually it's 0, some programs might start at 1 instead of 0) to output a keyboard key like "f". I didn't ever succeed doing this. And I also agree with Joe that there is no way AHK to output an xinput button press. That is how to got turned on to programs like virtualcontroller I agree on that! I never went through these troubleshooting steps detailed in the AHK docs. Take a look at this here: https://www.autohotkey.com/docs/KeyList.htm#SpecialKeys I was aware of that detailed page JoeViking shared, but I didn't have success implementing those methods So I shared that link because I figured I could find out if AHK was detecting a button press at all this way.....and it doesn't see squat from any of my xinput controllers. There is one exception, I noticed the large Xbox "X" logo button at the top of these controllers (to turn them on/off and bring up home screens and the like) that would always come up "not found". Otherwise it did not detect a single face button, trigger, or joystick whether it was joystick position or clicking them down. I tried all those huge libraries that were using commands like GetKeyState, anything and everything I've attempted has came up as a failure. I too was not capable to get a MsgBox or anything to run via AHK via an xinput button press on any of my xinput controllers. I appreciate your advice and tips here @JoeViking245, but I've got to side with @drw4013, I think this whole xinput and AHK being capable of working together has been broken for X time....either both DRW and I are on the wrong path together or AHK just isn't a feasible tool to use to remap xinput right now....in my humble opinion. I am on Windows 10, for what that is worth. And tried with Wired Xbox 360 (OEM Microsoft), Wireless Xbox One (OEM Microsoft and third party PowerA), and Wireless Xbox "Core" (Xbox Series X) controllers. All produced the same disappointing results. lastly here is a snip of the AHK key history detailing what I was talking about with no buttons detected. I hit the "LButton" left mouse click to go into the script in notepad, click on the Xbox controller "X logo" button once, and then hit every single key, trigger, and joystick twice in that 16.19 secs, and then hit the "X logo" button again. As you can see absolutely nothing was detected in between those "X logo" button hits. The LButton and F5 afterwards was to get to the key history page and update it to see the list. I repeated this test again today, also tried hitting the controller buttons with the AHK open window as the active window.....makes no difference in my case, nothing was detected besides the "X logo" button. Jesus christ.....after I write that dissertation length post I finally got something to work! But still not in a practical way. That stackoverflow page you linked to (https://stackoverflow.com/questions/66219307/detecting-joystick-buttons) worked if I HELD THE "A" BUTTON DOWN WHILE CLICKING ONTO THE SCRIPT TO RUN IT! I altered it a bit to see if it would in fact output something practical like a keyboard key and it did! This allowed me to run the script and have enough time to bring up notepad and send some keys. The commented out lines are fine to include as well and sent back the right button number of 4096 #Include Xinput.ahk Loop { SetTimer, checkForJoy1, 100 checkForJoy1: XInput_Init() state := Xinput_GetState(0) if(state) { a_pressed := state.wButtons & 4096 if(a_pressed) { ;Msgbox, Does this work [%a_pressed%] ;Sleep, 2000 Send {k down} Sleep, 50 Send {k up} } } } Return So perhaps there is some way to make this work better. It seems this users script just instantly exits otherwise. I'm missing something here from an AHK standpoint....this script looks like it should keep checking for if the A button is pressed every 100ms until I explicitly terminate the script. If I put a loop in I can keep it running, but get an occasional error about the Return being out of the braces if I hold the A button down for a long time. This is super easy to send too many outputs as is. Meaning this would be great for some rapid autofire kinda option, but otherwise needs a different approach so you do not send like 4 keys with 1 button press. So.....perhaps there is some messed up convoluted way to get all this shit to work but wtf who wants to go through all this?! I could have set this up with GlovePIE or UCR in less than a minute! All those K's are from my Xbox One controller! I didn't need any specific AHK window open to make those button presses be seen by AHK or send the k key! I don't grasp why this exits immediately (seeming immediately, if the MsgBoxes I added were not there), nor why it produces two MsgBox's here.....its like there is a "Loop, 2" line somewhere. This is how the script seems to behave by default, goes through the check and exits without any user intervention. You click OK on the "front" MsgBox (2nd one to pop up) it keeps popping back up....You gotta click on the the 1st MsgBox, then the 2nd to get the script to terminate. Hoping someone can give me a lesson on what I am missing here! Maybe there is something going on in the included Xinput.ahk file EDIT: So I figured that out...maybe....I put a "#Persistent" line in this script and that seems to get it to work in a practical fashion without a loop! I'm not sure if this is the "correct" way to deal with it though, I'm still really green to AHK so there might be a better approach
  4. farted around with this last night. Retroarch actually has internal settings for this I didn't know about. I was already using windowed fullscreen, so Retroarch's implementation of window fullscreen and exclusive fullscreen both make stuff like detecting pixel colors with AHK wrong. Not really Retroarch's or AHK's fault, it's just how graphic API and the hardware work, seems to bypass talking to the OS which makes sense, exclusive fullscreen prevents needing to render all that OS related stuff behind the game you're playing. I even used AHK to change Retroarch's window style to be completely borderless, no menu bar and all that stuff.....messed up part here is the second I did that it also screwed up how detecting pixel colors works.....even when it is windowed and not fullscreen. So, sad to say this method only works when in a standard window mode, which I would think 99.99% of gamers are not going to want to have to sacrifice having to play their games with window menus and icons and toolbars etc still showing on the display
  5. I maybe I got the controller's rumble to work with that example you mentioned too, but I def never got any actual button remapping work. Something seems so fishy about this because it's not like there is a lack of interest in it, yet there seems to be such poor documentation and discussion surrounding it. If ppl found a fix and workaround to use current AHK version on current/modern OS versions, I would think there would be more forums posts and discussions around such a topic.
  6. Hi there @drw4013 I think you are trying to do something that is more or less impossible with AHK. I've looked into this quite a bit myself and never got anything worth while working as far as using AHK to remap xinput style controllers! Key word here is XINPUT! AHK seems to have for the last several years not been able to do what you are trying to accomplish. All Xbox brand or third party Xbox type controllers are going to be XINPUT rather than DINPUT. I cannot confirm if AHK can work at all or better with DINPUT but it may work with DINPUT style controllers in the method you're employing here in your script. When I want to remap my Xbox controllers I use a program like GlovePIE or UCR, these can read xinput for the input, therefore allows you to make the output to something like the keyboard, exactly what you're after! I would have suggested virtualcontroller here too but I realized recently it only reads DINPUT for input. I didn't notice this before because it seems to take an xinput button and put it into the program as a dinput button....but then I found out the output never happens in those cases since it really can only read dinput. virtualcontroller does work fine for DINPUT controllers though. antimicro might be another option, I checked it out after seeing users talk about it here on this forum. I liked it enough I never deleted it after testing, but I admit I cannot remember if it reads xinput for input (like GlovePIE and UCR), or only could use xinput for output? (like virtualcontroller) Here is a couple pages I found a while back that led me to finally wave the white flag and conclude this just ain't happening with AHK and xinput. All the posts I came across there were some ppl saying it works, from posts a decade ago lol, anyone recently is going "hey this isn't working anymore!?!" https://www.autohotkey.com/boards/viewtopic.php?t=61326 https://www.autohotkey.com/board/topic/35848-xinput-xbox-360-controller-api/page-4 @JoeViking245, or anyone at that, please correct me here if I am off in left field on my understanding of AHK and xinput. I would love the ability to do this AHK, so if it is possible, please guide me on some setup steps.
  7. I don't know what "ReShadeManger.dll" does, I can guess it's some sort of manager for reshade lol. I have done basic setups with reshade when going through step by step guides, but otherwise know nothing about its actual operation process. I couldn't advise on anything specific beyond whatever you want to do in AHK
  8. When you get into games, you cannot start what? Did you configure a button or some combination of buttons to trigger exiting the emulator? If you did not, it makes sense you cannot exit the emulator/game via the controller There are youtube channels dedicated to LaunchBox tutorials! Here's one of them! https://www.youtube.com/c/UnbrokenSoftwareLLC/videos If you need to change from default settings then yes you need to configure each emulator accordingly. Everything still needs to be setup in LaunchBox though. If you cannot select Retoarch as the emulator for SNES system then that suggests you never added Retroarch to your list of emulators in LaunchBox. It sounds like you made the SNES system/platform, but never added an emulator to play games you added to the SNES system/platform I suggest to get familiar with the tutorials. They will provide details you need on getting yourself setup.
  9. 🤣LMAO I don't know about patience of a saint, but yes, I'd look like a spider web of cracks after reading this thread! I think you're making a mountain out of a mole hill. Who cares if it hits "o" in the Retroarch menu? IT DOES LITERALLY NOTHING.......as long as you are not trying to type! Hit the o key on your keyboard a million times even, it doesn't matter, it doesn't engage with anything within the menu. The only time the script will genuinely frustrate the user is if you are trying to type in Retroarch. I can only think needing to type during something like changing hotkeys or controller remaps. I tested plenty of times with 1 second interval for the key press and just smashing keys on my keyboard, it does nothing. The only time it mattered was when I would go into the hotkey menu and no surprise to anyone, after I hit enter on a hotkey to assign a new key it would populate with "o" if you were not fast enough to hit a key prior to the script sending "o"! That is with a 1 second interval though! This wouldn't happen unless you sat there waiting for the change overlay interval you entered. You are going to be using 60 secs or larger intervals I imagine, so you got up to that interval duration to type before any extra key gets pressed via the script. Do you really think you, your friends or family are going to be running said script at 60 sec+ intervals and trying to change hotkeys and controller remaps? I don't buy it for a split second that you could, with a straight face, say you need the ability to do that. My point here being is I don't think it's a good idea to even have F1 pausing the script, that is what the "PauseHotkey" was for. I did get your request to work with using PixelGetColor and PixelSearch. Using these commands you can search an area or specific coordinates, even looking for variation tolerances. I did it in a way so it was always looking for the CRT TV bezel part that has the 4:3 aspect ratio, as well as looking for colors specific to when the Retroarch menu comes up in any of the corners. But the problem with this is it only works in a windowed mode. Not sure if it will work in a "fullscreen windowed mode" (I'm gonna test that, eventually...some feedback suggests it should work.....others said no so I gotta see for myself), best I could test with so far is it works when Retroarch is in a window or maximized but that is still technically a window. It most certainly does not work in exclusive fullscreen. Tons of threads out and about on this quirk with those commands if you or anyone wants to know the nitty gritty details.
  10. Wow who could have predicted that! lmao glad it's working for you, but c'mon man that should have been checked first thing like I suggested. When troubleshooting you gotta start with the low hanging fruit first!
  11. USE "PAUSEHOTKEY" IN THESE SCENARIOS! I'll say it again...
  12. I did try to warn you about adding the BigBox pause screen hotkey and same train of thought applies here to the Retroarch menu toggle hotkey. There is a reason why I made a pause hotkey in the script! My thoughts were that was sufficient control. On the bright side, I did figure it out after taking a moment to review the script and AHK docs. The single change to fix this problem is highlighted in red RetroarchMenuHotkeyA = $F1 ;enter Retroarch Menu hotkey (physical) Other changes, WinActive function needs the quotes, changed syntax of ErrorLevel for better readability, used SendInput instead of Send. SendInput was my first idea to fix the hotkey issue that was ultimately resolved with the $ modifier symbol. SendInput is better but makes no real difference in this script I was happy to also figure out why certain keys worked like F12 and Left Control. SOME keys DEFAULT to use the keyboard hook instead of through the regular RegisterHotkey function. The $ modifier makes the hotkey use the keyboard hook instead! So that is why it resolves the problem! You can see what hotkeys are in the script and more info on them by clicking on the AHK icon and selecting "Hotkeys and their methods". You get a list like this for ex F12 and Left Control have no modifier, but shows k-hook for keyboard hook, hence why they worked by default during my troubleshooting....this was really confusing me for a moment. At the same time, it's why I figured it out. F1 shows k-hook because it's forced to use it after adding the $ modifier. Should you not want the extra pausing hotkeys on F1 and Pause keys (or whatever you have assigned them as), you can simply remove or comment out those specific lines. Here's what I'm calling the final draft of this. I'm happy with it now. It does what I want it to, I accomplished what you wanted, and I can confirm it all works properly since it got plenty of use over the weekend. I've wanted to do this ever since I noticed RocketLauncher had hotkeys for bezels. I thought it would be neat if it did it automatically rather than require the user to hit the hotkey. You had the same idea, but wanted it for Retroarch. Great minds think alike! Your request was the motivation to finally start, and complete, this project! ;*************************ENTER VALUES HERE************************************************************ OverlayHotkey = o ;enter Retroarch Change Overlay Hotkey secs = 60 ;enter number of seconds between changing overlay PauseHotkey = F12 ;enter key to toggle pausing the script RetroarchMenuHotkeyA = $F1 ;enter Retroarch Menu hotkey (physical) - USE $ IF NEEDED FOR COMPATIBILITY! RetroarchMenuHotkeyB = F1 ;enter Retroarch Menu hotkey (in menu selection) BigBoxPauseHotkey = Pause ;enter BigBox Pause Screen hotkey ExitHotkey = F11 ;enter key to terminate the script ;****************************************************************************************************** #SingleInstance, Force secs := secs*10 Hotkey, %PauseHotkey%, PauseHotkey Hotkey, %BigBoxPauseHotkey%, BigBoxPauseHotkey Hotkey, %ExitHotkey%, ExitHotkey Hotkey, %RetroarchMenuHotkeyA%, RetroarchMenuHotkey WinWait, ahk_exe retroarch.exe ;waits for Retroarch to exist before executing script Loop { Loop, %secs% { Active: If not WinActive("ahk_exe retroarch.exe") ;checks if Retroarch is active window every 1/10th sec { Sleep, 100 Process, Exist, retroarch.exe ;checks if Retroarch exists If ErrorLevel = 0 ;if Retroarch does not exist, terminate script { ExitApp } Goto, Active } Sleep, 100 } SendInput {%OverlayHotkey% down} ;Presses and releases the Change Overlay Hotkey Sleep, 50 SendInput {%OverlayHotkey% up} } RetroarchMenuHotkey: SendInput {%RetroarchMenuHotkeyB% down} Sleep, 50 SendInput {%RetroarchMenuHotkeyB% up} Pause, Toggle, 1 Return PauseHotkey: BigBoxPauseHotkey: Pause, Toggle Return ExitHotkey: ExitApp
  13. except for when you want to search by any number of the various other sets of info as detailed by C-Beats.....
  14. Yes but I found a quirk here, I don't know if it's my hardware which would be my keyboard, Retroarch or AHK. Didn't notice until your latest add on. Using F1 as a hotkey through AHK and having Retroarch use that as it's menu hotkey isn't working for me! It only triggers the AHK hotkey to pause the script, and not the hotkey behavior inside of Retroarch, actually toggling the menu. It seems to be some limitation of having the physical key have the same digital output as normal. If I make my physical key different, for ex F2 triggering F1 then it works. If I use different key/hotkey for both the physical input and the Retroarch Menu toggle hotkey it sometimes work, for example it works with both the physical key and Retroarch Menu toggle hotkey as F12 or with Left Control (but MANY keys I tried did not work when both input and output).....so this is why it might be how my keyboard is built or maybe this is standard issues for all users for all I know.... So you may need to change hotkeys in both the script and in Retroarch but this does work. All the previous stuff works fine still, that is solid, it's this new pause while toggling Retroarch menu being the oddball here Go to this comment for final version of script Old version of script
  15. hi @Sbaby glad it's helping you out, but you should use this version instead. it works better and makes it easier for anyone to put their specific values in. Go to this comment for final version of script Old version of script
  16. Under where the F12 hotkey is add in your BigBox Pause Hotkey so when you go into pause screen it pause the script. Though, I would think if the "o" (or whatever hotkey was assigned) is hit when on the pause screen it would do nothing, this shouldn't be an issue. You also would need to always leave the pause screen through hitting the pause hotkey or use the other AHK pause key to resume it. You're kinda adding an unnecessary layer. Regardless.... In essence you're making more than one hotkey do the same thing, pause the script. make sure to remove the comment marker ";" semi-colon at the start of the line when you do put in the BigBox hotkey so it executes that line I also added in a check to exit the script if retroarch closes Go to this comment for final version of script Old version of script
  17. Setup Dolphin in its normal standalone emulator format, as in don't use the Retroarch core version, and see if the hiccups go away. Be sure to launch your games directly through the emulator, as well as through LB (but to the standalone emulator, not Retroarch core) to see if the behavior changes between them also.
  18. The GPU, that is reasonable suspect to be tampered with if it is in fact only got 4GB of VRAM. I swear there is at least one rando new user every week signing up on TechPowerUp to go "help plz my GPU is fake how to fix!?" Too many ppl buying no name GPU's from China sold on Aliexpress!
  19. I can help with Retroarch, but not MAME because MAME doesn't have a change bezel/overlay hotkey. I don't think Retroarch assigns a hotkey to the change overlay hotkey by default, you need to manually enter the hotkey. In this example I set mine up as "o". What were doing here is using a script to automatically change the overlay every 60secs while still giving the ability to change with the Retroarch change overlay hotkey. You can change the hotkeys and the timing to your own preferences. You will need to edit the associated game and/or core/system configs appropriately to have multiple overlays for this to work. Go to this comment for final version of script Old version of script
  20. OK so I am coming back with bad news, I couldn't recreate the problem. I tested with Virtua Tennis on my existing setup and it worked fine. I then updated my setup to match yours the best I could, meaning I updated Retroarch, LaunchBox/BigBox, and making sure to use the same custome Pause Theme. I even copied/pasted in the settings you sent into the Flycast core option file. Despite doing all that not once did Retroarch ever lose focus when utilizing the pause screen. Whether I toggled the pause screen with the hotkey or actually clicked on "Resume" it returned to the game properly every time. I'd say this is bad news because it doesn't get you any closer to solving it. On the good news side, it eliminates a bunch of variables. It's not the Retroarch version, or core version, or LB/BB version, or Pause Theme. So this basically suggests the problem is on your end. The only differences I can think of are I am on Windows 10 and you're on Windows 11, and we would obviously have different hardware in our PCs. So now the next best thing you could do is to literally take the boot disk and your LB/BB disk (assuming you keep your LB/BB install separate from your boot/OS disk) and put them into another PC system. If the problem continues, it would eliminate your hardware being the culprit and suggest something about your particular OS install or maybe some setting for LB/BB. As long as you did do a test with Retroarch using all default settings, then it shouldn't be Retroarch. But if you have not yet done a fresh LB/BB test, I would try that as a hail marry attempt. Or even try starting with a different pause theme. It didn't matter for me, but who knows if it might matter on your setup Honestly, I gotta wave the white flag. I'm running out of ideas. Sorry, I wish it was easier to get to the bottom of this mystery!
  21. thanks for sharing. I'm def going to snag this program! After seeing your additional posts it seems this confirms raviol will still need to rename files though. I get it that it's certainly not the standard naming convention, but wonder which part(s) of it is the real problem. Is it the periods that are screwing it up? Or is it all the extra info not being in parenthesis? or both? For example, would this still be problematic? Alien.vs.Predator (2010)(English)(Disk 1) Just want to know for my own curiosity!
  22. I found a VBS script a few years ago that does this.....google "script to edit file names" it's the 1st hit. Use this to batch rename files. They provide great instructions on how to set it up and use it https://helpdeskgeek.com/how-to/use-this-script-to-rename-multiple-files-at-once-in-windows/
  23. OK that's all good to know! To keep testing this methodically I should test using the the same game(s) even I think. What are a couple games you saw this problem with and I'll make sure to test with them also? Also at this point we should consider what Retroarch version you are on? I have no idea what their version naming scheme is or what version I am on (not on my gaming PC right now to check) but for example if you're on 10.2 I'll also get 10.2 and try. My setup is at least a couple years old now and I don't update stuff like this really in fear it will break something. Point being for all we know we could find out it's a quirk of a specific version of Retroarch so making sure we do our due diligence here
  24. In MAME directly, as in the standalone emulator, I don't believe so. I would actually love it if someone could prove me wrong here though, it would be a welcomed feature! If you are using MAME through Retroarch then yes there is a way. Retroarch has a hotkey for the overlays, should be called "next overlay". Seems the intended design was to swap to the next available overlay listed in the associated config file. If you want to turn them on/off on the fly, this is also doable. This is something I recently setup for myself. It's pretty basic overall, but not the easiest to implement in the sense it was time consuming. The main thing you need do is edit the config file for the game or core/system. By default, assuming you got bezels initially setup through the Bezel Project, the config file will only be listing a single bezel associated for that game or core/system. So this file needs to change the line that details the number of overlays being just 1 to list 2 or however many you want if you would like to have multiple bezels available. Then you need to continue editing said config making a fake bezel entry. Take note how the config file lists out the file path to the photo to be used. If you were to leave that empty and not provide a file path at all it simply will not load a photo when that bezel is selected. It will end up looking like to the user, you, as if you had the ability to toggle the bezels on and off. Thanks to it being a hotkey you can assign this to any input Retroarch recognizes to turn them on/off in such an easy way, or to swap to different ones if you have multiple bezels for a single game or core/system. If you wanted for example three bezels to swap between and have a blank one you would need to make the number of bezels 4, one of those entries would need to blank (no file path) and the other three would list the appropriate file path to load the different photos So now you just edited and setup a SINGLE game and/or core/system. Now do that 9,000 more times or however many games core/systems you want to edit lmao sounds like a terrible time right? I ended up writing an AHK script that did all this work for me because doing it manually would be insane! Though I'll admit the amount of time I put into writing the script I probably could have manually edited all the config files in the same time frame 🤣! I am willing to share my script because I know it will make this undertaking so much easier. If you or anyone is interested, please let me know and I'll pass it along Another tip for doing the same thing with shaders with Retroarch. I wanted the ability to turn those on/off with the hotkey also so I setup a shader that basically does nothing so when I switch to that particular one it will look like shaders were turned off. No AHK hoops to jump through for this setup at least! Looks like your question got answered but wanted to make sure you know that RocketLauncher is pretty darn handy in the bezel department. You can setup multiple bezels with various "layouts" as in the size and position of the game displaying, and you can swap between them on the fly with a hotkey too. I think it's the best implementation of bezels I've ever used. As you know you can have multiple bezels with MAME but doesn't have a built in feature to flip between them on the fly
  25. Hey @Sbaby that sure is a bummer the problem still persists but you're doing the right thing trying to drill down what's going on. I unfortunately do not have the flycast core since I have no Dreamcast ROMs. I'm certainly happy to help, but this might take me days to do, not that I think it takes days to setup, just getting time put to the side to find stuff I assume this system needs like BIOS files and get a couple ROMs etc. I'm on slow as molasses internet lol. So I will definitely check this out and report back how it went for me, just be patient, it might take me a bit to complete. But in the meantime I wonder if some other user on here has a flycast Dreamcast setup and could test this out? If you're that person, you'd be doing us both a favor!
×
×
  • Create New...