components/README.md
2023-03-15 22:57:42 +02:00

218 lines
5.2 KiB
Markdown

# An Anime Game Launcher components index
Index repository for components used in the launcher. Lists wine and dxvk versions. Changes here are automatically distributed to all the launchers
## How to create your own index
### Clone repository
```sh
git clone https://github.com/an-anime-team/components
```
### Modify index
#### Components index (`components.json`):
```ts
{
wine: Wine[],
dxvk: Dxvk[]
}
```
```ts
type Wine = {
name: string,
title: string,
?features: {
?bundle: "Proton" | null,
?need_dxvk: boolean,
?compact_launch: boolean,
?command: string,
?env: {
[id: string]: string
}
}
}
```
```ts
type Dxvk = {
name: string,
title: string,
?features: {
?env: {
[id: string]: string
}
}
}
```
Features description:
| Feature | Type | Default | Description |
| - | - | - | - |
| `bundle` | ?string | `null` | Name of wine bundle which describes version / group |
| `need_dxvk` | bool | `true` | If `false`, then launcher's DXVK selection section will be disabled entirely |
| `compact_launch` | bool | `false` | If `true`, then windows part used to launch the game will be saved in `compact_launch.bat` file. This helps a lot if used `command` feature can't process launch arguments (GE-Proton) |
| `command` | string | - | Command that should be used instead of path to the wine binary (e.g. when you have special launch script like in GE-Proton). Accept keywords |
| `env` | map | - | Map of environment variables. Accept keywords |
All string fields here (`command` and `env` values) accept these keywords:
| Keyword | Description |
| - | - |
| `%build%` | path to wine build |
| `%prefix%` | path to wine prefix |
| `%temp%` | path to temp folder specified in config file |
| `%launcher%` | path to launcher folder |
| `%game%` | path to the game |
#### Components index (example):
```json
{
"wine": [
{
"name": "wine-ge-proton",
"title": "Wine-GE-Proton",
"features": {
"compact_launch": true,
"env": {
"WINEDEBUG": "+all"
}
}
},
{
"name": "wine-ge-proton",
"title": "Wine-GE-Proton",
"features": {
"command": "'%build%/custom_script'",
"no_dxvk": true,
"bundle": "Proton"
}
}
],
"dxvk": [
{
"name": "vanilla",
"title": "Vanilla"
},
{
"name": "async",
"title": "Async",
"features": {
"env": {
"DXVK_ASYNC": 1
}
}
}
]
}
```
#### Wine (`wine/[name].json`):
```ts
[
{
name: string,
title: string,
uri: string,
files: {
wine: string,
?wine64: string,
?wineserver: string,
?wineboot: string,
?winecfg: string
},
?features: {
?bundle: "Proton" | null,
?need_dxvk: boolean,
?compact_launch: boolean,
?command: string,
?env: {
[id: string]: string
}
}
}
]
```
#### Wine (example):
```ts
[
{
"name": "lutris-GE-Proton7-37-x86_64",
"title": "Wine-GE-Proton 7-37",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-37/wine-lutris-GE-Proton7-37-x86_64.tar.xz",
"files": {
"wine": "bin/wine",
"wine64": "bin/wine64",
"wineserver": "bin/wineserver",
"wineboot": "bin/wineboot",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
}
},
{
"name": "GE-Proton7-49",
"title": "GE-Proton 7-49",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-49/GE-Proton7-49.tar.gz",
"files": {
"wine": "files/bin/wine",
"wine64": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"features": {
"need_dxvk": false,
"bundle": "Proton"
}
]
```
#### Dxvk (`dxvk/[name].json`):
```ts
[
{
name: string,
title: string,
uri: string,
?features: {
?env: {
[id: string]: string
}
}
}
]
```
#### Dxvk (example):
```ts
[
{
"name": "dxvk-2.1",
"version": "2.1",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v2.1/dxvk-2.1.tar.gz"
},
{
"name": "dxvk-async-2.0",
"version": "2.0-async",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/2.0/dxvk-async-2.0.tar.gz",
"features": {
"env": {
"DXVK_ASYNC": 1
}
}
}
]
```
### Update launcher index servers
Change `components.servers` property in the launcher's `config.json` file. You can put local folder path here as well, e.g.: `file:///home/username/.local/share/anime-game-launcher/my-own-components-index`