Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reword intro paragraph #74

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 43 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
# umu-database
Contains spreadsheet of game titles for different stores, their store specific code names, and their umu ids.
# umu database

Information from the spreadsheet is piped into a umu sql database which is then read by various tools to fetch data.
This repository contains the data and tools needed to provide seamless protonfixes integration for games of diffferent stores.
Copy link
Member

@R1kaB3rN R1kaB3rN Jan 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

different. Also, prefer from different stores.

This repository contains the data and tools needed to provide seamless protonfixes integration for games from different stores.

Historically, Proton fixes have targeted Steam games only but umu makes it possible to use Proton for all existing Windows games.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

protonfixes:

Historically, protonfixes have targeted Steam games only but umu makes it possible to use Proton for all existing Windows games.

Copy link
Member

@R1kaB3rN R1kaB3rN Jan 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would probably hyperlink umu too, so:

Historically, protonfixes have targeted Steam games only but umu makes it possible to use Proton for all existing Windows games.


Typical useage would be for a tool to query the database using the codename and store type, and fetch the correlating game title and umu id, then feed them into the umu launcher.
We collect data for games that do require fixes for every store they are available on. This data is stored in a spreadsheet which is
regularly imported in a database accessible online at https://umu.openwinecomponents.org

# Online database search:
Game launchers such as Lutris and Heroic can then query the database to match a given protonfix with games of different stores. Those launchers can provide a store name and the internal codename on that store to get the matching umu id and game title.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize id:

Game launchers such as Lutris and Heroic can then query the database to match a given protonfix with games of different stores. Those launchers can provide a store name and the internal codename on that store to get the matching umu ID and game title.


https://umu.openwinecomponents.org
This database is by no means a complete database of every game released on Windows. We focus on games that requires fixes in Proton.
Games that run out of the box have no need be added to the database. If you want a more extensive database of games you can use the Lutris API.

# Current available database endpoints (results are in JSON format):
## Current available database endpoints (results are in JSON format):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part is a note, which preferably be not be in the title: "(results are in JSON format)".

Would probably just omit it.


List ALL entries:

Expand Down Expand Up @@ -43,37 +45,37 @@ Get UMU_ID based on TITLE and no store:

https://umu.openwinecomponents.org/umu_api.php?title=SOME-GAME-TITLE

# Rules for adding umu id entries:
## Rules for adding umu id entries:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rules for adding umu ID entries:


1\. Determine the TITLE of the game.

What is the game title?

* 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.
- 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Game titles must be correctly capitalized as they may be used in protonfixes to display text output. All other entries should be lowercase. Database search queries should be lowercased and/or searched case-insensitive.


2\. Determine the STORE for the game.

What store does the game come from? GOG? Epic (egs)? Battlenet? Amazon?

* Available store fronts that UMU can parse are:
- Available store fronts that UMU can parse are:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

storefronts. Also, prefer umu

Available storefronts that umu can parse are:


- amazon
- battlenet
- ea
- egs
- gog
- humble
- itchio
- steam
- ubisoft
- umu
- zoomplatform
* amazon
* battlenet
* ea
* egs
* gog
* humble
* itchio
* steam
* ubisoft
* umu
* zoomplatform

* If a game is standalone or does not belong to a major storefront, use 'none' as the store.
- If a game is standalone or does not belong to a major storefront, use 'none' as the store.

3\. Determine the CODENAME for the game depending on it's store.

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

https://egdata.app

Expand All @@ -89,48 +91,47 @@ What store does the game come from? GOG? Epic (egs)? Battlenet? Amazon?

Codename would be `0a2d9f6403244d12969e11da6713137b`

* For GOG go to https://www.gogdb.org/, search the game title, find ID correlating to the title and Type 'Game'.
- For GOG go to https://www.gogdb.org/, search the game title, find ID correlating to the title and Type 'Game'.

Ex. Y's Origin

ID         Name       Type
ID         Name       Type
1422357892 Ys Origin  Game

Codename would be `1422357892`

* If a game is standalone or does not belong to a major storefront, use 'none' as the codename.

- If a game is standalone or does not belong to a major storefront, use 'none' as the codename.

4\. Determine the UMU_ID for the game, depending on its store:

* 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.
- 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Steam instead of steam. Also, umu

If a game is on Steam, the umu ID will be umu-(Steam ID), even if it is from another storefront and also on Steam.


Examples for games on steam and other platforms:

Borderlands 3:
Borderlands 3:
`umu-397540`

Ys Origin:
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.
- 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use Steam and Proton

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.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, maybe changing "Steam-specific game-coded fixes" to simply "Steam-specific fixes"?


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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize Steam. And I think bolding not would be better?

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
https://www.gogdb.org

Epic 'Item ID' lookup (in search results under 'Items' category listings):\
https://egdata.app
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:
- 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):
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.
- 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For games not on Steam the second part of the ID should have at least one letter, but preferably be a phrase that's 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 the UMU_ID environment variable, but Proton itself uses SteamAppId for some game-specific fixes directly. So, if say the game As Dusk Falls has both protonfixes and an official Proton-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 app ID (SteamAppId). 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:

Expand All @@ -149,7 +150,7 @@ What store does the game come from? GOG? Epic (egs)? Battlenet? Amazon?
            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.
- 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First sentence is confusing. We can remove the comma and use where. Also, we can use storefronts

You can have duplicate records for the same game where the UMU_ID for the game may be different for different storefronts. The only time the umu ID will be the same is if a Steam version exists.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

may be different across storefronts:

You can have duplicate records for the same game where the UMU_ID for the game may be different across storefronts. The only time the umu ID will be the same is if a Steam version exists.


Example (no steam version):

Expand All @@ -159,7 +160,7 @@ Genshin Impact          egs      41869934302e4b8cafac2d3c0e7c293d
Genshin Impact          none     none                                  umu-genshin                            standalone
```

* 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
- 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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe change symlink to symbolic link. See below.


Example (steam version):

Expand All @@ -170,15 +171,14 @@ Red Dead Redemption 2   egs      Heather                
Red Dead Redemption 2   none     none                                  umu-1174180                            standalone
```

* The same applies here. Each different non-steam version protonfix -should- be a symlink to the steam version protonfix UNLESS it requires different fixes.
- The same applies here. Each different non-steam version protonfix -should- be a symlink to the steam version protonfix UNLESS it requires different fixes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same applies here. Each different non-Steam version protonfix should be a symlink to the Steam version protonfix unless it requires different fixes.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, symlink isn't a word, though most people know what it means. Maybe prefer symbolic link?

The same applies here. Each different non-Steam version protonfix should be a symbolic link 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.


5\. Optionally include a commonly used acronym for the game:

* For example "WoW" is an acronym for World of Warcraft (or also World of Warships)
- For example "WoW" is an acronym for World of Warcraft (or also World of Warships)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example "WoW" is an acronym for World of Warcraft (or also World of Warships)


6\. Optionally include a note:

* For example Genshin Impact has two standalone versions. One from Hoyo, one from PlayPC. Leave a note stating which one it is.
- For example Genshin Impact has two standalone versions. One from Hoyo, one from PlayPC. Leave a note stating which one it is.
Copy link
Member

@R1kaB3rN R1kaB3rN Jan 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example, Genshin Impact has two standalone versions, namely one from Hoyo and one from PlayPC. Leave a note stating which one it is.