diff --git a/doc/ddrhook/ddrhook1.md b/doc/ddrhook/ddrhook1.md new file mode 100644 index 0000000..3df4cca --- /dev/null +++ b/doc/ddrhook/ddrhook1.md @@ -0,0 +1,138 @@ +# ddrhook1 + +## Supported games + +The following games are supported with this hook library: + +* Dance Dance Revolution X + +The games must be bootstrapped using [inject](../inject.md). + +## Data setup + +Ensure your folder with your unpacked data looks like this: + +* `conf` +* `data` +* `ddr` +* `ddr_YYYYMMDDRR` where `YYYYMMDDRR` corresponds to different datecodes of + different versions. Multiple folders of these possible + +`DDR.exe` files should be in `ddr` and `ddr_YYYYMMDDRR` folders. + +Unpack the distribution package `ddr-11.zip` into one of the folders containing +a `DDR.exe` file. We recommend using the one with the latest datecode which +denotes the latest version of the game including bugfixes etc. + +`gamestart-11.bat` as well as `ddrhook1.dll` are now expected to be located +in the same folder as (one) `DDR.exe` file. + +## Running + +Run `gamestart-11.bat` as administrator. For the US version of the game, run +`gamestart-11-us.bat` instead. This can be done by either by double +clicking or running it from `cmd.exe`. The latter is recommended to have +any debug output kept on screen after closing the game. + +This will run [inject](../inject.md) with the `ddrhook1.dll`. On first run, +if you don't have a conguration file, e.g. `ddr-11.conf`, available in the +same folder, a default one will be created and the game exits. Simply re-run +`gamestart-11.bat` again. + +## Configuration ddrhook + +The hook library can be configured via cmd arguments or a configuration file. +The latter is generated (*ddr-11.conf* in the same directory) on the first +start of the game using the gamestart-XX.bat file. It contains default values +for all available parameters and comments explaining each parameter. Please +follow the comments when configuring your setup. + +Add the argument *-h* when running gamestart-XX.bat +(e.g. *gamestart-XX.bat -h*) to print help/usage information with a list of +all available parameters. Every parameter can be either set as command line +argument or using a configuration file. + +To set a parameter from the command line, just add it as an argument after +the bat file like this + +``` +gamestart-11.bat -p gfx.windowed=true +``` + +The syntax for the "key=value" is the same as in the config file. Make sure +to have a pre-ceeding "-p" for every parameter added. + +However, if a parameter is specifed in the configuration file and as a command +line argument, the command line argument overrides the config file's value. + +## Configure USB memory cards and edit data + +You can setup actual USB thumb drives mapped to a drive letter, e.g. `E:\` for +player 1 and `F:\` for player 2, or just have them point to any local directory, +e.g. `usbmem_p1` and `usbmem_p2`. + +Set-up your folder mappings in the +[conf file or via command line args](#configuration-ddrhook) like follows: + +* Enable USB memory data emulation: `ddrhook1.usbmem_enabled=true` +* Set P1 USB memory data path pointing to local folder `usbmem_p1` next to `DDR.EXE`: + `ddrhook1.usbmem_path_p1=usbmem_p1` +* Set P1 USB memory data path pointing to local folder `usbmem_p2` next to `DDR.EXE`: + `ddrhook1.usbmem_path_p1=usbmem_p2` +* Have/create a subfolder called `DDR_EDIT` on any location/USB drive you want to use +* Name your edit data file either `DDR_EDIT_J.DAT` (for JP version) or `DDR_EDIT_US.DAT` + (for US version) and place it in the `DDR_EDIT` directory. + +For the example setup above, the full relative path of the edit file should be +`usbmem_p1\DDR_EDIT\DDR_EDIT_J.DAT` for player 1. + +Note that USB memory cards are not detected by the game and the game stays +silent about that if they do not contain edit data, your path mapping does not resolve +or you misplaced or named your edit data file incorrectly. + +## Grey and glitchy arrows + +This is a known issue with many GPUs, typically non-Radeon GPUs. + +There is currently not patch available in Bemanitools for that. We assume this is an +issue with incompatible shader code. + +There are solutions to hard-patch the code available elsewhere. + +## Troubleshooting and FAQ + +### Issues with background videos (not) playing + +The game expects you have the `CLVSD.ax` file registered for decoding videos. + +Grab the `CLVSD.ax` file and go to *Start* > *Run* > enter `regsvr32 clvsd.ax` and +execute. Make sure to run as Administrator, otherwise you will get errors due to +invalid permissions. + +### Game crashes during boot + +If you have played a newer version of DDR, e.g. DDR 2014+, you might have the +`k-clvsd.dll` codec registered which crashes DDR X and likely X2 (EU/US) as well. + +Unregister `k-clvsd.dll`, e.g. `regsvr32 /u k-clvsd.dll`, and +[registering `CLVSD.ax`](#issues-with-background-videos-not-working). + +Note that `CLVSD.ax` will likely hang any newer/more recent DDR versions on startup +and require you to use the `k-clvsd.dll` that came with the respective version +instead. See [this section](ddrhook2.md#video-codecs-for-background-videos) for +further details. + +### Black screen/render window without a response + +This symptom might have many causes, here is a list of known issues and what can be done: + +* If not done already, try installing + [DirectX Redist (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=8109) +* If you have an integrated/second GPU, ensure it is disabled +* External (USB) audio devices could cause issues. Ensure you are running on on-board/integrated + sound cards and unplug any external audio devices. +* [Disable fullscreen optimizations](https://devblogs.microsoft.com/directx/demystifying-full-screen-optimizations/): + Right click on `DDR.exe`, *Properties* > *Compatibility* > *Disable fullscreen optimizations* +* Check if you can run `DDR.exe` without Bemanitools by simply launching it. It should at least + boot into a startup screen. If that isn't even possible, then it's likely not an issue with + Bemanitools. Note that your data path needs to be `D:\HDX` for that to work though. diff --git a/doc/ddrhook/ddrhook2.md b/doc/ddrhook/ddrhook2.md new file mode 100644 index 0000000..e94c409 --- /dev/null +++ b/doc/ddrhook/ddrhook2.md @@ -0,0 +1,80 @@ +# ddrhook2 + +## Supported games + +The following games are supported by this hook library: + +* Dance Dance Revolution X2 +* Dance Dance Revolution X3 vs. 2ndMIX +* Dance Dance Revolution 2013 +* Dance Dance Revolution 2014 +* Dance Dance Revolution A + +Note that different builds of the same hook library are required to run the +different versions. See different distribution packages, e.g. `ddr-12.zip`, +`ddr-13.zip` etc. + +Depending on the game version, earlier versions are bootstrapped using +[inject](../inject.md) while later versions require [launcher](../launcher.md). + +## Running + +Run `gamestart-XX.bat`, where `XX` corresponds to the version of the game you +want to run, as administrator. For the US version of X2, run +`gamestart-12-us.bat` instead. This can be done by either by double +clicking or running it from `cmd.exe`. The latter is recommended to have +any debug output kept on screen after closing the game. + +This will run [inject](../inject.md) or [launcher](../launcher.md), depending +on the version of the game, with the `ddrhook2.dll`. On first run, if you don't +have a conguration file, e.g. `ddr-12.conf`, available in the same folder, a +default one will be created and the game exits. Simply re-run `gamestart-XX.bat` +again. + +## Configure USB memory cards and edit data (DDR X2) + +You can setup actual USB thumb drives mapped to a drive letter, e.g. `E:\` for +player 1 and `F:\` for player 2, or just have them point to any local directory, +e.g. `usbmem_p1` and `usbmem_p2`. + +Set-up your folder mappings in the +[conf file or via command line args](#configuration-ddrhook) like follows: + +* Enable USB memory data emulation: `ddrhook1.usbmem_enabled=true` +* Set P1 USB memory data path pointing to local folder `usbmem_p1` next to `DDR.EXE`: + `ddrhook1.usbmem_path_p1=usbmem_p1` +* Set P1 USB memory data path pointing to local folder `usbmem_p2` next to `DDR.EXE`: + `ddrhook1.usbmem_path_p1=usbmem_p2` +* Have/create a subfolder called `DDR_EDIT` on any location/USB drive you want to use +* Name your edit data file either `DDR_EDIT_J.DAT` (for JP version) or `DDR_EDIT_US.DAT` + (for US version) and place it in the `DDR_EDIT` directory. + +For the example setup above, the full relative path of the edit file should be +`usbmem_p1\DDR_EDIT\DDR_EDIT_J.DAT` for player 1. + +Note that USB memory cards are not detected by the game and the game stays +silent about that if they do not contain edit data, your path mapping does not resolve +or you misplaced or named your edit data file incorrectly. + +## Troubleshooting and FAQ + +### Video codecs for background videos + +For DDR 2014 and newer (maybe also earlier?), you need to register `k-clvsd.dll` and +`xactengine2_10.dll` to make background videos work. These files are included with +respective versions of the games. + +Run the following commands either from a command line (`cmd.exe`) or from +*Start* > *Run*. Adjust the path to files accordingly pointing to the correct files. + +* Register `regsvr32 D:\MDX\contents\k-clvsd.dll` +* Register `regsvr32 D:\MDX\contents\xactengine2_10.dll` + +Note: The one that comes with IIDX will hang DDR at startup. The opposite is not true: +IIDX works just fine with this CLVSD. + +### Laggy audio + +If you're running on Windows XP, go to the sound devices control panel, select your +sound card, click Advanced Options and turn Hardware Acceleration down to basic. This +will make the audio much less laggy..