Jump to content
LaunchBox Community Forums

Nixx

Members
  • Posts

    153
  • Joined

  • Last visited

Everything posted by Nixx

  1. I was thinking of a plugin, but that's maybe too much to handle for me, so i make this post. I love launchbox and bigbox, but for me, the speed is the main issue, especially on launchbox with big collection. I'm wondering if that would be a good idea to make a Light Version of the ListBox mode of Launchbox. Like using a simple winform instead of fancy theme, the platform category tree on the right, the list of game in the middle, and on the right the game detail. And on right click on the game, just the Play, Play with and play version. It's an idea that's on the back on my head from quite some time, but the balance between the amount of work needed and the inconvenience of launchbox slow speed make me wonder if that's worth the trouble. Since i'm curious, i made a quick poc. Just loading all the games in a list, allow filtering and launch the game on double click. It's not like a pre version of something, it's just few lines of code put together, but if you have big collection, that the sort of speed i would expect from browsing with a ListBox, and right now, with launchbox, i'm far from that. This is my poc, loading a 40K game library, just to show how smooth the listing, scrolling, filtering is. (Edit : Updated to the last version) the poc plugin is liked to this post if you want to try. Release.zip So, is it a totally messed up and weird idea ? Edit : To clarify, the idea is not to make a standalone tuned-down version of launchbox, but something that work as a plugin and just use data from launchbox api. When you launch a game, it launch it though launchbox. The thing i have in mind is to have a key combination that toogle the Light-Version and hide the original launchbox window and vice versa.
  2. Ok, i'm progressing on my pause menu. Not ready for production yet, and i'm focusing on basic features for now. Edit 2 : And for the demo, that's an html i made just for retroarch, with the ability to choose the save state. All is done within the html file, so that's the interest of my project, it's totally configurable. Inside my html page, i have a javascript function that make an ajax request with some ahk code in parameters to get the savestates files.
  3. click again on the app uninstall it. If you want to manually do it, you can delete in the registery : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\rpcs3.exe But can you tell me what kind of event led to this error ? I mean, my app use the iso only when you launch them with rpcs3, so i don't really understand your issue.
  4. Now, there is an other module i'm working for what i would really needs testers and people experimented with webdesign. It's a PauseMenu (who also do Start & End Menu). It's not finish yet, but i'm getting close. The main idea and the big difference with other tools is that it just load an HTML page. Except for Pause & Resume ahk code (that are loaded before and after the pause menu show up), all ahk code must be directly called from the HTML file. (a call to href="ahk:<codeinbase64>") So, you want to add a menu option ? No problem, you just make a custom html file for your emulator and you add a button. Also, the html page can have part of the content replaced with the Variable (i mentioned earlier on the remplace module). So things like remplacing the title with the game name is simple. And you can do some advanced stuff like make a submenu that list retroarch savestates. For now, i'm not done, and i'm not the best to make great design. I tried to put some html code together to make some sort of template, but it's just an exemple, since it's just html code, you can do whatever you want. http://virtunys.free.fr/demopause/
  5. So, i forgot to go back talk about the replace module rewrite. At this core, this module is really simple, it's one of the core module and his role is to alter the command line. I expended quite a bit this module and now, it can also alter files. Paired with the HID detection module i talk earlier, it make it possible to do stuff like altering emulators config files before the emulator launch. Now, honestly, the module is quite complex and i will not go deep, just give a few exemples. Like with simple64, i have an xinput controller that need to use a different button layout than my other controller. I use the HID module to add a command line with --controller1= and give me some info like the controller name, the SDL id, etc (simple64 use the SDL and the config file need a numeric index and the controller name) To replace for my controller 1, i use that : And Variables is a bad choice of words, it's more like Macros. It's just text that will be search and replace. Those can be used in the Search/Replace With or Even the file Name. Like here for exemple, in my "Replace With", {PAK} will be replaced by "Memory" if i called simple64 with a --mempak argument, or it will be replaced by "Rumble". And you can do some complex shit, like feed the content of the variable with content of other text files, or even generate them with ahk code.
  6. @Chadmando I'm just starting to look it at and it's a really great contribution. Thanks a lot. I was a little fed up by the Pause Menu on launchbox, especially since it doesn't wait the end of the execution of the AHK pause script to launch and i had for a emulator a specific sets of actions to do prior to show the pause menu. Citra in my case, the pause menu don't show if fullscreen, so i have to unfullscreen first, then once not in full screen hit pause (if you pause before, you can't change fullscreen status) and only then show the pause menu. Thanks again for your contribution. Your soft is a great. I still have few question if you're still around : Is there a way to add custom menu entry ? Could be usefull for some emulators, like for exemple add a "Switch beetween Mempak and Rumble" on N64 Can you open the source of your software ? So if we need a feature, we could add it.
  7. Future update sneak preview : I'm working on a new module, and it's so complicated that i will have an hard time to explain. But basically, if you put your mind into it, you can do some nasty shit. My goal is to be able to play my emulators with watever gamepad, wheel pluged, if my siden lightgun is plug in, activate border and stuff like that. Like in retroarch, the emulator is doing a fine job, if a controller is plug, it doesn't care with one it is, and use it as player 1 controller. Now other emulator like RPCS3 it's an other story, if you set player 1 to use a DS4 controller, but you try to play with only a Xbox controller plugged, that will not work. So, i have a new module called HID Device Detector : So... the goal of this module is to detect if some device are plugged and if yes, add extra command line parameters. Let's start with a simple exemple, let says i have a Siden Light Gun, and if plugged i want to add --useconfigfile="mysidenconfig.cfg" to the command line. If i plug my siden and i use the HIDSHarp lib and the test button, i will see thoses two lines : SindenLightgun<>5824<>3841<>\\?\hid#vid_16c0&pid_0f01&mi_02&col02#c&1a2833ba&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030} SindenLightgun<>5824<>3841<>\\?\hid#vid_16c0&pid_0f01&mi_02&col01#c&1a2833ba&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd So, i add that on the list, and i'm pretty much done : When i click on the Test Config button, i have : Now, this is a simple usecase, the main goal of this module is not really to get the final exe args that your emulator is gonna use, but generate args that other modules (like ahk module or replace module) will trigger. For exemple, for lightgun, you might want those args added --lightgun1=SidenBlue --lightgun2=SidenRed and if none of your siden are pluged --lightgun1=Mouse. And then, on the replace module, we will later detect those arguments and change your emulator config files. So instead of adding the gun as Device Type other, let's add it as lightgun. On the global config, you can see : So arguments added with start with --lightgun and there will be a maximum of two args added, so, --lightgun1= and --lightgun2= For my blue lightgun, i want to match this line : SindenLightgun<>5824<>3841<>\\?\hid#vid_16c0&pid_0f01&mi_02&col01#c&1a2833ba&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd My blue lightgun, always have this part "c&1a2833ba&0&0000" and i will use it to differenciate for my red lightgun. So here i use a simple regex, as a side not reged as matched line by line. Now if i click test, i have : Now i can add my SidenRed : And let's add my Razer Naga Mouse : I end up with : If my Blue Siden Gun and plug, my Red is not and my mouse is pluged, it will go over each one (you can use the up/down button to alter the priority) and i will get : If i unplug all my siden gun, i will get : Later in this post, i will explain how to use those args and do stuff. So, i will now give you an other exemple. I use RPCS3, my main controllers are two DS4 controllers. Usually, i have DS4Windows activated, so it generated two virtual XINPUT controller. The easy thing to do would be to bind Player1 to XINPUT1 in RPCS3 but when i use DS4 controller, i prefer to bind it as DS4 rather than XINPUT (for motion control support for exemple) Sometime, i do not have any of my DS4 controller plugged and i use a regular XBOX 360 controller (or a device regnized as such, like when you do remote play and it create a virtual controller) Ok, so let's view the library data with 3 controllers (two DS4 and a X360 controller plugin) : I'm using the DS4Lib and XINPUT library, also, i point to the DS4Windows log folder so i can have extra data for XINPUT controller that are virtually create by DS4Win for my DS4 controllers. I will start by catching my two DS4 controllers : So, right now, if i add that and click on TestConfig, i will get : And now for XINPUT i will use that : On my regex, i capture the XINPUT slot number, i also want only XINPUT Gamepad, no arcade stick or wheel, and i want to excluse the lines with DS4WIN. On the suffix arg, i use XINPUT\1, the \1 will be replaced by the first regex match, so if my controller is using the xinput slot 3 i will have XINPUT3 And i increase the max match count, because this regex can match multiple time. If i test, i have now : And if i unplug my ds4 controllers i have : Next, i will go over the replace module to use thoses parameters and do some stuff. But i'm out of time right now.
  8. I'm not totally getting it, the game archive is just an archive ? There is no logics like saving registry keys, app data files and such ? Most of PC games works with just the game folder ? Also, for PS3 pkg i do something similar, but i use vhdx container that i can just mount instead of extracting. (but it take more space)
  9. Well, if someone wants to test : How to use : 1- Import your tp xml files inside UserProfiles as rom, scrape as Arcade 2- Go to tools -> "TecknoParrot Simple Import", select the platform you just created and your TP folder (the root folder of tp), Click Update. Now : - Some data will be fetch from the xml and json files of tecknoparrot : The game name, the release date, the genre, if it's a light gun game, and the plateform system. Genre is only updated if it's not already set, except when it's a gun game where i made sure to have Shooter / Gun as genre (To be sure thoses are included in lightgun playlists) The arcade system is set as Source - LaunchboxDbID is updated according to a file shipped with the dll : databaseTP.json. Note that's even without it, most of the game can found a match with the Game title alone. Maybe in a future release if my tool grab some interest, i will add a button to generate the databaseTP.json file so user can post updates in the forum. If a game already have a LaunchboxDbID and it doesn't match the new one, all current metadata for this game are scrapped. (One exemple is Batman row thrill, when added as Batman.xml, it's matched with a wrong game, so by clearing the meta we make sure that future update "without replacing existing metadata" are gonna update it) 3- Select all your games, Download -> Update Metadata and Media for selected games without replacing existing metadata. And you're done. TeknoparrotSimpleImport.zip
  10. I have a personal tool i'm using, idk if some are interested and i should polish it a little to post it or not. https://streamable.com/484kza
  11. Also, if your wondering if that complicate to install, the answer is just no. Let me give you citra as an exemple : So, step 1, you check if your bezel works fine with retroarch Step 2, you install reshade (i use vulkan because that what i set on citra) Step 3, you press Home to go the the reshade menu and activate Bezel.cx. That's all folks, if you launch a game though launchbox you will have the game related bezel that will show.
  12. Or you can just put the png file of your bezel in your reshade texture folder and use Layer.fx, no need for an addon for that.
  13. This one is in Beta, need some test before put it in the download page. BezelMaster_v1.2beta.zip Changes : Now i give a Bezel.fx, should be auto copy when game launch if not present in the shader folder. (You still need to manually install reshade and activate it) This shaders have extra option to adjust the bezel, for some console, (it's useful for gamecube) Settings are saved per game and stored as a custom field. (when you close the emulator, if the settings are not the same as the default one, it will save them) Default Settings can be set by plateform with a configuration menu : Also, two global option, the first one is to use symbolic links instead of copy the bezel png file. But to make it work, you have to enable symbolic links for users in Windows policy The second just disable the whole Bezel for reshade stuff and just use the plugin to have better retroarch bezel matching.
  14. BezelMaster : Use your bezel in standalone emulator and improve bezel game matching View File So, this addon do two things, first it improve bezel matching, i will go in detail later, but to make it simple you will probably have a lot of game that had default bezel that will now show game specific bezel. Second, if you launch a game on a standalone emulator, it will get the bezel from retroarch and copy it into reshade-shaders\Textures\bezel.png in your emulator folder, so you can use the game specific bezel with it. Outside reshade, if you have your bezel working with retroarch, nothing to configure, it will just work. Some pic (screen ratio can be a little off since i wanted to take the screenshot windowed) : So, how to install ? Step 1 - Make sure your bezel works with Retroarch within launchbox. Step 2 - Install Reshade on your game emulator : https://reshade.me/ Pro tip, the last canari version of citra now support Vulkan backend, it make it easier to work with reshade. Step 3 : Install a shader that can use this bezel.png. Two solution : You can use the "Hud_Tech.fx" file insiide the zip, move it to reshade-shaders\Shaders and activate the shader. Or you can use the shader Layer.fx Activate the Hud_Tech module (code is not from me, got it from : https://reshade.me/forum/shader-presentation/3504-hud-image-overlay-shader ) Feel free to improve it. How does the improved bezel matching works ? For the Bezel project in retroarch, you have to use a name that strictly use the same as the config file registered for the bezel, often the nointro NTSC version. So, i added two things, first, if it don't find a specialized bezel, it will look for your other game with the same Launchbox Database id and check if for those you have a bezel. (usefull for exemple when you have both the original rom and a modded one) Second, i toke the time to register in a json file a long list that match launchbox id to the bezel config file, so if your game file don't match, it will use that to try to get a match. Extra tip : Use the official app to update your bezel, the launchbox one don't works well for me : https://github.com/thebezelproject/BezelProject-Windows Submitter Nixx Submitted 09/12/2023 Category Third-party Apps and Plugins  
  15. Version 1.3

    155 downloads

    So, this addon do two things, first it improve bezel matching, i will go in detail later, but to make it simple you will probably have a lot of game that had default bezel that will now show game specific bezel. Second, if you launch a game on a standalone emulator, it will get the bezel from retroarch and copy it into reshade-shaders\Textures\bezel.png in your emulator folder, so you can use the game specific bezel with it. Outside reshade, if you have your bezel working with retroarch, nothing to configure, it will just work. Some pic (screen ratio can be a little off since i wanted to take the screenshot windowed) : So, how to install ? Step 1 - Make sure your bezel works with Retroarch within launchbox. Step 2 - Install Reshade on your game emulator : https://reshade.me/ Pro tip, the last canari version of citra now support Vulkan backend, it make it easier to work with reshade. Step 3 : Install a shader that can use this bezel.png. Two solution : You can use the "Hud_Tech.fx" file insiide the zip, move it to reshade-shaders\Shaders and activate the shader. Or you can use the shader Layer.fx Activate the Hud_Tech module (code is not from me, got it from : https://reshade.me/forum/shader-presentation/3504-hud-image-overlay-shader ) Feel free to improve it. How does the improved bezel matching works ? For the Bezel project in retroarch, you have to use a name that strictly use the same as the config file registered for the bezel, often the nointro NTSC version. So, i added two things, first, if it don't find a specialized bezel, it will look for your other game with the same Launchbox Database id and check if for those you have a bezel. (usefull for exemple when you have both the original rom and a modded one) Second, i toke the time to register in a json file a long list that match launchbox id to the bezel config file, so if your game file don't match, it will use that to try to get a match. Extra tip : Use the official app to update your bezel, the launchbox one don't works well for me : https://github.com/thebezelproject/BezelProject-Windows If you need the source : https://github.com/nixxou/BezelMaster/
  16. I had this issue before with Vulkan and Dolphin. (you can test with Opengl or DirectX12 backend if you still have the issue) The problem for me is solved, idk if it's because driver update or emulator update.
  17. Version 1.1

    33 downloads

    I have a lot of Pre-Win 7 games that need admin rights to run. So i've made up this dirty solution. Basically, with this plugin, when you run an exe game with launchbox it will lower UAC for 10 sec. That way, launchbox can launch games that need elevated privilege without running as admin itself. Be aware, this is not something secure ! You end up with a scheduled task that anybody can run that temporary remove UAC ! But if that's something that bother you and the only alternative that was on your mind was removing the UAC entirely, well, remove it for 10 sec is better than having it off. How to use the plugin : It's bundled with an exe : UACTemporaryDisable.exe, run it as admin it will generate a task called TempDisableUAC. If you move the file, you will have to rerun it as admin. Source code is here if you want to compile it yourself : https://github.com/nixxou/UACTemporaryDisable Plugin source here : https://github.com/nixxou/DisableUACPlugin Once it's done, the plugin should work (basically, just run the the task and wait until "Software\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin" go to 0)
  18. Disable UAC Plugin View File I have a lot of Pre-Win 7 games that need admin rights to run. So i've made up this dirty solution. Basically, with this plugin, when you run an exe game with launchbox it will lower UAC for 10 sec. That way, launchbox can launch games that need elevated privilege without running as admin itself. Be aware, this is not something secure ! You end up with a scheduled task that anybody can run that temporary remove UAC ! But if that's something that bother you and the only alternative that was on your mind was removing the UAC entirely, well, remove it for 10 sec is better than having it off. How to use the plugin : It's bundled with an exe : UACTemporaryDisable.exe, run it as admin it will generate a task called TempDisableUAC. If you move the file, you will have to rerun it as admin. Source code is here if you want to compile it yourself : https://github.com/nixxou/UACTemporaryDisable Once it's done, the plugin should work (basically, just run the the task and wait until "Software\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorAdmin" go to 0) Submitter Nixx Submitted 09/09/2023 Category Third-party Apps and Plugins  
  19. Thoses days, i'm playing with a side project. Not gonna make a guide, since i'm still working on it, but i think the idea is interesting and worth sharing. I have my launchbox installed on my main machine, but sometime i want to access it remotely or kids want to play on TV (my computer is also plugged on the tv) and since i'm working on my PC, it's annoying. So, why not make a launchbox as a service that run in a virtual machine and that i can access though parsec & moonlight ? I have an obscene amount of Ram, so having a VM always on on background is not a problem. For that i use https://github.com/jamesstringerparsec/Easy-GPU-PV It's a script that generate a Windows Virtual machine with GPU shared. You have to define a percentage of GPU sharing (like if like me you set 90%, that mean the VM can use up to 90% of your GPU) and the basic other config of the vm (number of core, memory ...) Performance wise, how is it ? Surprising good. I mean, this is a 3D Mark bench from my Host : https://www.3dmark.com/3dm/99114511? And this is the same test from my VM : https://www.3dmark.com/3dm/99114862? I'm able to launch things like PS3 game inside the VM without issue : Few tips that i gather along the way to those who want to reproduce this : - Run something to debloat windows 11 on the vm, remove xbox stuff, this thing doesn't show on parsec and your PS/Guide button not gonna work with the xbox thing. - If you want to run a sunshine (i use sunshine because i use amd gpu), and your lock with low resolution, the trick is to register a fake display, set as primary and disable the other one. You can use that : https://www.amyuni.com/forum/viewtopic.php?t=3030 I had to add a schreduled task run as system with admin right on boot to run "deviceinstaller64 enableidd 1" on boot - For my launchbox, i use a custom tool that make softlink of each files in a directory and recreate the directory, so i just run "hardlinkfolder.exe "\\MyComputer\LaunchBox\Manuals" "I:\LaunchBox\Manuals" --softlink" (and the same with Images and Videos folders) That ways, when i add collection of files in launchbox, it will use my existing files on host, but if i want i can still add stuff without messing with my host files (the share is readonly btw) I can share it if someone needs it. - For PC games, i'm not here yet, but my plan is : On my PC all my games are in F:/PCGames. I plan to create a dummy drive called F:/ on Host, make an hardlink copy of all files in my host with size > 1Mb on F:/PCGames-clone, files <1mb will be copied instead of linked. I will use junction on the server to mount this cloned folder to F:/PcGames and since the files < 1mb are copied instead of linked, i'm confident that configuration files will still be independant so messing with resolutions and stuff will not impact on my host. If a game dont work, i just rename the folder, install it to F:/PCGames on the server, remove the folder and restore the linked one. So, i still have work to do, but that's promising, there is a short video of bigbox runing on PS Vita though Moonlight : if you are doing something similar or need help, feel free to post and share your experience.
  20. LinkToSSD View File It's a side project, no fully tested, done quickly while on vacation. So, at home, i have all my windows games manually installed on my H drive, it's a slow HDD drive. I added them one by one in launchbox. Now, for some games, especially recent one, running them from a slow hdd is not great. But for organisation purpose, i prefer to keep them all here. So, with this plugin, i can set some path on my nvme drive and ssd, and with a click in launchbox, it will copy the game to the SSD, rename the original folder adding ".original" at the end of the folder name and make a junction link from my ssd to the original folder. On restore, if needed, you have the choice to just restore the original folder, or replicate files change (like if some files where added, removed or modified while the game is on your ssd). That way, all my games are stored one one folder in one drive, if i plan to play an heavy game seriously, i can speed it up by moving it to a quicker drive and link it back. Note : - You need launchbox >= 13.5 - The plugin will use your game "Root Folder" as registered in launchbox, so if you manually add a game with an application path like : F:/game/SuperFPS/bin/superfps.exe the default "Root Folder" in launchbox will be "F:/game/SuperFPS/bin", in that case, be sure to edit your Root Folder to "F:/game/SuperFPS" Submitter Nixx Submitted 08/26/2023 Category Third-party Apps and Plugins  
  21. Version 1.0.0

    23 downloads

    It's a side project, no fully tested, done quickly while on vacation. So, at home, i have all my windows games manually installed on my H drive, it's a slow HDD drive. I added them one by one in launchbox. Now, for some games, especially recent one, running them from a slow hdd is not great. But for organisation purpose, i prefer to keep them all here. So, with this plugin, i can set some path on my nvme drive and ssd, and with a click in launchbox, it will copy the game to the SSD, rename the original folder adding ".original" at the end of the folder name and make a junction link from my ssd to the original folder. On restore, if needed, you have the choice to just restore the original folder, or replicate files change (like if some files where added, removed or modified while the game is on your ssd). That way, all my games are stored one one folder in one drive, if i plan to play an heavy game seriously, i can speed it up by moving it to a quicker drive and link it back. Note : - You need launchbox >= 13.5 - The plugin will use your game "Root Folder" as registered in launchbox, so if you manually add a game with an application path like : F:/game/SuperFPS/bin/superfps.exe the default "Root Folder" in launchbox will be "F:/game/SuperFPS/bin", in that case, be sure to edit your Root Folder to "F:/game/SuperFPS"
  22. Interesting, but i see no point to store ps3 iso in encrypted format in the first place. A jailbroken console can read ps3 unencrypted iso just fine, and it make things easier to just store your collection as unencrypted iso.
  23. Yeah, i did not know that, so after no answer on discord i quickly made something to deal with the issue, i locked my original post since there was a bug, it's fixed now, but there is no real point to reupload. I leave the source code here, could be usefull if someone need to filter out things from a playlist with something more complex or non available atm (like game missing bezels) https://github.com/nixxou/RemoveGamesWithVideoFromPlaylist/
  24. RemoveGamesWithVideoFromPlaylist View File You select a playlist, you click on a button and it will remove all games with video from that playlist. It's a plugin i quickly made from a specific purpose, i wanted to download missing video using this plugin : So with my plugin, you can create a playlist, add all games on it, and them remove games with video, so you can select all and download video from youtube. Do not work with auto populated playlist, you have to select all your game, right click and add to playlist. https://github.com/nixxou/RemoveGamesWithVideoFromPlaylist Submitter Nixx Submitted 08/08/2023 Category Third-party Apps and Plugins  
×
×
  • Create New...