forked from tsuki/openroller
80 lines
2.6 KiB
Markdown
80 lines
2.6 KiB
Markdown
# 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.
|