Skip to content

Commit

Permalink
cleanup invalid IDs, cleanup README and update entry guidelines
Browse files Browse the repository at this point in the history
  • Loading branch information
GloriousEggroll committed Oct 15, 2024
1 parent ced4c79 commit 3b574d1
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 72 deletions.
162 changes: 98 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,97 +45,131 @@ https://umu.openwinecomponents.org/umu_api.php?title=SOME-GAME-TITLE

# Rules for adding umu id entries:

1. Determine the codename for the game depending on it's store.
1\. Determine the TITLE of the game.

EGS:
What is the game title?

For EGS this is the codename used in the process when trying to launch the game (viewed via `ps aux`).
* Game titles must be correctly capitalized as they may be used in protonfixes to display text output. all other entries should be lower case. Database search queries should be cast to lower case and/or searched case insensitive.

Ex. Borderlands 3:
```
-com.epicgames.launcher://apps/Catnip?action=launch
```
Codename would be `Catnip`
2\. Determine the STORE for the game.

Ex. Fall Guys
```
-com.epicgames.launcher://apps/0a2d9f6403244d12969e11da6713137b?action=launch
```
Codename would be `0a2d9f6403244d12969e11da6713137b`
What store does the game come from? GOG? Epic (egs)? Battlenet? Amazon?

GOG:
* Available store fronts that UMU can parse are:

For GOG go to https://www.gogdb.org/, search the game title, find ID correlating to the title and Type 'Game'.
- amazon
- battlenet
- ea
- egs
- gog
- humble
- itchio
- steam
- ubisoft
- umu
- zoomplatform

Ex. Y's Origin
```
https://www.gogdb.org/products?search=ys+origin
* If a game is standalone or does not belong to a major storefront, use 'none' as the store.

ID Name Type
1422357892 Ys Origin Game
```
Codename would be `1422357892`
3\. Determine the CODENAME for the game depending on it's store.

* For EGS use the 'Namespace' value for the game found here:

(More store-specific methods will be documented later).
https://egdata.app

2. If a game is on steam, the UMU ID will be umu-steamid. If it is not, you can make up any value as long as it does not already exist.
Ex. Borderlands 3:

Examples for games on steam and other platforms:
Namespace    catnip

Borderlands 3:
```
umu-397540
```
Codename would be `catnip`

Ys Origin:
```
umu-207350
```
Ex. Fall Guys

Examples for games not on steam:
`-com.epicgames.launcher://apps/0a2d9f6403244d12969e11da6713137b?action=launch`

Dauntless:
```
umu-dauntless
```
Codename would be `0a2d9f6403244d12969e11da6713137b`

3. You can have duplicate lines for the same game, just as long as the umu ID is the same.
* For GOG go to https://www.gogdb.org/, search the game title, find ID correlating to the title and Type 'Game'.

Example:
```
TITLE STORE CODENAME UMU_ID NOTE (Optional)
Grand Theft Auto V egs 9d2d0eb64d5c44529cece33fe2a46482 umu-271590
Grand Theft Auto V none none umu-271590 rockstar standalone
```
Ex. Y's Origin

ID         Name       Type
1422357892 Ys Origin  Game

Codename would be `1422357892`

4. Game titles must be correctly capitalized as they may be used in protonfixes to display text output. all other entries should be lower case. Database search queries should be cast to lower case and/or searched case insensitive.
* If a game is standalone or does not belong to a major storefront, use 'none' as the codename.

5. If a game is standalone or does not belong to a major storefront, use 'none' as the store and codename. Protonfixes has several gamefixes directories for different stores. If no store and/or codename is specified it will search instead search the 'umu' gamefixes directory instead of the store directory for the UMU ID.

6. For games not on steam the second part of the ID should have at least one letter but preferably be a phrase thats easily understandable simply so that it's not parsed as a steam id. We perform a check on the second part of the UMU ID to determine if it's numeric or not. If it is, that part is sent as the steam ID to proton. Protonfixes prioritizes UMU_ID envvar, but proton itself uses SteamAppId for some game specific fixes directly.
4\. Determine the UMU_ID for the game, depending on its store:

Ex from proton:
* If a game is on steam, the UMU ID will be umu-(Steam ID), even if it is from another store and also on steam.

Examples for games on steam and other platforms:

Borderlands 3:
`umu-397540`

Ys Origin:
`umu-207350`

* This is important in order for steam-specific game-coded fixes in proton to take effect on non-steam versions of the same game that is also shipped by steam.

* If a game is NOT on steam, but is on another platform, please try to use the ID for the platform.

