Nixx
Members-
Posts
153 -
Joined
-
Last visited
Content Type
Profiles
Forums
Articles
Downloads
Gallery
Blogs
Everything posted by Nixx
-
Version 2.1.0
54 downloads
https://github.com/nixxou/MouseHideAndLock2 It's a rewritten version of my plugin MouseHideAndLock, while using the original one, i got some issues & crash that's why i did an other version. Also, i'm not using startup screen and since disabling mouse requiere startup screen enabled, this plugin is useful for me. So, in the configuration file, you got something like this : You can select the configuration for each platform & emulator. Hide Cursor : Will hide the cursor once the game is launched. Show Cursor On Move : You need to also have Hide Cursor checked for this to work, with this option enabled, moving your mouse will show up the cursor, it's only hidden when it's not moving. Lock Cursor : Will lock your cursor on your main monitor, if you press Shift while moving the cursor, you will be able to go to other screen. -
MouseHideAndLock2 View File https://github.com/nixxou/MouseHideAndLock2 It's a rewritten version of my plugin MouseHideAndLock, while using the original one, i got some issues & crash that's why i did an other version. Also, i'm not using startup screen and since disabling mouse requiere startup screen enabled, this plugin is useful for me. So, in the configuration file, you got something like this : You can select the configuration for each platform & emulator. Hide Cursor : Will hide the cursor once the game is launched. Show Cursor On Move : You need to also have Hide Cursor checked for this to work, with this option enabled, moving your mouse will show up the cursor, it's only hidden when it's not moving. Lock Cursor : Will lock your cursor on your main monitor, if you press Shift while moving the cursor, you will be able to go to other screen. Submitter Nixx Submitted 08/07/2023 Category Third-party Apps and Plugins
-
Thank you very much for your detailed answer. 1 & 2) For point 1 and 2, for me it all breakdown to this windows that appear for me way too often. For me it's annoying to the point i have to disable the backup. 3) Could be worth it to get a look to this "font" issue, maybe there is a way to load from memory and that would drastically reduce the loading time ? "you're effectively asking for the same thing you are criticizing in the 4th point. " No, i'm really not. When i'm browsing my game like in my point 4, what matter to me is to quickly find a game i want to play, having the image show up help me with that. But when i'm clicking on a plateform/playlist on launchbox, what matter to me, is that my list of game load quick. If the platform details get in the way, that's really not a problem if it get loaded after the list is up. Probably not much to gain here though, like few ms at best, but that's always good to take. Also, for a frenetic clicker like me, the cancel loading would be something really nice. 4) I understand your point, but i do still think that give the users some ability to alter this behavior would be a worth the time investment. Like i said, i don't personally care, i can edit a theme with the Community Editor, but that's not something most end users would do. Something like just a option to adjust the selection delay (and maybe an other one to adjust the video delay to avoid it to show up if we reduce the selection delay too much) could be a nice improvement. Sure, i understand totally. But i do things some of the point are worth taking a look. Personally, I would gladly take performance improvement of a feature that i'm constantly using over a new feature.
-
Ok, so first thing first. I love launchbox, i'm not here to denigrate the quality of your work. Your app is great and i use it all the time. I'm not posting here to spit on your work, and the clickbait title is mostly here to draw your attention. Also, i'm using currently an outdated version of launchbox the 13.3, my premium licence is expired, i didn't won the lottery and i don't have money to upgrade to lifetime for the moment, so maybe some of the issue i'm talking here are fixed now. I'm no way an expert, but i just want to point out some things that seems to me weird behavior of your program. 1- Lauchbox / Bigbox make unnecessary xml writing each time it close Bigbox make new save of Playlist and Plateform time, each time you close. (But, it's not an issue with Launchbox) In bigbox, if i go into a playlist and browse game, on close, it will regenerate a new playlist xml file. Why ? I didn't change anything in the library, so that feels totaly unnecessary Like, if i do that and i close : https://youtu.be/puCQicbiPyQ Those files are gonna be updated on Bigbox close : Data\Platforms\Nintendo Game Boy.xml Data\Playlists\Nintendo Game Boy All Games.xml Also, lots of files in the LaunchBox\Data root folder get updated : (GameControllers.xml, InputBindings.xml, ListCache.xml, Platforms.xml, Settings.xml, BigBoxSettings.xml) If i use Launchbox instead of BigBox, strangely, the playlist do not get updated but that happen to the Plateform xmls, and some xml files in the root of the Data folder Why ? I'm just browsing, i did not change anything in the library, i didn't change my config so it should not have any valid reason to rewrite those files. So, yeah, writing two files is not gonna take much time, but the reason i'm pointing this will make more sense in my second point. 2- The backup option is badly written With this option on, a backup is made every time launchbox is started and every time launchbox is close. Even if you do not change with your playlist, configuration or plateform ! With this option disabled, and i close launchbox, the process disapear from my task manager in less than 3 sec. With this option on, it disappear in 11 sec ! There is an huge quality of life improvement to make here ! Save should be only done when there is something new to save. If xml files where only written if there something relevant to write (so that why i did my first point), and save only done where there is something new to save, that would lead to a real improvement here. (Also, incremental saves with full save only done like once a week could be nice) 3- Browsing library in launchbox feels slow Now, i don't know the secret sauce about how launchbox does it things and if improvement could be made here, but i want to point out some strange things i noticed. If i load my entiere Nintendo Library, it take 2 seconds to load. But if i monitor the process with Sysinternals System Monitor, i notice something that feels strange to me. Here i have like nearly one sec that are used to do stuff with fonts. Seems like a lot of time to me. Is there something wrong here ? I'm no expert, but i suppose there is something to do here, and probably shorten the loading time. Also, bellow, why does launchbox try to access to one of my file in my library ? I mean, that does not take time, ok, but if it was a network drive, that will. And i don't really see the point. An other thing, if i uncheck everything in : I get a slight loading time boost. That made me wondering, does the platform details get loaded in the same thread that the library data ? If so, maybe the app should show the list of game first and give the ability to the user to browse it and then load and display plateform data ? Also, an other thing that come to my mind is : Can you manage a way to abord loading when we click on an other library ? If that could be done, it will make navigation beetween playlist and plateform much more enjoyable, often when i browse i missclick or go to an other library without waiting. 4- In BigBox Themes, things like Title and Game main image should be updated During selection and not Once selected. Well, that's maybe debatable, but for me, it's night and day, i did the change using the community editor but i guess that not something the majority of the userbase can do. So, this is the default theme : You notice that if you want anything to appear on the right, you have to wait few seconds while a game is selected. It all break down to personal opinion, but that how it appear after i edited a theme to keep some of the text and image show while selected. For me, it's just better to have title and image show up during selection and do not have to wait. But the process to do that is complicated, there should be some option available to end users to get the same result.
-
I have though of something kinda like that using https://github.com/jamesstringerparsec/Easy-GPU-PV Make an Hyper V Virtual maching running on my PC and sharing my gpu resources, it would run a clone of my launchbox so when i'm working on my PC, wife & kids can still access to my launchbox from an other client using parsec. Sadly, i got a technical issue and i was not able to share my AMD gpu resources to my VM, only my IGPU and that's not good enough, so i did not go further. Edit : Ah, sorry, it was a linux related post, my stuff is for windows.
-
Ok, so i did it : https://github.com/nixxou/IsoEnablerForRPCS3/releases/tag/V2.0 Now i can launch PSN game as standalone file like for exemple rpcs3.exe D:/ps3/psn/GuityGear.vhdx
-
This is my first draft : First i go on "creation mode" using admin rights on rpcs3, then i launch a newly generated ps3 psn game. Still have work to do, but in the end, i want only have standalone file, either iso for ps3 disc game or vhdx for psn game.
-
I like to keep my games as 1 file = one game without installation. That's why for PS3, i opted for disc library and i mount iso. But some game are PSN Exclusive and i want to be able to launch them with something like rpcs3.exe <GameFile> I have an idea about how to do that, but i would need people to help me test it.
-
-
StreamIsoToPS3 View File I own a jailbreaked PS3, i mostly use rpcs3 from launchbox, but sometime, i want to launch a game on my real ps3. With this tool, i can select the game from launchbox and make it run on my ps3. You need WMan Mod, go to http://yourps3ip/setup.ps3/sman.ps3 and add your PC IP as PS3NETSRV#1 StreamIsoToPS3.exe <IsoFile> <PS3IP> Submitter Nixx Submitted 07/25/2023 Category Third-party Apps and Plugins
-
Version 1.0.0
17 downloads
I own a jailbreaked PS3, i mostly use rpcs3 from launchbox, but sometime, i want to launch a game on my real ps3. With this tool, i can select the game from launchbox and make it run on my ps3. You need WMan Mod, go to http://yourps3ip/setup.ps3/sman.ps3 and add your PC IP as PS3NETSRV#1 StreamIsoToPS3.exe <IsoFile> <PS3IP> -
Version 2.0.0
77 downloads
It's basic as it get, and there is probably ton of similar tools around but mine is really "fire & forget" So, you extract the archive somewhere, you execute IsoEnablerForRPCS3.exe to register it and that's it. There is no launcher, no menu, nothing, if you want to unregister, you click again on IsoEnablerForRPCS3.exe To use it ? You just use rpcs3.exe as usual, except that now, if you use an iso as an argument, it will just work (mounting the iso thought powershell) Works only with decrypted iso. I make mine from jbfolder with makeps3iso. ( https://github.com/bucanero/ps3iso-utils/tree/master ) Also, not included in this release, but i package updates DLC and rap files inside a folder called UPDATES_AND_DLC that i put inside my iso file, dlc package have name that start with "DLC--". I'm telling this because i plan to add an option to auto install updates & dlc in a future rlz. Not compatible with BigBoxProfile because it use the same trick to hijack the process, (i will update BBProfile it to include that as a module) -
IsoEnablerForRPCS3 View File It's basic as it get, and there is probably ton of similar tools around but mine is really "fire & forget" So, you extract the archive somewhere, you execute IsoEnablerForRPCS3.exe to register it and that's it. There is no launcher, no menu, nothing, if you want to unregister, you click again on IsoEnablerForRPCS3.exe To use it ? You just use rpcs3.exe as usual, except that now, if you use an iso as an argument, it will just work (mounting the iso thought powershell) Works only with decrypted iso. I make mine from jbfolder with makeps3iso. ( https://github.com/bucanero/ps3iso-utils/tree/master ) Also, not included in this release, but i package updates DLC and rap files inside a folder called UPDATES_AND_DLC that i put inside my iso file, dlc package have name that start with "DLC--". I'm telling this because i plan to add an option to auto install updates & dlc in a future rlz. Not compatible with BigBoxProfile because it use the same trick to hijack the process, (i will update BBProfile it to include that as a module) Submitter Nixx Submitted 07/24/2023 Category Third-party Apps and Plugins
-
Hi. I want to update this post. So maybe things changed this year, but i got bezels files in RetroArch\overlays\GameBezels\PS2 Still, i got nothing inside RetroArch\config\pcsx2 (alpha) (where there is usually config files that point to the right bezel to use) Is that normal ?
-
New version up. Important : Fix a bug that made emulator always use custom actions from the default profile, even if LB/BB was launched with an other profile. When a BB profile need to change the monitor layout prior to launch BB, check every second and wait up to 10 sec to change the soundcard. Because if you activate a monitor, like a TV from a desactivate state and want to use his HDMI for audio, you need to wait a little before being able to switch to his soundcard. RomExtractor and CopyFile windows should resize according to your screen resolution. Some UI Fix After an emulator close, BB Profile force back focus to BB/LB.
-
Bypass Rom path verification before launch
Nixx replied to Nixx's topic in Third-Party Applications and Plugins (Released)
The plugin itself is really straighfoward, Let says you have a rom registered as D:/rom/myrom.bin, and launchbox is set to launch emulator.exe "D:/rom/myrom.bin", if the rom is missing, Launchbox will not execute the command line. With this plugin, it will. But that mean it will execute emulator.exe "D:/rom/myrom.bin" and the emulator will complain that the rom is missing, that's where BigBox Profile come to play. The plugin itself will just bypass the file verification that prevent to launch the emulator if the file is missing, nothing more. And for bigboxprofile, there is two modules that will be handy : ChangeRomPath that will change missing rom the rom path to an other one and CopyFile that will copy a remote file to local. So, let's say you have on your main computer launchbox install a rom registered as D:\roms\N64\SuperMario64.bin and D:\rom is also shared as \\MainComputer\roms You have a copy of the install on Computer2, you can install bigboxprofile and register for retroarch.exe a ChangeRomPathModule from D:\roms\ to \\MainComputer\roms. That way, with this plugin installed, launchbox will not complain that D:\roms\N64\SuperMario64.bin is missing, it will execute retroarch.exe D:\roms\N64\SuperMario64.bin but that will be changed by bigboxprofile and retroarch \\MainComputer\roms\N64\SuperMario64.bin will be executed instead. Now let's says it's D:\roms\switch\Zelda.bin and it's too big to be played over network, and you want to copy it first to local. You use two module, first changeRomPath from D:\roms\switch\Zelda.bin to \\MainComputer\roms\switch\Zelda.bin Then the copyFile module with source : \\MainComputer\roms\switch\ and target let says C:\roms And upon execution of retroarch.exe D:\roms\switch\Zelda.bin from launchbox it will copy \\MainComputer\roms\switch\Zelda.bin to C:\roms\Zelda.bin and execute retroarch.exe C:\roms\Zelda.bin As for using multiple profile, it's also something that bigbox profile do, but there is no gui for that and it's a little tricky. You have to create a profile in your secondary computer bigboxprofile, let says "secondary", create a directory inside launchbox LaunchBox\Data\Profile_secondary, then you will put inside the xml that you want to change from your usual profile, for exemple Settings.xml. And if you execute bigbox or launchbox with that profile (bigbox.exe --profile=secondary) it will use those file (and use the regular one for the rest). If you create LaunchBox\Data\Profile_secondary\Platforms (or Playlists) it will totally ignore LaunchBox\Data\Platforms and use LaunchBox\Data\Profile_secondary\Platforms instead. -
BigBoxProfile View File BigBoxProfile is an app that allows you to alter how Launchbox/BigBox and each of the emulators works, adding a profile system and tons of features that allow you to alter/customize how emulators work. What is BigBoxProfile ? This app is made of two parts that work together but can be used independently. 1- There is a part that alters how Launchbox/BigBox works and add a new command line parameter “--profile=” that will trigger users' configured settings. It allow you to bind a specific monitor, sound card for a profile or even use a specifics launchbox profile settings (for example make a bigbox profile that only show some of the platform/playlists) 2- The other part allow you to alter how emulators works, change the command line that they receive on the fly and do tons of stuff (change monitor settings, execute ahk code, use fallback path for rom, copy rom from distant path to local drive or ramdisk, extract archive, executes pre/post command lines, including command line as admin, force the game to be run as admin …) How does it works ? The app makes extensive use of a hidden feature of windows called the “Image File Execution” injection. If you edit the registry at “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\” you can register a key with the name of an executable to target and an app that will replace it. So, in my case, it create this kind of keys : That way, when you launch an executable called BigBox.exe, instead of launching it, it will call BigboxProfile.exe. My app will do actions and call bigbox (or launchbox) itself. So, it’s like an exe wrapper, but from an user standpoint, it’s invisible. As for emulator, it works the same, once a emulator exe is registered inside BigboxProfile the app will register a registry key to hijack it, do some user configured actions and then launch it. I’ve written modules that you can chain and order the way you want. Technically each module have 3 functions, ExecuteBefore, ExecuteAfter and AlterCommandLine If you chain Module1, Module2, Module3, it will do something like that when you launch the emulator : Execute ExecuteBefore for module 1, 2, 3. Pass the command line to module1 and alter it with the AlterCommandLine, then pass it to module2, and then pass it to module3, launch the game with the altered command line. On game close, execute ExecuteAfter on module 3, 2, 1. There is a slight subtlety when using launchbox auto-generated m3u for multidisc, but i will get to that later. I- Altering BigBox / Launchbox Ok, so first you can create BigBoxProfile Profiles Beware, here i’m talking about profile for BigBoxProfile (my app), it’s not related to Launchbox/BigBox settings (xml files inside the Launchbox/Data folder). You can actually alter how and witch xml files launchbox will use with a specific BigboxUtils program, but i will get to that point later. So BigBoxUtils is shipped with a “default” profile, you can add as many as you want. For example, you can add a profile called “tv” when you plan to use your BigBox on your TV Once a profile is made, you can call launchbox/bigbox to use this profile when you add –profile=<profilename> to the command line. Like BigBox.exe –profile=tv This use case is actually what made me code this app. I use bigbox on a computer that’s plugged to both my PC monitor in my room, and to my TV on the living room. I play mostly on my PC monitor, but i wanted to also be able to launch BigBox on my tv from a simple shortcut. The basic options for a BigBox Profile are here : Monitor Priority Set the monitor on witch BigBox (and eventually Launchbox if click on the checkbox) will launch. It change the monitor option in BigBoxSettings.xml before Bigbox start. (And for launchbox, it will try to move the window) By default it use as default “main”, and myself, i only use that. Main means “Main Display”, it’s a primary monitor, the one with that checkbox enabled : So, with the option set a Main, you are sure that you will not encounter weird Bigbox bug when the monitor change, it will always use the primary one, and if you change the primary Bigbox will launch on it, that’s really handy. But you can also specify an other display if you want. I actually wanted to show the real monitor name alongside DISPLAYX, but i ran into technical limitations. Use Monitor Disposition : So, here is the game changer, here you can register and set monitor layout. It actually use code from this excellent software : https://sourceforge.net/projects/monitorswitcher/ But it’s slightly altered to also manage DPI change/restoration. So, if i go back to my exemple with my TV profile, i will register a monitor layout where my TV is set as main monitor and since my monitor priority is set as main, when i launch bigbox.exe –profile=tv, it set my TV as main display, launch bigbox on it, and once bigbox is close it will restore my usual monitor layout. As a side note, on the last version of the app, in the bottom of the main form, i added a quick combo list : Quick Monitor Disposition Switch. You can use that to manually switch between saved monitor layouts. Set Primary SoundCard : It’s straightforward, once set, it will change the main playback device. Like with my tv profile, i will force the sound to use the TV HDMI. Use Specific Launchbox Data profile : It’s an hidden and experimental feature, please backup your data LaunchBox\Data before !!! So, with this features you can use a copy of some or all xml files of the Launchbox/Data folder for a BigBoxProfile. Restriction : It use hardlinks, so that only works if Launchbox/BigBox is used on a NTFS drive, not gonna work if launchbox is used from a network drive. Like, let says that for some reason, you want a custom InputBindings.xml for your tv profile. You create a folder called “Profile_tv” and put a copy of InputBindings.xml inside and that’s it. Now when you launch bigbox, if you use –profile=tv, it will replace the InputBindings.xml with that one. Now, to go on a more practical use case, if you create a folder inside Profile_tv called Platforms and you put only a copy of Nintendo 64.xml from your original Platforms folder, if you launch with –profile=tv, you will see that’s now it only show the N64 platform. Same goes with the Playlists folder. As a side note, if your end goal is to do something like kid profile with a subset of platform and playlist, instead of copy the original files, you should hardlink them (mklink /H linkName target) so in the future, if you change something in the Plateform/Playlist, the change will apply to your kid profile too. II - Emulator Hijacking So, if you didn’t do it yet, to understand how it works, you should read the explanation at the start of my documents. So, basically, you can add modules and order them, when you launch the app, it will do the action of all module, one by one, altering the command line if needed and pass it to the next module until it launch the emulator. A simple (and totally useless) exemple : With this configuration, i chain 4 modules, a Prefix, a Replace and two Suffix. You can play with the Exemple Command IN Textbox to get an idea of how the command line would be impacted. Once saved, if i use a cmd prompt and execute : CalculatorApp.exe "C:\MyRomDir\MyRom.bin" It will go to the first Prefix module and add a -f before, so the second module Replace will receive as input : CalculatorApp.exe -f "C:\MyRomDir\MyRom.bin" This module will replace .bin with .rom so the next module will receive : CalculatorApp.exe -f "C:\MyRomDir\MyRom.rom" It will add -extraarg so the last module receive : CalculatorApp.exe -f "C:\MyRomDir\MyRom.bin" -extraarg. And since the filter condition match and the command line contains -extraarg, it will add -otherarg. So, bigboxProfile will execute : CalculatorApp.exe -f C:\MyRomDir\MyRom.rom -extraarg -otherarg If you want some more real exemple, that whati’m currently using for retroarch and tecknoparrot : Quick Module list review : Prefix : Add some argument before the rest of the command line Suffix : The same, but after the rest of the command line Replace : Replace something in the command line, support regex ChangeExe : change the target Exe FixRetroarchMonitor : Will force Retroarch to use main monitor FixMameMonitor : Will force Mame to use the main monitor UseFileContent : Let say you run emulator.exe “D:/ps3/metalgearsolid.txt” and inside this text file you have D:/ps3/metagear/eboot.bin, it will execute emulator.exe “D:/ps3/metagear/eboot.bin” ChangeRomPath : You can do stuff like, if the file is not on your hard disk anymore, use another path (your NAS for exemple) CopyFile : You can run something like emulator.exe “\\nas\mygame.bin” and it will copy the file locally before launching. Support Ramdisk and show a progress bar. Great for games stored on cloud like Google Drive. ChangeDisposition : Use a specific monitor layout FakeFullScreen : Turn a windowed windows into a fake full screen, removing borders and maximize. RunAsAdminTask : Execute the emulator.exe as admin. ExecutePrePostCmdAsAdmin : Execute extra command as admin before and after the emulator launch (like for example, start and stop DS4Windows) ExecuteAHK : Make your own custom module in AHK RomExtractor : Show a GUI to choose and extract a game inside an archive that contains multiple versions of the same rom. About Launchbox Auto-Generated M3U : There is a special case when BigBoxProfile receive a m3u generated by launchbox (like for Multi-Disc games) In the command that will be received by nearly all modules, the m3u file will be replaced by the first file in the m3u. Module then will not be allowed to alter the file path in the command line (but they can still alter the rest of the command line, just not the file argument. Why this design choice ? Because often, you will do stuff like filter on specific rom path, so that way, even when you use a launchbox auto-generated m3u, if you have a trigger on let say D:/roms/n64, that will still trigger it. Also, there is two modules that will behave differently, CopyFile and ChangeRomPath. They will run for each element in the m3u. Modules Deep Dive : Prefix : Add some argument before the rest of the command line You can use a filter to only do that if the cmd line contain something Suffix : The same thing but as Suffix Replace : The thing to not here is that Replace support Regex, the format is similar than those used for Notepad++ ChangeExe : Nothing to say here, it change the exe, i should add a filter condition when i have some free time UseFileContents : Let say you run emulator.exe “D:/ps3/metalgearsolid.txt” and inside this text file you have D:/ps3/metagear/eboot.bin, it will execute emulator.exe “D:/ps3/metagear/eboot.bin” You can use relative path inside the file too, and use one of the two option in the radiobox ChangeRomPath Ok, so this one is a little more tricky. It will trigger when you launch a file as argument to your emulator that match path to replace. You have two side : Hight Priority Path and Low Priority Path. Hight Priority path is when you have an extra copy of your file on a quicker drive. Like you launch emulator.exe D:/rom/plateform/mygame.bin , D:/ is a slow hdd mecanical drive. If you have set C:/rom/ as Hight priority path and C:/rom/plateform/mygame.bin exist, it will use this one instead and your final command line will be emulator.exe C:/rom/plateform/mygame.bin Low Priority Path is triggered when the file passed as argument does not exist Like if i remove the file D:\rom\mygame.bin and i launch emulator.exe D:/rom/plateform/mygame.bin Since, the file does not exist, it will search in my low priority path if Z:\home\mehdi\coffre\sf_POOL_JEUX\Roms\mygame.bin exist, and if yes, it will launch emulator.exe Z:\home\mehdi\coffre\sf_POOL_JEUX\Roms\mygame.bin Side note : By default, launchbox does not allow you to launch games where the file is missing, you get : To solve that issue, you can use this addon here : https://forums.launchbox-app.com/topic/74181-bypass-rom-path-verification-before-launch/#comment-438354 CopyFile : You can view a demo here where is use ChangeRomPath to point the file to my cloud drive if the file is missing, and then CopyFile to copy from Gdrive to my local storage before launching the game : https://www.youtube.com/watch?v=KI64EIPFmxk Note : It does support Ramdisk if you don’t want to keep the file and preserve your ssd. For that you need to install this app : http://www.ltr-data.se/files/imdiskinst.exe ChangeDisposition : Use a specific monitor layout Note : the button to create new screen disposition do not work, to create disposition, use the option on the main window config. Btw, here you have an use case i do regularly, when i want to apply a filter for a bunch of games, instead to use a filter with the rom name inside, i use a new argument (here –2k) and then i add this extra argument in launchbox This changeDisposition feature is really handy with tecknoparrot when you have game that can be very picky with monitor framerate and resolution. FakeFullScreen Turn a windowed windows into a fake full screen, removing borders and maximize. It only support search by executable name, you can use emulator.exe, but you can also set one or search in the command line by regex. (i do that because i have a case of instead using the emulator.exe directly i use an application wrapper that do something like launcher.exe emulator.exe argos. ) Timeout is the time to wait for the application. RunTaskAsAdmin : I have a few games on tecknoparrot that actually requiere admins rights to be launch. And since launchbox/bigbox is launched without thoses rights, i have an issue and i don’t want to be bother by UAC prompt. So, how does it works ? When the condition to launch as admin is fufill, it will register a shreduled task (only asking once with UAC). In my exemple, instead of triggering by some element in the command line, i check into the file passed in the command line if it contain a specific string. ExecutePrePostCmdAsAdmin Execute extra command as admin before and after the emulator launch (like for example, start and stop DS4Windows) ExecuteAHK This one is tricky, it’s for power users. It allow you to make custom module in AHK. Execute Before is the code that will execute before emulator launch, Execute After will execute on emulator close. And in Modify command line you can alter an array variable called Args Modify Command Line Exemple only only apply to the exemple command line, so it’s used only for test. With this module you can create stuff like append specific config if you are remote playing and do a lot of stuff. https://www.youtube.com/watch?v=NxezepuAkLI RomExtractor So, i’m using the Hackset with 8bits/16 bits era consoles. Instead of using roms, i have archives filled with alternative versions of the same game. So, it’s vital for me to have a way to select and launch a game within the archive. As of today, i was using the awesome plugin ArchiveCacheManager ( https://github.com/fraganator/archive-cache-manager ) but i wanted something more suited for my own need, and be able to chain it at the end of my module list. Also, since BigBoxUtils is a third party application and not a plugin, that allow me to use it outside launchbox/bigbox and do not fear that a future update would break the plugin. So, if you used ArchiveCacheManager before, this module is straightforward. Some of the feature of ArchiveCacheManager are missing, it only manage archives (zip, rar, 7z), not iso, chd and don’t have a batch extract feature. On the other side, it have a few features and supports the metadata files packed with the Hackset. (you should put them either in a metadata subfolder on the Bigbox profile install dir or on the parent directory of your rom files) So, the config : If you set a max size of the Cache Dir, oldest files inside will be removed if the total size go over the threshold. You can set multiple priority profile SmartExtract is similar than ArchiveCacheManager, if a file contains only files with extensions that match the standalone rom extensions and the metadata extensions, when you select a file to extract, it only extract this one. If SmartExtract is not enabled or the archive contains files with unknow extensions, it will extract the whole archive. If ImDisk is installed, you can use ramdisk to receive the extracted rom file. The priority list allow you to automatically select witch file should be extracted by default. On execute, you will see a windows like that : The file selected by default will be either the first one that match a priority rule or the last played files. It also feature a short list of games (Your favorites games, up to 5 games that match your priority rules and up to 5 last games played) It does support gamepad, but only Xinput on controller 1. If you press F1 and have metadata files, you will see something like that allow you to browse the whole archive and show the metadata files. If you press F2, you will have a desktop version that go a little deeper. Note : if you use the muppen core or Project64 V3, it will also manage htc/hts texture for N64. Yellow star is the file that is the first to match one of your priority list. Blue star are other files (up to 5) that match your priority list Red star are files that you set as favorite If the file name is written in dark red, it’s because you launched them recently. Right click menu allow some extra stuff : You can filter roms, set favorite, Copy/paste savestate across roms (only for retroarch) and extract them. https://www.youtube.com/watch?v=z3SGPnVr8SU Submitter Nixx Submitted 06/24/2023 Category Third-party Apps and Plugins
-
Version 1.7
80 downloads
BigBoxProfile is an app that allows you to alter how Launchbox/BigBox and each of the emulators works, adding a profile system and tons of features that allow you to alter/customize how emulators work. What is BigBoxProfile ? This app is made of two parts that work together but can be used independently. 1- There is a part that alters how Launchbox/BigBox works and add a new command line parameter “--profile=” that will trigger users' configured settings. It allow you to bind a specific monitor, sound card for a profile or even use a specifics launchbox profile settings (for example make a bigbox profile that only show some of the platform/playlists) 2- The other part allow you to alter how emulators works, change the command line that they receive on the fly and do tons of stuff (change monitor settings, execute ahk code, use fallback path for rom, copy rom from distant path to local drive or ramdisk, extract archive, executes pre/post command lines, including command line as admin, force the game to be run as admin …) How does it works ? The app makes extensive use of a hidden feature of windows called the “Image File Execution” injection. If you edit the registry at “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\” you can register a key with the name of an executable to target and an app that will replace it. So, in my case, it create this kind of keys : That way, when you launch an executable called BigBox.exe, instead of launching it, it will call BigboxProfile.exe. My app will do actions and call bigbox (or launchbox) itself. So, it’s like an exe wrapper, but from an user standpoint, it’s invisible. As for emulator, it works the same, once a emulator exe is registered inside BigboxProfile the app will register a registry key to hijack it, do some user configured actions and then launch it. I’ve written modules that you can chain and order the way you want. Technically each module have 3 functions, ExecuteBefore, ExecuteAfter and AlterCommandLine If you chain Module1, Module2, Module3, it will do something like that when you launch the emulator : Execute ExecuteBefore for module 1, 2, 3. Pass the command line to module1 and alter it with the AlterCommandLine, then pass it to module2, and then pass it to module3, launch the game with the altered command line. On game close, execute ExecuteAfter on module 3, 2, 1. There is a slight subtlety when using launchbox auto-generated m3u for multidisc, but i will get to that later. I- Altering BigBox / Launchbox Ok, so first you can create BigBoxProfile Profiles Beware, here i’m talking about profile for BigBoxProfile (my app), it’s not related to Launchbox/BigBox settings (xml files inside the Launchbox/Data folder). You can actually alter how and witch xml files launchbox will use with a specific BigboxUtils program, but i will get to that point later. So BigBoxUtils is shipped with a “default” profile, you can add as many as you want. For example, you can add a profile called “tv” when you plan to use your BigBox on your TV Once a profile is made, you can call launchbox/bigbox to use this profile when you add –profile=<profilename> to the command line. Like BigBox.exe –profile=tv This use case is actually what made me code this app. I use bigbox on a computer that’s plugged to both my PC monitor in my room, and to my TV on the living room. I play mostly on my PC monitor, but i wanted to also be able to launch BigBox on my tv from a simple shortcut. The basic options for a BigBox Profile are here : Monitor Priority Set the monitor on witch BigBox (and eventually Launchbox if click on the checkbox) will launch. It change the monitor option in BigBoxSettings.xml before Bigbox start. (And for launchbox, it will try to move the window) By default it use as default “main”, and myself, i only use that. Main means “Main Display”, it’s a primary monitor, the one with that checkbox enabled : So, with the option set a Main, you are sure that you will not encounter weird Bigbox bug when the monitor change, it will always use the primary one, and if you change the primary Bigbox will launch on it, that’s really handy. But you can also specify an other display if you want. I actually wanted to show the real monitor name alongside DISPLAYX, but i ran into technical limitations. Use Monitor Disposition : So, here is the game changer, here you can register and set monitor layout. It actually use code from this excellent software : https://sourceforge.net/projects/monitorswitcher/ But it’s slightly altered to also manage DPI change/restoration. So, if i go back to my exemple with my TV profile, i will register a monitor layout where my TV is set as main monitor and since my monitor priority is set as main, when i launch bigbox.exe –profile=tv, it set my TV as main display, launch bigbox on it, and once bigbox is close it will restore my usual monitor layout. As a side note, on the last version of the app, in the bottom of the main form, i added a quick combo list : Quick Monitor Disposition Switch. You can use that to manually switch between saved monitor layouts. Set Primary SoundCard : It’s straightforward, once set, it will change the main playback device. Like with my tv profile, i will force the sound to use the TV HDMI. Use Specific Launchbox Data profile : It’s an hidden and experimental feature, please backup your data LaunchBox\Data before !!! So, with this features you can use a copy of some or all xml files of the Launchbox/Data folder for a BigBoxProfile. Restriction : It use hardlinks, so that only works if Launchbox/BigBox is used on a NTFS drive, not gonna work if launchbox is used from a network drive. Like, let says that for some reason, you want a custom InputBindings.xml for your tv profile. You create a folder called “Profile_tv” and put a copy of InputBindings.xml inside and that’s it. Now when you launch bigbox, if you use –profile=tv, it will replace the InputBindings.xml with that one. Now, to go on a more practical use case, if you create a folder inside Profile_tv called Platforms and you put only a copy of Nintendo 64.xml from your original Platforms folder, if you launch with –profile=tv, you will see that’s now it only show the N64 platform. Same goes with the Playlists folder. As a side note, if your end goal is to do something like kid profile with a subset of platform and playlist, instead of copy the original files, you should hardlink them (mklink /H linkName target) so in the future, if you change something in the Plateform/Playlist, the change will apply to your kid profile too. II - Emulator Hijacking So, if you didn’t do it yet, to understand how it works, you should read the explanation at the start of my documents. So, basically, you can add modules and order them, when you launch the app, it will do the action of all module, one by one, altering the command line if needed and pass it to the next module until it launch the emulator. A simple (and totally useless) exemple : With this configuration, i chain 4 modules, a Prefix, a Replace and two Suffix. You can play with the Exemple Command IN Textbox to get an idea of how the command line would be impacted. Once saved, if i use a cmd prompt and execute : CalculatorApp.exe "C:\MyRomDir\MyRom.bin" It will go to the first Prefix module and add a -f before, so the second module Replace will receive as input : CalculatorApp.exe -f "C:\MyRomDir\MyRom.bin" This module will replace .bin with .rom so the next module will receive : CalculatorApp.exe -f "C:\MyRomDir\MyRom.rom" It will add -extraarg so the last module receive : CalculatorApp.exe -f "C:\MyRomDir\MyRom.bin" -extraarg. And since the filter condition match and the command line contains -extraarg, it will add -otherarg. So, bigboxProfile will execute : CalculatorApp.exe -f C:\MyRomDir\MyRom.rom -extraarg -otherarg If you want some more real exemple, that whati’m currently using for retroarch and tecknoparrot : Quick Module list review : Prefix : Add some argument before the rest of the command line Suffix : The same, but after the rest of the command line Replace : Replace something in the command line, support regex ChangeExe : change the target Exe FixRetroarchMonitor : Will force Retroarch to use main monitor FixMameMonitor : Will force Mame to use the main monitor UseFileContent : Let say you run emulator.exe “D:/ps3/metalgearsolid.txt” and inside this text file you have D:/ps3/metagear/eboot.bin, it will execute emulator.exe “D:/ps3/metagear/eboot.bin” ChangeRomPath : You can do stuff like, if the file is not on your hard disk anymore, use another path (your NAS for exemple) CopyFile : You can run something like emulator.exe “\\nas\mygame.bin” and it will copy the file locally before launching. Support Ramdisk and show a progress bar. Great for games stored on cloud like Google Drive. ChangeDisposition : Use a specific monitor layout FakeFullScreen : Turn a windowed windows into a fake full screen, removing borders and maximize. RunAsAdminTask : Execute the emulator.exe as admin. ExecutePrePostCmdAsAdmin : Execute extra command as admin before and after the emulator launch (like for example, start and stop DS4Windows) ExecuteAHK : Make your own custom module in AHK RomExtractor : Show a GUI to choose and extract a game inside an archive that contains multiple versions of the same rom. About Launchbox Auto-Generated M3U : There is a special case when BigBoxProfile receive a m3u generated by launchbox (like for Multi-Disc games) In the command that will be received by nearly all modules, the m3u file will be replaced by the first file in the m3u. Module then will not be allowed to alter the file path in the command line (but they can still alter the rest of the command line, just not the file argument. Why this design choice ? Because often, you will do stuff like filter on specific rom path, so that way, even when you use a launchbox auto-generated m3u, if you have a trigger on let say D:/roms/n64, that will still trigger it. Also, there is two modules that will behave differently, CopyFile and ChangeRomPath. They will run for each element in the m3u. Modules Deep Dive : Prefix : Add some argument before the rest of the command line You can use a filter to only do that if the cmd line contain something Suffix : The same thing but as Suffix Replace : The thing to not here is that Replace support Regex, the format is similar than those used for Notepad++ ChangeExe : Nothing to say here, it change the exe, i should add a filter condition when i have some free time UseFileContents : Let say you run emulator.exe “D:/ps3/metalgearsolid.txt” and inside this text file you have D:/ps3/metagear/eboot.bin, it will execute emulator.exe “D:/ps3/metagear/eboot.bin” You can use relative path inside the file too, and use one of the two option in the radiobox ChangeRomPath Ok, so this one is a little more tricky. It will trigger when you launch a file as argument to your emulator that match path to replace. You have two side : Hight Priority Path and Low Priority Path. Hight Priority path is when you have an extra copy of your file on a quicker drive. Like you launch emulator.exe D:/rom/plateform/mygame.bin , D:/ is a slow hdd mecanical drive. If you have set C:/rom/ as Hight priority path and C:/rom/plateform/mygame.bin exist, it will use this one instead and your final command line will be emulator.exe C:/rom/plateform/mygame.bin Low Priority Path is triggered when the file passed as argument does not exist Like if i remove the file D:\rom\mygame.bin and i launch emulator.exe D:/rom/plateform/mygame.bin Since, the file does not exist, it will search in my low priority path if Z:\home\mehdi\coffre\sf_POOL_JEUX\Roms\mygame.bin exist, and if yes, it will launch emulator.exe Z:\home\mehdi\coffre\sf_POOL_JEUX\Roms\mygame.bin Side note : By default, launchbox does not allow you to launch games where the file is missing, you get : To solve that issue, you can use this addon here : https://forums.launchbox-app.com/topic/74181-bypass-rom-path-verification-before-launch/#comment-438354 CopyFile : You can view a demo here where is use ChangeRomPath to point the file to my cloud drive if the file is missing, and then CopyFile to copy from Gdrive to my local storage before launching the game : https://www.youtube.com/watch?v=KI64EIPFmxk Note : It does support Ramdisk if you don’t want to keep the file and preserve your ssd. For that you need to install this app : http://www.ltr-data.se/files/imdiskinst.exe ChangeDisposition : Use a specific monitor layout Note : the button to create new screen disposition do not work, to create disposition, use the option on the main window config. Btw, here you have an use case i do regularly, when i want to apply a filter for a bunch of games, instead to use a filter with the rom name inside, i use a new argument (here –2k) and then i add this extra argument in launchbox This changeDisposition feature is really handy with tecknoparrot when you have game that can be very picky with monitor framerate and resolution. FakeFullScreen Turn a windowed windows into a fake full screen, removing borders and maximize. It only support search by executable name, you can use emulator.exe, but you can also set one or search in the command line by regex. (i do that because i have a case of instead using the emulator.exe directly i use an application wrapper that do something like launcher.exe emulator.exe argos. ) Timeout is the time to wait for the application. RunTaskAsAdmin : I have a few games on tecknoparrot that actually requiere admins rights to be launch. And since launchbox/bigbox is launched without thoses rights, i have an issue and i don’t want to be bother by UAC prompt. So, how does it works ? When the condition to launch as admin is fufill, it will register a shreduled task (only asking once with UAC). In my exemple, instead of triggering by some element in the command line, i check into the file passed in the command line if it contain a specific string. ExecutePrePostCmdAsAdmin Execute extra command as admin before and after the emulator launch (like for example, start and stop DS4Windows) ExecuteAHK This one is tricky, it’s for power users. It allow you to make custom module in AHK. Execute Before is the code that will execute before emulator launch, Execute After will execute on emulator close. And in Modify command line you can alter an array variable called Args Modify Command Line Exemple only only apply to the exemple command line, so it’s used only for test. With this module you can create stuff like append specific config if you are remote playing and do a lot of stuff. https://www.youtube.com/watch?v=NxezepuAkLI RomExtractor So, i’m using the Hackset with 8bits/16 bits era consoles. Instead of using roms, i have archives filled with alternative versions of the same game. So, it’s vital for me to have a way to select and launch a game within the archive. As of today, i was using the awesome plugin ArchiveCacheManager ( https://github.com/fraganator/archive-cache-manager ) but i wanted something more suited for my own need, and be able to chain it at the end of my module list. Also, since BigBoxUtils is a third party application and not a plugin, that allow me to use it outside launchbox/bigbox and do not fear that a future update would break the plugin. So, if you used ArchiveCacheManager before, this module is straightforward. Some of the feature of ArchiveCacheManager are missing, it only manage archives (zip, rar, 7z), not iso, chd and don’t have a batch extract feature. On the other side, it have a few features and supports the metadata files packed with the Hackset. (you should put them either in a metadata subfolder on the Bigbox profile install dir or on the parent directory of your rom files) So, the config : If you set a max size of the Cache Dir, oldest files inside will be removed if the total size go over the threshold. You can set multiple priority profile SmartExtract is similar than ArchiveCacheManager, if a file contains only files with extensions that match the standalone rom extensions and the metadata extensions, when you select a file to extract, it only extract this one. If SmartExtract is not enabled or the archive contains files with unknow extensions, it will extract the whole archive. If ImDisk is installed, you can use ramdisk to receive the extracted rom file. The priority list allow you to automatically select witch file should be extracted by default. On execute, you will see a windows like that : The file selected by default will be either the first one that match a priority rule or the last played files. It also feature a short list of games (Your favorites games, up to 5 games that match your priority rules and up to 5 last games played) It does support gamepad, but only Xinput on controller 1. If you press F1 and have metadata files, you will see something like that allow you to browse the whole archive and show the metadata files. If you press F2, you will have a desktop version that go a little deeper. Note : if you use the muppen core or Project64 V3, it will also manage htc/hts texture for N64. Yellow star is the file that is the first to match one of your priority list. Blue star are other files (up to 5) that match your priority list Red star are files that you set as favorite If the file name is written in dark red, it’s because you launched them recently. Right click menu allow some extra stuff : You can filter roms, set favorite, Copy/paste savestate across roms (only for retroarch) and extract them. https://www.youtube.com/watch?v=z3SGPnVr8SU -
Bypass Rom path verification before launch
Nixx replied to Nixx's topic in Third-Party Applications and Plugins (Released)
I have an use case with my other tool here https://forums.launchbox-app.com/topic/72127-bigbox-profile-if-you-use-bigbox-on-both-your-pc-monitor-and-your-tv-screen-you-probably-need-this/ Basically, it act as a middle man beetween launchbox and the emulator. So even if launchbox execute retroarch.exe D:/roms/myrom.bin, the real command that retroarch receive could be \\MyNas\myrom.bin if i currently don't have the file on my harddrive. To give a complete exemple : (and i just saw a bug i have to correct for my next rlz) If the rom was on C:\FavoriteRoms, it would have use it regardless if it's on D drive or not, but it's not here (usefull if you want a game to run from quicker SSD instead of HDD) For my test, i renamed my directory dreamcast on my D:\ drive so it does not find the rom, so it look for the low priority paths. My Nas is offline, so no match here. He found a match on my google drive mounted drive, modify the command to change the path and process to the next module (CopyFile) And for my google drive, since it's too slow to launch game from there, i use the CopyFile module (not yet rlz), that copy the game to a local drive E:\cache and change the command line to execute it from here. (And yes, my CopyFile module have an ugly UI, but it's not finished) -
So, i guess this is for really niche use case and the way i manage to do that is ... well, it works.... So, my point is to get rid of this message and launch the emulator command even if the rom is not there : You don't have this verification if your emulator name have "Mame" in his name, so it just rename your emulator to MAMEFAKE-emulator name just before launching the game and restore it after. I'm too lazy to make a github for few lines of code, so here is the source code : internal class GameLaunchingPlugin : IGameLaunchingPlugin { public void OnBeforeGameLaunching(IGame game, IAdditionalApplication app, IEmulator emulator) { if (!File.Exists(game.ApplicationPath) && emulator.Title.StartsWith("MAME") == false) { emulator.Title = "MAMEFAKE-" + emulator.Title; } return; } public void OnAfterGameLaunched(IGame game, IAdditionalApplication app, IEmulator emulator) { string prefixToRemove = "MAMEFAKE-"; if (emulator.Title.StartsWith("MAMEFAKE-")) { emulator.Title = emulator.Title.Substring(prefixToRemove.Length); } return; } public void OnGameExited() { return; } } BypassFileExistCheck.dll
-
Probably complicated to make, but that's a great idea
-
GameFaqsRatings : Import GameFaqs Rating
Nixx replied to Nixx's topic in Third-Party Applications and Plugins (Released)
Strange, works fine for me. Do you use the last version of launchbox ? Can you try copy paste the dll from LaunchBox\Core\Unbroken.LaunchBox.Plugins.dll ? -
PCSX2 is an exception, i was not able to parse their website due to reactjs. So i get the compatibility data from https://raw.githubusercontent.com/PCSX2/pcsx2/master/bin/resources/GameIndex.yaml And i have no wiki url for ps2, but that's not a big deal since as you said, their wiki is outdated. Also, all my compatibility data are 'best effort match', it's far from perfect and can have errors.