Jump to content
LaunchBox Community Forums


  • Posts

  • Joined

  • Last visited

Everything posted by jayjay

  1. No we cant update the caption. If I have a game menu item that needs to display that it has been selected, an enable/disable button for instance... I display a custom user control, enabled => control visible, disabled => control collapsed. Its not ideal, especially if you plan on sharing the plugin.
  2. jayjay

    Naming PS2 games

    Yeah its in the image. As I said its ugly. I was writing a save state manager type app for LB and pcsx2 saves the states using the blusXXXXX code. I never did finish it or clean up the code but it works. private string Get_Id_PCSX2(string romPath) { string id = string.Empty; if (romPath.ToLower().EndsWith(".iso") || romPath.ToLower().EndsWith(".bin")) { byte[] bytes = Get_Bytes(romPath, 0, 1000000); string s = GetIdFromString_PCSX2(Encoding.ASCII.GetString(bytes)); if (!string.IsNullOrEmpty(Check_Id(s.Replace("-", "")))) { return s; } } else { return string.Empty; } return id; } private byte[] Get_Bytes(string path, int origin, int length) { byte[] data = new byte[length]; using (BinaryReader reader = new BinaryReader(new FileStream(path, FileMode.Open))) { reader.BaseStream.Seek(origin, SeekOrigin.Begin); reader.Read(data, 0, length); } return data; } private string GetIdFromString_PCSX2(string data) { string id = string.Empty; if (data.Contains("SCUS-")) //NTSC-U { int length = data.IndexOf("SCUS-"); id = data.Substring(length, 10); } else if (data.Contains("SCUS_")) //NTSC-U, contains underscore and period { int length = data.IndexOf("SCUS_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SLUS-")) //NTSC-U { int length = data.IndexOf("SLUS-"); id = data.Substring(length, 10); } else if (data.Contains("SLUS_")) //NTSC-U, contains underscore and period { int length = data.IndexOf("SLUS_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SLES-")) //PAL { int length = data.IndexOf("SCES-"); id = CleanPS2(data.Substring(length, 10)); } else if (data.Contains("SLES_")) //PAL, contains underscore and period { int length = data.IndexOf("SLES_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SCED-")) //PAL { int length = data.IndexOf("SCED-"); id = data.Substring(length, 10); } else if (data.Contains("SCED_")) //PAL { int length = data.IndexOf("SCED_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SCES-")) //PAL { int length = data.IndexOf("SCES-"); id = data.Substring(length, 10); } else if (data.Contains("SCES_")) //PAL, contains underscore and period { int length = data.IndexOf("SCES_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SLPM-")) //NTSC-J { int length = data.IndexOf("SLPM-"); id = data.Substring(length, 10); } else if (data.Contains("SLPM_")) //NTSC-J, contains underscore and period { int length = data.IndexOf("SLPM_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SLPS-")) //NTSC-J { int length = data.IndexOf("SLPS-"); id = data.Substring(length, 10); } else if (data.Contains("SLPS_")) ////NTSC-J, contains underscore and period { int length = data.IndexOf("SLPS_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("PBPX-")) { int length = data.IndexOf("PBPX-"); id = data.Substring(length, 10); } else if (data.Contains("PBPX_")) { int length = data.IndexOf("PBPX_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("PCPX-")) //NTSC-J { int length = data.IndexOf("PCPX-"); id = data.Substring(length, 10); } else if (data.Contains("PCPX_")) //NTSC-J, contains underscore and period { int length = data.IndexOf("PCPX_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SCAJ-")) //NTSC-J { int length = data.IndexOf("SCAJ-"); id = data.Substring(length, 10); } else if (data.Contains("SCAJ_")) //NTSC-J, contains underscore and period { int length = data.IndexOf("SCAJ_"); id = CleanPS2(data.Substring(length, 11)); } else if (data.Contains("SCKA-")) //NTSC-K { int length = data.IndexOf("SCKA-"); id = data.Substring(length, 10); } else if (data.Contains("SCKA_")) //NTSC-K , contains underscore and period { int length = data.IndexOf("SCKA_"); id = CleanPS2(data.Substring(length, 11)); } if (id.Length == 11) { id = id.Remove(8, 1); } return id; } private string CleanPS2(string s) { StringBuilder sb = new StringBuilder(s); sb.Replace(" ", ""); sb.Replace("_", "-"); sb.Replace(".", ""); return sb.ToString(); } private string Check_Id(string id) { foreach (char c in id) { if (!char.IsUpper(c) && !char.IsNumber(c)) { return string.Empty; } } return id; }
  3. jayjay

    Naming PS2 games

    Cant help with .chd or any other format other than iso or bin. I have some ugly c# code to get the SLUSXXXXX code from bin or iso. I assumed if your using them on PS2, your roms might be iso, I know nothing about PS2 homebrew. Anyway if you want the code I can post it.
  4. jayjay

    Naming PS2 games

    What format are your roms in? iso or bin or?
  5. We cant add plugins to the pause menu. Unlike the game menu and system menu, we don't have an interface for pause menu. It'd be good to get a "PauseMenuItem" and also a "PauseThemeElement". But the problem is, not many people would use it. Jason and/or C-Beats would spend considerable time implementing it knowing its not gonna get much use. Which is a shame but understandable. At this moment in time its not possible to cycle through your save states in the pause menu.
  6. Hey @daz Like the other guys I have issues with the resolution. I was using play box 3 since you released it on the forums. Its a great theme. But since I got my new 50inch TV none of your themes look right, I have tried changing to different resolutions but no joy. Im assuming the reason why is because you use precise numbers, Width="500" or Margin="-100,0,200,0" etc etc I was hoping, if you build another theme, you would consider using the community theme editor, the reason why is because it has built in converters that will automatically scale your theme to other screen resolutions so you "should" only need to build the theme once. If, like me, you find it easier to work with xaml than the theme editor, what you could try... start a new theme with the editor, move some stuff about, add some widths and heights etc etc. Save the theme and take a look at the generated xaml's. You will see, for example, the width will look like this: Width="{Binding ElementName=Canvas,Path=ActualWidth,Converter={StaticResource ScalePropertyValue},ConverterParameter=W;500;1920}" This will pass values to, in this case, the "ScalePropertyValue" converter. The first part: Binding ElementName=Canvas,Path=ActualWidth this will pass the current width of the canvas to the converter. On your screen that could be 1000 but on my screen it could be 1100. The last part: ConverterParameter=W;500;1920 W: this tells the converter its a width property. Would be "H" for height or "X" for x coordinates etc etc. 500: this is the width we want the control to be. So if we wanted an image to be 500 pixels wide, we would add 500 here. 1920: The width of the screen the theme is created on. When the theme is loaded on a screen with different resolutions the converter will "do the math" to resize the control to fit the different screen resolution. Instead of using the actual theme editor you could just edit the generated xaml files but use the converters instead of precise numbers. The converters can also automatically scale margins, thickness, fontsize etc etc You may already know all this and your more than welcome to tell me to F off. But I thought I would mention it as I always use your themes but cant anymore. Anyway thanks for the time you put into your themes.
  7. If you close LB.... Remove all the custom badges .dll files from your Launchbox/plugin folder, then start LB again. Do you still get any errors?
  8. By the look of it, it seems there is no particular sort order, well none that I can work out: For better sorting you will have to create a feature request on Bitbucket. Its not something we have any control over with the badges.
  9. The LB Custom Badge.zip in the OP has been updated. The "Index" option has been removed as LB sets this for us. Thanks @C-Beats for helping me out with that.
  10. Oops sorry. Turns out I needed quotes around the paths and quotes around the whole command. Redownload the zip from the OP, Hopefully that fixes it.
  11. Solved the problem by switching the badge to .netcore, turns out it wasn't as "long" as I thought it would be. Updated OP.
  12. @Shelibor I have attempted to get this to work with the latest launchbox but I cant resolve a system drawing mismatch error. Im not willing to spend anymore of my free time trying to fix it. Sorry mate. Next time I get some time off work I'll attempt it again but for the foreseeable I wont be updating this.
  13. You could use LB's API or ahk script/additional apps options to implement it yourself. Maybe even share your code with the community to help out those who can't do it.
  14. Iv updated this plugin, I haven't much time to test so it will need some proper testing. Focus On Game Exit.zip Download it. Right click, properties, unblock. Extract the folder to Launchbox/Plugins. It has the original focus plugin built in but now has the option to override the original plugin on a per game basis. The focus being on games that uses launcher exe's. Right click on a game and select "Focus On Game Exit". Option 1 - Replace: Theoretically this should work with shut down screens. But don't hold me to it. Exe1 - this needs to be the 1st .exe the game uses. Wait - this is the amount of time, in seconds, to wait between... when the 1st exe closes and the 2nd exe launches. Its a delay to give the 2nd exe time to "properly open". Exe2 - this needs to be the secondary exe. Make sure Exe1 and Exe2 are spelt exactly the same as the games exe's. Including upper and lower case letters. IMPORTANT NOTE: this method comes with a major downside. The way this option works is by replacing the games launcher exe with an autohotkey script. This means that this option isnt compatible with portable LB setups. It also means that at any point, if you delete this plugin's directory you cannot restore the games original exe path... this path: If you want to remove this plugin but you have added a "Replace" script. Enable the "Focus On Game Exit" badge: This will make it easy to track down games that uses this plugin. Right click on the game and select "Focus On Game Exit" and press the delete button to restore the "Default Path". The default path... this: The ONLY time you need to change this path is if you move the associated game files. Otherwise dont change it at all. If using this option, you do so at your own risk. Option 2 - Window; Wont work with shutdown screens. Window 1: this is the games launcher window title. Wait. How many seconds to wait before the 2nd window opens. This is also a timeout (which may need more work). If the 2nd window doesn't open for whatever reason the timeout will elapse and should close the script. Window 2: the games secondary window title. Both window options need to be spelt exactly the same as the games window titles. This hasnt been tested a great deal. Option 3 - EXE: Wont work with shutdown screens. This option is the same as option 1 but it will not replace the games path in LB. The "wait" option, like option 2 is also a time out. To recap: Option 1 modifies LB data, use at your own risk. Options 2 and 3, does not modify LB data. Options 2 and 3, the ahk scripts could prob use some work. Can find the scripts in the plugin directory. If anyone has any suggestions for the scripts then let me know. Consider this a beta, I would suggest not adding the override scripts to a load of games til it has been properly tested.
  15. Looking at time crisis 5 files, I assume it first launches "RSLauncher.exe" then launches "TimeCrisisGame-Win64-Shipping.exe". At the weekend I'll make a plugin that will attempt to focus BB on game exit when playing a game that launches multiple exes.
  16. Sometimes when launching from a .exe, that .exe will then launch another .exe at which point LB will assume the game has quit and the plugin will launch the ahk while the game is still running. If that's not the case I'm not entirely sure why it isn't working correctly. Activating windows to bring them to the front can be a bit finicky at times. What game isn't working correctly? Is it a steam or gog game or what?
  17. @narnz Iv updated the OP. Turns out the manual method is actually just "another method". I imported persona using the original method without problems so not sure why you couldn't. Anyway I would suggest deleting the "Launchbox/Plugins/PS3BBTrophy" folder. Delete the "Launchbox/Images/Sony Playstation 3 Trophies" folder and import everything again using the new plugin. Let me know how you get on.
  18. Thanks @narnz i'll work on adding a manual method. It'll prob take me some time though.
  19. Thanks. Could you also tell me the serial for persona please:
  20. @narnz To do the manual method would require me to code some stuff, it'll require quite a change. The only game I have had that fails to import was because the game itself was corrupt. Could you open the log file and let me know if persona ends with either ----1, ----2 or ----3 so I know where it fails please.
  21. I made a pos plugin some time a go. It was called missing media tool. I was going to improve upon it but never did complete it. I couldnt find any search api's that didnt require an api key or didnt charge for going over a quota... but anyway I started the design: At first I used a winforms webbrowser but its outdated, could get images from google search but couldnt really do much else with it. Then I tried cefsharps chromium, it works well but I dont know if its safe to browse the net with it, dont know what the security is like. Also the biggest problem was adverts, no ublock origin meant im not using it. What I was going to do instead... where you see the black space in the image above, I was going to make that space transparent so to be able to click the mouse through it. Place my browser (chrome or firefox or whatever) in that black space. It would look something like this: Using this method I wouldnt have to worry about updating the webbrowser, I could play on the net etc etc, keep Ublock goodness and click back and forth between the plugin and chrome. Where you see the "Search" button, all it would do is copy your search term to clipboard, then you would right click your browsers address bar and paste the search term. When you found an image just copy the images link to clipboard and in the plugin window press the "Get" button to grab the link from clipboard and use webclient to download the image straight into Launchbox directory. Im just not finding the time to continue coding the things I start so I doubt this will be completed. The point of this post was to give my suggestion on a way to achieve this without relying on api's. If anyone wants to attempt my suggestion it's pretty simple to create a search string for google: Say I wanted to do a meta data search for "Nintendo Entertainment System Super Mario 3 Publisher" your string would look like: https://www.google.com/search?q=Nintendo+Entertainment+System+Super+Mario+3+Publisher Or if you want to do an image search: https://www.google.com/search?q=Nintendo+Entertainment+System+Super+Mario+3+Front+Cover&tbm=isch&site=imghp You can also use the same method for bing and youtube...
  22. Hey guys. Iv updated the OP. Tested on LB v11.9. My plan was to improve this plugin but im now back at work and short on time making it difficult to maintain my stuff. Let me know if there is any issues. @narnz Iv modified neon deluxe arcade final files, find them on the OP.
  23. Hey guys. I dont have this problem but you could try the following... In LB, go to tools, Manage Emulators. Select Cemu and open the "Running AutoHotkey Script" tab. Copy and paste the following into the running ahk script tab SetTitleMatchMode, 2 loop 20 { Sleep 500 if WinExist("Cemu") { Sleep 1000 WinActivate break } } If you already have some code in the running ahk script tab, place this^ code at the top above anything else. Just to explain a little what is going on with this code. "Loop 20"... the code within the squirrely brackets will loop 20 times. "Sleep 500"... wait half a second between each loop.... these 2 commands combined is essentially a timeout of 10 seconds. "if WinExist"... If a windows titlebar contains the word "Cemu" then "WinActivate", bring that window to the front.
  24. I updated this plugin some time ago. As @slipsystem hasnt been on for over a year I thought Id share it. Slipsystems Movie Scrapper.zip Extract the "Slipsystems Movie Scraper" folder to Launchbox/Plugins. All credit goes to slipsystem. If you get some use from this plugin consider donating some cash to slipsystem here: https://www.paypal.com/paypalme/slipsystem Source: FanartTv.zip Update notes: Updated targeting framework. Added security protocol to Json class. Removed reference to Unbroken.dll
  25. If it zooms in and out to fast, put a sleep, 100 or something in the function.
  • Create New...