GOG 'Product ID' lookup:\
https://www.gogdb.org

Epic 'Item ID' lookup (in search results under 'Items' category listings):\
https://egdata.app

* If the game does not belong to any storefront, is a standalone version, or you absolutely cannot find a specific product ID, you can make one up:

Examples for standalone games:

Genshin Impact (standalone version):
`umu-genshinimpact`

* For games not on steam the second part of the ID should have at least one letter but preferably be a phrase thats easily understandable simply so that it's not parsed as a steam id. We perform a check on the second part of the UMU ID to determine if it's numeric or not. If it is, that part is sent as the steam ID to proton. Protonfixes prioritizes UMU_ID envvar, but proton itself uses SteamAppId for some game specific fixes directly. So, if say the game 'As Dusk falls' has both protonfixes and a proton official specific fix. It's UMU ID would be umu-1341820 which gets passed to protonfixes, while the second part of that -- 1341820 gets parsed and passed as the SteamAppId/appid, this way it allows both Valve's fixes in their proton script (and their wine code) to work as well as our protonfixes.

Ex from proton:

```\
           if appid in [
                "1341820", #As Dusk falls
                "280790", #Creativerse
                "306130", #The Elder Scrolls Online
                "24010", #Train Simulator
                "374320", #DARK SOULS III
                "65500", #Aura: Fate of the Ages
                "4000", #Garry's Mod
                "383120", #Empyrion - Galactic Survival
                "2371630", #Sword Art Online: Integral Factor
                ]:
            ret.add("gamedrive")
```
if appid in [
"1341820", #As Dusk falls
"280790", #Creativerse
"306130", #The Elder Scrolls Online
"24010", #Train Simulator
"374320", #DARK SOULS III
"65500", #Aura: Fate of the Ages
"4000", #Garry's Mod
"383120", #Empyrion - Galactic Survival
"2371630", #Sword Art Online: Integral Factor
]:
ret.add("gamedrive")

* You can have duplicate lines for the same game, the UMU_ID for the game may be different for different store fronts. The only time the umu-id will be the same is if a Steam version exists.

Example (no steam version):

```\
TITLE                   STORE    CODENAME                              UMU_ID                                 NOTE (Optional)
Genshin Impact          egs      41869934302e4b8cafac2d3c0e7c293d      umu-7d690c122fde4c60bed85405f343ad10
Genshin Impact          none     none                                  umu-genshin                            standalone
```

So, if say the game 'As Dusk falls' has both protonfixes and a proton official specific fix like above. It's UMU ID would be umu-1341820 which gets passed to protonfixes, while the second part of that -- 1341820 gets parsed and passed as the SteamAppId/appid, this way it allows both Valve's fixes in their proton script (and their wine code) to work as well as our protonfixes.
* The protonfix for umu-7d690c122fde4c60bed85405f343ad10 should be a symlink to the protonfix for umu-genshin if they require the same fixes. They -can- be independent -IF- they require different fixes or if it's a new single title and no fix exists

Example (steam version):

7. The ONLY time the same game should have two different UMU IDs is if they are not from a major API-managed store front.
```\
TITLE                   STORE    CODENAME                              UMU_ID                                 NOTE (Optional)
Red Dead Redemption 2   steam    none                                  umu-1174180
Red Dead Redemption 2   egs      Heather                               umu-1174180
Red Dead Redemption 2   none     none                                  umu-1174180                            standalone
```

For example, Genshin Impact has a standalone PC version and a "PlayPC" version. Neither of these are a major API managed storefront such as like EGS or Amazon etc. In this case they are treated as individual separate games within the umu protonfixes folder, and thus they need separate IDs in the event that one may ever need different fixes from the other (umu-genshin and umu-genshin-playpc).
* The same applies here. Each different non-steam version protonfix -should- be a symlink to the steam version protonfix UNLESS it requires different fixes.

