This is an UNOFFICIAL patch for the System 573/arcade version of Dance Dance Revolution 5th Mix.
The game contains left over code that supports 6 panel gameplay and a large number of songs have 6 panel charts left over from 4th Mix Plus. This project is an attempt to restore that functionality as well as make improvements to the UI to bring it closer to what a real 5th Mix Solo might have felt like.
All source code is included.
- Edits are bugged in 6 panel mode (won't fix)
- Only one of the two sensors in each panel is read (won't fix)
Note: YOU MUST PROVIDE YOUR OWN DATA!
Microsoft Visual Studio 2015 x86 Redistributable is required for tools to work properly.
- Extract the contents of your Dance Dance Revolution 5th Mix CD to the
data_source
folder. You should have aDAT
folder,GAME.DAT
,CARD.DAT
, andPSX.EXE
file in this folder. - Run
step1_extract.bat
(step1_extract.sh
if you are on *nix) to generate thedata_raw
folder. - Run
step2_make.bat
orstep2_make_soloio.bat
(step2_make.sh
orstep2_make_soloio.sh
if you are on *nix) to build theddr5thsolo.iso
/ddr5thsolo_soloio.iso
files. If you are using a real Solo machine then usestep2_make_soloio.bat
. If you are using MAME or an otherwise non-Solo machine then usestep2_make.bat
.
Additionally, if you are building this for MAME, you must use chdman
(included with MAME) to build the required CHD.
- Generate CHD using
chdman.exe createcd -i ddr5thsolo.iso -o a27jaa02.chd -c none
(-c none
is requested because the compression can throw timing off in MAME). - Overwrite
roms/ddr5m/a27jaa02.chd
in your MAME folder with the newly generateda27jaa02.chd
. - Delete
nvram/ddr5m
in order to force reinstallation when you bootddr5m
next in MAME. - You must run MAME from the command line instead of through the normal MAME UI to bypass hash check errors
If you wish to extract the CD bin/cue from a CHD file, use chdman.exe extractcd -i a27jaa02.chd -o a27jaa02.cue
.
If you are building using *nix, you must compile the required Cython modules:
cd tools/py
python3 -m pip install -r requirements.txt
python3 setup.py build_ext --inplace
- Dipswitch 1 can be toggled on/off to enable/disable autoplay (even on real hardware)
- There are various flags in src/main.asm that can be modified such as
FORCE_UNLOCK
,SOLO_MODE
,AUTOPLAY_ENABLED
,AUTOPLAY_TIMING
,DISABLE_ANNOUNCER
,DISABLE_CHEERING
, andSWAP_EXTRA_LIGHTS
.
If you are running this on an actual Solo cabinet and find that the pad is not as sensitive as you would like due to the game reading only one of the two sensors per arrow, you can apply the following hardware fix to bridge each pair of sensors together. Get a JAMMA fingerboard and wire every connection straight through so that JAMMA pin 1 on the 573 side connects to JAMMA pin 1 on the connector side, and so on. Then, once every pin is connected straight through, bridge the following pins together:
- Up-Left - X, 22
- Up - 18, Z
- Down - 19, 24
- Left - 20, 23
- Right - 21, aa
- Up-Right - Y, bb
Now, when in the IO test menu or in-game, both sensors in each arrow will register and you should notice your sensitivity improving greatly.
- @WannyTiggah for the edited title screen and icon edits
- @SakamotoNeko13 for the edited 4PANEL/6PANEL graphics on the style select screen
- @dragonminded for testing with a real Solo cabinet as well as lights mapping, lights test menu and autoplay display on dip test menu