Released new version 1.1.1, using GE-Proton as the default environment.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# PristonTale EU for Linux
|
||||
|
||||
Version 1.0.8 installs, updates, repairs, and launches PristonTale EU through a
|
||||
Version 1.1.1 installs, updates, repairs, and launches PristonTale EU through a
|
||||
native Linux dashboard. Game files come directly from the publisher and are not
|
||||
included in this archive.
|
||||
|
||||
@@ -15,11 +15,11 @@ Then run:
|
||||
```text
|
||||
openssl pkey -pubin -in launcher-update-public.pem -outform DER | sha256sum
|
||||
openssl dgst -sha256 -verify launcher-update-public.pem \
|
||||
-signature pristontale-eu-linux-installer-v1-0-8.tar.gz.sig \
|
||||
pristontale-eu-linux-installer-v1-0-8.tar.gz
|
||||
sha256sum -c pristontale-eu-linux-installer-v1-0-8.tar.gz.sha256
|
||||
tar -xzf pristontale-eu-linux-installer-v1-0-8.tar.gz
|
||||
cd pristontale-eu-linux-installer-v1-0-8
|
||||
-signature pristontale-eu-linux-installer-v1-1-1.tar.gz.sig \
|
||||
pristontale-eu-linux-installer-v1-1-1.tar.gz
|
||||
sha256sum -c pristontale-eu-linux-installer-v1-1-1.tar.gz.sha256
|
||||
tar -xzf pristontale-eu-linux-installer-v1-1-1.tar.gz
|
||||
cd pristontale-eu-linux-installer-v1-1-1
|
||||
./install.sh
|
||||
```
|
||||
|
||||
@@ -34,10 +34,15 @@ Existing installations at the previous default location are preserved during
|
||||
upgrades. The installer adds **PristonTale EU** to the application menu and
|
||||
installs the `pristontale-eu` command in `~/.local/bin`.
|
||||
|
||||
Steam Proton 7.0 is discovered in both the default Steam library and secondary
|
||||
libraries registered with the Steam client. If Proton uses an unregistered
|
||||
manual layout, open **Settings → Optional Overrides** and select the exact
|
||||
`Proton 7.0/proton` script.
|
||||
GE-Proton through the managed UMU helper is the default runtime for the current
|
||||
game, with modern WoW64 and a separate compatibility prefix. Existing settings
|
||||
switch to GE-Proton once on startup; users can choose another runtime afterwards.
|
||||
Renderer preferences and saved Proton paths are retained. PTR continues to use
|
||||
Proton 7.0. Proton 7.0 is discovered in both
|
||||
the default Steam library and secondary libraries registered with Steam. For an
|
||||
unregistered manual layout, select its exact `proton` script under
|
||||
**Settings → Optional Overrides**. Use the renderer setting to choose DXVK or
|
||||
WineD3D; environment assignments do not belong in the Proton script path.
|
||||
|
||||
## Use
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "PTEU-Linux-Launcher"
|
||||
version = "1.0.8"
|
||||
version = "1.1.1"
|
||||
description = "PristonTale EU Linux installer, clean launcher, and diagnostic harness"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = []
|
||||
|
||||
@@ -4,4 +4,4 @@ from .paths import AppPaths
|
||||
|
||||
__all__ = ["AppPaths", "__version__"]
|
||||
|
||||
__version__ = "1.1.0"
|
||||
__version__ = "1.1.1"
|
||||
|
||||
@@ -861,11 +861,9 @@ def _source_game(
|
||||
|
||||
|
||||
def _load_or_default_settings(paths: AppPaths, *, persist: bool) -> Settings:
|
||||
if paths.settings_file.is_file():
|
||||
return load_settings(paths)
|
||||
if persist:
|
||||
return ensure_settings(paths)
|
||||
return Settings()
|
||||
return load_settings(paths)
|
||||
|
||||
|
||||
def _runner(paths: AppPaths, operation: str, dry_run: bool) -> CommandRunner:
|
||||
|
||||
@@ -443,7 +443,7 @@ def parse_native_log_lines(lines: Iterable[str]) -> NativeLogAnalysis:
|
||||
):
|
||||
analysis.out_of_memory_effect_paths.append(value)
|
||||
|
||||
if "Stage without new stage" in raw:
|
||||
if "stage without new stage" in raw.casefold():
|
||||
analysis.stage_without_new_stage = True
|
||||
analysis.events.append(
|
||||
LogEvent("stage_without_new_stage", line_number, raw, timestamp)
|
||||
|
||||
@@ -18,7 +18,9 @@ from .update_resolver import SUPPORTED_CHANNELS
|
||||
|
||||
|
||||
SETTINGS_SCHEMA = 1
|
||||
DEFAULT_GAME_RUNTIME = "ge-proton"
|
||||
_TITLE_FRAME_DEFAULT_MIGRATION_KEY = "title_frame_default_migrated"
|
||||
_GE_PROTON_DEFAULT_MIGRATION_KEY = "ge_proton_default_migrated"
|
||||
UI_SCALE_CHOICES = frozenset({"auto", "100", "125", "150", "175", "200"})
|
||||
_RETIRED_SETTINGS = frozenset(
|
||||
{
|
||||
@@ -43,7 +45,7 @@ class Settings:
|
||||
game_crash_dump_upload_enabled: bool = False
|
||||
borderless: bool = False
|
||||
suppress_unresponsive_warnings: bool = True
|
||||
runtime: str = "auto"
|
||||
runtime: str = DEFAULT_GAME_RUNTIME
|
||||
proton_sync: str = "auto"
|
||||
proton_path: str | None = None
|
||||
renderer: str = "auto"
|
||||
@@ -188,7 +190,7 @@ def _settings_from_object(value: dict[str, object]) -> Settings:
|
||||
"suppress_unresponsive_warnings",
|
||||
True,
|
||||
),
|
||||
runtime=_string(value, "runtime", "auto"),
|
||||
runtime=_string(value, "runtime", DEFAULT_GAME_RUNTIME),
|
||||
proton_sync=_string(value, "proton_sync", "auto"),
|
||||
proton_path=proton_path,
|
||||
renderer=renderer,
|
||||
@@ -201,6 +203,12 @@ def _settings_from_object(value: dict[str, object]) -> Settings:
|
||||
update_channel=_string(value, "update_channel", "stable"),
|
||||
)
|
||||
_validate(settings)
|
||||
# Move existing installations to the modern WoW64 profile once. Validate the
|
||||
# saved runtime first so migration cannot hide malformed settings. New saves
|
||||
# carry the marker, allowing users to choose another runtime afterwards.
|
||||
# Keep the optional Proton path for PTR and future explicit legacy choices.
|
||||
if not _boolean(value, _GE_PROTON_DEFAULT_MIGRATION_KEY, False):
|
||||
return replace(settings, runtime=DEFAULT_GAME_RUNTIME)
|
||||
return settings
|
||||
|
||||
|
||||
@@ -237,6 +245,7 @@ def _settings_need_migration(value: dict[str, object]) -> bool:
|
||||
value.get("schema") != SETTINGS_SCHEMA
|
||||
or not _SETTINGS_FIELD_NAMES.issubset(value)
|
||||
or value.get(_TITLE_FRAME_DEFAULT_MIGRATION_KEY) is not True
|
||||
or value.get(_GE_PROTON_DEFAULT_MIGRATION_KEY) is not True
|
||||
or bool(_RETIRED_SETTINGS.intersection(value))
|
||||
or _legacy_renderer_assignment(value.get("proton_path")) is not None
|
||||
)
|
||||
@@ -279,6 +288,7 @@ def _write_settings(
|
||||
payload.update(asdict(settings))
|
||||
payload["schema"] = SETTINGS_SCHEMA
|
||||
payload[_TITLE_FRAME_DEFAULT_MIGRATION_KEY] = True
|
||||
payload[_GE_PROTON_DEFAULT_MIGRATION_KEY] = True
|
||||
temporary = paths.settings_file.with_name(
|
||||
f".{paths.settings_file.name}.{os.getpid()}.{threading.get_ident()}."
|
||||
f"{secrets.token_hex(8)}.tmp"
|
||||
|
||||
@@ -26,8 +26,8 @@ from ..viewmodels.downloader import (
|
||||
|
||||
|
||||
RUNTIME_LABELS: dict[str, str] = {
|
||||
"Automatic (recommended)": "auto",
|
||||
"GE-Proton — Modern WoW64 via UMU": "ge-proton",
|
||||
"GE-Proton — Modern WoW64 (recommended)": "ge-proton",
|
||||
"Automatic": "auto",
|
||||
"Proton 7 — Steam Runtime container": "proton7-container",
|
||||
"Proton 7 — Direct": "proton7",
|
||||
"UMU Launcher": "umu",
|
||||
@@ -431,7 +431,7 @@ def open_settings_dialog(
|
||||
rendering_card.columnconfigure(1, weight=1)
|
||||
rendering_hint = ttk.Label(
|
||||
rendering_card,
|
||||
text="Automatic uses GE-Proton with modern WoW64 for Babel when UMU is available.",
|
||||
text="GE-Proton with modern WoW64 is recommended for Babel. PTR Babel uses Proton 7.",
|
||||
style="SettingsHint.TLabel",
|
||||
wraplength=360,
|
||||
)
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
"application": "PristonTale-EU",
|
||||
"archive": {
|
||||
"layout": "flat",
|
||||
"name": "PristonTale-EU-1.1.0.tar.gz",
|
||||
"sha256": "b0bb10bdbe0d0e01ce04c8cdb2307c45f0cedb7e2c081794b6efe68d6aa4ac5c",
|
||||
"size": 1550967,
|
||||
"url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/download/v1.1.0/PristonTale-EU-1.1.0.tar.gz?sha256=b0bb10bdbe0d0e01ce04c8cdb2307c45f0cedb7e2c081794b6efe68d6aa4ac5c"
|
||||
"name": "PristonTale-EU-1.1.1.tar.gz",
|
||||
"sha256": "f3825038f83c1348a6eec790e94f5f244fe5ce246d39e2d32f65bb58395542e0",
|
||||
"size": 1551152,
|
||||
"url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/download/v1.1.1/PristonTale-EU-1.1.1.tar.gz?sha256=f3825038f83c1348a6eec790e94f5f244fe5ce246d39e2d32f65bb58395542e0"
|
||||
},
|
||||
"archive_sha256": "b0bb10bdbe0d0e01ce04c8cdb2307c45f0cedb7e2c081794b6efe68d6aa4ac5c",
|
||||
"archive_size": 1550967,
|
||||
"archive_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/download/v1.1.0/PristonTale-EU-1.1.0.tar.gz?sha256=b0bb10bdbe0d0e01ce04c8cdb2307c45f0cedb7e2c081794b6efe68d6aa4ac5c",
|
||||
"archive_sha256": "f3825038f83c1348a6eec790e94f5f244fe5ce246d39e2d32f65bb58395542e0",
|
||||
"archive_size": 1551152,
|
||||
"archive_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/download/v1.1.1/PristonTale-EU-1.1.1.tar.gz?sha256=f3825038f83c1348a6eec790e94f5f244fe5ce246d39e2d32f65bb58395542e0",
|
||||
"channel": "stable",
|
||||
"commit": "be7891f06617674864b035645137441321db03b4",
|
||||
"commit": "d75c345d36b5916ce58fdf5fd9dbdf4e6d006471",
|
||||
"compatibility": {
|
||||
"config_schema": 1,
|
||||
"manifest_schema": 1,
|
||||
@@ -36,7 +36,7 @@
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/__init__.py",
|
||||
"sha256": "d533461854917e3343b9f600b5949421eadedb9a0a550a8adf0444b81023d333",
|
||||
"sha256": "1ec358b790abcebfcba6a44510323648e9a11a6b4e1f2b6b666e288c10fe4c96",
|
||||
"size": 151
|
||||
},
|
||||
{
|
||||
@@ -91,8 +91,8 @@
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/cli.py",
|
||||
"sha256": "ae8f3740fa997d7e00d26bc5fec68f582e70a051cfb00cd88c8a2eaeb547b4b0",
|
||||
"size": 23871
|
||||
"sha256": "e142e0f33a7f1f8f88b8ad431d1b28b24dab3f74d367ed1912e8106ba6aab229",
|
||||
"size": 23816
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/command.py",
|
||||
@@ -131,8 +131,8 @@
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/diagnostics/native_logs.py",
|
||||
"sha256": "3c07a45e89f69b2607288d7fd98f20e0679ee35599de03a3d4e3838ef93e91ba",
|
||||
"size": 18769
|
||||
"sha256": "1a7044630052311e7f74ddd716b82a60383d4404493970db35f6741019510ecb",
|
||||
"size": 18780
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/doctor.py",
|
||||
@@ -446,8 +446,8 @@
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/settings.py",
|
||||
"sha256": "8d62b262bb43eff664b9f6a58bf68a88fec0a8e05b6b9e97cbb47509079c2115",
|
||||
"size": 12059
|
||||
"sha256": "7fd8ecdcbc76feb9bef1f9c840e0e5f73f159c1d370d04e2f3455917a7bc3cce",
|
||||
"size": 12727
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/system_identity.py",
|
||||
@@ -656,8 +656,8 @@
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/ui/dialogs/settings_dialog.py",
|
||||
"sha256": "20a8e461799fa2104e5a09a6e4ec2e8c027caa0688726c57c9ed45e872c1971f",
|
||||
"size": 25299
|
||||
"sha256": "36ffa11821ec1ee3c95774071736082828c58c1f37874f00e66441d2ba0f76fa",
|
||||
"size": 25294
|
||||
},
|
||||
{
|
||||
"path": "ptlinux/ui/viewmodels/__init__.py",
|
||||
@@ -706,21 +706,21 @@
|
||||
},
|
||||
{
|
||||
"path": "release.json",
|
||||
"sha256": "5dfcea2e0eb6ee4d79dba982d79e1a4d5efe1ce0579537d2a0cfab990153636a",
|
||||
"sha256": "1480e6705168b79b038871832ee1558f1e79e8bdac2fd285c558950cc1fcbae9",
|
||||
"size": 218
|
||||
}
|
||||
],
|
||||
"minimum_updater_version": "0.9.9",
|
||||
"notes_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/tag/v1.1.0",
|
||||
"published_at": "2026-09-19T10:49:03Z",
|
||||
"notes_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/tag/v1.1.1",
|
||||
"published_at": "2026-10-20T21:42:30Z",
|
||||
"release": {
|
||||
"notes_markdown": "# PristonTale EU Launcher 1.1.0\n\n- Improved GE-Proton/UMU compatibility, launch arguments, and renderer selection.\n- Isolated runtime prefixes and strengthened compatibility checks for game updates.\n- Fixed missing-Tk startup recovery and SteamOS dependency warnings.\n- Improved CDN retries, mirror failover, and interrupted download recovery.\n- Fixed Gamescope shutdown handling and optimized window resizing detection.\n- Expanded launch diagnostics and regression coverage.\n\n---\n\nVersion: `1.1.0` \nChannel: `stable` \nTag: `v1.1.0` \nSource commit: `be7891f06617674864b035645137441321db03b4`\n",
|
||||
"release_notes_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/tag/v1.1.0",
|
||||
"summary": "Improved GE-Proton/UMU compatibility, launch arguments, and renderer selection.",
|
||||
"title": "PristonTale EU Launcher 1.1.0"
|
||||
"notes_markdown": "# PristonTale EU Launcher 1.1.1\n\n- Made GE-Proton with modern WoW64 the default runtime for Babel.\n- Automatically migrate existing runtime settings once, while preserving later manual choices and PTR's Proton 7 compatibility.\n- Persist settings migrations during command-line launches and updates.\n- Improved detection of collision warnings in game crash diagnostics.\n\nThe first launch may download GE-Proton and prepare its separate compatibility prefix.\n\n---\n\nVersion: `1.1.1` \nChannel: `stable` \nTag: `v1.1.1` \nSource commit: `d75c345d36b5916ce58fdf5fd9dbdf4e6d006471`\n",
|
||||
"release_notes_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/tag/v1.1.1",
|
||||
"summary": "Made GE-Proton with modern WoW64 the default runtime for Babel.",
|
||||
"title": "PristonTale EU Launcher 1.1.1"
|
||||
},
|
||||
"schema": 1,
|
||||
"status": "active",
|
||||
"tag": "v1.1.0",
|
||||
"version": "1.1.0"
|
||||
"tag": "v1.1.1",
|
||||
"version": "1.1.1"
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user