Skip to content

Repository files navigation

A TJA player and Taiko simulator written in C++ using the raylib library.

License Platform GitHub Stars Discord Members Builds

Features

  • Cross-platform compatibility (Windows, Linux, macOS, Android, iOS)
  • Controller Support
  • Low latency audio via ASIO or WDM-KS
  • Recursive and Dynamic Song Select Menu
  • Multithreaded Input
  • Multiple chart format support (TJA, Fumen, OSU/OSZ)
  • Background video playback via FFmpeg
  • Skin system with customizable graphics, sounds, and Lua scripting
  • Branches (Normal/Expert/Master difficulty branches)
  • Song search and favorites system
  • Horizontal and vertical song select layout option
  • Multi-language support
  • 3D characters with animations and costume/color customization
  • Online profile sync (scores, title, costume) via a network account

Modes

  • 1 Player: Single player mode.
  • 2 Player: Up to 2 players simultaneously.
  • Dan Dojo: Challenge mode for back to back songs.
  • Practice Mode: Freely scrobble through a song and practice

System Requirements

  • Windows: Windows 10 or higher
  • macOS: Built via CI, largely untested
  • Linux: Ubuntu 20.04 or higher (other distributions may work but are untested)
  • Android: Android 10 (API 29) or higher
  • iOS: iOS 16.3 or higher; build from source with Xcode (see iOS guide)

FAQ

Q: I'm on Windows and my latency is really high!
A: Change your device_type in game settings to WDM-KS, WASAPI, or ASIO if your computer supports it

Installation

Pre-built Binaries

Download the latest release for your operating system from the releases page.

Windows

  1. Install the Visual C++ Redistributable from Microsoft
  2. Run YataiDON.exe

Linux

  1. Run YataiDON.bin

Android

  1. Install YataiDON-Android.apk (enable "install from unknown sources" if needed)
  2. Place assets in sdcard/YataiDON. Specifically, you will need Skins, Songs, and config.toml.

Building from Source

Controls

  • Press F1 during gameplay for quick restart
  • Press ESC during any screen to go back
  • Press Space Bar during song select to favorite a song
  • Press Left Control or Right Control to skip songs by 7
  • Press F5 during song select to refresh
  • Generic drum keybinds can be customized in config.toml or through the in-game settings menu

Contributing

Contributions are welcome! Please keep in mind:

  • Check the issues page for enhancements and bugs before starting work
  • Feel free to open new issues for bugs or feature requests

Known Issues

See the issues page or the Discord for current bugs and planned enhancements.

License

This project is licensed under the terms specified in the LICENSE file.

Acknowledgments

Dependencies used in the project:

  • raylib - A simple and easy-to-use library to enjoy videogames programming.
  • SDL3 - Cross-platform development library for audio, input, and graphics.
  • SQLite - Self-contained, serverless SQL database engine.
  • RapidJSON - Fast JSON parser/generator for C++.
  • toml++ - TOML config file parser and writer for C++.
  • spdlog - Fast C++ logging library.
  • Lua - Lightweight, embeddable scripting language.
  • sol2 - C++ binding library for Lua.
  • cpptrace - Stacktrace library for C++.
  • libsndfile - Library for reading and writing audio files.
  • libsamplerate - Sample rate converter for audio.
  • FFmpeg - Complete, cross-platform multimedia framework.
  • PortAudio - Cross-platform audio I/O library.
  • miniz - Single-file ZIP/DEFLATE library.

People (in no particular order):


About

TJA player written in C++ and raylib

Topics

Resources

Stars

70 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages