This repository has been archived on 2024-01-28. You can view files and clone it, but cannot push or open issues or pull requests.
brd/README.md

125 lines
4.6 KiB
Markdown
Raw Normal View History

2020-06-22 20:33:12 +02:00
# BRD
2020-06-28 20:18:27 +02:00
BRD is a tool for working with [*Dance Dance Revolution*][ddr] related data.
For currently supported features, see the [Modes](#modes) section.
2020-06-22 20:33:12 +02:00
## Installation
Currently this is not published as a crate so you either have to clone the
repository manually and run `cargo build --release` or you can use `cargo
install --git https://github.com/sbruder/brd` to install the binary without
cloning.
## Modes
### ddr2osu
This converts DDR step charts (.ssq files) and the corresponding audio (from
.xwb files) to osu beatmaps (in an .osz container).
Basic usage:
2020-06-30 09:37:27 +02:00
```shell
brd ddr2osu -s file.ssq -x file.xwb -o file.osz --title "Song Title" --artist "Song Artist"
# use musicdb from DDR A
brd ddr2osu -s file.ssq -x file.xwb -o file.osz -m startup.arc
```
2020-06-22 20:33:12 +02:00
To learn more about supported options run `brd ddr2osu --help`
#### Known Problems
* Since *osu!mania* does not support shock arrows, it either ignores them or
(by default) replaces them with a two-key combination (↑↓ or ←→); you can
change this with the (`--shock-action` option)
* Known problems listed for unxwb (for wave banks without entry names having
2 entries, which often are preview and full song, the longest one is used by
default).
2020-06-22 20:33:12 +02:00
2020-06-30 12:52:29 +02:00
### ddr2osu-batch
This batch converts songs from a musicdb (and therefore currently only supports
DDR A).
Basic usage (the `ssq` directory includes step charts and the `xwb` directory
includes wave banks):
brd ddr2osu-batch -m startup.arc -o out -s ssq -x xwb --source "Dance Dance Revolution A"
Batch conversion for older versions is possible with the included shell script
`batch_convert.sh` (usage guide at the top of the script).
2020-06-22 20:33:12 +02:00
### unxwb
This can list and extract sounds from XWB wave banks.
2020-06-22 20:33:12 +02:00
Basic Usage:
brd unxwb file.xwb
brd unxwb -l file.xwb
#### Known Problems
* It only supports sounds in [ADPCM][ADPCM] format. If you want to extract
sounds that are stored in other formats, you can use [Luigi Auriemmas
unxwb][unxwb] (<kbd>Ctrl</kbd>+<kbd>F</kbd> unxwb).
* For wave banks without name entries it does not yet offer the option to read
the names from [XSB files][multimedia.cx-XSB] and currently generates the
names from the index in the file (starting from 0).
2020-06-27 17:15:37 +02:00
### unarc
This can list and extract files from DDR A ARC archives. It extracts the
contents into the current directory.
Basic Usage:
brd unarc file.arc
brd unarc -l file.arc
2020-06-28 20:18:27 +02:00
### musicdb
This lists all entries from `musicdb.xml` or `startup.arc` files (only DDR A is
supported).
2020-06-22 20:33:12 +02:00
## About this project
This is my first rust project. Dont expect too much from the code in terms of
quality, robustness or idiomacity (especially regarding error handling). There
2020-06-26 23:48:34 +02:00
currently are no tests for the actual functionality.
2020-06-22 20:33:12 +02:00
Large portions of this tool would not have been possible without the following
resources:
* [SaxxonPike][SaxxonPike]s [scharfrichter][scharfrichter] which implements
[SSQ][scharfrichter-ssq] and XWB ([1][scharfrichter-xwb1],
[2][scharfrichter-xwb2]) and their [documentation about SSQ][ssq-doc]
* The [official osu! file format documentation][osu-doc]
* [MonoGame][MonoGame]s [XWB implementation][MonoGame-xwb]
* [Luigi Auriemma][aluigi]s [unxwb][unxwb] (especially the ADPCM header part)
2020-06-27 17:15:37 +02:00
* [mon][mon]s [ddr\_arc\_extract][ddr_arc_extract]
2020-06-22 20:33:12 +02:00
## License
[ISC License](LICENSE)
This project is not affiliated with ppy or Konami.
[ADPCM]: https://en.wikipedia.org/wiki/Adaptive_differential_pulse-code_modulation
[MonoGame-xwb]: https://github.com/MonoGame/MonoGame/blob/develop/MonoGame.Framework/Audio/Xact/WaveBank.cs
[MonoGame]: https://github.com/MonoGame/MonoGame
[SaxxonPike]: https://github.com/SaxxonPike
[aluigi]: http://aluigi.altervista.org/
[ddr]: https://en.wikipedia.org/wiki/Dance_Dance_Revolution
2020-06-27 17:15:37 +02:00
[ddr_arc_extract]: https://github.com/mon/ddr_arc_extract
[mon]: https://github.com/mon
[multimedia.cx-XSB]: https://wiki.multimedia.cx/index.php/XACT#Sound_Banks_.28.xsb.29
2020-06-22 20:33:12 +02:00
[osu!mania]: https://osu.ppy.sh/help/wiki/Game_Modes/osu%21mania
[osu-doc]: https://osu.ppy.sh/help/wiki/osu!_File_Formats/Osu_(file_format)
[scharfrichter-ssq]: https://github.com/SaxxonPike/scharfrichter/blob/master/Scharfrichter/Archives/BemaniSSQ.cs
[scharfrichter-xwb1]: https://github.com/SaxxonPike/scharfrichter/blob/master/Scharfrichter/Archives/MicrosoftXWB.cs
[scharfrichter-xwb2]: https://github.com/SaxxonPike/scharfrichter/blob/master/Scharfrichter/XACT3/Xact3WaveBank.cs
[scharfrichter]: https://github.com/SaxxonPike/scharfrichter
[ssq-doc]: https://github.com/SaxxonPike/rhythm-game-formats/blob/master/ddr/ssq.md
[unxwb]: http://aluigi.altervista.org/papers.htm