mirror of
https://github.com/ClassicWasTaken/HaloCE-SteamFrame.git
synced 2026-10-17 18:00:30 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b7810ac49 |
No files matched your search
@@ -56,7 +56,7 @@ jobs:
|
||||
shell: pwsh
|
||||
run: |
|
||||
$reportPath = Join-Path $env:RUNNER_TEMP 'halo-installer-smoke.json'
|
||||
$installers = @(Get-ChildItem -LiteralPath 'dist' -Filter 'Halo-Steam-Frame-Setup-*.exe')
|
||||
$installers = @(Get-ChildItem -LiteralPath 'dist' -Filter 'Halo-Steam-Frame-Mod-Setup-*.exe')
|
||||
if ($installers.Count -ne 1) { throw 'Expected one standalone installer executable' }
|
||||
$exePath = $installers[0].FullName
|
||||
$process = Start-Process -FilePath $exePath -ArgumentList @('--self-test-report', ('"' + $reportPath + '"')) -WindowStyle Hidden -Wait -PassThru
|
||||
|
||||
@@ -7,14 +7,16 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/download/v1.3.3/Halo-Steam-Frame-Setup-1.3.3.exe"><strong>DOWNLOAD v1.3.3 — WINDOWS EXE</strong></a><br>
|
||||
<a href="https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/download/v1.3.4/Halo-Steam-Frame-Mod-Setup-1.3.4.exe"><strong>DOWNLOAD VR MOD INSTALLER v1.3.4 — WINDOWS EXE</strong></a><br>
|
||||
<sub>One installer file · No administrator rights needed</sub><br>
|
||||
<a href="https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/tag/v1.3.3">Release notes & checksum</a>
|
||||
<a href="https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/tag/v1.3.4">Release notes & checksum</a>
|
||||
</p>
|
||||
|
||||
Bring Halo: Combat Evolved to Steam Frame with a native ARM64/OpenXR VR port, Xbox-style controls, and Halo artwork in your Steam library. The guided installer uses an original Xbox dashboard style and the classic Halo PC desktop icon.
|
||||
**Community VR mod installer for Halo: Combat Evolved on Steam Frame.** Installs an experimental native ARM64/OpenXR port with Xbox-style controls and Steam library artwork.
|
||||
|
||||
You need **Windows 10/11 x64**, a **Steam Frame**, and your own authorized **original Xbox Halo CE ISO/XISO or extracted maps**. **USA Rev 2 is validated**; Halo PC, Xbox 360 Anniversary, and MCC data are unsupported. Game data is not included.
|
||||
You need **Windows 10/11 x64**, a **Steam Frame**, and your own authorized **original Xbox Halo CE ISO/XISO or extracted maps**. **USA Rev 2 is validated**; Halo PC, Xbox 360 Anniversary, and MCC data are unsupported.
|
||||
|
||||
No retail game executable, disc image, maps, product keys, or soundtrack is included or downloaded. Halo artwork and trademarks retain their owners' rights; software components keep their licenses. This community project is unaffiliated with Microsoft, Xbox, Bungie, or Valve.
|
||||
|
||||
1. Run the EXE, choose **Install**, and select your ISO or maps folder.
|
||||
2. Enable Frame Developer Mode, set its user password, and connect over **USB-C** or **Wi-Fi / Ethernet**. The app guides you through SSH setup.
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
# Halo Steam Frame Setup 1.3.3
|
||||
# Halo CE Steam Frame VR Mod 1.3.4
|
||||
|
||||
Download only **[DOWNLOAD THIS FILE — Halo-Steam-Frame-Setup-1.3.3.exe](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/download/v1.3.3/Halo-Steam-Frame-Setup-1.3.3.exe)**. This is the complete Windows installer; no separate ZIP or Python installation is needed.
|
||||
Download only **[DOWNLOAD THIS FILE — Halo-Steam-Frame-Mod-Setup-1.3.4.exe](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/download/v1.3.4/Halo-Steam-Frame-Mod-Setup-1.3.4.exe)**. This is the complete Windows mod installer; no separate ZIP or Python installation is needed.
|
||||
|
||||
Install and Repair automatically add the Steam shortcut, covers, banner, logo, icon, and description/control guide in **Steam Game Notes**. The first page now has three choices: **Install**, **Repair**, and **Uninstall**. A separate Steam info selection is no longer needed. **Add to Steam again** remains available when a completed run reports pending library information; that retry does not rebuild the game.
|
||||
The window title, app text, project description, and documentation now identify this project as a **community Steam Frame VR mod installer**. The downloaded file includes setup code and tools; it does not include or download a retail Halo executable, ISO, maps, product keys, or soundtrack. Supply your own authorized original Xbox game data. Setup builds the pinned community VR source on your Frame.
|
||||
|
||||
Music preparation is more responsive after selecting an ISO. The background decoder uses precomputed ADPCM transitions and regularly yields CPU time to the window. Canceled or superseded data checks cannot start an old music preview or replace the current selection. The music still comes only from your own local Xbox game data, at the existing volume; no soundtrack is included or downloaded.
|
||||
Commercial game-download site references have been removed from the current project documentation. The remaining references document the community source, official setup tools, and artwork provenance; setup provides no commercial game-download links.
|
||||
|
||||
The installer retains its original Xbox dashboard appearance, classic Halo PC icon, automatic music, Xbox controls, USB/network transfer, save-preserving repair, and optional save backup during uninstall. Steam Home stays running throughout setup.
|
||||
The installer includes Halo identification artwork and third-party software with their existing attribution and license notices. Halo artwork, logos, names, and trademarks retain their rights holders' rights, including Microsoft; details remain available in the [third-party guide](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/blob/v1.3.4/docs/THIRD_PARTY.md). The project's code license does not grant rights to commercial Halo game data.
|
||||
|
||||
The native ARM64/OpenXR port remains experimental. Direct USB transfer, a fresh first install, full uninstall, and the newer Steam banner/logo/icon/Notes still need physical Frame verification. Automated checks of the music decoder and window responsiveness do not replace a listening check on your PC.
|
||||
This wording patch retains automatic Steam artwork/Notes during Install and Repair, the responsive music loader, Xbox controls, USB/network transfer, repair, uninstall, and the Steam Home safeguards. The native ARM64/OpenXR mod remains experimental. Direct USB transfer, a fresh first install, full uninstall, and the newer Steam banner/logo/icon/Notes still need physical Frame verification.
|
||||
|
||||
Supply your own authorized original **Xbox** Halo CE data. **USA Rev 2 is validated**; other retail revisions need supported map headers. PC, Xbox 360 Anniversary, MCC, and Quest data are unsupported. No game executable, ISO, maps, product keys, or soundtrack is bundled.
|
||||
**Original Xbox USA Rev 2 is validated**; other retail revisions need supported map headers. PC, Xbox 360 Anniversary, MCC, and Quest game-data inputs are unsupported.
|
||||
|
||||
The EXE is unsigned. Its SHA256 appears below. [Matching source and third-party notices](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/tree/v1.3.3) remain available for rebuilding. GitHub's automatic source downloads are optional for developers.
|
||||
The EXE is unsigned. Its SHA256 appears below. [Matching source and third-party notices](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/tree/v1.3.4) remain available for rebuilding. GitHub's automatic source downloads are optional for developers.
|
||||
|
||||
[Setup guide](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/blob/v1.3.3/docs/SETUP.md) · [Sources and credits](SOURCES.md).
|
||||
[Setup guide](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/blob/v1.3.4/docs/SETUP.md) · [Sources and credits](SOURCES.md).
|
||||
+7
-5
@@ -1,14 +1,16 @@
|
||||
# Detailed setup
|
||||
# Halo CE Steam Frame VR mod setup
|
||||
|
||||
[Back to the project README](../README.md)
|
||||
|
||||
This guide covers installation, USB-C and network connections, repair, Steam library updates, removal, troubleshooting, and rebuilding the Windows executable.
|
||||
This community VR mod installer guides you through installing the experimental native Halo CE VR port. This guide covers USB-C and network connections, repair, Steam library updates, removal, troubleshooting, and rebuilding the Windows executable.
|
||||
|
||||
## Before you begin
|
||||
|
||||
Download the single **[Halo-Steam-Frame-Setup-1.3.3.exe](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/download/v1.3.3/Halo-Steam-Frame-Setup-1.3.3.exe)** for Windows 10/11 x64. It includes its runtime and USB transfer tools; no administrator rights, Python installation, installer ZIP, or separate Platform Tools download is needed. The [release notes](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/tag/v1.3.3) include the EXE's SHA256 checksum.
|
||||
Download the single **[Halo-Steam-Frame-Mod-Setup-1.3.4.exe](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/download/v1.3.4/Halo-Steam-Frame-Mod-Setup-1.3.4.exe)** for Windows 10/11 x64. It includes its runtime and USB transfer tools; no administrator rights, Python installation, installer ZIP, or separate Platform Tools download is needed. The [release notes](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/releases/tag/v1.3.4) include the EXE's SHA256 checksum.
|
||||
|
||||
Use your own authorized original Xbox Halo CE ISO/XISO or extracted maps. USA Rev 2 is validated; the supported-build table below explains other retail revisions. Halo PC, Xbox 360 Anniversary, MCC, and Quest packages are unsupported. No commercial game data is bundled.
|
||||
Use your own authorized original Xbox Halo CE ISO/XISO or extracted maps. USA Rev 2 is validated; the supported-build table below explains other retail revisions. Halo PC, Xbox 360 Anniversary, MCC, and Quest packages are unsupported. No retail game executable, disc image, maps, product keys, or soundtrack is bundled or downloaded. The project provides no game-download sources.
|
||||
|
||||
Halo artwork and trademarks remain copyrighted to their respective owners, and third-party software retains its licenses and notices. This community project is unaffiliated with Microsoft, Xbox, Bungie, or Valve. Its license does not grant rights in retail game data or certify the legal status of upstream source; see [third-party notices](THIRD_PARTY.md).
|
||||
|
||||
The Frame needs ARM64 SteamOS, SteamVR/OpenXR, rootless Podman, internet access, and **12 GiB of free internal storage**. Setup checks these before installing. Your Windows computer needs about 2.5 GB of temporary space for maps. The SteamOS root filesystem stays read-only. Podman runs as the ordinary `steamos` host user; dependency installation uses root only inside the rootless container, with `no-new-privileges` retained.
|
||||
|
||||
@@ -156,7 +158,7 @@ python -m venv .venv
|
||||
.\.venv\Scripts\python scripts/build_release.py
|
||||
```
|
||||
|
||||
Corresponding installer source and applicable third-party source/notices are available in the **[version 1.3.3 source tag](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/tree/v1.3.3)** so you can modify and rebuild it, including its LGPL Paramiko dependency. GitHub's automatically generated Source code ZIP is optional for developers and is not needed to run setup. ADB binaries are not checked into Git; [bundle_usb_tools.py](../scripts/bundle_usb_tools.py) downloads the pinned official archive during the executable build and verifies its archive and selected-file checksums before packaging. [resources/usb/manifest.json](../resources/usb/manifest.json) records those hashes and provenance, and the original notices are retained. The build script packages installer code/resources and verified ADB components with their notices; no game binary, user ISO, maps, SSH password, or private key is included. GitHub Actions runs tests and builds the Windows setup executable. A local rebuild also writes a source bundle and checksum file to `dist/`; the public release attaches only the clearly named installer executable and prints its checksum in the release description.
|
||||
Corresponding installer source and applicable third-party source/notices are available in the **[version 1.3.4 source tag](https://github.com/ClassicWasTaken/HaloCE-SteamFrame/tree/v1.3.4)** so you can modify and rebuild it, including its LGPL Paramiko dependency. GitHub's automatically generated Source code ZIP is optional for developers and is not needed to run setup. ADB binaries are not checked into Git; [bundle_usb_tools.py](../scripts/bundle_usb_tools.py) downloads the pinned official archive during the executable build and verifies its archive and selected-file checksums before packaging. [resources/usb/manifest.json](../resources/usb/manifest.json) records those hashes and provenance, and the original notices are retained. The build script packages installer code/resources and verified ADB components with their notices; no retail game executable, user ISO, maps, SSH password, or private key is included. GitHub Actions runs tests and builds the Windows setup executable. A local rebuild also writes a source bundle and checksum file to `dist/`; the public release attaches only the clearly named mod installer executable and prints its checksum in the release description.
|
||||
|
||||
The workflow also includes an ARM64 Linux check, [check-build-container.py](../scripts/check-build-container.py), that uses the same rootless Podman arguments as the Frame build. It checks APT package installation, `setgroups`, `seteuid`, `setegid`, `chown`, and that container output belongs to the ordinary host user. The Windows executable CI job depends on that check as well as the unit tests. This container check uses no game data and does not replace a full Steam Frame installation test.
|
||||
|
||||
|
||||
+2
-6
@@ -1,6 +1,6 @@
|
||||
# Sources and acknowledgements
|
||||
# VR mod sources and acknowledgements
|
||||
|
||||
The installer builds the experimental native ARM64 Linux VR port of **Halo: Combat Evolved** from the revision below. It provides a guided installation; the decompilation, renderer, OpenXR implementation and networking are the work of the credited upstream contributors.
|
||||
This community VR mod installer builds the experimental native ARM64 Linux VR port of **Halo: Combat Evolved** from the revision below. It provides a guided installation; the decompilation, renderer, OpenXR implementation and networking are the work of the credited upstream contributors. No retail game executable, disc image, maps, product keys, or soundtrack is bundled or downloaded; users provide authorized original Xbox game data.
|
||||
|
||||
Sources were checked on 2026-10-05. Links to pinned files describe the build used here; moving documentation may describe newer behavior.
|
||||
|
||||
@@ -121,7 +121,3 @@ The helper matches the current account and exact native executable before writin
|
||||
The preview reads only the `sound\music\title1\loops` sound tag from the user's selected original Xbox `ui.map`, either inside an ISO/XISO or in extracted maps. Cache and sound structures are based on the pinned native port's [cache_files.c](https://github.com/startupfoundry/halo-ce-universal/blob/88142798513ebd99fc7c6224023e8b44c05d0106/source/cache/cache_files.c) and [sound_definitions.h](https://github.com/startupfoundry/halo-ce-universal/blob/88142798513ebd99fc7c6224023e8b44c05d0106/source/sound/sound_definitions.h). Xbox ADPCM decoding follows its [dsound_sdl.c implementation](https://github.com/startupfoundry/halo-ce-universal/blob/88142798513ebd99fc7c6224023e8b44c05d0106/port/linux/src/dsound_sdl.c).
|
||||
|
||||
The installer decodes the loop into a private temporary Windows WAV with a fixed 12% sample-amplitude gain. Playback loops automatically after local game data validates. Closing the installer stops playback and clears its temporary audio. No soundtrack is present in the repository or executable, fetched from a website, or uploaded over SSH. Audio-file extensions are rejected by the release packager. Remote-only repair has no local audio preview, and an unavailable preview does not block installation. The original music remains copyrighted game content; the installer's code license does not apply to it. Playback still needs a listening check.
|
||||
|
||||
## General preservation resources
|
||||
|
||||
User-suggested background links: [Vimm's Lair](https://vimm.net/) and [Internet Archive's about page](https://archive.org/about/). These are general references, not Halo file-download links, software dependencies, or assurances of game-data permissions. The installer selects a local original Xbox image/maps supplied by the user; it does not fetch commercial game files. The PC edition is not an input to the native Frame build.
|
||||
+6
-4
@@ -1,10 +1,12 @@
|
||||
# Third-party software notices
|
||||
# VR mod and third-party notices
|
||||
|
||||
The installer code has its own [MIT license](../LICENSE). Each dependency keeps its own license. Original notice text is included under [resources/licenses](../resources/licenses); [manifest.json](../resources/licenses/manifest.json) records package versions, notice hashes and source URLs from the environment used to build the Windows executable.
|
||||
This community VR mod installer's original code has its own [MIT license](../LICENSE). Each dependency keeps its own license. Original notice text is included under [resources/licenses](../resources/licenses); [manifest.json](../resources/licenses/manifest.json) records package versions, notice hashes and source URLs from the environment used to build the Windows executable.
|
||||
|
||||
The repository and executable include no retail game executable, disc image, maps, product keys, or soundtrack, and the installer does not download these files. Users supply authorized original Xbox game data. Copyrighted Halo artwork and trademarks remain separate from the installer code's license, as detailed below. Upstream source licenses are reported as published by their maintainers; this project does not independently certify the source's legal status. This is an unaffiliated community project.
|
||||
|
||||
The manifest includes build and test dependencies as well as runtime dependencies, so an entry does not imply that every file of that package is embedded in the executable. It records no machine paths, passwords, private SSH keys or game data.
|
||||
|
||||
## Windows installer
|
||||
## Windows mod installer
|
||||
|
||||
| Component | Initial build version | License and use |
|
||||
| --- | --- | --- |
|
||||
@@ -47,7 +49,7 @@ Then rebuild using the provided packaging script. The installer source, resource
|
||||
|
||||
## Native game built on the Frame
|
||||
|
||||
The Windows download contains the installer and build instructions, not the commercial game's maps or disc image. The native program is built from pinned upstream source on the Frame. Its upstream license and component notices remain applicable to that build.
|
||||
The Windows download contains the mod installer and build instructions; no retail game executable, disc image, maps, product keys, or soundtrack is included. The native program is built from pinned upstream source on the Frame. Its upstream license and component notices remain applicable to that build, separately from rights in retail game content.
|
||||
|
||||
| Upstream component | Notice/reference |
|
||||
| --- | --- |
|
||||
|
||||
+2
-2
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "halo-steam-frame-installer"
|
||||
version = "1.3.3"
|
||||
description = "Guided USB and network SSH installer for the native ARM64 Halo CE Steam Frame VR port"
|
||||
version = "1.3.4"
|
||||
description = "Community Halo CE VR mod installer for Steam Frame; original Xbox game data must be supplied separately"
|
||||
requires-python = ">=3.11"
|
||||
license = "MIT"
|
||||
dependencies = ["paramiko==4.0.0"]
|
||||
|
||||
@@ -106,13 +106,13 @@
|
||||
},
|
||||
{
|
||||
"name": "halo-steam-frame-installer",
|
||||
"version": "1.3.3",
|
||||
"version": "1.3.4",
|
||||
"license_expression": "MIT",
|
||||
"declared_license": null,
|
||||
"project_urls": [],
|
||||
"notices": [
|
||||
{
|
||||
"path": "packages/halo-steam-frame-installer/halo_steam_frame_installer-1.3.3.dist-info/licenses/LICENSE",
|
||||
"path": "packages/halo-steam-frame-installer/halo_steam_frame_installer-1.3.4.dist-info/licenses/LICENSE",
|
||||
"sha256": "b19db6d1e8942380f6a0dc3b9ec39cec802606c9d1c08a6050eae2990568afbb",
|
||||
"bytes": 1318
|
||||
}
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Halo Steam Frame Installer contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
This license covers original installer code. Refer to docs/THIRD_PARTY.md
|
||||
and resources/licenses for upstream code, patch, dependencies, and notices.
|
||||
Commercial Halo game data is not included or licensed by this project.
|
||||
@@ -9,8 +9,8 @@ import zipfile
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
DIST = ROOT / "dist"
|
||||
VERSION = "1.3.3"
|
||||
EXE_NAME = f"Halo-Steam-Frame-Setup-{VERSION}.exe"
|
||||
VERSION = "1.3.4"
|
||||
EXE_NAME = f"Halo-Steam-Frame-Mod-Setup-{VERSION}.exe"
|
||||
|
||||
def allowed_source_files():
|
||||
roots = [ROOT / name for name in ("src", "resources", "docs", "scripts", "tests", ".github")]
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
"""Guided installer for the native ARM64 Halo CE Steam Frame VR port."""
|
||||
__version__ = "1.3.3"
|
||||
__version__ = "1.3.4"
|
||||
@@ -25,6 +25,9 @@ from .ui import (BG, SIDEBAR, SURFACE, TEXT, MUTED, BORDER,
|
||||
SETUP_URL = "https://partner.steamgames.com/doc/steamhardware/steamframe/setup"
|
||||
PLATFORM_TOOLS_URL = "https://developer.android.com/tools/releases/platform-tools"
|
||||
SOURCE_URL = "https://github.com/OpenCommunityEdition/OpenCE/pull/85"
|
||||
APP_TITLE = "Halo • Community Steam Frame VR Mod Installer"
|
||||
CONTENT_DISCLOSURE = "No retail game executable, ISO, maps, product keys, or soundtrack is provided."
|
||||
ARTWORK_CREDIT = "Halo artwork is included. Halo artwork and trademarks belong to Microsoft."
|
||||
XBOX_REVISION_NOTE = "Original Xbox USA Rev 2 validated; other retail revisions are checked automatically."
|
||||
GAME_CLOSE_NOTE = "Save and close running games before changing Halo files. Keep Steam Home and SteamVR running."
|
||||
STEAM_ADD_NOTE = ("In Steam, choose Add a Game → Add a Non-Steam Game and select the native halo executable. "
|
||||
@@ -50,7 +53,7 @@ class App(tk.Tk):
|
||||
except (AttributeError, OSError):
|
||||
pass
|
||||
super().__init__()
|
||||
self.title("Halo • Steam Frame Setup")
|
||||
self.title(APP_TITLE)
|
||||
width = min(1040, max(900, self.winfo_screenwidth() - 100))
|
||||
height = min(720, max(620, self.winfo_screenheight() - 100))
|
||||
self.geometry(f"{width}x{height}")
|
||||
@@ -167,7 +170,7 @@ class App(tk.Tk):
|
||||
power_orb(icon, 85, 37, 29)
|
||||
self._label(brand, "HALO", 25, "bold", color=ACCENT,
|
||||
background=SIDEBAR).pack(anchor="w", pady=(6, 0))
|
||||
self._label(brand, "STEAM FRAME SETUP", 9, "bold", color=TEXT,
|
||||
self._label(brand, "STEAM FRAME VR MOD", 9, "bold", color=TEXT,
|
||||
background=SIDEBAR).pack(anchor="w", pady=(2, 0))
|
||||
self._label(brand, f"Version {__version__}", 9, color=MUTED, background=SIDEBAR).pack(anchor="w", pady=(9, 0))
|
||||
self._label(sidebar, "INSTALLATION", 8, "bold", MUTED, SIDEBAR).pack(anchor="w", padx=24, pady=(26, 8))
|
||||
@@ -186,7 +189,7 @@ class App(tk.Tk):
|
||||
background=SIDEBAR, subtle=True, width=170).pack(anchor="w", pady=(2, 0))
|
||||
self._label(help_area, textvariable=self.music_status, size=8, color=MUTED,
|
||||
background=SIDEBAR, wraplength=170).pack(anchor="w", padx=9, pady=(4, 10))
|
||||
self._label(help_area, "ORIGINAL XBOX · NATIVE VR", 8, color=MUTED,
|
||||
self._label(help_area, "COMMUNITY MOD INSTALLER", 8, color=MUTED,
|
||||
background=SIDEBAR).pack(anchor="w", padx=10)
|
||||
|
||||
main = tk.Frame(self, bg=BG)
|
||||
@@ -215,7 +218,7 @@ class App(tk.Tk):
|
||||
self.page_title = self._label(header, "GAME DATA", 24, "bold")
|
||||
self.page_title.pack(anchor="w", pady=(6, 4))
|
||||
self.page_subtitle = self._label(header,
|
||||
"Install, repair, or uninstall native Halo VR.", 10, color=MUTED)
|
||||
"Install, repair, or uninstall the community VR mod.", 10, color=MUTED)
|
||||
self.page_subtitle.pack(anchor="w")
|
||||
page_host = tk.Frame(main, bg=BG)
|
||||
page_host.grid(row=1, column=0, sticky="nsew", padx=32)
|
||||
@@ -364,10 +367,12 @@ class App(tk.Tk):
|
||||
consent = self._card(body)
|
||||
self.data_consent = consent.master
|
||||
self.data_authorization = self._check(consent,
|
||||
"I am authorized to use this original Xbox game data.", self.authorized)
|
||||
"I am authorized to use my original Xbox game data with this mod.", self.authorized)
|
||||
self.data_authorization.pack(anchor="w")
|
||||
self._label(consent, "Use your own game data. PC and Xbox 360 editions are not supported.",
|
||||
9, color=MUTED, background=SURFACE, wraplength=630).pack(anchor="w", pady=(2, 0))
|
||||
self.data_disclosure = self._label(consent,
|
||||
CONTENT_DISCLOSURE + "\nUse your own authorized Xbox data. Included Halo artwork: Microsoft.",
|
||||
9, color=MUTED, background=SURFACE, wraplength=630)
|
||||
self.data_disclosure.pack(anchor="w", pady=(2, 0))
|
||||
uninstall = self._card(body, "REMOVE NATIVE HALO VR")
|
||||
self.uninstall_card = uninstall.master
|
||||
self._label(uninstall,
|
||||
@@ -604,10 +609,10 @@ class App(tk.Tk):
|
||||
titles = ("UNINSTALL HALO VR" if uninstall else "GAME DATA", "CONNECT FRAME",
|
||||
"UNINSTALL HALO VR" if uninstall else "INSTALL HALO VR")
|
||||
subtitles = ("Choose your save preference before removing the native game." if uninstall else
|
||||
"Install, repair, or uninstall native Halo VR.",
|
||||
"Install, repair, or uninstall the community VR mod.",
|
||||
"Prepare SSH, then connect to your Steam Frame.",
|
||||
"Review the native game and saves before removing them." if uninstall else
|
||||
"Native VR. Xbox controls. Your Steam library.")
|
||||
"Community VR mod. Xbox controls. Your Steam library.")
|
||||
self.page_title.configure(text=titles[index])
|
||||
self.page_subtitle.configure(text=subtitles[index])
|
||||
self._update_summary()
|
||||
@@ -808,7 +813,12 @@ class App(tk.Tk):
|
||||
9, color=MUTED, wraplength=530).pack(anchor="w", pady=(0, 8))
|
||||
|
||||
def _show_help(self):
|
||||
_, body = self._dialog("Help & sources", "Setup requirements and project references.")
|
||||
_, body = self._dialog("Help & sources", "Community VR mod installer requirements and sources.")
|
||||
disclosure = self._card(body, "COMMUNITY MOD INSTALLER")
|
||||
self._label(disclosure,
|
||||
"This installer builds the pinned Steam Frame VR port from public source using your authorized Xbox data.\n"
|
||||
+ CONTENT_DISCLOSURE + "\n" + ARTWORK_CREDIT + " Full credits are in the project documentation.",
|
||||
10, background=SURFACE, wraplength=530).pack(anchor="w")
|
||||
card = self._card(body, "BEFORE YOU START")
|
||||
self._label(card,
|
||||
"• Use original Xbox Halo CE data you are authorized to use.\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ import subprocess
|
||||
|
||||
def smoke_test(resources: Path) -> dict:
|
||||
from . import __version__
|
||||
from .gui import App
|
||||
from .gui import App, APP_TITLE, CONTENT_DISCLOSURE
|
||||
from .install import SOURCE_COMMIT
|
||||
from .ssh import Settings
|
||||
names = ('remote_install.py', 'steam_shortcut.py', 'steam_live.py', 'steam_notes.py', 'build-native.sh',
|
||||
@@ -49,6 +49,8 @@ def smoke_test(resources: Path) -> dict:
|
||||
pages_initialized.append(name)
|
||||
valid = (bool(app.asset_status.get()) and app.log.winfo_reqheight() > 1
|
||||
and hasattr(app, '_game_cover') and hasattr(app, 'music'))
|
||||
if app.title() != APP_TITLE or CONTENT_DISCLOSURE not in app.data_disclosure.cget('text'):
|
||||
raise RuntimeError('Packaged community mod installer title or content disclosure is missing')
|
||||
if str(app.progress['mode']) != 'determinate':
|
||||
raise RuntimeError('Packaged progress bar is not determinate')
|
||||
if {choice.value for choice in app.mode_choices} != {'install', 'repair', 'uninstall'}:
|
||||
|
||||
@@ -122,6 +122,29 @@ def test_control_guide_matches_expected_layout():
|
||||
assert action in CONTROLS
|
||||
|
||||
|
||||
@WINDOWS_GUI
|
||||
def test_community_mod_title_and_content_disclosure_are_visible_and_accurate(app):
|
||||
import tkinter as tk
|
||||
from halo_frame_installer.gui import APP_TITLE, CONTENT_DISCLOSURE, ARTWORK_CREDIT
|
||||
assert app.title() == APP_TITLE == 'Halo • Community Steam Frame VR Mod Installer'
|
||||
visible = '\n'.join(_display_text(app))
|
||||
assert 'STEAM FRAME VR MOD' in visible and 'COMMUNITY MOD INSTALLER' in visible
|
||||
assert CONTENT_DISCLOSURE in app.data_disclosure.cget('text')
|
||||
assert 'my original Xbox game data with this mod' in app.data_authorization.cget('text')
|
||||
app._show_help()
|
||||
dialogs = [widget for widget in app.winfo_children() if isinstance(widget, tk.Toplevel)]
|
||||
try:
|
||||
assert len(dialogs) == 1
|
||||
text = '\n'.join(_display_text(dialogs[0]))
|
||||
assert CONTENT_DISCLOSURE in text and ARTWORK_CREDIT in text
|
||||
assert 'public source using your authorized Xbox data' in text
|
||||
for claim in ('copyright-free', 'copyright free', 'unstolen', 'vimm', 'archive.org'):
|
||||
assert claim not in text.lower()
|
||||
finally:
|
||||
for dialog in dialogs:
|
||||
dialog.destroy()
|
||||
|
||||
|
||||
@WINDOWS_GUI
|
||||
def test_long_build_failure_has_readable_dialog_and_complete_redacted_log(app):
|
||||
app.password_to_redact = 'offline-secret'
|
||||
|
||||
Reference in new issue
Block a user