If no store and/or codename is specified it will search instead search the 'umu' gamefixes directory instead of the store directory for the UMU ID.
16 changes: 8 additions & 8 deletions umu-database.csv
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Ys Origin,gog,1422357892,umu-207350,,
Ys Origin,humble,ysorigin,umu-207350,,
Grand Theft Auto V,egs,9d2d0eb64d5c44529cece33fe2a46482,umu-271590,gtav,
Grand Theft Auto V,none,none,umu-271590,gtav,Standalone Rockstar installer
Genshin Impact,egs,41869934302e4b8cafac2d3c0e7c293d,umu-genshin,,
Genshin Impact,egs,41869934302e4b8cafac2d3c0e7c293d,umu-7d690c122fde4c60bed85405f343ad10,,
Genshin Impact,none,playpc,umu-genshin,,Play Store PC
Genshin Impact,none,none,umu-genshin,,Standalone PC installer
Red Dead Redemption 2,egs,heather,umu-1174180,rdr2,
Expand Down Expand Up @@ -38,7 +38,7 @@ Divinity: Original Sin 2 - Definitive Edition,gog,1584823040,umu-435150,,
Hogwarts Legacy,egs,fa4240e57a3c46b39f169041b7811293,umu-990080,,
Tony Hawk's Pro Skater 1+2,egs,guppy,umu-2395210,,
Satisfactory,egs,crabea,umu-526870,,
METAL GEAR SOLID,gog,1771973390,umu-metalgearsolid,,
METAL GEAR SOLID,gog,1771973390,umu-1771973390,,
God of War,gog,1074905459,umu-1593500,,
God of War,egs,91bfb663fe7a4b9698ba08bd80549b34,umu-1593500,,
Baldur's Gate 3,gog,1456460669,umu-1086940,bg3,
Expand Down Expand Up @@ -109,13 +109,13 @@ Re-Volt,gog,1207659863,umu-287310,,
Moero Chronicle,gog,1960775628,umu-638160,,
The Witcher 2: Assassins of Kings Enhanced Edition,gog,1207658930,umu-20920,,
ArcaniA,gog,1244052225,umu-39690,,
Hyperdimension Neptunia Re;Birth1,gog,1445338941,umu-282900,,
Hyperdimension Neptunia Re,Birth1,gog,1445338941,umu-282900,

Check failure on line 112 in umu-database.csv

View workflow job for this annotation

GitHub Actions / check-data

Invalid store provided 'Birth1'
Darkest Hour: A Hearts of Iron Game,gog,1445505773,umu-73170,,
LEGO® Batman 2 DC Super Heroes™,gog,1193585573,umu-213330,,
WORLD OF HORROR,gog,1169377716,umu-913740,,
Beyond Good & Evil™,gog,1207658746,umu-15130,,
Space Engineers,gog,1447762725,umu-244850,,
Hyperdimension Neptunia Re;Birth2: Sisters Generation,gog,1863533702,umu-351710,,
Hyperdimension Neptunia Re,Birth2: Sisters Generation,gog,1863533702,umu-351710,

Check failure on line 118 in umu-database.csv

View workflow job for this annotation

GitHub Actions / check-data

Invalid store provided 'Birth2: Sisters Generation'
Syberia,gog,1207658848,umu-46500,,
The Night of the Rabbit,gog,1207659218,umu-230820,,
Serious Sam: The Random Encounter,humble,serioussamrandom,umu-201480,,
Expand Down Expand Up @@ -994,8 +994,8 @@ Resident Evil,gog,1580232252,umu-1580232252,,original game from 1997
Resident Evil 2,gog,1534123252,umu-1534123252,,original game from 1999
Resident Evil 3,gog,1266089300,umu-1266089300,,original game from 2000
Flowers - Le Volume Sur Printemps,gog,1697970811,umu-1697970811,,
Silent Hill 4: The Room,gog,1141086411,umu-silenthill4,,
The Wheel of Time,gog,1584652180,umu-wheeloftime,,
Silent Hill 4: The Room,gog,1141086411,umu-1141086411,,
The Wheel of Time,gog,1584652180,umu-1584652180,,
Flowers - Le Volume Sur Ete,gog,1685981342,umu-1685981342,,
Flowers - Le Volume Sur Automne,gog,2044697588,umu-2044697588,,
Flowers - Le Volume Sur Hiver,gog,1564851593,umu-1564851593,,
Expand Down Expand Up @@ -1042,5 +1042,5 @@ Baldur's Gate: Enhanced Edition,gog,1207666353,umu-228280,bg,
Baldur's Gate II: Enhanced Edition,gog,1207666373,umu-257350,bg2,
Planescape: Torment: Enhanced Edition,gog,1203613131,umu-466300,ps:t,
Alpha Protocol,gog,1360785671,umu-34010,,
ZenlessZoneZero,egs,525aa0efd70f4399b9f64bcd2a5b38c7,umu-zenlesszonezero,,
ZenlessZoneZero,none,none,umu-zenlesszonezero,,Standalone PC installer
Zenless Zone Zero,egs,525aa0efd70f4399b9f64bcd2a5b38c7,umu-825cd0b5286c404289d456d47561cc1a,,
Zenless Zone Zero,none,none,umu-zenlesszonezero,,Standalone PC installer

0 comments on commit 3b574d1

Please sign in to comment.