# 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](../vectorail-core): SDL, OpenGL, windowing and composition primitives (BSD-3-Clause). - [vectorail-gc](../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 SDL3, OpenGL, libpng and GLM, then build: ```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`. ## 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.