Special K v 0.11.0.45 - [ Bringing auto-update / SKIM back ]

Ah yeah if you can’t maintain it, that’s a problem. I wonder if you could maybe just use an issue tracker, like Bugzilla or GitLab or something. You could create 1 issue per game with whatever compatibility info you want, and tag each issue with [Compatibility] or something like that to make them easy to find.

Other option might literally be to just make a wiki of some kind, whether it’s mediawiki or some other wiki setup, and just have a page per-game.

The forum itself is capable of this. An entire category can be declared a Wiki and then threads can be made within that category per-game. I imagine it will get rather sloppy though, unless users master the forum’s elaborate search function.

Should we make an announcement to everyone following the Steam version of the game at some point that the forums have moved and development on the Steam version has ended?

There are about 5,000 people who will receive this announcement, so it’ll bottleneck the account creation and hit the daily cap no matter when we do this. Somehow it needs to be conveyed that the forums have moved and unless you need to post something immediately creating accounts is going to create a real mess.

Just a heads up, the Steam version won’t run for users if they don’t have a manifest for appid 1157970 (Special K). I’ll build a new version of SKIF tomorrow that does not have that requirement.


FIXED

Yes, it was my intention to make an announcement on both the Special K app through Steamworks (I assume those are the 5,000 you spoke of) as well as the Steam Group itself (8,235 + 511 through the ‘Creator Homepage’).

Perhaps not necessarily simultaneously though.

Yeah, the store page for Special K has ~5,000 wishlist / followers. I’m not entirely sure which class of news event goes out to who, but that’s a lot of people when I can only handle 100 new accounts a day.

All links to SK 0.11.0.45 now include SKIF 0.6.9, which does not require appmanifest to run.

I’m considering packing the app manifest into SKIF.exe and unpacking it if it’s not present on systems. That will allow me to continue displaying the Global Injection control panel sensibly in the Manage Games List until I come up with a platform-agnostic game list.

Can you use the file from the Special K folder itself? So you don’t have to unpack it to the users’ steamapps folder? Just wondering as these appmanifest files otherwise remain and can cause minor but weird behaviors in the Steam client at times.

The client had have an issue for years, for example, where its taskbar icon would permanently be highlighted in the taskbar as if a download was stalled, that was always tracked down to an old appmanifest file being present in Steam’s folders.

I’ll figure something out. Don’t want Valve complaining that I’m leaving files in weird places. Don’t want Valve talking to me at all, to be honest :stuck_out_tongue:

Don’t worry, Valve would never in a million years figure it out.

By the way, in designing my own substitute for Steam Workshop, it has occurred to me that it might be possible to point content directly to personal Google Drive type storage sites.

I could also host some content on the servers I am leasing, but I suspect that will run dry very quickly. What kind of security issues, if any, could be associated with fetching a .7z file full of textures? I cannot think of any, but should probably hash this out before making off-site Workshop storage an integral part of the system.

If we crank the patron count up a bit more, I could likely host all of it in a secure Content Distribution Network similar to what Valve has with Akamai.

I would do something similar to how a lot of Linux distributions handle their package managers. Store a GPG signature and checksum for the downloads on your own servers, so that you can control them, and then the download can be from any mirror. So they user downloads from the mirrors and then uses the data downloaded from your own site to verify the integrity of the downloaded package. GPG Signatures and checksums are tiny, so saves bandwidth and storage on your own personal servers, and allows users to be sure they are downloading validated content. Alternatively the signatures can be hosted on the mirrors, but the signing key has to be known and trusted by the downloader. You verify the signature and you at least know that the file is from a “trusted” known entity.

Ah, that’s a really good idea. Thank you :slight_smile:

It’d also solve DMCA takedown disputes, I can just wipe the signature and then nobody can download the content (short of recompiling SK with the check removed, but I am not liable for that).

I’m not sure how most distros handle it, but ArchLinux (the one I use most often) has a package that basically imports a set of GPG keys from standard GPG keyservers and marks them as “trusted” in the local store. Periodically, you would need to refresh the keys from the keyserver. That way the authors can revoke their own keys using a revocation key. That way if their key is compromised they can invalidate it themselves. In this case, I’m not sure such a system is really warranted in this situation. Not like these are binaries vital to the proper operation of your OS like Linux packages can be.

No, it’s more complicated than need be … but there’s this guy in the back of my head who won’t shutup about how fun that would be to implement :stuck_out_tongue: That’s the same guy responsible for a lot the unique features of Special K, sometimes he strikes gold, but I think in this case it’s a waste of time :stuck_out_tongue:

I miss Steam :-\

Just knowing what application is actually running is ridiculously difficult. I might have to maintain some kind of database of executable hashes / filenames in order to implement even half of the features I did when SK was tightly coupled to Steam.

Somehow GeForce Experience is able to identify games, I’m guessing they have a database of known install locations / directory structures or something. The driver needs to know what game is running in order to cheat in benchmarks :slight_smile:

@Aemony Do you know from your experience on PCGamingWiki if the other store platforms have any identifying signatures (i.e. Steam’s AppID) for the currently running game?

AppID is so convenient, and lets me direct link to a game’s entry, but I’ve been using Steam and nothing but Steam for so long, I don’t even know where to begin analyzing installed games for the other stores.

Epic’s launcher typically sends an app identifier as part of the command line arguments to a process. See for example “epicapp” parameter for the game A Short Hike below:

"D:/Games/Epic Games/AShortHike/AShortHike.exe" 
  -AUTH_LOGIN=unused
  -AUTH_PASSWORD=<temporary-password-token>
  -AUTH_TYPE=exchangecode 
  -epicapp=<d6407c9e6fd54cb492b8c6635480d792>
  -epicenv=Prod
  -EpicPortal
  -epicusername="<username>"
  -epicuserid=<userid>
  -epiclocale=en

The “epicapp” value can then be correlated to an “item” through e.g. the third-party EpicData.info database (think SteamDB), such as A Short Hike.

The epicapp identifier can also seemingly be set to something custom, such as for For Rogue Company:

"D:/Games/Epic Games/RogueCompany/RogueCompany.exe"
  -hirezenv=RETAIL
  -homedir=RogueCompany 
  -AUTH_LOGIN=unused 
  -AUTH_PASSWORD=<temporary-password-token>
  -AUTH_TYPE=exchangecode 
  -epicapp=<Pewee>
  -epicenv=Prod 
  -EpicPortal  
  -epicusername="<username>" 
  -epicuserid=<userid>
  -epiclocale=en

I assume this value is unique, as I believe it is used by the embedded EOS functionality to authenticate and validate ownership over the title for the specified Epic account.


As for GOG Galaxy, I am not entirely certain how it identifies running games. Perhaps through the often included goggame-<appid>.info file that is stored alongside the game executable. That file includes stuff like the app/product/game ID (such as 1785384169 for Carrion), as well as client ID, build ID, languages, etc. It’s basically a variant of Steam’s appmanifest files stored separately.

Due to it’s general independency of the GOG Galaxy client itself, GOG games are a weird matter. For example, I have the above mentioned game, Carrion, installed on my system through a separate GOG account, but when I run GOG Galaxy as my main account it neither acknowledges its existence when its running nor allows me to add the game to the client.