Comments (9)
Thanks for the tips
- Good call, I will add a check empty for
when
. - In VB
LudusaviWhen()
is a dynamic array declaration, the array should be a little faster than theList
. - I'm still pondering how to handle the
bit
field. I do want to have it choose the launch config based on the current architecture, I'm just currently unsure of the best method that's going to work for me in Windows and Linux.
Update
Evidently there's been a very easy way to check the OS architecture since .NET 4.0 and it seems to work in Mono as well. So GBM now considers the platform and prefers the launch configs with the matching bit and os before anything else.
from gbm.
Hey there, thanks for your work developing the manifest! It's already been really handy for me having access to it in GBM and hopefully for everyone else once I get the release ready.
Yes I think it would be great to have the executable in the manifest. As you pointed out it's not going to work when a game uses some kind of launcher executable, but more often than not it should provide the correct process to monitor.
Other data that would be handy is the executable's arguments and the OS the executable is for.
from gbm.
This is now available: mtkennerly/ludusavi-manifest@a046c18
Here's an example:
Some Game:
launch:
<base>/Game.exe:
- when:
- os: windows
store: steam
- arguments: '--win64'
when:
- bit: 64
os: windows
store: steam
workingDir: <base>/subdir
- Can be launched without arguments on any Windows
- Can be launched with
--win64
argument and specific working directory on 64-bit Windows
Let me know if you run into any issues with it :)
Launch data for 289 games is currently omitted because of this bug in steam-user
: DoctorMcKay/node-steam-user#397 . You can see them by searching for irregular: true
in the Steam cache file.
from gbm.
Thanks! I didn't run into any issues.
It's going to need some tweaking since I didn't have nearly enough coffee today, but GBM now makes its best guess for monitored process.
from gbm.
Awesome :D I did notice some things you may want to consider:
- It looks like it always checks
when(0).os
. There may not be any cases of it right now, but the schema does allowwhen
to be empty (although, in practice, the manifest updater should omit it when empty) or to contain more than one item (e.g., if 32-bit and 64-bit Windows use the same launch config). - This is probably just because I'm not familiar with VB, but in 3911cf9, the previous
oWhen As List(Of LudusaviWhen)
seemed like it was correct to me, sincewhen
is an array of objects. - It doesn't look like
bit
is currently being checked. You may want to check the user's system (or do conditional compilation based on GBM's 32/64-bit release) to avoid using 64-bit launch configuration on 32-bit systems (and maybe even to prefer 64-bit config on 64-bit systems).
from gbm.
Nice
gbm/GBM/Managers/mgrLudusavi.vb
Lines 234 to 235 in 3a8655e
Is this missing a For Each oLudusaviWhen In oLudusaviLaunch.when
, or is that handled elsewhere/implicitly? I think the following config would cause Game.exe to be added to oSecondaryRanked on a 64-bit system:
Some Game:
launch:
<base>/Game.exe:
- when:
- os: windows
store: steam
- bit: 64
os: windows
store: steam
...since this check looks like it's only for the first item in the when
list:
gbm/GBM/Managers/mgrLudusavi.vb
Line 253 in 3a8655e
from gbm.
Oops that's pretty sloppy, you're right it should be iterating through oLudusaviLaunch.when
for that example. I believe I did that because I never noticed any instance of that example ever happening in the manifest, there was always only 1 instance of when. I had some trouble wrapping my head around the YAML structure for launch at first and what the hyphens indicate, this is my first time working with it.
There is one thing I noticed in the manifest I'm unsure about. A launch entry for Dragon Age Origins contains stray double quote in a path. The YAML parser doesn't seem to care but I thought I'd mention it.
launch:
<base>/"docs:
from gbm.
Oddly enough, that's really what the Steam API reports (via app_info_print 47810
):
"launch"
{
"0"
{
"executable" "DAOriginsLauncher.exe"
"arguments" ""
"description" "Default"
}
"1"
{
"executable" "\"docs"
"description" "View Support Information"
}
}
Might have been a typo when the developer was configuring things, or maybe their folder actually has a quote in it.
from gbm.
Ah alright. It must be a typo since Windows files systems can't even have a quote in a folder or file name.
from gbm.
Related Issues (20)
- Missing Translation Strings HOT 2
- Changes may not be saved when importing configurations
- Dont create Backup on Game name HOT 3
- More consistent and descriptive file and folder names for backups HOT 4
- Global multiple and differential backups settings HOT 3
- Saving in Game Manager doesn't save until Game Manager window is closed HOT 1
- Feature to duplicate a game manifest HOT 5
- Suggestions for UX improvement HOT 3
- Death Stranding official manifest has wrong Save Path HOT 1
- Community-submitted game manifests HOT 1
- Multiple Save Paths in a single game manifest HOT 1
- Error when searching Ludusavi for games to import (List no longer searchable) HOT 2
- Any thoughts on adding the ability to periodically upload game save to webdav? HOT 1
- Is there a way to start GBM in the tray at windows startup? HOT 1
- v1.3.3 - Excessive padding? HOT 13
- [Feature-Resquest?] Now, with active development stopped, allow us to update the included 7-Zip standalone manually HOT 4
- Error occurs when a game is detected
- Ludusavi Manifest import currently not working
- Feature suggestion: Start/Close GBM to tray HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gbm.