Jump to content
LaunchBox Community Forums

Nielk1

Members
  • Posts

    178
  • Joined

  • Last visited

Everything posted by Nielk1

  1. @cammelspit Yes. In my test setup in LaunchBox I have the N64 platform implemented as such: -steam -name "%gamename% (Nintendo 64)" -fallbackname "Nintendo 64" -proxy "D:\Program Files (loose)\RetroArch\retroarch.exe" -L "cores\mupen64plus_libretro.dll" With GameLaunchProxy.exe as the emulator and LaunchBox automatically putting the rom path/file at the end.
  2. @cammelspit Oh, sorry for the minor point of confusion. [-switch] is often used when noting command lines to indicated a parameter is optional.
  3. @cammelspit I'm going to take another break I think on this till next weekend, but here's some information and a question. How do you name your games for this? Name (Platform)? Name? Name (Emulator)? I can mass-load shortcuts into Steam for the first 2 very easily, though you don't need to do that. I'm using my test copy right now with only one entry called "SteamProxy". Pre-loading them is more for if the rename system dies in the future. I've got the system set up to use this type of CLI: GameLaunchProxy.exe [-steam] [-steambigpicture] [-name "%gamename% (%platformname%)"] [-fallbackname "%platformname%"] [-rom "path/to/rom"] -proxy <command to proxy> -steam causes it to use the SteamProxy, otherwise it just launches the program itself. -steambigpicture causes it to start BigPicture (implies -steam) -name sets the name of the game for when it matters, such as with Steam. %gamename% and %platformname% are substituted, though you could end up with a blank platform name which with my example string above would look a little strange. It's easily possible to just hardcode the platform name into your shortcut in LaunchBox. -fallbackname is the backup name it uses if finding a shortcut and renaming the default fail -rom is the rom name/path used in looking up it's local name list. If this isn't supplied it will assume the last parameter is the rom which is sufficient 99% of the time -proxy is a required command, everything after it is the command to be proxied I seem to have the Steam logic working and need to do some logging improvements, restore the original program functions like font loading and aggressive focus, and remove any old dead logic. Right now the internal game list can only be scraped from LaunchBox. I need to add a manual one. Also the platform list, while stored separately, currently in the interface only pulls from the LaunchBox database (or more specifically the LaunchBox database cache generated when you click "Scrape LaunchBox"). Oh, and as a last bit for the progress report: the SteamProxy.exe is added to Steam with 0 arguments. It just needs to be in the same place as the GameLaunchProxy. Buttons in the program will add these shortcuts while Steam is running and in the event of a failure will ask you to close Steam so an alternate method can be used.
  4. @cammelspit I wanted to show you a progress report in the form of a picture. Of course the funny thing is that none of these entries actually do anything if you run them. They're calling a special program (separate one now) called "SteamProxy.exe" that has only one purpose: start whatever program is noted in its data file. They can be all added and removed from Steam with 1 click. Code for doing so while Steam is running is tested and working. Code for adding them while Steam is closed is not fully tested yet. You'd be surprised how annoying that "é" was, but it exposed a bug in the Steam4NET interface I am using that I had to fix.
  5. @cammelspit Interesting. I wonder why it didn't close. It latches onto the process and hold on to it until it closes. If it had failed to latch on to the emulator it would have self terminated after 10 seconds. I've been busy sadly so I've not been able to make the massive refactor.
  6. I could make it latch onto LaunchBox's library XML at startup at the cost of speed, but I think it would be better that you run the proxy setup program and go to the "Names" tab and click a "Load Names From Launch Box" button and have it scrape the library XML and save the information for later. That way I could add other name sources in the future as well as a manual override list.
  7. @cammelspit There's calls for everything in Steam but they are all very fiddly and could break any time. It's normally good to try to find ways to avoid using them. The overlay is not toggelable for any 3rd party shortcut in Steam. It's best to just respect whatever settings the user has set via Steam. When you apply categories to a game in Steam you can use the Hide checkbox. This adds it to a special tag that can only be seen if you select "Hidden" in the drop down at the top for types. This appears to work for 3rd Party Shortcuts in Steam, though I've not tried restarting Steam after setting it. I am thinking that the name system will actually be a substitution engine that detects the rom filename and matches it to a proper name, but the names would all be scraped from LaunchBox (or other sources). I'd also check inside archives when generating said list to be sure anything unzipped by the front end was getting the proper treatment too.
  8. @cammelspit Your evaluation of my explanation is mostly correct. Indeed, manually adding the shortcut via closing and re-opening Steam is probably far too slow to do during launch time. I'm thinking a bit more about it and I am thinking about this priory order now: A Steam shortcut for the Proxy with the Game Name already applied A Steam shortcut for the Emulator with the Game Name already applied A Steam shortcut for the Default Proxy, Renamed to look like the game A Steam shortcut for the Proxy with the backup name (name of the Emulator or system most likely) with a warning note A Steam shortcut for the Default Proxy without Renaming with a warning note Error My thought is it would try these in order until one succeeded. An ICE like system to add a ton of hidden shortcuts that fit condition 1 based on game lists like LaunchBox is easy. Even if you never used the ICE like system #3 still works well unless renaming breaks. I think that's the best setup. Times: Checking if a shortcut exists: approx 0.01 seconds Starting big picture: 1 second delay Time before proxy gives up trying to start game: 10 seconds Adding a shortcut or renaming a shortcut the easy way which can break: approx 0.1 seconds. Adding a shortcut the hard way (steam has to be closed): approx 0.01 seconds. Closing and reopening steam for the above: upwards of 1 minute
  9. Wow... I think I am going to become @DOS76 at some point. "Black" is where I keep a copy of every DRM free game and album I ever buy in bundles. "Blue" has the music and a lot of random crap. "Seagate" is an old Seagate that's slowly dying. Data, Black, Blue, and Green are all WD 4TB Black drives. The NAS is 6 WD 6TB Red drives I have 3 4TB WD MyBook and 1 3TB WD MyBook externals which I used to do backups on but are currently not being used due to the purchase of the NAS. I currently store my roms on my NAS and that seems OK so far, but I am still setting everything up. My LaunchBox is really slow due to the library size but that's in part because I am still cleaning things. I have over 2K paid games on Steam. I believe in paying developers for their work when possible. I also believe in archiving and do my best to store things.
  10. The entire reason for the ID on the -steamproxysetup {ID} command is so that you can have multiple proxies in Steam and it will select the one you want. This was most useful before the renaming logic was in and if in the future the rename logic breaks. For example, I have a shortcut in Steam called "RetroArch" which is renamed for the game running. If the rename failed it would at least still say "RetroArch". If I remove the ID entirely, setup becomes a lot easier, but you have no fallback name for if the rename function fails. It would likely start saying "Nielk1 is playing Steam Proxy" if the rename failed. What it does right now: Request to run via Proxy ABC123: RetroArch with "Battlezone - Rise of the Black Dogs (USA).n64" comes in with a request to name as "%cleanromname% (Nintendo 64)". Proxy scans Steam for a proxy with id ABC123. Attempts to rename it as "Battlezone - Rise of the Black Dogs (USA) (Nintendo 64)", saving the old name. Proxy launches shortcut in steam and waits for it, attempts to restore old name when it closes. I am thinking the following new logic: Request to run RetroArch with "Battlezone - Rise of the Black Dogs (USA).n64" comes in with a request to name as "%cleanromname% (Nintendo 64)". Proxy scans Steam for any shortcuts (even hidden) that are called "Battlezone - Rise of the Black Dogs (USA) (Nintendo 64)" and point to the Proxy. If not found, proxy scans Steam for any shortcuts (even hidden) that are called "Battlezone - Rise of the Black Dogs (USA) (Nintendo 64)" and point to RetroArch. If not found, proxy scans Steam for any shortcuts (even hidden) that are called "SteamProxy" (or something like that) and point to the Proxy, attempts to rename it to "Battlezone - Rise of the Black Dogs (USA) (Nintendo 64)". If not found, the proxy could attempt to insert itself into Steam's shortcut list. This would work if renaming is working. The thing that breaks renaming would break adding shortcuts while Steam is running (adding them while it's closed is easy and I could technically also close Steam, add a shortcut, and re-open it, but that's really slow) Provided a Steam shortcut is found, it is run. Once it stops running, if it was renamed the name is restored. How does that sound? I could also make the fallback name of the shortcut in Steam, in the above example "SteamProxy", an optional parameter rather than using the old hard ID system. I'm thinking about making a 2nd program that lets you select one of multiple launch configurations, so you would select Launch in LaunchBox/BigBox and then have a few seconds to select an option like "RetroArch via Steam", "RetroArch", etc, or "Cancel" before it automatically goes on with the default option. I am also looking at supporting sub-launching Origin games in Steam which requires a few fun little operations.
  11. For anyone who's curious here's how the logic is laid out for version 0.0.2.0 in diagram form. Planning to drastically change this in the next version. I might be able to abolish a lot of the fiddly ID matching elements entirely.
  12. OK, I'll keep at it. I need to standardize interfaces and come up with a way to make up for the lack of intellisense. You'll probably see this pop up in the tools section at some point.
  13. Well, I did use this really basic script with it to set all my items with no Series set to be in the "~Not Set" series: using System; using System.Data; using System.Linq; using System.Collections.Generic; namespace GameLibraryManager { public class Query { public DataTable Exec(Dictionary<string,LibraryDataSource> DataSources) { LaunchBoxDataSource lb = (LaunchBoxDataSource)DataSources["LaunchBox Library:0fa2a340-03c7-4c71-a932-3d44931310d5"] lb.Get("Game") .Where(dr => dr.GetField<string>("Series") == null || dr.GetField<string>("Series").length > 0) .ToList() .ForEach(dr => dr.SetField("Series","~Not Set"); lb.Save(); return null; } } Theoretically you could do stuff like combine it with other data sets and apply changes or inserts. I'm still trying to simply the interface of the code but I'm wondering if the whole thing is just too complex for anyone to use anyway.
  14. It generally does everything, and nothing. It's like having a lot of strings that connect to things like the library, or another data source, or another file, or another thing, and needing to put all the knots in yourself to bind it all together.
  15. I've been poking at my LB database with some general C# code for a little bit now and I realized it might be a good idea to pack up some of my code for it into general libraries. Somehow, this spun rapidly out of control into this... thing... Can I get any opinions on if it's worth pursuing the development of such a complex tool? You need to use actual code to use it so it's pretty ugly.
  16. @cammelspit OK, that makes perfect sense. I think I fixed the quote thing with 0.0.2.0, so after that we were miss-matched between bug reports and code. I keep my LaunchProxy in D:/Program Files (loose)/GameLaunchProxy/GameLaunchProxy.exe (I keep all my un-installed theoretically portable items in such a location, but that's me.)
  17. @cammelspit Are you on 0.0.2.0? Some of your logs look like things I don't think it is coded to print anymore.
  18. @cammelspit It doesn't drop the quotes, it uses the CLI exactly as it's listed in the Raw Command Line field. I thought I removed all those argument array prints because they are inaccurate when it comes to quotes. If you look here you see it's not dropping the quotes: { "Program": "E:\\Emulation\\Emulators\\MultiPlatform\\RetroArch\\retroarch.exe", "Args": "-L \"cores\\nestopia_libretro.dll\" \"E:\\Emulation\\Roms\\Nintendo - FamicomDiskSysytem (FDS)\\Yume Koujou Doki Doki Panic (Japan) [b].zip\"", "ShortcutID": 10470880777326297088 } Edit: Are you sure you're on 0.0.2.0?
  19. @cammelspit How odd. Your first log set is missing the -steamproxysetup switch. Maybe LaunchBox doesn't add the switches for a specific platform but uses them instead? If you look it thinks -L is the program to run since the program is missing and it thinks it's being used as a generic proxy (the original purpose of the program) rather than a Steam proxy because of the missing -steamproxysetup switch. Once that's sorted take a try again with the path difference and see what happens. Local paths shouldn't be an issue since the proxy sets the working directory of the program it proxies to said program's own folder.
  20. @Jason Carr OK, just forwarded it on over.
  21. I managed to recover my forever licence email from 8/4 but there's no mention of Emumovies is there (no PS section) so I'm sending a note to the indicated address.
  22. My email host went rogue and deleted that email on me. Tried to have them get it back and they bricked my inbox. Oh what a day. I might need to ask someone for that discount code if I can't get this fixed.
  23. Take your time. I've got my own fun time over here. Something ate my LaunchBox license email. My setup is a 6x6TB drive NAS and a 4x4TB computer so I know what losing a large drive is like.
  24. @Jason Carr I'm probably the type of person who causes a lot of 'firsts' like this as a professional C# coder who gets bored easily. Added as bug# 1478. For the reference of others, link: https://bitbucket.org/jasondavidcarr/launchbox/issues/1478
  25. I have a little program I wrote that forces Steam into Big Picture before starting a Steam game, but when I try to pass the steam URL to launch the game though this "emulator" Launch Box complains the file doesn't exist. It's a URL, it can't "exist". I've had no issue sending program executables through to this "emulator" I made because those are EXE files and actually exist. I'd just mass edit my Library XML to convert these items into calls to my program that forces Big Picture, but then next time I import Steam games the system will see none of them are already in the library. Anyone have a solution to this?
×
×
  • Create New...