# OpenRoller OpenRoller is an experimental rhythm-game runtime for desktop Linux and Sony PSP. It reconstructs compatible playback from independently researched stage formats and user-provided data. The repository contains the gameplay, menus, platform code and tools that turn parsed stage data into a playable game. Reusable code is split into two sibling projects: - [vectorail-core](https://gitea.takasaki.moe/tsuki/vectorail-core): SDL, OpenGL, windowing and composition primitives (BSD-3-Clause). - [vectorail-gc](https://gitea.takasaki.moe/tsuki/vectorail-gc): parsers for DAT, TUMO, RVB, MTX and related formats (MIT). - **openroller**: gameplay, desktop integration, the PSP port and packaging tools (MIT). ## Data policy No game executables, decryption keys, music, charts, textures or other copyrighted game data are distributed by this project. A local `GC/` directory may be used with data you are legally entitled to access; it is ignored by Git. Generated PSP libraries and optional XMB artwork/audio are ignored as well. OpenRoller is an independent interoperability project. It is not affiliated with or endorsed by TAITO, Square Enix, Sony, Nintendo or Valve. Groove Coaster and other names and marks belong to their respective owners. ## Desktop build Place all three repositories next to each other: ```text workspace/ ├── vectorail-core/ ├── vectorail-gc/ └── openroller/ ``` Install CMake, a C++ compiler, and OpenGL development files, then build. SDL3, GLM, and the PNG decoder are fetched automatically when no installed package is available: ```sh cmake -S openroller -B openroller/build -DCMAKE_BUILD_TYPE=Release cmake --build openroller/build -j openroller/tools/run_stage_player.sh ``` CMake first looks for installed `VectorailCore` and `VectorailGC` packages, then falls back to sibling source checkouts. Their locations can be overridden with `VECTORAIL_CORE_SOURCE_DIR` and `VECTORAIL_GC_SOURCE_DIR`. The raw stage inspection utility is built as `openroller-stage-probe`. ### Windows To cross-build a self-contained x86-64 package from Linux with MinGW-w64: ```sh cmake -S openroller -B openroller/build-windows \ -DCMAKE_TOOLCHAIN_FILE=openroller/cmake/toolchains/mingw-x86_64.cmake \ -DCMAKE_BUILD_TYPE=Release cmake --build openroller/build-windows --parallel cmake --install openroller/build-windows \ --prefix openroller/build-windows/package ``` For a native MSYS2 CLANG64 build, install CMake, Ninja, Clang, SDL3, GLM, and OpenGL packages in the CLANG64 shell, then run: ```sh cmake -S openroller -B openroller/build-windows -G Ninja \ -DCMAKE_BUILD_TYPE=Release cmake --build openroller/build-windows --parallel cmake --install openroller/build-windows \ --prefix openroller/build-windows/package ``` The package directory contains `OpenRoller.exe`, `SDL3.dll`, `openroller.cfg`, and the shaders needed at runtime. ## PSP build The PSP port is built with the `pspdev/pspdev` container: ```sh tools/build_psp.sh ``` This produces `psp/EBOOT.PBP`. Optional local XMB media can be placed in `psp/assets`; see [psp/assets/README.md](psp/assets/README.md). Preparing a playable song library requires user-provided data and FFmpeg: ```sh tools/prepare_psp_library.sh /path/to/GC /path/to/PSP/GAME/OpenRoller ``` ## Status OpenRoller is reverse-engineering research and an early public test. Format and runtime behavior are incomplete, and crashes on real PSP hardware are still possible. See [CHANGELOG.md](CHANGELOG.md) and the notes under `docs/`. ## License OpenRoller source code is available under the [MIT License](LICENSE). This license does not apply to user-provided game data or media.