Jump to content
LaunchBox Community Forums

jayjay

Members
  • Posts

    385
  • Joined

  • Last visited

Everything posted by jayjay

  1. 3Joy5:: if GetKeyState("3Joy6") Goto, SomeFunction Return 3Joy6:: if GetKeyState("3Joy5") Goto, SomeFunction Return SomeFunction: { Send {esc down}{esc up} } Return or 4 buttons: 3Joy5:: if GetKeyState("3Joy6") if GetKeyState("3Joy7") if GetKeyState("3Joy8") Goto, SomeFunction Return 3Joy6:: if GetKeyState("3Joy5") if GetKeyState("3Joy7") if GetKeyState("3Joy8") Goto, SomeFunction Return 3Joy7:: if GetKeyState("3Joy5") if GetKeyState("3Joy6") if GetKeyState("3Joy8") Goto, SomeFunction Return 3Joy8:: if GetKeyState("3Joy5") if GetKeyState("3Joy6") if GetKeyState("3Joy7") Goto, SomeFunction Return SomeFunction: { Send {esc down}{esc up} } Return
  2. The shutdown script is now pointless as you can shutdown through BB. The only thing I can think of why this wouldnt work is the n64 controller isnt the only controller or peripheral you have plugged in? Does the test script say what joy number it is... something like joy, 2joy or 3joy. Try changing joy10 :: Send {tab down}{tab up} to 2joy10 :: Send {tab down}{tab up} then 3joy10 and so on.
  3. I dont use jtk but a quick google says that jtk has "start joytokey in minimised mode". Try enabling that first. And remove the /m from this line. Have you tried googling the issue. What about creating a shortcut to jtk, right click shortcut, shortcut tab, run... select minimised. Then use: Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe.lnk If nothing works... solving something like this with ahk can be a pain in the ass. Here's a few scripts to try... SetTitleMatchMode, 2 Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe loop { if WinExist("MAME") { WinMaximize, MAME return } } $Esc:: { Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe /C Process, Close, {{{StartupEXE}}} } Inside the loop you see "MAME" twice. You may need to change this, I dont use mame so im not sure if "MAME" will work, it needs to be a word that is in mame's window title. To find the window title, start mame, minimise it, hover over the mame icon on taskbar, your get the little window popup with the window title. I assume it will include the word mame. This script is case sensitive so make sure to get upper and lower case correct. SetTitleMatchMode, 2 Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe loop { if WinExist("MAME") { WinRestore, MAME return } } $Esc:: { Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe /C Process, Close, {{{StartupEXE}}} } SetTitleMatchMode, 2 Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe loop { if WinExist("MAME") { WinActivate, MAME return } } $Esc:: { Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe /C Process, Close, {{{StartupEXE}}} } SetTitleMatchMode, 2 Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe loop { if WinExist("MAME") { PostMessage, 0x112, 0xF030,,, MAME return } } $Esc:: { Run, C:\Users\MAME\Downloads\JoyToKey_en\JoyToKey.exe /C Process, Close, {{{StartupEXE}}} } And iv just read your post saying your trying to use this with Desmule and xroar. I cant be bothered to change all the times iv said mame in this post. So in the scripts swap out the word mame for whatever word is in the window title for desmule and xroar.
  4. I'm hoping... one day... we get a console theme for BB which would allow something like Games -> Platforms. I'm guessing as it's only a warning it's still possible to nest platforms. So out of curiosity why the warning about nesting platforms?
  5. Follow the same steps as my previous post. But type this: RomPath = %1% %2% %3% %4% %5% SplitPath, RomPath, RomName Run stella.exe "%RomName%" Exitapp If it works, it should work with any game. The only issue is... if you have any additional apps for any games using stella or any ahk code in the stella autohotkey tab within launchbox. They wont work correctly. Launchbox will think this script is the emulator and when this script exits any addition apps or ahk script will exit as well.
  6. Thanks guys. I have to say this because it would of been excellent if it worked. It was my missing video's that first gave me the idea, I started working on that first. But realised that it might be possible to make an automatic screenshot tool. The way it works is... You would choose a platform. The plugin would create the list of games with no screen shot. It would automaticially start the first game. Then using autohotkey, have it repeatedly send the "start" button for 10 seconds or so. Then have it hold down right for 10 seconds or so, as you guys prob know using ahk you can simulate any key press. The idea being, simulate key presses to get from a games title screen into the game. It would then automatically take a screenshot or multiple screenshots. Then automaticially exit the game. The plugin would then automatically play the next game missing a screenshot and it would repeat this til completion. So basically you would click a couple of buttons and watch game after game start, get passed the title screen, move about a bit, exit the game and accumulate screen shots without any other input. Obviously it wouldn't work to well on platforms such as Wii or Windows etc but I tested it on Nes about 30 games. Successful screen shots was only about 50%. I ended up with some screenshots that were paused, some still at the title screen etc. Would of been cool if it worked with better success rate. Anyway I'm waffling... The missing video's... Its out of my skill level to make something to.record a video. I have searched a little for a script that can do it but haven't found anything yet. My fall back idea is to make a plugin that creates a list of games missing a video. And use the Windows 10 gamebar or maybe OBS along with the plugin to basically create a tool similar to the missing screenshot tool but for video's. It won't be exactly the same but will still reduce the amount of work it takes to complete a platforms missing video's.
  7. Right click anywhere within the Stella directory. New. Autohotkey script. Right click. Edit. Under the lines already there type. Msgbox %1% %2% %3% %4% %5% Save. Right click on new script. Compile. In LB tools. Manage emulators. Stella. Point the path to to the compiled scripts .exe. Run a game. If a msgbox does show with the path to the game. I'll write a simple.script that should hopefully launch any game using this method. But won't be til later. Gotta leave for work in 10mins.
  8. Iv re-read this thread and im thinking it's at a point that nothing is going to work for you but anyway... You previously created a bat file only using the file name? Adventure.bin or something. Have you tried in launchbox go to tools, manage emulators. Choose Stella and select the option that says.. use filename only without file extension etc etc. I doubt it will work though. I keep getting errors like that with the launchbox ahk.exe. You could try downloading autohotkey and installing it. It's free. Make sure to install the correct version, either 32/64 bit. Then try something like... Copy adventure.bin into the same directory as Stella.exe. Right click anywhere inside that directory and choose... new... autohotkey script. (The script needs to be in the same directory as Stella.exe and adventure.bin) Right click on script and edit. Or open with notepad. Don't delete the lines of text that are there... Under them lines type... Run Stella.exe "Adventure.bin" Or Run Stella.exe "full path to adventure.bin" Include the quotes. Save it. Double click on the script and see if the game launches or not. If it doesn't then I'm also out of ideas.
  9. How to Install: Download this: MissingMediaTool.zip Extract it to Launchbox/Plugins/. Go here and download the windows package, http://www.ffmpeg.org/download.html Extract it to Launchbox/Plugins/MissingMediaTool/. Rename the folder to "ffmpeg" (all lower case). There is 3 .exe in the package. ffmpeg.exe, ffplay.exe, ffprobe.exe. The path to these exe's should be "Launchbox/Plugins/MissingMediaTool/ffmpeg/bin/". Go here, download and install this, https://sourceforge.net/projects/screencapturer/ Things to note: If its red, you dont have it, if its green you do. If you do have a video then this plugin wont record gameplay for that game. If you do have a screen shot, then screen shots will be disabled for that game. Scale: If you plan on cropping your video set this scale to "Off". If playing game in full screen, set scale to 640:480 to reduce the size (picture and megabytes) which will bring the video more in line with what you find at emumovies. (Searching through the clips I have downloaded from emumovies Iv only found 640:480 and 320:240, so that is all I have added, if you want anything else, let me know and I'll add it) Gamepad hotkeys, these are the screenshot hotkeys. If using a keyboard the keys for screenshots are "Control" + "Capslock" (Why capslock? because I have no idea which keys any emulator uses but capslock isnt going to be used... surely?, again if any better suggestions let me know). If using a gamepad your have to navigate with keyboard to the "Gamepad hotkeys" on your first start up. You can have either a 2 or 3 button combo to take the screen shot. To have a 2 button combo, select your 2 buttons and let the timer run to zero. If you want to disable the gamepad after you have set the hotkeys, go to Launchbox/Plugins/MissingMediaTool/Include/Script/ and delete Gamepad.ahk. Save folder: if you are saving your videos/screenshots to the plugins folder, make sure to put your videos/screenshots into the launchbox directory before you start this plugin and choose the same platform again. The plugin wont pick up the media inside the plugins folder and will overwrite any games videos/screenshots that have been done previously. The only issue here I still have is framerate. My machine can only record at 30 fps. Im not sure if putting the fps higher will spit out a clip with the higher fps. If it doesnt and your willing to test I'll create a simple to use plugin to get it working. If you record a game and the video playback is to fast, lower the framerate. Images. When you crop an image, it wont remove the original image, you have to delete it. Once you get the crop to exactly where you want it, turn auto crop on and any image taken after, will be cropped automatically. When taking a screenshot, I havent tested to see what happens if you spam the hotkeys... As you can record and take screenshots at the same time, I imagine nothing happens. But maybe give ffmpeg a second before taking another screenshot. I think I covered most of this in a post below. Scale: This scale will only turn on if using crop. If you crop your video to, lets say 520x360, and you scale 640x480, your stretch your video and it'll look bad. Your want to scale lower than your crop. When your ready to create a video, you press "create video", as the video is being created any key presses wont register on this screen. Its just a simple... if this create video variable = true, then this listview key press event is ignored. Its so you cant press any buttons til the video has been created. You can still alt+tab away from this screen no problem. Iv uploaded 25 psp video clips and a few screen shots to the game media section that was made with this, if you wanna check them out. Unless I get any complaints, I think iv finished with this plugin.
  10. Hey @alec100_94. Would you mind helping me out with something please. public class Class1 : IGameMenuItemPlugin, ISystemEventsPlugin { IGame[] _filteredList; public string SelectedGamePlatform { get; private set; } public bool SupportsMultipleGames => false; public string Caption => "testing"; public Image IconImage => null; public bool ShowInLaunchBox => true; public bool ShowInBigBox => false; public bool GetIsValidForGame(IGame selectedGame) { return true; } public bool GetIsValidForGames(IGame[] selectedGames) { return false; } public void OnSelected(IGame selectedGame) { SelectedGamePlatform = selectedGame.Platform; IGame[] _allGames = PluginHelper.DataManager.GetAllGames(); IGame[] _filteredList = Array.FindAll(_allGames, GameCheck); _filteredList[0].Play(); } public void OnSelected(IGame[] selectedGames) { return; } private bool GameCheck(IGame g) { if (g.Platform == SelectedGamePlatform) { if (!File.Exists(g.GetVideoPath())) { if (g.Broken == false) { return true; } else { return false; } } else { return false; } } else { return false; } } public void OnEventRaised(string eventType) { if (eventType == "GameExited") { _filteredList[1].Play(); } } } How would I access the _filteredList[] from the OnEventRaised. Everything iv tried results in nothing happening. I want to be able to exit a game and have the next game that is missing a video launch on the previous games gameExited event. Hope you dont mind me bothering you with this.
  11. Lol. Ok. Thats slightly better than my work. And thanks for git link, iv been using others examples as well. Check this out. This is retroarch save states as gamemenuitem. It even uses wpf... yeah. Now picture if you will... based off my plugin above... the code behind this lol. And no Im not showing you or anyone haha.
  12. Heres our thread: https://forums.launchbox-app.com/topic/46069-pause-menu/ Heres a vid of where we at so far: https://www.youtube.com/watch?v=3FGAz2J0TuU&feature=youtu.be We are using autohotkey because its simple and a lot less frustrating, I struggle finding the time to learn c#. By the way im a ground worker. I move heavy stuff, concrete floors, cement blocks, basically grunt work. Coding doesn't come natural to me, I guess its just a hobby. Im not expecting you to be able to help with anything as im not sure there's much needs doing and also if your capable of bringing yourself down to my level haha. Heres the plugin iv manage to scrape together so far: namespace ClassLibrary2 { public class Class1 : IGameMenuItemPlugin { public bool SupportsMultipleGames => false; public string Caption { get { return "Launch With PM"; } } public System.Drawing.Image IconImage { get { return null; } } public bool ShowInLaunchBox => true; public bool ShowInBigBox => true; public bool GetIsValidForGame(IGame selectedGame) { string retroarch = "retroarch.exe"; foreach (var emu in PluginHelper.DataManager.GetAllEmulators()) { var emuid = PluginHelper.DataManager.GetEmulatorById(emu.Id); string emuapp = emu.ApplicationPath; string someBS = emuid.ToString(); if (emuapp.Contains(retroarch)) { Emulator = "RetroArch"; if (selectedGame.Platform == someBS) { return true; } } } if (retroarch == "returnthisyouprick") { return true; } else { return false; } } public bool GetIsValidForGames(IGame[] selectedGames) { return false; } public void OnSelected(IGame selectedGame) { var emulatorID = PluginHelper.DataManager.GetEmulatorById(selectedGame.EmulatorId); var emuPath = emulatorID.ApplicationPath; string emuFileName = Path.GetFileName(emuPath); string PmPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "PauseMenu", "Scripts", Emulator + "-" + selectedGame.Platform + ".exe"); string PMArg = AppDomain.CurrentDomain.BaseDirectory + "|" + emuFileName + "|" + selectedGame.Platform +"|" + selectedGame.GetVideoPath() + "|" + selectedGame.FrontImagePath + "|" + selectedGame.BackgroundImagePath + "|" + selectedGame.BackImagePath + "|" + selectedGame.Box3DImagePath + "|" + selectedGame.Cart3DImagePath + "|" + selectedGame.CartBackImagePath + "|" + selectedGame.CartFrontImagePath + "|" + selectedGame.ClearLogoImagePath + "|" + selectedGame.GetMusicPath() + "|" + selectedGame.ScreenshotImagePath; Process PM = new Process(); PM.StartInfo.FileName = PmPath; PM.StartInfo.Arguments = PMArg; PM.Start(); } public void OnSelected(IGame[] selectedGames) { return; } } } The valid for method... I want it to be valid for certain emulators, in this case retroarch. I haven't spent much time on this but reasons unknown to me, somehow this seems to work. In my mind this makes no sense. But @Axenn did suggest this: var emulators = PluginHelper.DataManager.GetAllEmulators(); // it's an array you could access by the row, example: emulators[0].ApplicationPath; Which is obviously a little more elegant than my mess haha. I just haven't got round to it yet. As you can see in the onSelected method this plugin will launch "Emulator filename-Platform.exe". I was thinking of creating multiple scripts based on platform but that creates a mess if I wanted to update stuff. I haven't figured out exactly what to do just yet. The onSelected will also send image/video paths etc as arguments as autohotkey can capture these. I can then give the user the option of displaying front-cover, per game video etc etc within the menu. But at the moment this will only work as a gamemenuitem using play() which means It wont open if the user chooses "launch with" etc. As you can see from my terrible code I am a proper noob. I didnt read any tutorials or learn anything c# before jumping in to LB api and using google. I know this is naughty, I could tell how naughty from how many down votes Iv got on stackoverflow since iv started c# haha. Anyways as I said I dont think theres much to say, but thought I would share what we are up to.
  13. You no doubt know more than I do. Im a c# noob as well as a LB api noob. With jasons advice Iv been trying, when I can, for a couple of days now to get game info on gamestarting event without success, as you say it seems the onselected methods are just for game/menu items. Im trying to get image/video paths etc for any game that is launched with the "Play" and "Launch With" options in the game menu. Avoiding the need for the user to select my plugin from the game menu. Maybe jason misunderstood my non technical mumbo jumbo, that or im to dumb to work it out. Anyway I apologise, I have no code to share that works.
  14. Im not to great with the technical stuff but im assuming your number 1 request is the same question i asked in the themes/xml help thread recently. Jason replied with something like. Use the onSelected method to store private variable to access with the gamestarting event. I was sort of on the right track with that one but not quite. You'll see my noob code skill in that thread also. Unless iv miss understood your request which is highly likely.
  15. The code I was going to post but edited for fear of embarrassment was: public class Class1 : ISystemEventsPlugin, IGameMenuItemPlugin { public string AppPath { get; private set; } public bool SupportsMultipleGames => false; public string Caption => null; public Image IconImage => null; public bool ShowInLaunchBox => true; public bool ShowInBigBox => false; public bool GetIsValidForGame(IGame selectedGame) { return true; } public bool GetIsValidForGames(IGame[] selectedGames) { return false; } public void OnEventRaised(string GameStarting) { if (GameStarting == "GameStarting") { MessageBox.Show(AppPath); } } public void OnSelected(IGame selectedGame) { string AppPath = selectedGame.ApplicationPath; } public void OnSelected(IGame[] selectedGames) { return; } } But my message box was always blank. Was I on the right track or have I just embarrassed myself again lol. That's a rhetorical question, don't answer that. Anyway Thanks @Jason Carr. I'll keep trying.
  16. I have another noob api question if someone wouldn't mind helping me out please. Is it possible to achieve the following: public class Class1 : ISystemEventsPlugin, IGameMenuItemPlugin { public bool SupportsMultipleGames => false; public string Caption => null; public Image IconImage => null; public bool ShowInLaunchBox => false; public bool ShowInBigBox => false; public bool GetIsValidForGame(IGame selectedGame) { return true; } public bool GetIsValidForGames(IGame[] selectedGames) { return false; } public void OnEventRaised(string GameStarting) { if (GameStarting == "GameStarting") { MessageBox.Show(selectedGame.ApplicationPath); //Here } } public void OnSelected(IGame selectedGame) { return; } public void OnSelected(IGame[] selectedGames) { return; } I want to be able to get selectedGame info on GameStarting event. I have tried different things but haven't managed to achieve it. Im not asking for someone to write me the code, maybe just point me in the right direction please? Im leaning towards using a GameMenuItem plugin and Play() but if a user wants to use the "Launch With" option from the game menu then my plugin im bodging together wont do anything on game launch.
  17. This is my audit for wiiware. The thing is I only have front cover and background images, no others. Why does the audit say I have images that are not there? This wouldn't normally bother me but I think this also is the reason im having issues using the api. For instance if I use selectedGame.Cart3DImagePath I will get selectedGame.FrontImagePath. If I use selectedGame.Box3DImagePath I will again get selectedGame.FrontImagePath. Is there anything I can do to have the above commands return the correct info... Do I have to use GetAllImages()? If I have multiple background images and I used GetAllImages() I would receive all the background images when all I want is 1 background image. My terrible c# skills makes it difficult for me to sort the images using GetAllImages(), am worried I will create unnecessary variables and crap code and such.
  18. This is for the main window. This is for the saved and loaded windows. This is for the main window buttons. We still got to make the editor more presentable. All the red question marks will have (not done yet)... i suppose you could call them hints of what we come across while making this. I went for 4 moving images. We done this because when image 1 and 2 over lap there is issues, same with image 3 over lapping image 4. But images 1 and 2 can over lap images 3 and 4 without any problems. We're at about 20k lines of code. I think we'll work towards the saving the settings stuff next and then launching with different emulators. We'll hold off on the LB media for the time being til I can work a couple of c# things out. So yeah that's where we at.
  19. Its my fault things are going slowly. Life gets in the way. I think i have the theme editor almost complete minus the LB media. Finding a way to pass the media to the correct script is proving difficult for me and my poor c# abilities. I'll try post couple of screen shots of where im at later. Iv still got to get editor to save settings etc and make a way for the different emulators to launch the correct pause menu. Sorry for poor desciption. In a rush, gotta get to work.
  20. How about trying... If u want to know what commands launchbox is sending stella. Go to launchbox/autohotkey Copy and paste the autohotkey.exe Rename it to test.exe Create a new .txt file in the same directory. Open it and copy the following into the txt file Msgbox %1% %2% %3% %4% %5% Save the txt file and rename it test.ahk (filename is test, extension is ahk) In launchbox change stella path to test.exe and run a game. A message box will show up with the commands launchbox would be sending stella. If someone else who has stella working also does it you can compare results. If using command line works on stella. You could try... Find out if %1% or %2% or whatever % gives u the game name. .bin is it? Copy autohotkey.exe into stella directory. Rename it whatever. Create .txt file and copy the following Run "stella.exe" %2% The %2% being whatever % gave you the game path. Save txt file with extension .ahk and also as the same file name as the .exe. In launchbox change stella path to the .exe and run a game. If it works every game should work. You might want to google ahk run commands with arguements to make sure i got that right. Im not near my pc at moment so cant check. Also i dont use stella so... yeah.
  21. I dont know about taskkill. Actually i dont really know much else than ahk. Sorry mate doubt i'll be able to help with this problem. Have you tried using alt or ctrl as your exit buttons. Although i doubt that will work either but alt and ctrl arnt disabled by any games. Other than that im out of ideas.
  22. Some games wont respond to autohotkey at all, some games will respond in windowed mode only, using windowed mode along with a script that removes the title bar isnt to bad... but anyway I can close shift 2 using ahk. Something like: A:: Process, Close, shift2u.exe Pressing A on keyboard closes the game. Just tested it on my pc. Works for me. Some games wont close unless script is set to run as admin. But didnt need to do that for shift2.
×
×
  • Create New...