From 3a027d71dcdb8548fac2aa35fd9ed0d72392c996 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 5 Oct 2026 06:30:59 +0000 Subject: [PATCH] Base the quick start on releases instead of a git clone The quick start, the on-Frame build and updates now download a release's source tarball. Updates copy only the files whose content changed (rsync -c), which stamps them with the current time: unpacking over the source would restore commit dates that can be older than the last build, and the build would skip the changes. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019HBRGKTE1GnN2ah8gcZKr3 --- README.md | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 83df59e..db911d6 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,9 @@ C++ and compiled for the Frame's ARM64 CPU, and it renders through SteamVR's Ope ## Quick start -This is the whole way from your disc to playing in the headset, building on an x86_64 Linux PC. The +This is the whole way from a [release](https://github.com/mitch030504/Wiicompiled_VR_Frame/releases) +and your disc to playing in the headset, building on an x86_64 Linux PC. Releases are source only: +the game is always built from your own disc, so there is nothing ready-built to download. The first build takes a few hours, most of it compiling Dawn under emulation; later builds reuse it. [Other ways to build](#other-ways-to-build) covers a faster machine and the Frame itself. @@ -60,11 +62,15 @@ The last command must print `aarch64`. On Debian or Ubuntu install `podman qemu- binfmt-support` instead. If podman complains about subordinate ids, run `sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER` and log in again. -### 2. Get the code and extract your disc +### 2. Download the release and extract your disc + +Take the newest release from the [Releases](https://github.com/mitch030504/Wiicompiled_VR_Frame/releases) +page; the commands use `frame-beta-1`, so put the newest release's tag in its place: ```bash -mkdir -p ~/wiicompiled; cd ~/wiicompiled -git clone https://github.com/mitch030504/Wiicompiled_VR_Frame.git +mkdir -p ~/wiicompiled/Wiicompiled_VR_Frame; cd ~/wiicompiled +curl -fL https://github.com/mitch030504/Wiicompiled_VR_Frame/archive/refs/tags/frame-beta-1.tar.gz \ + | tar -xz --strip-components=1 -C Wiicompiled_VR_Frame curl -fL -o nodtool https://github.com/encounter/nod/releases/download/v2.0.0-alpha.10/nodtool-linux-x86_64 chmod +x nodtool ./nodtool extract "/path/to/Mario Kart Wii.wbfs" disc-extract @@ -134,18 +140,31 @@ shoulder button, go to the **VR** tab and set the [recommended settings](#recomm ### Updating -Pull the new code, rebuild, and replace only the executable. Copying to a new name and moving it -into place works even while an old copy is open: +When a new release comes out, put its changed files over the old source, rebuild, and replace only +the executable. `rsync -c` copies just the files whose content changed and stamps them with the +current time, so the build recompiles exactly those. Unpacking over the source would restore each +file's commit date, which can be older than the last build, and changes would be skipped. Your +`Assets/` and build folders stay. Install `rsync` if your system lacks it, and put the new release's +tag in place of `frame-beta-2`: ```bash -cd ~/wiicompiled/Wiicompiled_VR_Frame && git pull +cd ~/wiicompiled +mkdir -p release-new +curl -fL https://github.com/mitch030504/Wiicompiled_VR_Frame/archive/refs/tags/frame-beta-2.tar.gz \ + | tar -xz --strip-components=1 -C release-new +rsync -rcE release-new/ Wiicompiled_VR_Frame/ +rm -rf release-new podman start -ai wiicompiled-frame # in the container: cd /work/Wiicompiled_VR_Frame; T=/work/tools/toolchain-aarch64/bin, then the -# build-dawn-linux.sh and local-build.sh lines from step 3 (only what changed is rebuilt), then exit +# build-dawn-linux.sh and local-build.sh lines from step 3, then exit. Dawn only rebuilds when the +# release changed its patches (the release notes say so); otherwise both finish quickly. scp ~/wiicompiled/out/WiiCompiled frame:devkit-game/WiiCompiled/WiiCompiled.new ssh frame 'cd ~/devkit-game/WiiCompiled && chmod 755 WiiCompiled.new && mv -f WiiCompiled.new WiiCompiled' ``` +The executable is copied under a new name and moved into place, which works even while an old copy +is open. + ## Recommended settings All of these are in the headset's settings panel (left shoulder button, **VR** tab) and in @@ -228,11 +247,13 @@ running the same command again. ## Other ways to build -**On the Frame itself.** SteamOS's root file system is read-only, but it ships podman. Over SSH: +**On the Frame itself.** SteamOS's root file system is read-only, but it ships podman. Over SSH, +with the newest release's tag: ```bash -mkdir -p ~/wiicompiled && cd ~/wiicompiled -git clone https://github.com/mitch030504/Wiicompiled_VR_Frame.git +mkdir -p ~/wiicompiled/Wiicompiled_VR_Frame && cd ~/wiicompiled +curl -fL https://github.com/mitch030504/Wiicompiled_VR_Frame/archive/refs/tags/frame-beta-1.tar.gz \ + | tar -xz --strip-components=1 -C Wiicompiled_VR_Frame podman run -it --name wiicompiled-frame -v ~/wiicompiled:/work:Z docker.io/library/debian:trixie bash ```