CrimsonVR is an independent OpenXR VR port built on the banteg/crimson reimplementation of Crimsonland Classic. This fork is maintained separately and is not an official part of, affiliated with, or endorsed by that upstream project, its maintainers, 10tons, or the Crimsonland rights holders.
It brings the deterministic Crimson simulation to standalone Quest and PCVR, with Tabletop and Cabinet layouts, controller and optical-hand input, spatial menus, VR onboarding, and PCVR-to-Quest multiplayer.
CrimsonVR does not publish game assets or ready-made public binaries. Each player builds an asset-free personal package in their own GitHub fork and supplies assets locally from their own GOG copy of Crimsonland Classic 1.9.93. The 2014 HD remake is not compatible.
You need:
- a GitHub account and your own fork of this repository;
- a Windows PC with your GOG Crimsonland Classic installation;
- uv for the local asset-preparation helper; and
- either a Quest in Developer Mode or a working PCVR OpenXR runtime.
Install uv once from Command Prompt or Windows Terminal:
winget install --id=astral-sh.uv -eFork this repository on GitHub, then clone your fork or download and extract its source ZIP. Run the setup files below from that source folder. No game assets are uploaded by these helpers.
In your fork on GitHub:
- Open Actions.
- Select Quest personal build.
- Choose Run workflow.
- Set
publish_artifacttotrue, then run it. - When the run finishes, download the
CrimsonVR-Quest-*artifact within one day and extract all three files:CrimsonVR.quest.apkcrimsonvr-ci.keystoreQUEST-PERSONAL-BUILD.txt
Keep the keystore private. Android needs the same signing key for in-place updates. Losing it does not expose game assets, but the next differently signed APK will require an uninstall, which erases CrimsonVR app data.
Enable Developer Mode, connect the headset to the PC by USB, and approve the
USB debugging prompt inside the headset. Ensure Android adb is available on
PATH; Meta Quest Developer Hub or Android platform-tools can provide it.
From the repository root, run:
crimson-vr\setup_quest.bat "C:\path\to\CrimsonVR.quest.apk"The helper finds the usual GOG Classic installation, validates it, builds a local asset pack, installs the asset-free APK, transfers the pack to the headset, and leaves the app stopped for a normal first launch.
For a nonstandard Classic location, add it as the second argument:
crimson-vr\setup_quest.bat "C:\path\to\CrimsonVR.quest.apk" "D:\Games\Crimsonland"If more than one Android device is connected, add the intended ADB serial as the third argument:
crimson-vr\setup_quest.bat "C:\path\to\CrimsonVR.quest.apk" "D:\Games\Crimsonland" "SERIAL"After the helper reports success, put on the headset and launch CrimsonVR from the app library. Do not use an ADB launch command for the first run: Quest's controller and permission interstitials can make the onboarding appear to have been skipped.
For updates, keep using the same fork and signing key. Imported assets survive an in-place APK update; an uninstall removes settings, scores, replays, and imported assets.
In your fork on GitHub:
- Open Actions.
- Select PCVR personal build.
- Choose Run workflow.
- Set
publish_artifacttotrue, then run it. - Download the
CrimsonVR-PCVR-*artifact within one day. - Choose
CrimsonVR-PCVR-Windows.zipor the Linux.tar.gzpackage and extract the entire archive.
Do not move the executable away from its PCK, data_*, native, or OpenXR
library files.
From the repository root, run:
crimson-vr\setup_pcvr.batFor a nonstandard Classic location:
crimson-vr\setup_pcvr.bat "D:\Games\Crimsonland"The helper writes the local pack to CrimsonVR's per-user first-run inbox. It does not upload the pack or copy assets into the GitHub checkout.
Linux users can run the equivalent helper directly:
uv run python crimson-vr/tools/prepare_assets.py --pcvrStart SteamVR, VDXR, or another OpenXR runtime, then run CrimsonVR.exe from
the fully extracted Windows package. On Linux, launch the executable from the
extracted tar archive. CrimsonVR imports the prepared pack before starting XR.
Package updates reuse the installed per-user assets. Keep the generated
crimson-assets.pack somewhere safe if you want quick recovery after removing
application data.
Install Crimsonland Classic from the Extras section in GOG Galaxy, or pass
its directory explicitly to the appropriate .bat file. A directory containing
only the HD remake will be rejected.
Close and reopen Command Prompt after installing uv, then run the setup file
again. The helpers also check %USERPROFILE%\.local\bin\uv.exe and an existing
repository .venv.
Install Android platform-tools, reconnect the Quest by USB, approve debugging
inside the headset, and check adb devices. If several devices are listed,
pass the desired serial as the third setup_quest.bat argument.
Confirm that the intended OpenXR runtime is active before launching CrimsonVR. For Virtual Desktop, connect the headset first and select VDXR where applicable.
Correct the reported path or dependency problem and run the same setup file again. Asset installation is integrity-checked and atomic, so a failed replacement does not overwrite the last working imported asset set.
- Use GitHub Discussions for questions, playtest feedback, ideas, and help from the community.
- Report a reproducible bug with your platform, build version, device/runtime details, and reproduction steps.
- Request a feature when you have a concrete improvement to propose.
Before posting logs, screenshots, or recordings, remove personal information. Never upload Crimsonland assets, PAQ/PAK files, generated asset packs, personal APK/PCVR packages, or signing keys.
- Quest personal-build details
- Quest playtester handoff
- PCVR personal-build details
- Asset import and recovery
- Quest release checklist
- PCVR release checklist
- Godot Quest controller models
- Release evidence
The supported publication surface is source plus asset-free, user-owned CI builds. Do not upload or share generated asset packs, PAQ/PAK files, extracted art or audio, personal bundled-assets APKs, or signing keys. The local setup helpers process files on the player's PC and transfer Quest data only to the connected headset.
CrimsonVR is an independent port and is not affiliated with or endorsed by the upstream Crimson project, its maintainers, 10tons, or the Crimsonland rights holders. The upstream project documents its own asset permissions; this fork does not claim those permissions transfer to CrimsonVR distribution. Each player must supply their own legally obtained Crimsonland Classic assets.