Skip to content

Repository files navigation

What is this repository?

This is a fork of DTXManiaNX, with a main focus on improving QOL, as well as cleaning up and improving the codebase. This fork was initially started from frustration with the lack of QOL features or decent UX in essentially all DTXMania forks, and intends to create a gameplay and menu navigation system more in line with the arcade.

Installation / Downloads

Visit releases for automated builds. Stable builds are not provided at this point.

Some of the changes made from upstream DTXManiaNX:

  • Newly written renderer

    • Uses an abstracted architecture allowing arbitrary graphics backends
      • Currently uses OpenGL (instead of DirectX9)
    • Supports translating, rotating, and scaling elements according to a hierarchy
    • Fully serializable and skinnable
    • Support for arbitrary resolutions such as 1080p or 2160p (4K)
      • Currently restricted to 16:9
      • UI scales gracefully, independent of resolution
    • Font rendering currently handled by Skia
    • Video decoding and rendering through ffmpeg (supporting practically any format under the sun)
  • New theming engine

    • Written on top of new renderer
    • Doesn't affect old UI elements (for now)
    • Most game and menu elements can be skinned or transformed
  • New animation framework

    • Allows for keyframe based animations, loaded at runtime from json files
    • Multiple smoothing and interpolation options
    • Currently used by judgements, some transitions, note explosions, wailing
  • Automatic updates

    • Builds are automatically done through GitHub Actions, the game will download, unpack, and install updates whenever a new build is available
  • Rewritten song database

    • ~4-8x performance speedup
    • Safer handling of files
    • No more reliance on legacy (unsafe) BinaryFormatter, using SQLite database for cache
    • Song name transliteration (romanization)
  • Improved gameplay features

    • Improved and more customizable judgement and note explosion effects
    • Note and gameplay related elements are much easier to skin now with more cleanly separated locations
  • Greatly improved guitar support

    • Greatly overhauled rendering of notes, long notes, and wailing
    • Long notes and wailing support (customizable) animations
    • Single player guitar support
    • Vastly improved guitar chart loading
      • Loading songs is now multithreaded, resulting in 4-8x performance improvement depending on the hardware
  • Greatly improved sorting functionality

    • Sorting functionality similar to GITADORA, with songs grouped in various categories
    • Group by BOX, Difficulty, Level, Title, Artist, etc
  • Various stages recreated from scratch

    • Song selection UI
      • Customizable options for various display parts
      • Grealy improved smoothness and UX
    • Results screen
      • Added information (Skill is implemented to match the arcade games)
      • Styling and fonts updated to match recent games
  • Improved Guitar navigation

    • P + strum to confirm
    • Y + strum to go back
  • Greatly improved settings menu

    • Most menu options are now sorted into categories (for example, Audio, Video, Gameplay, etc)
    • Added options for drum velocity
    • New quick settings menu
    • Removed options that don't affect the current game anymore
    • Improved naming and description for various elements
    • Layout rendered using new UI
  • Improved WASAPI support

    • Particularly on some edge cases on Windows 11 where wasapi would not work before with some sound devices
  • Extensive Dear ImGui-based tooling

    • Inspector and hierarchy views for new UI framework, performance analysis, song database tests, etc
    • Toggle using ctrl + i
    • In game log viewer (ctrl + l)
  • Rewritten config structure

    • New schema based structure
    • Properties only need a single reference in most cases (for basic types)

Current roadmap (in no particular order)

  • Feature parity on song select screen with upstream DTXManiaNX
  • Lane swapping (similar to DTXMania AL)
  • Song favourite filters
  • Create separate video rendering behaviour option for 4:3 videos to stretch
  • Load random videos from a folder for charts with missing videos
  • P4IO input support (arcade Gitadora hardware)
  • Configurable slow/fast
  • Configurable positions for judgement
  • Further improve song results screen
  • Separate kick pedal offset (?)
  • Animation based transition handler
  • Improve separation between instruments, allow arbitrary instrument combinations
    • Currently guitar or bass only mode is implemented in a hacky way by removing extra notes from the chart, preventing bass notes from being played when playing for example guitar only mode. This should be configurable.
  • Readd screenshot functionality

Building

The current .NET SDK target is 8.0 (In the future this will be lowered to 6.0, mainly so we can still support Windows 7, which is used by real hardware GITADORA machines) https://dotnet.microsoft.com/en-us/download/dotnet/8.0

Install the required SDK (Currently .NET 8.0)

winget install Microsoft.DotNet.SDK.8

Clone the repository

git clone https://github.com/BocuD/DTXmaniaNX.git
cd DTXManiaNX/DTXMania

Build a release

dotnet build -p:Configuration=Release

Run the game

cd ../Runtime
./DTXManiaNX.exe

In the root of the repository, a build_and_run.bat script is included to automate these steps.

What is DTXManiaNX?

DTXManiaNX is a program that replicates gameplay from Konami's music video game, Gitadora - Drummania/GuitarFreaks. It processes DTX files (including older formats such as BMS/BME or GDA/G2D) and allows playing of custom created charts with a use of a game, keyboard or MIDI controller.

For more information regarding creation of DTX files and its data formats, do visit the original DTXMania Wiki. Various video tutorials are available from APPROVED DTX Gaming's YouTube page or Furukon Rhythm Gaming's YouTube page.

Original and Ongoing Forks

https://dtxmania.net/

https://github.com/limyz/DTXmaniaNX

https://osdn.net/projects/dtxmania

http://senamih.com/dtxal

https://osdn.net/projects/dtxmaniaxg-verk

Installation

  1. Download the latest release of DTXMania and extract it to a location of your choice

  2. Download and install the .NET 8.0 Runtime (if prompted)

  3. Download and install the DirectX End-User Runtime (DirectX v9.0c)

  4. Run DTXManiaNX.exe

Community Support

For additional help or support, ask away in DTXMania on Discord! https://discord.gg/ST5MWHe

About

A program that replicates gameplay from Konami's music video game, Gitadora - Drummania/GuitarFreaks. This project provides QoL updates, previously was forked from the DTXManiaNX repository.

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages