mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2024-11-27 16:00:52 +01:00
Bemanitools v5.26 release
This commit is contained in:
commit
cbd7720349
45
.clang-format
Normal file
45
.clang-format
Normal file
@ -0,0 +1,45 @@
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlignConsecutiveAssignments: 'false'
|
||||
AlignConsecutiveDeclarations: 'false'
|
||||
AlignEscapedNewlines: Left
|
||||
AlignOperands: 'false'
|
||||
AlignTrailingComments: 'false'
|
||||
AllowShortBlocksOnASingleLine: 'false'
|
||||
AllowShortCaseLabelsOnASingleLine: 'false'
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
AllowShortIfStatementsOnASingleLine: 'false'
|
||||
AllowShortLoopsOnASingleLine: 'false'
|
||||
AlwaysBreakAfterDefinitionReturnType: All
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: 'false'
|
||||
BinPackArguments: 'false'
|
||||
BinPackParameters: 'false'
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeBraces: Linux
|
||||
BreakBeforeTernaryOperators: 'false'
|
||||
BreakStringLiterals: 'true'
|
||||
ColumnLimit: '120'
|
||||
ContinuationIndentWidth: '8'
|
||||
IncludeBlocks: Preserve
|
||||
IndentCaseLabels: 'false'
|
||||
IndentPPDirectives: None
|
||||
IndentWidth: '4'
|
||||
IndentWrappedFunctionNames: 'false'
|
||||
KeepEmptyLinesAtTheStartOfBlocks: 'false'
|
||||
Language: Cpp
|
||||
MaxEmptyLinesToKeep: '1'
|
||||
PointerAlignment: Right
|
||||
ReflowComments: 'true'
|
||||
SortIncludes: 'true'
|
||||
SpaceAfterCStyleCast: 'true'
|
||||
SpaceBeforeAssignmentOperators: 'true'
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceInEmptyParentheses: 'false'
|
||||
SpacesBeforeTrailingComments: '1'
|
||||
SpacesInAngles: 'false'
|
||||
SpacesInCStyleCastParentheses: 'false'
|
||||
SpacesInContainerLiterals: 'false'
|
||||
SpacesInParentheses: 'false'
|
||||
SpacesInSquareBrackets: 'false'
|
||||
TabWidth: '4'
|
||||
UseTab: Never
|
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
build/
|
||||
.*.swp
|
||||
.idea
|
||||
.vscode
|
||||
.vs
|
||||
version
|
177
CHANGELOG.md
Normal file
177
CHANGELOG.md
Normal file
@ -0,0 +1,177 @@
|
||||
# Release history
|
||||
## 5.26
|
||||
* iidxio-ezusb: Reduce sleep time to Sleep(1) to avoid framerate issues on some versions of iidx.
|
||||
* Bugfix: iidx d3d9 games, mainly the newer ones iidx 20-25, freezing. Happened on boot, during song selection or during the song.
|
||||
* Bugfix: log_server_init deadlock on iidxhook4-7. This caused games like iidx24 to hang before even showing a render window.
|
||||
* iidxhook: Add feature to allow GPU based up-/downscaling of rendered frame. This gives
|
||||
you the possibility to upscale the resolution of old SD (640x480) games to your monitor's/TV's
|
||||
native resolution which can have a few advantages: better image quality if the monitor's upscaler
|
||||
is not doing a good job, especially on resolutions that are not a multiple of its native resolution;
|
||||
Reduce display latency if the upscaler is slow, avoid over-/underscan which cannot always be fixed
|
||||
entirely or at all (depending on your GPU and monitor model). See the iidxhook configuration file
|
||||
for the new parameters available.
|
||||
* Major readme cleanup. Add development documentation like style guide, guidelines, development setup.
|
||||
|
||||
## 5.25
|
||||
* Bugfix: iidx14 and 15 crashing on Windows 10
|
||||
* Bugfix: IO2 driver not using correct package sizes on reads/write -> iidxio-ezusb2.dll now working
|
||||
* Improve ezusb2-boot.bat script to handle flashing of IO2 firmware
|
||||
* Remove broken x64 builds of ezusb1/2 tools -> Just use the x86 tool versions instead
|
||||
(use the x64 versions of iidxio-ezusb.dll and iidxio-ezusb2.dll with iidx25)
|
||||
* iidxhook1-8: Allow floating point values for frame rate limiting, e.g. 59.95 (hz).
|
||||
* Improve timing with ezusb (C02) driver
|
||||
|
||||
## v5.24
|
||||
* Bugfix: iidxhook8 hangs very early on startup (race condition in log-server module)
|
||||
|
||||
## v5.23
|
||||
* Refactored configurion (file) handling for iidxhooks, RE-READ THE DOCUMENTATION.
|
||||
This gets rid of the "short cmd parameters", e.g. -w for windowed mode, and replaces
|
||||
them with full name parameters, e.g. -p gfx.windowed=true, which improves handling
|
||||
of configuration files/values.
|
||||
* Add a lot of unit tests to the codebase
|
||||
* Refactored round plug security infrastructure, shared with IIDX and jubeat (1)
|
||||
* Move shared utility modules between iidxhook modules to a separate utilty module 'iidxhook-util'
|
||||
* Add experimental jubeat (1) support (buggy IO emulation)
|
||||
* Various fixes to improve all iidxhooks when running on Windows 10
|
||||
* Bugfix: iidxio-ezusb getting stuck on newer Windows platforms
|
||||
* Update iidxhook docs, e.g. how to get old IIDX versions sync on Windows 10
|
||||
* Various documentation updates
|
||||
* Various code cleanup
|
||||
* Various other minor bugfixes
|
||||
|
||||
## v5.22
|
||||
* Added a lot of documentation and readme stuff (READ IT!!11)
|
||||
* Re-numbering iidxhook implementations to make room for missing games
|
||||
* Support for IIDX 18 -> iidxhook4
|
||||
* Support for IIDX 19 -> iidxhook5
|
||||
* Support for IIDX 20 -> iidxhook6
|
||||
* A lot of code refactoring and cleanup
|
||||
* Refactor p3io emulation
|
||||
* Remove obsolete BT4 DDR stuff
|
||||
* iidxhook: Refactored software monitor check and bugfixes. You can use the
|
||||
auto monitor check to determine your machine's refresh rate or (new) set the
|
||||
refresh rate yourself in the configuration file, e.g. when you already have
|
||||
determined it using one of the newer IIDX games and want to skip that monitor
|
||||
check or if BT5's software monitor check doesn't work properly (e.g. on Win 7).
|
||||
* iidxhook1-3: Check if eamuse server is reachable and log a warning otherwise.
|
||||
This should make debugging invalid URLs or connection issues easier.
|
||||
* iidxhook: Revised ezusb and ezusb2 emulation layer. Translucent support
|
||||
removed, all IO emulation goes through BT5's iidxio interface.
|
||||
* iidxio: Add implementations for ezusb (C02 IO) and ezusb2 (IO2) hardware. This
|
||||
allows you to run _ANY_ IIDX game supported by BT5 either with real C02 or IO2
|
||||
hardware.
|
||||
* iidxhook: Remove translucent card reader feature. Again, to create a unified
|
||||
interface for _ALL_ versions, use the eamio-icca.dll if you want to run on
|
||||
real ICCA (slotted or wavepass) readers.
|
||||
* Various other bugfixes
|
||||
|
||||
Again, read the various markdown (.md) readme files. We tried to document
|
||||
everything to the best of our knowledge. If you are missing something, please
|
||||
contribute by adding that information and submitting a patch to us.
|
||||
|
||||
## v5.21
|
||||
* Camera hook for IIDX 25 (use any UVC webcam in-game), by Xyen
|
||||
* *deep breath* Source code release
|
||||
|
||||
## v5.20
|
||||
* Support for the new IIDX 25 IO board (xyen)
|
||||
* New IO hook system with better multi-threading behavior
|
||||
* Add a replaceable "vefxio" backend dll for IIDX (xyen)
|
||||
* Card reader emulation can now be disabled in iidxhook (xyen)
|
||||
* Add jbhook (xyen, mon)
|
||||
* Add ddrhook (ported from Bemanitools 4 by mon)
|
||||
* Various ICCA emulation improvements (xyen, mon)
|
||||
* QoL improvements to config.exe (xyen, mon)
|
||||
* Other bug fixes (various contributors)
|
||||
|
||||
## a19
|
||||
* iidx 17 support
|
||||
* Bugfix: forums.php?action=viewthread&threadid=51257&postid=1425861#post1425861
|
||||
* iidx 14-17: Improved monitor check and new monitor check screen which shows
|
||||
the current frame rate instead of just a white screen
|
||||
* iidx 09-13: Improved monitor check (but still white screen when in progress.
|
||||
d3d8 doesn't offer any text render out of the box)
|
||||
* iidxfx(2)-exit-hook: Switch off lights on shutdown
|
||||
* Various other bugfixes
|
||||
|
||||
## a18
|
||||
* Bugfix: forums.php?action=viewthread&threadid=51063
|
||||
* Various other bugfixes
|
||||
|
||||
## a17
|
||||
* IIDX 16 support
|
||||
* Fix broken debug output to file (for iidxhook1-3 and all games using launcher)
|
||||
* Improve debug output
|
||||
* Various minor bugfixes
|
||||
|
||||
## a16
|
||||
* Add tools.zip which contains various tools for development: ezusb IO related,
|
||||
bemanitools API testing, acio related
|
||||
* Add documentation (.md files) for tools
|
||||
* Add iidxfx(2)-exit-hook.dll: Hook this using either inject or launcher
|
||||
(depending on the game version) and exit the game by pressing Start P1 + Start
|
||||
P2 + VEFX + Effect simultaneously
|
||||
* Bugfix iidxio API: 16seg not working on IIDX games with FX2 emulation
|
||||
* Bugfix iidxio API: return value of init call not getting checked in hook
|
||||
libraries
|
||||
* SDVX input emulation fixes
|
||||
* Various other bugfixes
|
||||
|
||||
## a15
|
||||
* Select best network adapter if having multiple
|
||||
* Add Felica card detection
|
||||
* Fix SDVX HID lighting
|
||||
* Fix IIDX FX2 deck lighting
|
||||
|
||||
## a13
|
||||
* iidx 15 (DJ Troopers) support
|
||||
* Fix BG video triangle seam on old games
|
||||
* New options handling: cmd args and options file
|
||||
|
||||
## a11
|
||||
* Fix nVidia crash on GOLD
|
||||
|
||||
## a10
|
||||
* Adds IO2 emulation for Gold
|
||||
* Add IO2 translucent mode for Gold ONLY atm (untested due to lack of hardware)
|
||||
* Random input bug resolved (also kinda untested, so maybe?)
|
||||
|
||||
## a09
|
||||
* Add IIDX 14 support
|
||||
|
||||
## a08
|
||||
* Add experimental KFCA (SDVX PCB) support
|
||||
* Add Sound Voltex and BeatStream builds
|
||||
|
||||
## a07
|
||||
* Add IIDX 13 DistorteD support
|
||||
* Add option to use real card readers with IIDX 13
|
||||
|
||||
## a06
|
||||
* Fixes bug in chart data loader interception code
|
||||
|
||||
## a05
|
||||
* Fix broken card reader emulation on Copula
|
||||
* Add monitor check/auto timebase for old IIDX games (9-12) -> refer to the
|
||||
readme file on how to use it
|
||||
|
||||
## a04
|
||||
* Add software frame rate limiter for all D3D8 based games (-g option).
|
||||
|
||||
## a03
|
||||
* Add support for IIDX 9-12
|
||||
* Translucent mode: Use real C02 EZUSB IO hardware
|
||||
* eamio-real.dll: Use real slotted or wave pass card readers
|
||||
* Setup guide, advanced features and FAQ: see readme file iidxhook1.md
|
||||
|
||||
## a02
|
||||
* Fonts are always correct irrespective of system locale! (Make sure you
|
||||
install East Asian fonts tho)
|
||||
* No longer crashes shitty gaming mice that don't follow the USB spec! (will
|
||||
backport this to bt4)
|
||||
* launcher.exe now has a UAC manifest! (because 2006 called and told me to get
|
||||
with the fucking program)
|
||||
|
||||
## a01
|
||||
* Initial Alpha, only supports IIDX 21 and 22 for now.
|
220
GNUmakefile
Normal file
220
GNUmakefile
Normal file
@ -0,0 +1,220 @@
|
||||
# vim: noexpandtab sts=8 sw=8 ts=8
|
||||
|
||||
#
|
||||
# Overridable variables
|
||||
#
|
||||
|
||||
V ?= @
|
||||
BUILDDIR ?= build
|
||||
|
||||
#
|
||||
# Internal variables
|
||||
#
|
||||
|
||||
depdir := $(BUILDDIR)/dep
|
||||
objdir := $(BUILDDIR)/obj
|
||||
bindir := $(BUILDDIR)/bin
|
||||
|
||||
toolchain_32 := i686-w64-mingw32-
|
||||
toolchain_64 := x86_64-w64-mingw32-
|
||||
|
||||
gitrev := $(shell git rev-parse HEAD)
|
||||
cppflags := -I src -I src/main -I src/test -DGITREV=$(gitrev)
|
||||
cflags := -O2 -pipe -ffunction-sections -fdata-sections \
|
||||
-Wall -std=c99
|
||||
ldflags := -Wl,--gc-sections -static-libgcc
|
||||
|
||||
#
|
||||
# The first target that GNU Make encounters becomes the default target.
|
||||
# Define our ultimate target (`all') here, and also some helpers
|
||||
#
|
||||
|
||||
all:
|
||||
|
||||
# Generate a version file to identify the build
|
||||
version:
|
||||
@echo "$(gitrev)" > version
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
clean:
|
||||
$(V)rm -rf $(BUILDDIR)
|
||||
|
||||
#
|
||||
# Pull in module definitions
|
||||
#
|
||||
|
||||
deps :=
|
||||
|
||||
dlls :=
|
||||
exes :=
|
||||
imps :=
|
||||
libs :=
|
||||
|
||||
avsdlls :=
|
||||
avsexes :=
|
||||
|
||||
testexes :=
|
||||
|
||||
include Module.mk
|
||||
|
||||
modules := $(dlls) $(exes) $(libs) $(avsdlls) $(avsexes) $(testexes)
|
||||
|
||||
#
|
||||
# $1: Bitness
|
||||
# $2: AVS2 minor version
|
||||
# $3: Module
|
||||
#
|
||||
|
||||
define t_moddefs
|
||||
|
||||
cppflags_$3 += $(cppflags) -DBUILD_MODULE=$3
|
||||
cflags_$3 += $(cflags)
|
||||
ldflags_$3 += $(ldflags)
|
||||
srcdir_$3 ?= src/main/$3
|
||||
|
||||
endef
|
||||
|
||||
$(eval $(foreach module,$(modules),$(call t_moddefs,_,_,$(module))))
|
||||
|
||||
##############################################################################
|
||||
|
||||
define t_bitness
|
||||
|
||||
subdir_$1_indep := indep-$1
|
||||
bindir_$1_indep := $(bindir)/$$(subdir_$1_indep)
|
||||
|
||||
$$(bindir_$1_indep):
|
||||
$(V)mkdir -p $$@
|
||||
|
||||
$$(eval $$(foreach imp,$(imps),$$(call t_import,$1,indep,$$(imp))))
|
||||
$$(eval $$(foreach dll,$(dlls),$$(call t_linkdll,$1,indep,$$(dll))))
|
||||
$$(eval $$(foreach exe,$(exes),$$(call t_linkexe,$1,indep,$$(exe))))
|
||||
$$(eval $$(foreach lib,$(libs),$$(call t_archive,$1,indep,$$(lib))))
|
||||
|
||||
$$(eval $$(foreach avsver,$$(avsvers_$1),$$(call t_avsver,$1,$$(avsver))))
|
||||
|
||||
$$(eval $$(foreach exe,$(testexes),$$(call t_linkexe,$1,indep,$$(exe))))
|
||||
|
||||
endef
|
||||
|
||||
##############################################################################
|
||||
|
||||
define t_avsver
|
||||
|
||||
subdir_$1_$2 := avs2_$2-$1
|
||||
bindir_$1_$2 := $(bindir)/$$(subdir_$1_$2)
|
||||
|
||||
$$(bindir_$1_$2):
|
||||
$(V)mkdir -p $$@
|
||||
|
||||
$$(eval $$(foreach imp,$(imps),$$(call t_import,$1,$2,$$(imp))))
|
||||
$$(eval $$(foreach dll,$(avsdlls),$$(call t_linkdll,$1,$2,$$(dll))))
|
||||
$$(eval $$(foreach exe,$(avsexes),$$(call t_linkexe,$1,$2,$$(exe))))
|
||||
|
||||
endef
|
||||
|
||||
##############################################################################
|
||||
|
||||
define t_compile
|
||||
|
||||
depdir_$1_$2_$3 := $(depdir)/$$(subdir_$1_$2)/$3
|
||||
abslib_$1_$2_$3 := $$(libs_$3:%=$$(bindir_$1_indep)/lib%.a)
|
||||
absdpl_$1_$2_$3 := $$(deplibs_$3:%=$$(bindir_$1_$2)/lib%.a)
|
||||
objdir_$1_$2_$3 := $(objdir)/$$(subdir_$1_$2)/$3
|
||||
obj_$1_$2_$3 := $$(src_$3:%.c=$$(objdir_$1_$2_$3)/%.o) \
|
||||
$$(rc_$3:%.rc=$$(objdir_$1_$2_$3)/%_rc.o)
|
||||
|
||||
deps += $$(src_$3:%.c=$$(depdir_$1_$2_$3)/%.d)
|
||||
|
||||
$$(depdir_$1_$2_$3):
|
||||
$(V)mkdir -p $$@
|
||||
|
||||
$$(objdir_$1_$2_$3):
|
||||
$(V)mkdir -p $$@
|
||||
|
||||
$$(objdir_$1_$2_$3)/%.o: $$(srcdir_$3)/%.c \
|
||||
| $$(depdir_$1_$2_$3) $$(objdir_$1_$2_$3)
|
||||
$(V)echo ... $$@
|
||||
$(V)$$(toolchain_$1)gcc $$(cflags_$3) $$(cppflags_$3) \
|
||||
-MMD -MF $$(depdir_$1_$2_$3)/$$*.d -MT $$@ -MP \
|
||||
-DAVS_VERSION=$2 -c -o $$@ $$<
|
||||
|
||||
$$(objdir_$1_$2_$3)/%_rc.o: $$(srcdir_$3)/%.rc
|
||||
$(V)echo ... $$@ [windres]
|
||||
$(V)$$(toolchain_$1)windres $$(cppflags_$3) $$< $$@
|
||||
|
||||
endef
|
||||
|
||||
##############################################################################
|
||||
|
||||
define t_archive
|
||||
|
||||
$(t_compile)
|
||||
|
||||
$$(bindir_$1_$2)/lib$3.a: $$(obj_$1_$2_$3) | $$(bindir_$1_$2)
|
||||
$(V)echo ... $$@
|
||||
$(V)$$(toolchain_$1)ar r $$@ $$^ 2> /dev/null
|
||||
$(V)$$(toolchain_$1)ranlib $$@
|
||||
|
||||
endef
|
||||
|
||||
##############################################################################
|
||||
|
||||
define t_linkdll
|
||||
|
||||
$(t_compile)
|
||||
|
||||
dll_$1_$2_$3 := $$(bindir_$1_$2)/$3.dll
|
||||
implib_$1_$2_$3 := $$(bindir_$1_$2)/lib$3.a
|
||||
|
||||
$$(dll_$1_$2_$3) $$(implib_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) \
|
||||
$$(absdpl_$1_$2_$3) \
|
||||
$$(srcdir_$3)/$3.def | $$(bindir_$1_$2)
|
||||
$(V)echo ... $$(dll_$1_$2_$3)
|
||||
$(V)$$(toolchain_$1)gcc -shared \
|
||||
-o $$(dll_$1_$2_$3) -Wl,--out-implib,$$(implib_$1_$2_$3) \
|
||||
$$^ $$(ldflags_$3)
|
||||
$(V)$$(toolchain_$1)strip $$(dll_$1_$2_$3)
|
||||
$(V)$$(toolchain_$1)ranlib $$(implib_$1_$2_$3)
|
||||
|
||||
endef
|
||||
|
||||
##############################################################################
|
||||
|
||||
define t_linkexe
|
||||
|
||||
$(t_compile)
|
||||
|
||||
exe_$1_$2_$3 := $$(bindir_$1_$2)/$3.exe
|
||||
|
||||
$$(exe_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) $$(absdpl_$1_$2_$3) \
|
||||
| $$(bindir_$1_$2)
|
||||
$(V)echo ... $$@
|
||||
$(V)$$(toolchain_$1)gcc -o $$@ $$^ $$(ldflags_$3)
|
||||
$(V)$$(toolchain_$1)strip $$@
|
||||
|
||||
endef
|
||||
|
||||
##############################################################################
|
||||
|
||||
define t_import
|
||||
|
||||
impdef_$1_$2_$3 ?= src/imports/import_$1_$2_$3.def
|
||||
|
||||
$$(bindir_$1_$2)/lib$3.a: $$(impdef_$1_$2_$3) | $$(bindir_$1_$2)
|
||||
$(V)echo ... $$@ [dlltool]
|
||||
$(V)$$(toolchain_$1)dlltool -l $$@ -d $$<
|
||||
|
||||
endef
|
||||
|
||||
##############################################################################
|
||||
|
||||
$(eval $(foreach bitness,32 64,$(call t_bitness,$(bitness))))
|
||||
|
||||
#
|
||||
# Pull in GCC-generated dependency files
|
||||
#
|
||||
|
||||
-include $(deps)
|
||||
|
24
LICENSE
Normal file
24
LICENSE
Normal file
@ -0,0 +1,24 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
502
Module.mk
Normal file
502
Module.mk
Normal file
@ -0,0 +1,502 @@
|
||||
# Example AVS version: 2.13.4 (use std terminology: major.minor.patch)
|
||||
#
|
||||
# AVS major version has been 2 since forever
|
||||
# AVS patch versions appear to maintain API and ABI compatibility.
|
||||
# Or, they did until 2.16.7 reared its fucking head.
|
||||
#
|
||||
# So "AVS version" NOW equals minor version * 100 + patch version.
|
||||
# 2.16.7 is encoded as 1607 under this scheme.
|
||||
#
|
||||
# Games with no AVS version (like IIDX 9th to Happy Sky) are treated as
|
||||
# version 0.
|
||||
#
|
||||
# List of known versions:
|
||||
#
|
||||
# None (0): beatmania IIDX 9th Style
|
||||
# beatmania IIDX 10th Style
|
||||
# beatmania IIDX 11 RED
|
||||
# beatmania IIDX 12 Happy Sky
|
||||
#
|
||||
# 1: Patch 4: beatmania IIDX 13 DistorteD
|
||||
#
|
||||
# 4: Patch 2: beatmania IIDX 14 GOLD
|
||||
#
|
||||
# 6: Patch 5: beatmania IIDX 15 DJ Troopers
|
||||
#
|
||||
# 8: Patch 3: beatmania IIDX 16 Empress
|
||||
# jubeat
|
||||
#
|
||||
# 10: Patch 4: DanceDanceRevolution X2
|
||||
#
|
||||
# 11: Patch 1: beatmania IIDX 18 Resort Anthem
|
||||
# pop'n music 19 Tune Street
|
||||
#
|
||||
# 12: Patch 1: LovePlus Arcade (not a Bemani, w/e)
|
||||
#
|
||||
# 13: Patch 4: beatmania IIDX 19 Lincle
|
||||
# Patch 6: DanceDanceRevolution X3
|
||||
# pop'n music 20 Fantasia
|
||||
#
|
||||
# 14: Patch 3: Guitar Freaks & Drum Mania XG3
|
||||
#
|
||||
# 15: Patch 8: DanceDanceRevolution (2013)
|
||||
# beatmania IIDX 20 tricoro
|
||||
# pop'n music 21 Sunny Park
|
||||
# SOUND VOLTEX (all known versions)
|
||||
# jubeat prop
|
||||
#
|
||||
# 16: Patch 1: beatmania IIDX 21 SPADA
|
||||
# beatmania IIDX 22 PENDUAL
|
||||
# beatmania IIDX 23 copula
|
||||
# beatmania IIDX 24 SINOBUZ
|
||||
# "Patch" 3: Silent Scope Bone Eater (compatible with p7)
|
||||
# "Patch" 7: Steel Chronicle VicTroopers (not a Bemani, w/e)
|
||||
#
|
||||
# 17: Patch 0: beatmania IIDX 25 CANNON BALLERS
|
||||
#
|
||||
|
||||
cflags += \
|
||||
-DWIN32_LEAN_AND_MEAN \
|
||||
-DWINVER=0x0601 \
|
||||
-D_WIN32_WINNT=0x0601 \
|
||||
-DCOBJMACROS \
|
||||
-Wno-attributes \
|
||||
|
||||
# List only the AVS versions that are meaningfully distinct here.
|
||||
# Each AVS-dependent project should consume the earliest AVS import definition
|
||||
# that is still ABI-compatible with the real build its target links against.
|
||||
|
||||
avsvers_32 := 1700 1603 1601 1508 1403 1304 1101 803 0
|
||||
avsvers_64 := 1700 1603 1601 1508
|
||||
|
||||
imps += avs avs-ea3
|
||||
|
||||
include src/main/aciodrv/Module.mk
|
||||
include src/main/acioemu/Module.mk
|
||||
include src/main/aciotest/Module.mk
|
||||
include src/main/bsthook/Module.mk
|
||||
include src/main/bstio/Module.mk
|
||||
include src/main/cconfig/Module.mk
|
||||
include src/main/config/Module.mk
|
||||
include src/main/ddrhook/Module.mk
|
||||
include src/main/ddrio/Module.mk
|
||||
include src/main/ddrio-smx/Module.mk
|
||||
include src/main/ddrio-mm/Module.mk
|
||||
include src/main/eamio/Module.mk
|
||||
include src/main/eamio-icca/Module.mk
|
||||
include src/main/eamiotest/Module.mk
|
||||
include src/main/ezusb/Module.mk
|
||||
include src/main/ezusb-emu/Module.mk
|
||||
include src/main/ezusb-iidx/Module.mk
|
||||
include src/main/ezusb-iidx-fpga-flash/Module.mk
|
||||
include src/main/ezusb-iidx-sram-flash/Module.mk
|
||||
include src/main/ezusb-tool/Module.mk
|
||||
include src/main/ezusb2/Module.mk
|
||||
include src/main/ezusb2-dbg-hook/Module.mk
|
||||
include src/main/ezusb2-emu/Module.mk
|
||||
include src/main/ezusb2-iidx/Module.mk
|
||||
include src/main/ezusb2-iidx-emu/Module.mk
|
||||
include src/main/ezusb2-tool/Module.mk
|
||||
include src/main/ezusb-iidx-emu/Module.mk
|
||||
include src/main/geninput/Module.mk
|
||||
include src/main/hook/Module.mk
|
||||
include src/main/hooklib/Module.mk
|
||||
include src/main/iidx-ezusb-exit-hook/Module.mk
|
||||
include src/main/iidx-ezusb2-exit-hook/Module.mk
|
||||
include src/main/iidx-irbeat-patch/Module.mk
|
||||
include src/main/iidxhook-util/Module.mk
|
||||
include src/main/iidxhook1/Module.mk
|
||||
include src/main/iidxhook2/Module.mk
|
||||
include src/main/iidxhook3/Module.mk
|
||||
include src/main/iidxhook4/Module.mk
|
||||
include src/main/iidxhook5/Module.mk
|
||||
include src/main/iidxhook6/Module.mk
|
||||
include src/main/iidxhook7/Module.mk
|
||||
include src/main/iidxhook8/Module.mk
|
||||
include src/main/iidxio/Module.mk
|
||||
include src/main/iidxio-ezusb/Module.mk
|
||||
include src/main/iidxio-ezusb2/Module.mk
|
||||
include src/main/iidxiotest/Module.mk
|
||||
include src/main/inject/Module.mk
|
||||
include src/main/jbio/Module.mk
|
||||
include src/main/jbhook/Module.mk
|
||||
include src/main/jbhook1/Module.mk
|
||||
include src/main/launcher/Module.mk
|
||||
include src/main/mempatch-hook/Module.mk
|
||||
include src/main/mm/Module.mk
|
||||
include src/main/p3io/Module.mk
|
||||
include src/main/p3ioemu/Module.mk
|
||||
include src/main/p4ioemu/Module.mk
|
||||
include src/main/pcbidgen/Module.mk
|
||||
include src/main/sdvxhook/Module.mk
|
||||
include src/main/sdvxio/Module.mk
|
||||
include src/main/security/Module.mk
|
||||
include src/main/unicorntail/Module.mk
|
||||
include src/main/util/Module.mk
|
||||
include src/main/vefxio/Module.mk
|
||||
|
||||
include src/test/cconfig/Module.mk
|
||||
include src/test/iidxhook-util/Module.mk
|
||||
include src/test/security/Module.mk
|
||||
include src/test/test/Module.mk
|
||||
include src/test/util/Module.mk
|
||||
|
||||
#
|
||||
# Distribution build rules
|
||||
#
|
||||
|
||||
zipdir := $(BUILDDIR)/zip
|
||||
|
||||
$(zipdir)/:
|
||||
$(V)mkdir -p $@
|
||||
|
||||
$(zipdir)/tools.zip: \
|
||||
build/bin/indep-32/aciotest.exe \
|
||||
build/bin/indep-32/eamiotest.exe \
|
||||
build/bin/indep-32/ezusb-iidx-fpga-flash.exe \
|
||||
build/bin/indep-32/ezusb-iidx-sram-flash.exe \
|
||||
build/bin/indep-32/iidxiotest.exe \
|
||||
build/bin/indep-32/iidx-ezusb-exit-hook.dll \
|
||||
build/bin/indep-32/iidx-ezusb2-exit-hook.dll \
|
||||
build/bin/indep-32/pcbidgen.exe \
|
||||
dist/iidx/ezusb-boot.bat \
|
||||
dist/iidx/ezusb2-boot.bat \
|
||||
build/bin/indep-32/mempatch-hook.dll \
|
||||
build/bin/indep-32/ezusb2-dbg-hook.dll \
|
||||
build/bin/indep-32/ezusb2-tool.exe \
|
||||
build/bin/indep-32/ezusb-tool.exe \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/tools-x64.zip: \
|
||||
build/bin/indep-64/eamiotest.exe \
|
||||
build/bin/indep-64/iidxiotest.exe \
|
||||
build/bin/indep-64/iidx-ezusb-exit-hook.dll \
|
||||
build/bin/indep-64/iidx-ezusb2-exit-hook.dll \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/src.zip: .git/HEAD $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)git archive -o $@ HEAD
|
||||
|
||||
$(zipdir)/iidx-09-to-12.zip: \
|
||||
build/bin/indep-32/iidxhook1.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-09.bat \
|
||||
dist/iidx/gamestart-10.bat \
|
||||
dist/iidx/gamestart-11.bat \
|
||||
dist/iidx/gamestart-12.bat \
|
||||
dist/iidx/iidxhook-09.conf \
|
||||
dist/iidx/iidxhook-10.conf \
|
||||
dist/iidx/iidxhook-11.conf \
|
||||
dist/iidx/iidxhook-12.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
build/bin/indep-32/iidx-irbeat-patch.exe \
|
||||
dist/iidx/iidx-irbeat-patch-09.bat \
|
||||
dist/iidx/iidx-irbeat-patch-10.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-13.zip: \
|
||||
build/bin/avs2_0-32/iidxhook2.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-13.bat \
|
||||
dist/iidx/iidxhook-13.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-14-to-17.zip: \
|
||||
build/bin/avs2_0-32/iidxhook3.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-14.bat \
|
||||
dist/iidx/gamestart-15.bat \
|
||||
dist/iidx/gamestart-16.bat \
|
||||
dist/iidx/gamestart-17.bat \
|
||||
dist/iidx/iidxhook-14.conf \
|
||||
dist/iidx/iidxhook-15.conf \
|
||||
dist/iidx/iidxhook-16.conf \
|
||||
dist/iidx/iidxhook-17.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-18.zip: \
|
||||
build/bin/avs2_1101-32/iidxhook4.dll \
|
||||
build/bin/avs2_1101-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-18.bat \
|
||||
dist/iidx/iidxhook-18.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-19.zip: \
|
||||
build/bin/avs2_1304-32/iidxhook5.dll \
|
||||
build/bin/avs2_1304-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-19.bat \
|
||||
dist/iidx/iidxhook-19.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-20.zip: \
|
||||
build/bin/avs2_1508-32/iidxhook6.dll \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-20.bat \
|
||||
dist/iidx/iidxhook-20.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-21-to-24.zip: \
|
||||
build/bin/avs2_1601-32/iidxhook7.dll \
|
||||
build/bin/avs2_1601-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/eamio-icca.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/iidxio.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
build/bin/indep-32/iidxio-ezusb2.dll \
|
||||
build/bin/indep-32/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-21.bat \
|
||||
dist/iidx/gamestart-22.bat \
|
||||
dist/iidx/gamestart-23.bat \
|
||||
dist/iidx/gamestart-24.bat \
|
||||
dist/iidx/iidxhook-21.conf \
|
||||
dist/iidx/iidxhook-22.conf \
|
||||
dist/iidx/iidxhook-23.conf \
|
||||
dist/iidx/iidxhook-24.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/iidx-25.zip: \
|
||||
build/bin/avs2_1700-64/iidxhook8.dll \
|
||||
build/bin/avs2_1700-64/launcher.exe \
|
||||
build/bin/indep-64/config.exe \
|
||||
build/bin/indep-64/eamio.dll \
|
||||
build/bin/indep-64/eamio-icca.dll \
|
||||
build/bin/indep-64/geninput.dll \
|
||||
build/bin/indep-64/iidxio.dll \
|
||||
build/bin/indep-64/iidxio-ezusb.dll \
|
||||
build/bin/indep-64/iidxio-ezusb2.dll \
|
||||
build/bin/indep-64/vefxio.dll \
|
||||
dist/iidx/config.bat \
|
||||
dist/iidx/gamestart-25.bat \
|
||||
dist/iidx/iidxhook-25.conf \
|
||||
dist/iidx/vefx.txt \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-01.zip: \
|
||||
build/bin/avs2_803-32/jbhook1.dll \
|
||||
build/bin/indep-32/inject.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart-01.bat \
|
||||
dist/jb/jbhook-01.conf \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-05-to-07.zip: \
|
||||
build/bin/avs2_1508-32/jbhook.dll \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/jb-08.zip: \
|
||||
build/bin/avs2_1700-32/jbhook.dll \
|
||||
build/bin/avs2_1700-32/launcher.exe \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/jbio.dll \
|
||||
dist/jb/config.bat \
|
||||
dist/jb/gamestart.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/sdvx.zip: \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/avs2_1508-32/sdvxhook.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
build/bin/indep-32/sdvxio.dll \
|
||||
dist/sdvx/config.bat \
|
||||
dist/sdvx/gamestart.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/ddr-12-to-16.zip: \
|
||||
build/bin/avs2_1508-32/launcher.exe \
|
||||
build/bin/avs2_1508-32/ddrhook.dll \
|
||||
build/bin/avs2_1508-32/unicorntail.dll \
|
||||
build/bin/indep-32/config.exe \
|
||||
build/bin/indep-32/ddrio.dll \
|
||||
build/bin/indep-32/ddrio-mm.dll \
|
||||
build/bin/indep-32/ddrio-smx.dll \
|
||||
build/bin/indep-32/eamio.dll \
|
||||
build/bin/indep-32/geninput.dll \
|
||||
dist/ddr/config.bat \
|
||||
dist/ddr/gamestart-12.bat \
|
||||
dist/ddr/gamestart-13.bat \
|
||||
dist/ddr/gamestart-14.bat \
|
||||
dist/ddr/gamestart-15.bat \
|
||||
dist/ddr/gamestart-16.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/bst.zip: \
|
||||
build/bin/avs2_1603-64/bsthook.dll \
|
||||
build/bin/avs2_1603-64/launcher.exe \
|
||||
build/bin/indep-64/bstio.dll \
|
||||
build/bin/indep-64/config.exe \
|
||||
build/bin/indep-64/eamio.dll \
|
||||
build/bin/indep-64/geninput.dll \
|
||||
dist/bst/config.bat \
|
||||
dist/bst/gamestart1.bat \
|
||||
dist/bst/gamestart2.bat \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(zipdir)/doc.zip: \
|
||||
doc/iidxhook \
|
||||
doc/jbhook \
|
||||
doc/tools \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -r $@ $^
|
||||
|
||||
$(BUILDDIR)/tests.zip: \
|
||||
build/bin/indep-32/iidxhook1.dll \
|
||||
build/bin/avs2_0-32/iidxhook2.dll \
|
||||
build/bin/indep-32/cconfig-test.exe \
|
||||
build/bin/indep-32/cconfig-util-test.exe \
|
||||
build/bin/indep-32/cconfig-cmd-test.exe \
|
||||
build/bin/indep-32/iidxhook-util-config-eamuse-test.exe \
|
||||
build/bin/indep-32/iidxhook-util-config-gfx-test.exe \
|
||||
build/bin/indep-32/iidxhook-util-config-misc-test.exe \
|
||||
build/bin/indep-32/iidxhook-util-config-sec-test.exe \
|
||||
build/bin/indep-32/security-id-test.exe \
|
||||
build/bin/indep-32/security-mcode-test.exe \
|
||||
build/bin/indep-32/security-rp-test.exe \
|
||||
build/bin/indep-32/security-rp2-test.exe \
|
||||
build/bin/indep-32/security-rp3-test.exe \
|
||||
build/bin/indep-32/security-util-test.exe \
|
||||
build/bin/indep-32/util-net-test.exe \
|
||||
dist/test/run-tests.sh \
|
||||
| $(zipdir)/
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(BUILDDIR)/bemanitools.zip: \
|
||||
$(zipdir)/bst.zip \
|
||||
$(zipdir)/ddr-12-to-16.zip \
|
||||
$(zipdir)/doc.zip \
|
||||
$(zipdir)/iidx-09-to-12.zip \
|
||||
$(zipdir)/iidx-13.zip \
|
||||
$(zipdir)/iidx-14-to-17.zip \
|
||||
$(zipdir)/iidx-18.zip \
|
||||
$(zipdir)/iidx-19.zip \
|
||||
$(zipdir)/iidx-20.zip \
|
||||
$(zipdir)/iidx-21-to-24.zip \
|
||||
$(zipdir)/iidx-25.zip \
|
||||
$(zipdir)/jb-01.zip \
|
||||
$(zipdir)/jb-05-to-07.zip \
|
||||
$(zipdir)/jb-08.zip \
|
||||
$(zipdir)/src.zip \
|
||||
$(zipdir)/sdvx.zip \
|
||||
$(zipdir)/tools.zip \
|
||||
$(zipdir)/tools-x64.zip \
|
||||
CHANGELOG.md \
|
||||
LICENSE \
|
||||
README.md \
|
||||
version \
|
||||
|
||||
$(V)echo ... $@
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
all: $(BUILDDIR)/bemanitools.zip $(BUILDDIR)/tests.zip
|
107
README.md
Normal file
107
README.md
Normal file
@ -0,0 +1,107 @@
|
||||
# Bemanitools 5
|
||||
Version: 5.26</br>
|
||||
[Release history](CHANGELOG.md)
|
||||
|
||||
A collection of tools to run [various Bemani arcade games](#list-of-supported-games).
|
||||
|
||||
Bemanitools 5 (BT5) is the successor to Bemanitools 4 which introduces a big code cleanup and support for newer games.
|
||||
BT5 uses a cleaner approach than BT4 did; specifically, all input and lighting is handled by emulating the protocols
|
||||
spoken by the real IO PCBs, instead of replacing chunks of game code like BT4. The benefits of this approach are a more
|
||||
authentic gameplay experience, and easier support for a broader range of releases from each game series.
|
||||
|
||||
# List of supported games
|
||||
* BeatStream
|
||||
* BeatStream (bst.zip)
|
||||
* BeatStream アニムトライヴ (bst.zip)
|
||||
* Dance Dance Revolution
|
||||
* Dance Dance Revolution X2 (ddr-12-to-16.zip)
|
||||
* Dance Dance Revolution X3 vs. 2ndMIX (ddr-12-to-16.zip)
|
||||
* Dance Dance Revolution 2013 (ddr-12-to-16.zip)
|
||||
* Dance Dance Revolution 2014 (ddr-12-to-16.zip)
|
||||
* Dance Dance Revolution A (ddr-12-to-16.zip)
|
||||
* Beatmania IIDX
|
||||
* Beatmania IIDX 9th Style (iidx-09-to-12.zip)
|
||||
* Beatmania IIDX 10th Style (iidx-09-to-12.zip)
|
||||
* Beatmania IIDX 11 IIDX RED (iidx-09-to-12.zip)
|
||||
* Beatmania IIDX 12 HAPPY SKY (iidx-09-to-12.zip)
|
||||
* Beatmania IIDX 13 DistorteD (iidx-13.zip)
|
||||
* Beatmania IIDX 14 GOLD (iidx-14-to-17.zip)
|
||||
* Beatmania IIDX 15 DJ TROOPERS (iidx-14-to-17.zip)
|
||||
* Beatmania IIDX 16 EMPRESS (iidx-14-to-17.zip)
|
||||
* Beatmania IIDX 17 SIRIUS (iidx-14-to-17.zip)
|
||||
* Beatmania IIDX 18 Resort Anthem (iidx-18.zip)
|
||||
* Beatmania IIDX 19 Lincle (iidx-19.zip)
|
||||
* Beatmania IIDX 20 Tricoro (iidx-20.zip)
|
||||
* Beatmania IIDX 21 SPADA (iidx-21-to-24.zip)
|
||||
* Beatmania IIDX 22 PENDUAL (iidx-21-to-24.zip)
|
||||
* Beatmania IIDX 23 copula (iidx-21-to-24.zip)
|
||||
* Beatmania IIDX 24 SINOBUZ (iidx-21-to-24.zip)
|
||||
* Beatmania IIDX 25 CANNON BALLERS (iidx-25.zip)
|
||||
* jubeat
|
||||
* jubeat (experimental/buggy) (jb-01.zip)
|
||||
* jubeat saucer (fulfill) (jb-05-to-07.zip)
|
||||
* jubeat prop (jb-05-to-07.zip)
|
||||
* jubeat Qubell (jb-05-to-07.zip)
|
||||
* jubeat clan (jb-08.zip)
|
||||
* SOUND VOLTEX
|
||||
* SOUND VOLTEX BOOTH (sdvx.zip)
|
||||
* SOUND VOLTEX II -infinite infection- (sdvx.zip)
|
||||
* SOUND VOLTEX III GRAVITY WARS (sdvx.zip)
|
||||
* SOUND VOLTEX IV HEAVENLY HAVEN (sdvx.zip)
|
||||
|
||||
# Supported platforms
|
||||
Our main platforms are currently Windows XP and Windows 7 which are also the target platforms on the original hardware
|
||||
of those games. However, as it gets more difficult to get and maintain hardware comptible with Windows XP, this might
|
||||
change in the future. Many games also run on very recent Windows 10 builds but bear with us that it's hard to keep up
|
||||
with Windows updates breaking legacy software.
|
||||
|
||||
# Distribution contents
|
||||
Check the [list of supported games](#list-of-supported-games) to grab the right files for your game. BT5 also includes
|
||||
a *tools* subpackage (tools.zip) as well as the full source code (src.zip).
|
||||
|
||||
You will find *.md files in various sub-packages that give you further instructions for setup, usage, error information
|
||||
or FAQ. We advice you to read them as your questions and concerns might already be answered by them. If not, let us
|
||||
know if there is any information that you consider helpful or important to know and should be added.
|
||||
|
||||
# Development
|
||||
## API
|
||||
Please refer to the [API documentation](doc/api.md).
|
||||
|
||||
## Source Code
|
||||
The source code is included with this distribution package (src.zip). Please refer to the
|
||||
[development document](doc/development.md) for further details.
|
||||
|
||||
## Bugs and TODOs
|
||||
We have our own issue tracker for this. If you want to contribute or have any bugs to report, please reach out to us on
|
||||
the various channels we are available on. Please help us by providing a detailed description of your concern including:
|
||||
* The version of bemanitools you are using
|
||||
* The games affected including version
|
||||
* Log output of bemanitools and the game
|
||||
* The APIs you have been using with bemanitools, e.g. iidxio-keyboard, eamio-keyboard.
|
||||
* The OS version you are running this on
|
||||
* Specs of your hardware including CPU, RAM, GPU
|
||||
* A detailed description of your issue. Describe the symptoms and the steps to trigger and reproduce them. Videos and
|
||||
screenshots might be helpful depending on the issue.
|
||||
|
||||
## Contributions
|
||||
Patches are welcome! Let us know if you have any contributions, e.g. bugfixes, and send us a patch file. Please read
|
||||
our [development guidelines](doc/development.md) as they contain valuable information that your contribution meets our
|
||||
standards.
|
||||
|
||||
Once submitted, we will review your contribution and get back to you about any changes or when we merge them to our
|
||||
upstream repository. Your changes, once approved, will be included in the next release.
|
||||
|
||||
## Roadmap
|
||||
No concrete roadmap or timeline exists. We want to continue adding support for new games as well as old games (some of
|
||||
the old games supported by BT4 are not supported, yet). However, our time and workforce is limited. If you are
|
||||
interested in contributing, please check the [contribution section](#contributions).
|
||||
|
||||
# License
|
||||
Source code license is the Unlicense; you are permitted to do with this as thou wilt. For details, please refer to the
|
||||
[LICENSE file](LICENSE) included with the source code.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
1
dist/bst/config.bat
vendored
Normal file
1
dist/bst/config.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config bst
|
10
dist/bst/gamestart1.bat
vendored
Normal file
10
dist/bst/gamestart1.bat
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K bsthook.dll -E prop/ea3-config-1.xml beatstream1.dll %*
|
10
dist/bst/gamestart2.bat
vendored
Normal file
10
dist/bst/gamestart2.bat
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K bsthook.dll -E prop/ea3-config-2.xml beatstream2.dll %*
|
1
dist/ddr/config.bat
vendored
Normal file
1
dist/ddr/config.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config ddr
|
11
dist/ddr/gamestart-12.bat
vendored
Normal file
11
dist/ddr/gamestart-12.bat
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\ddr.dll %*
|
11
dist/ddr/gamestart-13.bat
vendored
Normal file
11
dist/ddr/gamestart-13.bat
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\ddr.dll %*
|
14
dist/ddr/gamestart-14.bat
vendored
Normal file
14
dist/ddr/gamestart-14.bat
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml
|
||||
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml
|
||||
if not exist conf\nvram\share-config.xml copy prop\share-config.xml conf\nvram\share-config.xml
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\mdxja_945.dll %*
|
14
dist/ddr/gamestart-15.bat
vendored
Normal file
14
dist/ddr/gamestart-15.bat
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml
|
||||
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml
|
||||
if not exist conf\nvram\share-config.xml copy prop\share-config.xml conf\nvram\share-config.xml
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s k-clvsd.dll
|
||||
regsvr32 /s xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -K .\ddrhook.dll .\mdxja_945.dll %*
|
15
dist/ddr/gamestart-16.bat
vendored
Normal file
15
dist/ddr/gamestart-16.bat
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist conf\nvram mkdir conf\nvram
|
||||
if not exist conf\nvram\ea3-config.xml copy prop\eamuse-config.xml conf\nvram\ea3-config.xml
|
||||
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml
|
||||
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml
|
||||
if not exist conf\nvram\testmode-v.xml copy prop\testmode-v.xml conf\nvram\testmode-v.xml
|
||||
if not exist conf\raw mkdir conf\raw
|
||||
|
||||
regsvr32 /s com\k-clvsd.dll
|
||||
regsvr32 /s com\xactengine2_10.dll
|
||||
|
||||
.\launcher.exe -H 33554432 -K .\ddrhook.dll .\arkmdxp3.dll %*
|
1
dist/iidx/config.bat
vendored
Normal file
1
dist/iidx/config.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config iidx
|
28
dist/iidx/ezusb-boot.bat
vendored
Normal file
28
dist/iidx/ezusb-boot.bat
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
@echo off
|
||||
|
||||
if "%2"=="" goto USAGE
|
||||
|
||||
echo Flashing ezusb firmware (%1)...
|
||||
ezusb-tool.exe flash %1
|
||||
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
exit 1
|
||||
)
|
||||
|
||||
:: Wait a moment for the ezusb to re-enumerate properly
|
||||
ping 127.0.0.1 -n 8 > nul
|
||||
echo Writing FPGA data (%2)...
|
||||
ezusb-iidx-fpga-flash.exe v1 %2
|
||||
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
exit 1
|
||||
)
|
||||
|
||||
ping 127.0.0.1 -n 3 > nul
|
||||
|
||||
goto END
|
||||
|
||||
:USAGE
|
||||
echo Usage: ezusb-boot.bat ^<ezusb_v1.bin^> ^<fpga_v1.bin^>
|
||||
|
||||
:END
|
30
dist/iidx/ezusb2-boot.bat
vendored
Executable file
30
dist/iidx/ezusb2-boot.bat
vendored
Executable file
@ -0,0 +1,30 @@
|
||||
@echo off
|
||||
|
||||
if "%1"=="" goto USAGE
|
||||
|
||||
echo Scanning for ezusb2 board...
|
||||
|
||||
:: Yeah, this is one ugly way to pipe stdout to a variable...
|
||||
for /f %%i in ('ezusb2-tool.exe scan') do set EZUSBDEV=%%i
|
||||
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo Error, could not find a connected ezusb2 device
|
||||
exit 1
|
||||
)
|
||||
|
||||
echo Found ezusb2 device at path: "%EZUSBDEV%"
|
||||
|
||||
echo Flashing ezusb2 firmware (%1)...
|
||||
ezusb2-tool.exe flash "%EZUSBDEV%" %1
|
||||
|
||||
if %ERRORLEVEL% neq 0 (
|
||||
echo Error, flashing ezusb2 board
|
||||
exit 1
|
||||
)
|
||||
|
||||
goto END
|
||||
|
||||
:USAGE
|
||||
echo Usage: ezusb2-boot.bat ^<ezusb2.bin^>
|
||||
|
||||
:END
|
6
dist/iidx/gamestart-09.bat
vendored
Executable file
6
dist/iidx/gamestart-09.bat
vendored
Executable file
@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-09.conf %*
|
||||
|
6
dist/iidx/gamestart-10.bat
vendored
Executable file
6
dist/iidx/gamestart-10.bat
vendored
Executable file
@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-10.conf %*
|
||||
|
6
dist/iidx/gamestart-11.bat
vendored
Executable file
6
dist/iidx/gamestart-11.bat
vendored
Executable file
@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-11.conf %*
|
||||
|
5
dist/iidx/gamestart-12.bat
vendored
Executable file
5
dist/iidx/gamestart-12.bat
vendored
Executable file
@ -0,0 +1,5 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-12.conf %*
|
15
dist/iidx/gamestart-13.bat
vendored
Executable file
15
dist/iidx/gamestart-13.bat
vendored
Executable file
@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist e\avs_conf mkdir e\avs_conf
|
||||
if not exist e\avs_conf\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
inject iidxhook2.dll bm2dx.exe -D --config iidxhook-13.conf %*
|
||||
|
15
dist/iidx/gamestart-14.bat
vendored
Executable file
15
dist/iidx/gamestart-14.bat
vendored
Executable file
@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist e\avs_conf mkdir e\avs_conf
|
||||
if not exist e\avs_conf\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-14.conf %*
|
||||
|
15
dist/iidx/gamestart-15.bat
vendored
Executable file
15
dist/iidx/gamestart-15.bat
vendored
Executable file
@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist e\avs_conf mkdir e\avs_conf
|
||||
if not exist e\avs_conf\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-15.conf %*
|
||||
|
15
dist/iidx/gamestart-16.bat
vendored
Executable file
15
dist/iidx/gamestart-16.bat
vendored
Executable file
@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist e\avs_conf mkdir e\avs_conf
|
||||
if not exist e\avs_conf\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-16.conf %*
|
||||
|
15
dist/iidx/gamestart-17.bat
vendored
Executable file
15
dist/iidx/gamestart-17.bat
vendored
Executable file
@ -0,0 +1,15 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist e\avs_conf mkdir e\avs_conf
|
||||
if not exist e\avs_conf\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-17.conf %*
|
||||
|
14
dist/iidx/gamestart-18.bat
vendored
Executable file
14
dist/iidx/gamestart-18.bat
vendored
Executable file
@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K iidxhook4.dll bm2dx.dll --config iidxhook-18.conf %*
|
14
dist/iidx/gamestart-19.bat
vendored
Executable file
14
dist/iidx/gamestart-19.bat
vendored
Executable file
@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist d mkdir d
|
||||
if not exist e mkdir e
|
||||
if not exist f mkdir f
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K iidxhook5.dll bm2dx.dll --config iidxhook-19.conf %*
|
10
dist/iidx/gamestart-20.bat
vendored
Executable file
10
dist/iidx/gamestart-20.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K iidxhook6.dll bm2dx.dll --config iidxhook-20.conf %*
|
10
dist/iidx/gamestart-21.bat
vendored
Executable file
10
dist/iidx/gamestart-21.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-21.conf %*
|
10
dist/iidx/gamestart-22.bat
vendored
Executable file
10
dist/iidx/gamestart-22.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-22.conf %*
|
10
dist/iidx/gamestart-23.bat
vendored
Executable file
10
dist/iidx/gamestart-23.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-23.conf %*
|
10
dist/iidx/gamestart-24.bat
vendored
Executable file
10
dist/iidx/gamestart-24.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-24.conf %*
|
16
dist/iidx/gamestart-25.bat
vendored
Normal file
16
dist/iidx/gamestart-25.bat
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev mkdir dev
|
||||
if not exist dev\e mkdir dev\e
|
||||
if not exist dev\g mkdir dev\g
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
if not exist dev\raw\log mkdir dev\raw\log
|
||||
if not exist dev\raw\fscache mkdir dev\raw\fscache
|
||||
|
||||
for /R prop\defaults %%D in (*.*) do (
|
||||
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram
|
||||
)
|
||||
|
||||
launcher -H 134217728 -K iidxhook8.dll bm2dx.dll --config iidxhook-25.conf %*
|
12
dist/iidx/iidx-irbeat-patch-09.bat
vendored
Executable file
12
dist/iidx/iidx-irbeat-patch-09.bat
vendored
Executable file
@ -0,0 +1,12 @@
|
||||
@echo off
|
||||
|
||||
IF "%1"=="" GOTO USAGE
|
||||
|
||||
iidx-irbeat-patch.exe 9 %1 e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 9 %1 f\\settings.bin.1
|
||||
GOTO END
|
||||
|
||||
:USAGE
|
||||
ECHO "Usage: iidx-irbeat-patch.bat <beat phase>"
|
||||
|
||||
:END
|
12
dist/iidx/iidx-irbeat-patch-10.bat
vendored
Executable file
12
dist/iidx/iidx-irbeat-patch-10.bat
vendored
Executable file
@ -0,0 +1,12 @@
|
||||
@echo off
|
||||
|
||||
IF "%1"=="" GOTO USAGE
|
||||
|
||||
iidx-irbeat-patch.exe 10 %1 e\\settings.bin.0
|
||||
iidx-irbeat-patch.exe 10 %1 f\\settings.bin.1
|
||||
GOTO END
|
||||
|
||||
:USAGE
|
||||
ECHO "Usage: iidx-irbeat-patch.bat <beat phase>"
|
||||
|
||||
:END
|
59
dist/iidx/iidxhook-09.conf
vendored
Executable file
59
dist/iidx/iidxhook-09.conf
vendored
Executable file
@ -0,0 +1,59 @@
|
||||
# Magnetic card type, format XXX, 3 digit string (supports: C02, D01, E11, ECO)
|
||||
eamuse.card_type=C02
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Use d3d9 hooks instead of d3d8 to enable d3d9 hook features not available on d3d8 (e.g. upscaling). Requires d3d8to9 wrapper library to be used with this game.
|
||||
misc.use_d3d9_hooks=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
# Security boot seeds for ezusb, format: X:X:X where X is a number of 0-9 (e.g. 0:0:0).
|
||||
sec.boot_seeds=0:0:0
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQC02JAA
|
59
dist/iidx/iidxhook-10.conf
vendored
Executable file
59
dist/iidx/iidxhook-10.conf
vendored
Executable file
@ -0,0 +1,59 @@
|
||||
# Magnetic card type, format XXX, 3 digit string (supports: C02, D01, E11, ECO)
|
||||
eamuse.card_type=D01
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Use d3d9 hooks instead of d3d8 to enable d3d9 hook features not available on d3d8 (e.g. upscaling). Requires d3d8to9 wrapper library to be used with this game.
|
||||
misc.use_d3d9_hooks=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
# Security boot seeds for ezusb, format: X:X:X where X is a number of 0-9 (e.g. 0:0:0).
|
||||
sec.boot_seeds=0:1:1
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQD01JAA
|
59
dist/iidx/iidxhook-11.conf
vendored
Executable file
59
dist/iidx/iidxhook-11.conf
vendored
Executable file
@ -0,0 +1,59 @@
|
||||
# Magnetic card type, format XXX, 3 digit string (supports: C02, D01, E11, ECO)
|
||||
eamuse.card_type=E11
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Use d3d9 hooks instead of d3d8 to enable d3d9 hook features not available on d3d8 (e.g. upscaling). Requires d3d8to9 wrapper library to be used with this game.
|
||||
misc.use_d3d9_hooks=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
# Security boot seeds for ezusb, format: X:X:X where X is a number of 0-9 (e.g. 0:0:0).
|
||||
sec.boot_seeds=0:2:2
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQE11JAA
|
62
dist/iidx/iidxhook-12.conf
vendored
Executable file
62
dist/iidx/iidxhook-12.conf
vendored
Executable file
@ -0,0 +1,62 @@
|
||||
# Magnetic card type, format XXX, 3 digit string (supports: C02, D01, E11, ECO)
|
||||
eamuse.card_type=ECO
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Fix broken 3D background on Happy Sky's music select (if appearing completely white)
|
||||
misc.happy_sky_ms_bg_fix=false
|
||||
|
||||
# Use d3d9 hooks instead of d3d8 to enable d3d9 hook features not available on d3d8 (e.g. upscaling). Requires d3d8to9 wrapper library to be used with this game.
|
||||
misc.use_d3d9_hooks=false
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
# Security boot seeds for ezusb, format: X:X:X where X is a number of 0-9 (e.g. 0:0:0).
|
||||
sec.boot_seeds=0:3:3
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQECOJAA
|
62
dist/iidx/iidxhook-13.conf
vendored
Executable file
62
dist/iidx/iidxhook-13.conf
vendored
Executable file
@ -0,0 +1,62 @@
|
||||
# Magnetic card type, format XXX, 3 digit string (supports: C02, D01, E11, ECO)
|
||||
eamuse.card_type=C02
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Fix broken 3D background on DistorteD's music select (if appearing completely black)
|
||||
misc.distorted_ms_bg_fix=false
|
||||
|
||||
# Use d3d9 hooks instead of d3d8 to enable d3d9 hook features not available on d3d8 (e.g. upscaling). Requires d3d8to9 wrapper library to be used with this game.
|
||||
misc.use_d3d9_hooks=false
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Stub calls to rteffect.dll (10th to DistorteD)
|
||||
misc.rteffect_stub=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GEC02
|
||||
|
||||
# Security boot seeds for ezusb, format: X:X:X where X is a number of 0-9 (e.g. 0:0:0).
|
||||
sec.boot_seeds=0:4:4
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQFDDJAA
|
47
dist/iidx/iidxhook-14.conf
vendored
Executable file
47
dist/iidx/iidxhook-14.conf
vendored
Executable file
@ -0,0 +1,47 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GQGLDJAA
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQGLDJA
|
47
dist/iidx/iidxhook-15.conf
vendored
Executable file
47
dist/iidx/iidxhook-15.conf
vendored
Executable file
@ -0,0 +1,47 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GQHDDJAA
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQHDDJA
|
50
dist/iidx/iidxhook-16.conf
vendored
Executable file
50
dist/iidx/iidxhook-16.conf
vendored
Executable file
@ -0,0 +1,50 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GQI00JAA
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GQI00JA
|
50
dist/iidx/iidxhook-17.conf
vendored
Executable file
50
dist/iidx/iidxhook-17.conf
vendored
Executable file
@ -0,0 +1,50 @@
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disable operator clock setting system clock time
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# Security boot version (e.g. GEC02).
|
||||
sec.boot_version=GCJDJJAA
|
||||
|
||||
# Security black plug mcode id string (e.g. GQC02JAA).
|
||||
sec.black_plug_mcode=GCJDJJA
|
32
dist/iidx/iidxhook-18.conf
vendored
Executable file
32
dist/iidx/iidxhook-18.conf
vendored
Executable file
@ -0,0 +1,32 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
|
||||
gfx.monitor_check=-1.000000
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
29
dist/iidx/iidxhook-19.conf
vendored
Executable file
29
dist/iidx/iidxhook-19.conf
vendored
Executable file
@ -0,0 +1,29 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
29
dist/iidx/iidxhook-20.conf
vendored
Executable file
29
dist/iidx/iidxhook-20.conf
vendored
Executable file
@ -0,0 +1,29 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
29
dist/iidx/iidxhook-21.conf
vendored
Executable file
29
dist/iidx/iidxhook-21.conf
vendored
Executable file
@ -0,0 +1,29 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
29
dist/iidx/iidxhook-22.conf
vendored
Executable file
29
dist/iidx/iidxhook-22.conf
vendored
Executable file
@ -0,0 +1,29 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
29
dist/iidx/iidxhook-23.conf
vendored
Executable file
29
dist/iidx/iidxhook-23.conf
vendored
Executable file
@ -0,0 +1,29 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
29
dist/iidx/iidxhook-24.conf
vendored
Executable file
29
dist/iidx/iidxhook-24.conf
vendored
Executable file
@ -0,0 +1,29 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
47
dist/iidx/iidxhook-25.conf
vendored
Normal file
47
dist/iidx/iidxhook-25.conf
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
|
||||
gfx.bgvideo_uv_fix=false
|
||||
|
||||
# Run the game in a framed window (requires windowed option)
|
||||
gfx.framed=false
|
||||
|
||||
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
|
||||
gfx.frame_rate_limit=0.0
|
||||
|
||||
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
|
||||
gfx.pci_id=1002:7146
|
||||
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# Windowed width, -1 for default size
|
||||
gfx.window_width=-1
|
||||
|
||||
# Windowed height, -1 for default size
|
||||
gfx.window_height=-1
|
||||
|
||||
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
|
||||
gfx.scale_back_buffer_width=0
|
||||
|
||||
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
|
||||
gfx.scale_back_buffer_height=0
|
||||
|
||||
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
|
||||
gfx.scale_back_buffer_filter=none
|
||||
|
||||
# Disables the camera emulation
|
||||
cam.disable_emu=false
|
||||
|
||||
# Override camera device ID 1 detection (copy from device manager, do not escape)
|
||||
cam.device_id1=
|
||||
|
||||
# Override camera device ID 2 detection (copy from device manager, do not escape)
|
||||
cam.device_id2=
|
||||
|
||||
# Disable card reader emulation and enable usage of real card reader hardware on COM0 (for games supporting slotted readers)
|
||||
io.disable_card_reader_emu=false
|
||||
|
||||
# Disable BIO2 emulation and enable usage of real BIO2 hardware
|
||||
io.disable_bio2_emu=false
|
||||
|
||||
# Disables the poll limiter, warning very high CPU usage may arise
|
||||
io.disable_poll_limiter=false
|
1
dist/iidx/vefx.txt
vendored
Normal file
1
dist/iidx/vefx.txt
vendored
Normal file
@ -0,0 +1 @@
|
||||
-1 -1 -1 -1 -1
|
1
dist/jb/config.bat
vendored
Normal file
1
dist/jb/config.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config jb
|
5
dist/jb/gamestart-01.bat
vendored
Normal file
5
dist/jb/gamestart-01.bat
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
inject jbhook1.dll jubeat.exe --config jbhook-01.conf %*
|
10
dist/jb/gamestart.bat
vendored
Normal file
10
dist/jb/gamestart.bat
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K jbhook.dll jubeat.dll
|
15
dist/jb/jbhook-01.conf
vendored
Executable file
15
dist/jb/jbhook-01.conf
vendored
Executable file
@ -0,0 +1,15 @@
|
||||
# Run the game windowed
|
||||
gfx.windowed=false
|
||||
|
||||
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
|
||||
eamuse.server=localhost:80
|
||||
|
||||
# PCBID
|
||||
eamuse.pcbid=0101020304050607086F
|
||||
|
||||
# EAMID
|
||||
eamuse.eamid=0101020304050607086F
|
||||
|
||||
# Mcode of the game to run.
|
||||
security.mcode=GCH44JAB
|
||||
|
1
dist/old/config-dm.bat
vendored
Normal file
1
dist/old/config-dm.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config dm
|
1
dist/old/config-gf.bat
vendored
Normal file
1
dist/old/config-gf.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config gf
|
1
dist/old/config-pnm.bat
vendored
Executable file
1
dist/old/config-pnm.bat
vendored
Executable file
@ -0,0 +1 @@
|
||||
@start config pnm
|
1
dist/old/config-sdvx.bat
vendored
Normal file
1
dist/old/config-sdvx.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config sdvx
|
8
dist/old/gamestart-JDXJAA.bat
vendored
Executable file
8
dist/old/gamestart-JDXJAA.bat
vendored
Executable file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -k ddrhook.dll ddr.dll %*
|
8
dist/old/gamestart-JDXJBA.bat
vendored
Executable file
8
dist/old/gamestart-JDXJBA.bat
vendored
Executable file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -k ddrhook.dll ddr.dll -o %*
|
14
dist/old/gamestart-JDZ.bat
vendored
Executable file
14
dist/old/gamestart-JDZ.bat
vendored
Executable file
@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
subst /D E:
|
||||
subst /D F:
|
||||
|
||||
subst E: dev\E
|
||||
subst F: dev\F
|
||||
|
||||
launcher -k iidxhook.dll bm2dx.dll -u -i 1002:7146 %*
|
10
dist/old/gamestart-K39.bat
vendored
Executable file
10
dist/old/gamestart-K39.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw\bookkeeping mkdir dev\raw\bookkeeping
|
||||
if not exist dev\raw\ranking mkdir dev\raw\ranking
|
||||
if not exist dev\raw\settings mkdir dev\raw\settings
|
||||
|
||||
launcher popn19.dll
|
8
dist/old/gamestart-KDXJAA.bat
vendored
Executable file
8
dist/old/gamestart-KDXJAA.bat
vendored
Executable file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -k ddrhook.dll ddr.dll %*
|
8
dist/old/gamestart-KDXJBA.bat
vendored
Executable file
8
dist/old/gamestart-KDXJBA.bat
vendored
Executable file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -k ddrhook.dll ddr.dll -o %*
|
14
dist/old/gamestart-KDZ.bat
vendored
Executable file
14
dist/old/gamestart-KDZ.bat
vendored
Executable file
@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
subst /D E:
|
||||
subst /D F:
|
||||
|
||||
subst E: dev\E
|
||||
subst F: dev\F
|
||||
|
||||
launcher -k iidxhook.dll bm2dx.dll -u -i 1002:7146 %*
|
1
dist/old/gamestart-KFC.bat
vendored
Normal file
1
dist/old/gamestart-KFC.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@launcher -k sdvxhook.dll soundvoltex.dll -w
|
10
dist/old/gamestart-L39.bat
vendored
Executable file
10
dist/old/gamestart-L39.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw\bookkeeping mkdir dev\raw\bookkeeping
|
||||
if not exist dev\raw\ranking mkdir dev\raw\ranking
|
||||
if not exist dev\raw\settings mkdir dev\raw\settings
|
||||
|
||||
launcher popn20.dll
|
8
dist/old/gamestart-L44.bat
vendored
Executable file
8
dist/old/gamestart-L44.bat
vendored
Executable file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher jubeat.dll
|
10
dist/old/gamestart-M39.bat
vendored
Executable file
10
dist/old/gamestart-M39.bat
vendored
Executable file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw\bookkeeping mkdir dev\raw\bookkeeping
|
||||
if not exist dev\raw\ranking mkdir dev\raw\ranking
|
||||
if not exist dev\raw\settings mkdir dev\raw\settings
|
||||
|
||||
launcher popn21.dll
|
3
dist/old/gamestart-dm.bat
vendored
Normal file
3
dist/old/gamestart-dm.bat
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
|
||||
for %%x in (gdv?.exe) do start %%x -d
|
3
dist/old/gamestart-gf.bat
vendored
Normal file
3
dist/old/gamestart-gf.bat
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
|
||||
for %%x in (gdv?.exe) do start %%x -g
|
8
dist/old/gamestart-ju.bat
vendored
Normal file
8
dist/old/gamestart-ju.bat
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher jubeat.dll
|
8
dist/old/gamestart-refl.bat
vendored
Normal file
8
dist/old/gamestart-refl.bat
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher reflecbeat.dll
|
1
dist/sdvx/config.bat
vendored
Normal file
1
dist/sdvx/config.bat
vendored
Normal file
@ -0,0 +1 @@
|
||||
@start config sdvx
|
10
dist/sdvx/gamestart.bat
vendored
Normal file
10
dist/sdvx/gamestart.bat
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
cd /d %~dp0
|
||||
|
||||
if not exist dev\nvram mkdir dev\nvram
|
||||
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml
|
||||
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml
|
||||
if not exist dev\raw mkdir dev\raw
|
||||
|
||||
launcher -K sdvxhook.dll soundvoltex.dll %*
|
28
dist/test/run-tests.sh
vendored
Normal file
28
dist/test/run-tests.sh
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
set -e
|
||||
|
||||
cd $DIR
|
||||
|
||||
echo "Running tests..."
|
||||
|
||||
wine ./cconfig-test.exe
|
||||
wine ./cconfig-util-test.exe
|
||||
wine ./cconfig-cmd-test.exe
|
||||
wine ./iidxhook-util-config-eamuse-test.exe
|
||||
wine ./iidxhook-util-config-gfx-test.exe
|
||||
# wine ./iidxhook-config-iidxhook1-test.exe
|
||||
# wine ./iidxhook-config-iidxhook2-test.exe
|
||||
wine ./iidxhook-util-config-misc-test.exe
|
||||
wine ./iidxhook-util-config-sec-test.exe
|
||||
wine ./security-id-test.exe
|
||||
wine ./security-mcode-test.exe
|
||||
wine ./security-util-test.exe
|
||||
wine ./security-rp-test.exe
|
||||
wine ./security-rp2-test.exe
|
||||
wine ./security-rp3-test.exe
|
||||
wine ./util-net-test.exe
|
||||
|
||||
echo "All tests successful."
|
43
doc/api.md
Normal file
43
doc/api.md
Normal file
@ -0,0 +1,43 @@
|
||||
# Bemanitools API
|
||||
Bemanitools introduces interfaces abstracting the IO hardware of many games. This is used to implement support for
|
||||
non-intended IO devices from simple keyboard support, standard gamecontrollers to custom IO boards or using real
|
||||
hardware with the games (e.g. support for real legacy hardware).
|
||||
|
||||
For a list of already supported and included hardware by game, see the next section.
|
||||
|
||||
The BT5 API separates main game IO hardware like buttons, turn tables, spinners, lights etc. (bstio, iidxio, ...) from
|
||||
eamuse hardware like 10-key pads and card readers (eamio).
|
||||
|
||||
If you want to write an implementation for your own custom piece of hardware, check out the SDK (*bemanitools*
|
||||
sub-folder) in the source code (src.zip).
|
||||
|
||||
## Implementations
|
||||
The following implementations are already shipped with BT5.
|
||||
|
||||
* BeatStream
|
||||
* bstio.dll (default): Keyboard, joystick and mouse input
|
||||
* Dance Dance Revolution
|
||||
* ddrio.dll (default): Keyboard, joystick and mouse input
|
||||
* ddrio-mm.dll: Minimaid hardware
|
||||
* ddrio-smx.dll: StepManiaX platforms
|
||||
* Beatmania IIDX
|
||||
* iidxio.dll (default): Keyboard, joystick and mouse input
|
||||
* iidxio-ezusb.dll: Ezusb (C02 IO) driver
|
||||
* iidxio-ezusb2.dll: Ezusb FX2 (IO2) driver
|
||||
* jubeat
|
||||
* jbio.dll (default): Keyboard, joystick and mouse input
|
||||
* SOUND VOLTEX
|
||||
* sdvxio.dll (default): Keyboard, joystick and mouse input
|
||||
|
||||
Eamuse hardware support is implemented separately:
|
||||
* eamio.dll (default): Keyboard and joystick input
|
||||
|
||||
## Development notes
|
||||
A DEF file for geninput.dll is included. To convert the DEF into an import library suitable for use with Visual C++, run
|
||||
```
|
||||
lib /machine:i386 /def:geninput.def
|
||||
```
|
||||
from the Visual C++ command line. If you're using mingw then use dlltool:
|
||||
```
|
||||
dlltool -d geninput.def -l geninput.a
|
||||
```
|
103
doc/dev/c02-driver-on-w7-crash.md
Normal file
103
doc/dev/c02-driver-on-w7-crash.md
Normal file
@ -0,0 +1,103 @@
|
||||
# Follow-up (14th August 2019)
|
||||
After publishing this post-mortem, I got messaged by a user on sows who was able to shed some more light on this issue.
|
||||
The user was experiencing the same symptoms on a Win7 setup: blue screen once the firmware was flashed to the C02 IO.
|
||||
This user's solutions was to use the USB2 ports on the PC instead of the USB3 ones. This is good to know and kinda
|
||||
aligns with the weird things happening in the driver (see below).
|
||||
|
||||
# Post-mortem: C02 IO kernel module crash on Windows 7 (29th July 2019) by icex2
|
||||
## Background
|
||||
The original ezusbsys.sys kernel module, which is required to run the C02 IO, was compiled for Windows XP 32-bit, only.
|
||||
There is a newer driver by Cypress, cyusb3.sys, which could be used to IO2 boards on newer Windows platforms, but does
|
||||
not work with the C02 IO in combination with Konami's propriatery firmware. Thus, it was not possible to run the C02 IO
|
||||
on anything than Windows XP 32-bit. But, with newer IIDX games running on Windows 7 64-bit, the C02 IO wasn't usable
|
||||
anymore. Leaving aside, that the newer games actually require a BIO2 board and do not support C02 nor IO2 boards
|
||||
anymore.
|
||||
|
||||
## The goal
|
||||
I still wanted to use my cabinet with a C02 board on newer games which is possible with BT5 adding an emulation layer
|
||||
and an interface (iidxio). This IO interface can be used to implement a driver that talks to a real IO again. Thus,
|
||||
implementing a ezusb iidxio driver library, we can run newer games with an C02 IO as well.
|
||||
|
||||
However, there was no ezusbsys.sys driver that works on newer platforms required to run the newer games. But, Cypress
|
||||
was nice and included the source code of the ezusbsys kernel module. With a few tweaks and a very recent version of
|
||||
visual studio, it was quite easy to build this driver for newer platforms, including Windows 7, 8 and 10 in both
|
||||
32-bit and 64-bit variants.
|
||||
|
||||
## The problem
|
||||
But, when using this driver on certain combinations of newer hardware (max. 1-2 years old) and Windows 7, the kernel
|
||||
module might crash after the Konami C02 firmware got flashed to the ezusb board. The result was a bluescreen and reboot.
|
||||
|
||||
However, the hardware was fine and the kernel module worked fine on another piece of hardware, the stock PC that was
|
||||
used with iidx 20 to 24. However, this hardware is not powerful enough to run iidx 25 and newer without stuttering
|
||||
issues.
|
||||
|
||||
## The analysis/debugging
|
||||
Note: The full source code can be found in the bemanitools-supplement package.
|
||||
|
||||
Setup:
|
||||
* Native hardware with Windows 7 that was crashing
|
||||
* Vmware with Windows 10 and Visual Studio 2019 to compile the kernel module. Target platform Windows 7 64-bit
|
||||
* Booting Windows 7 in test mode to allow unsigned kernel modules to run and with debug output turned on
|
||||
* dbgview on Windows 7 machine to get local kernel dbg output
|
||||
|
||||
Because I wanted to stick to Windows 7 in the beginning (refer to the solution section), I started debugging the kernel
|
||||
module by enabling the debug message output that was already available in the code. However, since kernel debug message
|
||||
printing can be very delayed, the kernel could not print various messages before the kernel crashed.
|
||||
|
||||
Thus, I started stripping the kernel module step by step to narrow down the possible spots causing the crash. After a
|
||||
few hours, I got the (first) issue tracked down:
|
||||
|
||||
After the firmware was flashed, the device had to re-enumerate. When this happens, the function *Ezusb_PnPAddDevice*
|
||||
is called to create a new instance of the device. Since this kernel module is acting as a filter driver, it has to
|
||||
trap this call, and add a filter device before the real device in the device stack. Thus, each call to the ezusb device
|
||||
hits the filter device first and the filter device calls the real device after doing some magic.
|
||||
|
||||
*Ezusb_PnPAddDevice* calls *Ezusb_CreateDeviceObject*. Afterwards, it checks the status of the call to
|
||||
*Ezusb_CreateDeviceObject* and if successful, it tries attaching the device to the device stack. However, instead of
|
||||
using *IoAttachDeviceToDeviceStackSafe* it uses the unsafe variant *IoAttachDeviceToDeviceStack* which can lead to a
|
||||
race condition on newer Windows Systems. Furthermore, all initialization of further variables of the *deviceObject*
|
||||
needs to happen BEFORE doing that. Again, this is a race condition.
|
||||
|
||||
Next issue: Once the kernel calls *Ezusb_StartDevice* -> *Ezusb_ConfigureDevice* -> *Ezusb_SelectInterfaces*, it tries
|
||||
to use *USBD_ParseConfigurationDescriptorEx* to get the interface from the configuration descriptor. However, that
|
||||
fails for some unknown reason. I checked the data structure and it is perfectly fine and everything is there. Thus,
|
||||
I wrote my own version *Ezusb_GetInterfaceFromConfigurationDescriptor* which does all the magic required to get this
|
||||
part fixed:
|
||||
```
|
||||
PUSB_INTERFACE_DESCRIPTOR Ezusb_GetInterfaceFromConfigurationDescriptor(
|
||||
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
|
||||
)
|
||||
{
|
||||
if (!ConfigurationDescriptor) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor NULL configuration desc"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (ConfigurationDescriptor->wTotalLength < sizeof(USB_CONFIGURATION_DESCRIPTOR) + sizeof(USB_CONFIGURATION_DESCRIPTOR)) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor configuration descriptor too small to have space for interface descriptor"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// hardcoding this to a single interface because we only care about the ezusb used with IIDX (C02 IO)
|
||||
if (ConfigurationDescriptor->bNumInterfaces < 1) {
|
||||
Ezusb_KdPrint(("ERROR Ezusb_GetInterfaceFromConfigurationDescriptor num interfaces 0"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// when retrieving the configuration descriptor from the usb device, the interface is located right next to it
|
||||
return (PUSB_INTERFACE_DESCRIPTOR) (((unsigned char*) ConfigurationDescriptor) + sizeof(USB_CONFIGURATION_DESCRIPTOR));
|
||||
}
|
||||
```
|
||||
|
||||
And next issue is just up ahead: Following the above, we have to call *Ezusb_USBD_CreateConfigurationRequestEx* to
|
||||
create a USB configuration request to set the interface we want to use. This is executed with a *Ezusb_CallUSBD* call
|
||||
which sends request to the real hardware. However, this request always fails. The call *IoCallDriver* inside
|
||||
*Ezusb_CallUSBD* always returns an NTSTATUS code that is not documented anywhere (can't find the exact status code
|
||||
anymore, but once you get it, try to find it in the header file).
|
||||
|
||||
At this point, I had to give up. I already wasted too many hours and this is clearly a dead end.
|
||||
|
||||
## The solution
|
||||
Once I realized that I got stuck with Windows 7 and I didn't want to buy (more) new hardware, I gave Windows 10 a try.
|
||||
Surprisingly, this solved all the issues and the kernel module runs fine. The C02 board is flashable without crashing
|
||||
and works with newer IIDX games.
|
26
doc/dev/device-list.md
Normal file
26
doc/dev/device-list.md
Normal file
@ -0,0 +1,26 @@
|
||||
# H44B
|
||||
|
||||
(RGB) LED output board for jubeat cabinets.
|
||||
|
||||
# ICCA
|
||||
|
||||
Separate boxed unit containing with one card reader slot and pin key pad
|
||||
|
||||
- BeatmaniaIIDX DistorteD to Lincle: grey slotted readers hanging below the
|
||||
side speakers next to the monitor
|
||||
- DDR SN 1/2: slotted readers red/black supernova cover mounted to the side of
|
||||
the cabinet next to the monitor (left and right)
|
||||
|
||||
# ICCB
|
||||
|
||||
Single card reader slot (no separate pin pad) built into the cabinet.
|
||||
Pin entry using game controls.
|
||||
|
||||
- (First gen) Jubeat cabinets before replaced with wave pass readers
|
||||
|
||||
# ICCC
|
||||
|
||||
Single card reader wave pass unit without separate pin pad. Pin entry using
|
||||
game controls. Still supported by newer versions.
|
||||
|
||||
- (Second gen) Jubeat cabinets with wave pass readers
|
76
doc/dev/logging-breakdown-avs.md
Normal file
76
doc/dev/logging-breakdown-avs.md
Normal file
@ -0,0 +1,76 @@
|
||||
Copy/pasted from chat with tau (2018/02/10):
|
||||
|
||||
alright then. so for modern iidx.
|
||||
|
||||
we want to do logging inside iidxhook and we also want to pass AVS-style log functions to iidxio which in turn passes them on to geninput in order for those to do logging too
|
||||
|
||||
so iidxhook connects to the AVS log API: log_body_misc and friends, which I assume are invoked using a log_misc() macro in Konami's source code that adds some sort of module tag.
|
||||
|
||||
anyway yeah this we already know.
|
||||
|
||||
libutil has four function ptrs: log_impl_misc and co. These are static variables which are statically initialized to some no-op functions. Except log_impl_fatal, whose implementation just calls libc abort()
|
||||
|
||||
at startup you call log_to_external(), supplying four function ptrs to wire these up to. As the name suggests, this causes Bemanitools libutil to talk to something that is compatible with the AVS log sink API.
|
||||
|
||||
alternatively you can log_to_writer(), which initializes Bemanitools to use its own, internal logging system, and you give it a log writer function that takes strings and writes them somewhere.
|
||||
|
||||
So you have log sinks and you have log writers. The path is [application code] -> [log sink] -> [logging engine] -> [log writer]
|
||||
19:29
|
||||
|
||||
inside config.exe (or generally outside of modern AVS games) this path looks like [bemanitools application code] -> [log sinks passed across dlls] -> [bemanitools logging engine] -> [bemanitools log writer]
|
||||
|
||||
inside modern AVS game the path looks like [bt hook dll / bt iodev dll] -> [avs log_body_whatever log sinks] -> [avs logging engine] -> [launcher.exe log writer]
|
||||
|
||||
note that I tried to keep the log writer API consistent with the AVS log writer API but then Konami went and broke it repeatedly so now Bemanitools has its own stable log writer API. Launcher tracks the AVS log writer API, which breaks constantly, so that's not the same thing.
|
||||
|
||||
anyway that's the background story. Now for the details about IIDX in particular.
|
||||
|
||||
up until about iidx19 we did things the obvious way: iidxhook would log_to_external() to hook into the AVS log sinks and then call those directly and all was well. Then one fine day I was given a IIDX19 data dump and tried running iidxhook and it crashed with a stack overflow. hmm.
|
||||
|
||||
the problem boils down to this: iidx19 AVS added those log timestamps. And for for whatever reason the AVS logging engine needs to access some mutexes and condition variables to make this work properly
|
||||
|
||||
but AVS of course in grand Konami tradition has its own threading and concurrency primitive API which wraps the Win32 API. tbf this is kind of understandable in some sense, because win32 actually did not have condition variables until Windows Vista! in 2006! seriously, I'm not kidding.
|
||||
|
||||
there's all sorts of articles out there describing in fine detail how to use Win32's event objects to implement your own condition variables and the multitudinous pitfalls that this entails
|
||||
|
||||
but anyway one fun thing about the AVS concurrency API is that you can't actually use concurrency primitives unless you're calling that API from a thread launched using the AVS threading API
|
||||
|
||||
and that's a problem in the case of iidxhook, because iidx is old as balls relatively speaking and its EZUSB driver code has I think two worker threads, which it launches using the MS libc's _beginthreadex() function
|
||||
|
||||
this in turn is a wrapper around the win32 CreateThread function, but it also boots up stdio on whatever new thread gets launched and basically is responsible for guaranteeing that the libc will operate correctly on the newly launched thread
|
||||
|
||||
so yeah when you do windows programming, never call CreateThread, always call _beginthreadex. otherwise stuff will break. maybe.
|
||||
|
||||
point is, IIDX predates modern AVS so it just uses Windows threading directly. So, IIDX worker thread starts up, iidxhook does its thing, writes a log message, calls into AVS logging, which in turn grabs an AVS mutex, the implementation of which says "omg this isn't an AVS thread aaaaaa" and ... attempts to call back into the logging system to log this fact. whereupon a stack overflow condition proceeds in a predictable manner.
|
||||
|
||||
so, there are a few ways to deal with this problem. bemanitools 4 dealt with it in a fairly stupid way.
|
||||
|
||||
and very elaborate way too
|
||||
|
||||
bt4 intercepted IIDX's calls to create Windows threads and then redirected those calls to go via the AVS threading API
|
||||
|
||||
so now the worker threads are AVS threads and logging works as expected
|
||||
|
||||
which is all well and good but the problem is that these threads are quite timing critical. it probably worked fine, but i didn't want to risk affecting those threads in a weird way and introducing latency and jitter. i wanted to keep the threading pristine and not mess with it just for the sake of diagnostic messages
|
||||
|
||||
so bemanitools 5 uses the log server approach
|
||||
|
||||
at an appropriate time, it creates its own AVS thread, the logging server. Since it is an AVS thread, it can call the AVS logging API
|
||||
|
||||
and then we have log_post_misc() and friends, implemented in log-server.c
|
||||
|
||||
we initialize the Bemanitools logging system to log "externally" to those funcs and we also propagate those to iidxio.dll and eamio.dll which in turn pass them to geninput.dll
|
||||
|
||||
so what do log_post_misc and friends do
|
||||
|
||||
they lock a "mailbox" using the win32 concurrency primitives and write the log severity and a pointer to the string to be logged into the mailbox, then signal the log server thread, again using win32 concurrency primitives
|
||||
|
||||
then they do a synchronous wait for an acknowledgement from the logging server: since we're holding a string pointer, we cannot return until that string pointer has been consumed or it may be concurrently invalidated
|
||||
|
||||
so the log server wakes up, locks the mailbox, calls AVS log_body_misc() to write the log message, then once that returns it asserts a signal in the mailbox (again, win32 event object because lol what are condition variables) and releases the lock.
|
||||
|
||||
the caller gets the signal, wakes up, and returns to whatever Bemanitools code is running on the IIDX IO worker thread that wanted to write a log message.
|
||||
|
||||
end of essay.
|
||||
|
||||
|
316
doc/development.md
Normal file
316
doc/development.md
Normal file
@ -0,0 +1,316 @@
|
||||
# Development
|
||||
This document is intended for developers interested in contributing to Bemanitools. Please read this document before
|
||||
you start developing.
|
||||
|
||||
## Goals
|
||||
We want you to understand what this project is about and its goals. The following list serves as a guidance for all
|
||||
developers to identify valuable contributions for this project. As the project evolves, these gaols might do as well.
|
||||
|
||||
* Allow running Konami arcade rhythm games, i.e. games of the Bemani series, on arbitrary hardware.
|
||||
* Emulate required software and hardware features.
|
||||
* Provide means to cope with incompatibility issues resulting from using a different software platform (e.g. version
|
||||
of Windows).
|
||||
* Provide an API for custom interfaces and configuring fundamental application features.
|
||||
|
||||
## Development environment
|
||||
The following tooling is required in order to build this project.
|
||||
|
||||
### Tooling
|
||||
#### Linux / MacOSX
|
||||
* git
|
||||
* make
|
||||
* mingw-w64
|
||||
* clang-format
|
||||
* wine (optional, for running tests or some quick testing without requiring a VM)
|
||||
|
||||
On MacOSX, you can use homebrew or macports to install these packages.
|
||||
|
||||
#### Windows
|
||||
TODO
|
||||
|
||||
### IDE
|
||||
Ultimately, you are free to use whatever you feel comfortable with for development. The following is our preferred
|
||||
development environment which we run on a Linux distribution of our choice:
|
||||
* Visual Studio Code with the following extensions
|
||||
* C/C++
|
||||
* C++ Intellisense
|
||||
* Clang-Format
|
||||
|
||||
## Building
|
||||
Simply run make in the root folder:
|
||||
```
|
||||
make
|
||||
```
|
||||
|
||||
All output is located in the *build* folder including the final *bemanitools.zip* package.
|
||||
|
||||
## Testing
|
||||
This still needs to be improved/implemented properly to run the unit-tests easily. Currently, you have to be on either
|
||||
a Linux/MacOSX system to run *run-test-wine.sh* from the root folder. This executes all currently available unit-tests
|
||||
and reports to the terminal any errors. This requires wine to be installed.
|
||||
|
||||
## Project structure
|
||||
Now that your setup is ready to go, here is brief big picture of what you find in this project.
|
||||
|
||||
* build: This folder will be generated once you have run the build process.
|
||||
* dist: Distribution related files such as (default) configuration files, shell scripts, etc.
|
||||
* doc: Documentation for the tools and hooks as well as some development related docs.
|
||||
* src: The source code
|
||||
* imports: Provides headers and import definitions for AVS libs and a few other dependencies.
|
||||
* main: The main source code with game specific hook libraries, hardware emulation and application fixes.
|
||||
* test: Unit tests for modules that are not required for hooking or the presence of a piece of hardware.
|
||||
* .clang-format: Code style for clang-format.
|
||||
* GNUmakefile: Our makefile to build this project.
|
||||
* Module.mk: Defines the various libraries and exe files to build for the distribution packages.
|
||||
|
||||
## Code style and guidelines
|
||||
Please follow these guidelines to keep a consistent style for the code base. Furthermore, we provide some best practices
|
||||
that have shown to be helpful. Please read them and reach out to us if you have any concerns or valuable
|
||||
additions/changes.
|
||||
|
||||
### Clang-format
|
||||
The style we agreed on is provided as a clang-format file. Therefore, we use clang-format for autoformatting our code.
|
||||
|
||||
You can use clang-format from your terminal but when using Visual Studio Code, just install the extension. Apply
|
||||
formatting manually at the end or enable the "reformat on save" feature.
|
||||
|
||||
However, clang-format cannot provide guidance to cover all our style rules. Therefore, we ask you to stick to the
|
||||
"additional" guidelines in the following sections.
|
||||
|
||||
### Additional code style guidelines
|
||||
#### No trailing comments
|
||||
```
|
||||
// NOPE
|
||||
int var = 1; // this is a variable
|
||||
|
||||
// OK
|
||||
// this is a variable
|
||||
int var = 1;
|
||||
```
|
||||
|
||||
#### Comment style
|
||||
* Use either // or /* ... */ for single line.
|
||||
* Use /* ... */ for multiline comments.
|
||||
* Use /* ... */ for documentation.
|
||||
|
||||
Examples:
|
||||
```
|
||||
// single line comment
|
||||
int var = 1;
|
||||
|
||||
/* another single line comment */
|
||||
int var2 = 2;
|
||||
|
||||
/* multi
|
||||
line
|
||||
comment */
|
||||
|
||||
/**
|
||||
* This is a function.
|
||||
*/
|
||||
int func(int a, int b);
|
||||
```
|
||||
|
||||
#### Include guards
|
||||
Provide include guards for every header file. The naming follows the namespacing of the module and the module name.
|
||||
|
||||
Example for bsthook/acio.h file:
|
||||
```
|
||||
#ifndef BSTHOOK_ACIO_H
|
||||
#define BSTHOOK_ACIO_H
|
||||
|
||||
// ...
|
||||
|
||||
#endif
|
||||
```
|
||||
|
||||
#### Empty line before and after control blocks
|
||||
Control blocks include: if, if-else, for, while, do-while, switch
|
||||
|
||||
Makes the code more readible with control blocks being easily visible.
|
||||
|
||||
Example
|
||||
```
|
||||
int var = 1;
|
||||
|
||||
if (var == 2) {
|
||||
// ...
|
||||
}
|
||||
|
||||
printf("%d\n", var);
|
||||
```
|
||||
|
||||
#### Includes
|
||||
* Always keep all includes at the top of a header and source file. Exception: Documentation before include guards on
|
||||
header file.
|
||||
* Use *< >* for system-based includes, e.g. <stdio.h>.
|
||||
* Use *" "* for project-based includes, e.g. "util/log.h".
|
||||
* For project-based includes, always use the full path relative to the root folder (src/main, src/test), e.g.
|
||||
"util/log.h" and not "log.h" when being in another module in the "util" namespace.
|
||||
* Sorting
|
||||
* System-based includes before project-based includes
|
||||
* Block group them by different namespaces
|
||||
* Lex sort block groups
|
||||
* Because windows header files are a mess, the sorting on system-based includes is not always applicable. Please add
|
||||
a comment when applicable and apply the necessary order.
|
||||
|
||||
Example for sorting
|
||||
```
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include "iidxhook-util/acio.h"
|
||||
#include "iidxhook-util/d3d9.h"
|
||||
|
||||
#include "util/log.h"
|
||||
#include "util/mem.h"
|
||||
```
|
||||
|
||||
### Documentation
|
||||
In general, add comments where required to explain a certain piece of code. If is not self-explanatory about:
|
||||
* Why is it implemented like this
|
||||
* Very important details to understand how and why it is working that only you know
|
||||
* A complex algorithm/logic
|
||||
|
||||
Make sure to add some comments or even an extended document. Avoid comments that explain trivial and obvious things
|
||||
like "enable feature X" before an if-block with a feature switch.
|
||||
|
||||
Especially if it comes to reverse-engineering efforts, comments or even a separate document is crucial to allow others
|
||||
to understand the depths you dived into.
|
||||
|
||||
Any extended notes about documentation some hardware, protocol, reverse-engineering a feature etc. can be stored in
|
||||
the *doc/dev* folder and stay with the repository. Make good use of that!
|
||||
|
||||
#### Header files
|
||||
Document any enum, struct or function exposed by a header file. Documentation of static functions or variables in
|
||||
source modules is not required. Also provide documentation for the module.
|
||||
|
||||
Example for my-namespace/my-module.h
|
||||
```
|
||||
/**
|
||||
* Some example module to show you where documentation is expected.
|
||||
*/
|
||||
#ifndef MY_NAMESPACE_MY_MODULE_H
|
||||
#define MY_NAMESPACE_MY_MODULE_H
|
||||
|
||||
/**
|
||||
* Very useful enum for things.
|
||||
*/
|
||||
enum my_enum {
|
||||
MY_NAMESPACE_MY_MODULE_MY_ENUM_VAL_1 = 1,
|
||||
MY_NAMESPACE_MY_MODULE_MY_ENUM_VAL_2 = 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* Some cool data structure.
|
||||
*/
|
||||
struct my_struct {
|
||||
int a;
|
||||
float b;
|
||||
};
|
||||
|
||||
/**
|
||||
* This is my awesome function doing great things.
|
||||
*
|
||||
* Here are some details about it:
|
||||
* - Detail 1
|
||||
* - Detail 2
|
||||
*
|
||||
* @param a If > 0, something happens.
|
||||
* @param b Only positive values valid, makes sure fancy things happen.
|
||||
* @return Result of the computation X which is always > 0. -1 on error.
|
||||
*/
|
||||
int my_namespace_my_module_func(int a, int b);
|
||||
|
||||
#endif
|
||||
```
|
||||
|
||||
### Naming conventions
|
||||
In general, try to keep names short but don't overdo it by using abbrevations of things you created. Sometimes this is
|
||||
not possible and we accept exceptions if there are no proper alternatives.
|
||||
|
||||
#### Namespacing
|
||||
The folder names use lower-case names with dashes *-* as seperators, e.g. *my-namespace*.
|
||||
|
||||
#### Modules
|
||||
Header and source files of modules use lower-case names with dashes *-* as seperators, e.g. *my-module.c*, *my-module.h.
|
||||
|
||||
The include guards contain the name of the namespace and module, see [here](#### Include guards).
|
||||
|
||||
Variables, functions, structs, enums and macros are namespace accordingly.
|
||||
|
||||
#### Variables
|
||||
Snake-case with proper namespacing to namespace and module. Namespacing applies to static and global variables. Local
|
||||
variables are not namespaced.
|
||||
```
|
||||
// For namespace "ezusb", module "device", static variable in module
|
||||
static HANDLE ezusb_device_handle;
|
||||
|
||||
// Local variable in some function
|
||||
int buffer_size = 256;
|
||||
```
|
||||
|
||||
#### Functions
|
||||
Snake-case with proper namespacing to namespace and module for all functions that are not hook functions.
|
||||
```
|
||||
// For namespace "ezusb", module "device", static variable in module, init function
|
||||
void ezusb_device_init(...);
|
||||
|
||||
// CreateFileA hook function inside module
|
||||
HANDLE my_CreateFileA(...)
|
||||
{
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
#### Structs
|
||||
Snake-case with proper namespacing to namespace and module.
|
||||
```
|
||||
// For namespace "ezusb", module "device" ctx struct
|
||||
struct ezusb_device_ctx {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
#### Enums
|
||||
Snake-case with proper namespacing to namespace and module. Upper-case for enum entries
|
||||
```
|
||||
// For namespace "ezusb", module "device" state enum
|
||||
struct EZUSB_DEVICE_STATE {
|
||||
EZUSB_DEVICE_STATE_INIT = 0,
|
||||
EZUSB_DEVICE_STATE_RUNNING = 1,
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
#### Macros
|
||||
Upper-case with underscore as spacing, proper namespacing to namespace and module.
|
||||
```
|
||||
// For namespace "ezusb", module "device" vid
|
||||
#define EZUSB_DEVICE_VID 0xFFFF
|
||||
```
|
||||
|
||||
### Testing
|
||||
We advice you to write unit tests for all modules that allow proper unit testing. This applies to modules that are not
|
||||
part of the actual hooking process and do not rely on external devices to be available. Add these tests to the
|
||||
*src/test* sub-folder.
|
||||
|
||||
This does not only speed up your own development but hardens the code base and avoids having to test these things by
|
||||
running the real applications, hence saving a lot of time and trouble.
|
||||
|
||||
### Further best practices
|
||||
* Avoid external dependencies like additional libraries. Bemanitools is extremely self-contained which enables high
|
||||
portability and control which is important for implementing various "hacks" to just make things work.
|
||||
* If you see some module/function lacking documentation that you have to use/understand, add documentation once you
|
||||
figured out what the function/module is doing. This does not only help your future you but others reading the code.
|
||||
* Keep documentation and readme files up-to-date. When introducing changes/adding new features, review existing
|
||||
documentation and apply necessary changes.
|
||||
|
||||
## Misc
|
||||
The core API interception code was ripped out, cleaned up a tiny bit and released on GitHub. BT5 will eventually be
|
||||
ported to use this external library in order to avoid maintaining the same code in two places at once.
|
||||
|
||||
https://github.com/decafcode/capnhook
|
||||
|
||||
This too is a little rudimentary; it doesn't come with any examples or even a README yet.
|
39
doc/iidxhook/README.md
Normal file
39
doc/iidxhook/README.md
Normal file
@ -0,0 +1,39 @@
|
||||
# iidxhook
|
||||
|
||||
iidxhook is a collection of hook libraries for BeatmaniaIIDX providing
|
||||
emulation and various patches to run these games on non BemaniPC hardware and
|
||||
newer Windows versions.
|
||||
|
||||
# Versions
|
||||
|
||||
iidxhook comes in a few different flavors. The game and its engine changed over
|
||||
the years. Some game versions might require patches/parameters enabled which
|
||||
others don't need or have different AVS versions. Here is the list of supported
|
||||
games:
|
||||
* [iidxhook1](iidxhook1.md): 9th, 10th, RED, HAPPY SKY
|
||||
* [iidxhook2](iidxhook2.md): DistorteD
|
||||
* [iidxhook3](iidxhook3.md): GOLD, DJ TROOPERS, EMPRESS, SIRIUS
|
||||
* [iidxhook4](iidxhook4.md): Resort Anthem
|
||||
* [iidxhook5](iidxhook5.md): Lincle
|
||||
* [iidxhook6](iidxhook6.md): Tricoro
|
||||
* [iidxhook7](iidxhook7.md): SPADA, PENDUAL, copula, SINOBUZ
|
||||
* [iidxhook8](../iidxhook8/iidxhook8.md): CANNON BALLERS
|
||||
|
||||
When building kactools, independent packages are created for each set of games
|
||||
which are ready to be dropped on top of vanilla AC data dumps. We recommend
|
||||
using prestine dumps to avoid any conflicts with other hardcoded hacks or
|
||||
binary patches.
|
||||
|
||||
# How to run
|
||||
|
||||
To run your game with iidxhook, you have to use the inject tool to inject the
|
||||
DLL to the game process. *dist/iidx* contains bat scripts with all the
|
||||
important parameters configured. Further parameters can be added but might not
|
||||
be required to run the game with default settings.
|
||||
Further information on how to setup the data for each specific version are
|
||||
elaborated in their dedicated readme files.
|
||||
|
||||
# Command line options
|
||||
|
||||
Add the argument *-h* when running inject with iidxhook to print help/usage
|
||||
information with a list of parameters you can apply to tweak various things.
|
216
doc/iidxhook/iidxhook1.md
Normal file
216
doc/iidxhook/iidxhook1.md
Normal file
@ -0,0 +1,216 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* 9th Style
|
||||
* 10th Style
|
||||
* RED
|
||||
* HAPPY SKY
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
Ensure your folder with your unpacked data looks like this:
|
||||
- JAx (Game binary revision folder where 'x' can be A, B, C, D, E, F, G)
|
||||
- data
|
||||
- sidcode.txt
|
||||
|
||||
Any further files are optional and not required to run the game.
|
||||
|
||||
Unpack the package containing iidxhook1 into the revision folder of your choice.
|
||||
Most likely, you want to target the latest revision you have to run the latest
|
||||
binary of the game with any bugfixes by developers.
|
||||
|
||||
If you don't run this on old hardware that uses an analog version of a Realtek
|
||||
integrated sound chip, you have to replace RtEffect.dll with a stubbed/patched
|
||||
version (RtEffect_patched.dll). Otherwise, the game might crash instantly when
|
||||
trying to start it.
|
||||
|
||||
Run the appropriate gamestart-XX.bat file as admin, where XX is either
|
||||
09, 10, 11, 12.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook.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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you have to set a valid PCBID in the
|
||||
configuration file or as a command line argument. You also have to set the url
|
||||
of the eamuse server you want to connect to.
|
||||
|
||||
Run the game with the gamestart-XX.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Switching beat phases 9th and 10th Style
|
||||
|
||||
9th Style offers internet ranking phases 1 and 2, 10th Style phases 1, 2 and 3.
|
||||
On both games, the phases are not controlled by the eamuse server the game is
|
||||
connected to (this started with RED). Thus, the game was unlocked by binary
|
||||
updates back then.
|
||||
The higher the beat phase, the more expert courses and songs got unlocked.
|
||||
Furthermore, the "real" ES and OMES are only available on beat#1.
|
||||
Use the iidx-irbeat-patch-XX.bat to patch to a different beat phase if you want
|
||||
to play on a different beat phase. The default phase is beat#1.
|
||||
To unlock everything, patch the game to beat#3.
|
||||
Example: "iidx-irbeat-patch-10.bat 2" to patch to beat#3 on 10th Style
|
||||
|
||||
# Real hardware support
|
||||
|
||||
## USB IO (ezusb)
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb.dll to use
|
||||
an old C02 EZUSB IO board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use more modern IO, e.g. IO2 boards with
|
||||
iidxio-ezusb2.dll, even with old games that do not support them.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Known bugs
|
||||
## avs00000.bin file on D drive
|
||||
All other settings data is remapped to the local folders d, e and f. But, for
|
||||
the avs00000.bin file that's not possible. Once the avs.dll is initialized
|
||||
(DllMain called), it creates that file if it doesn't exist. Currently, we can't
|
||||
fix this because iidxhook is injected after avs.dll is loaded and can't be
|
||||
injected before it is loaded to patch the path for the file.
|
||||
|
||||
## USBIO (FM-DL TIMEOUT)
|
||||
IIDX occasionally fails to boot with a "USBIO (FM-DL TIMEOUT)" error. If this
|
||||
happens, run the game again.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
* Use iidxhook's frame rate limiter feature (see further below) to software lock
|
||||
the refresh rate. This might be necessary on Windows 7 and newer for D3D8 games,
|
||||
e.g. iidx 9 to 12, which seem to ignore GPU side v-sync.
|
||||
* Use iidxhook's auto timebase feature (see further below) or set a pre-determined
|
||||
value to cut down start-up times.
|
||||
|
||||
### The game still stutters (randomly) and drifts off-sync
|
||||
If this concerns a d3d8 based game, i.e. IIDX 9 to 13, use the d3d8to9 wrapper from
|
||||
the bemanitools-supplement package (follow the included instructions).
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
* Make sure your machine's refresh rate is stable
|
||||
* If you don't get a close to 59.94hz refresh rate, use the software monitor
|
||||
check/auto timebase that's built into iidxhook (refer to help/config file)
|
||||
|
||||
## The game crashes instantly (10th, RED, HAPPY SKY)
|
||||
Replace the original RtEffects.dll with the patched version
|
||||
RtEffects_patched.dll from utils (for explanation see above).
|
||||
|
||||
## The game errors with "PROG CHECKSUM" on boot (10th Style only)
|
||||
10th Style does some checksum tests on boot that have to be removed in order
|
||||
to boot it with iidxhook injected. Use a patched executable that removed the
|
||||
checksum tests.
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## 10key input (card reader keyboard) seems unresponsive
|
||||
10key pad emulation for the old magnetic card readers is quite a mess and
|
||||
can't be refreshed very often to make it feel unresponsive. Solution:
|
||||
hit your 10key/numpad slower than normal
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears (RED, HAPPY SKY)
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## All background videos are looking streched (starting with HAPPY SKY)
|
||||
The game requires a hardware feature that is not present on newer GPUs.
|
||||
Refer to the help/config file and turn on the UV fix.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, turn off debugging output
|
||||
(refer to the help/config file) or use a CLVSD.ax codec which has the debugger
|
||||
checks removed.
|
||||
|
||||
## I used the auto timebase option and/or limited my refresh rate but the songs are still going offsync
|
||||
There aren't many options left. The old games were developed for specific
|
||||
hardware and are not guaranteed to work well on (especially) newer hardware.
|
||||
Multiple monitor setups can also have a bad impact on a stable refresh rate.
|
||||
Try a setup with just a single monitor you want to use for gameplay physically
|
||||
connected. Furthermore, dedicated and tested/verified hardware by other users
|
||||
is recommended if you want to save yourself a lot of fiddling.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale 640x480 output properly. This can lead to
|
||||
over-/underscan, bad image quality or even latency caused by the upscaler of the device
|
||||
you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
||||
If you want to use this with old d3d8 games (IIDX 9-13), you have to use the d3d8to9
|
||||
library from bemanitools-supplement because the d3d8 hook module cannot support this
|
||||
upscaling feature. Make sure to set *misc.use_d3d9_hooks=true*.
|
181
doc/iidxhook/iidxhook2.md
Normal file
181
doc/iidxhook/iidxhook2.md
Normal file
@ -0,0 +1,181 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* DistorteD
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
Ensure your folder with your unpacked data looks like this:
|
||||
- JAx (Game binary revision folder where 'x' can be A, B, C, D, E, F, G)
|
||||
- data
|
||||
- sidcode.txt
|
||||
|
||||
Any further files are optional and not required to just run the game.
|
||||
|
||||
Unpack the package containing iidxhook2 into the revision folder of your choice.
|
||||
Most likely, you want to target the latest revision you have to run the latest
|
||||
binary of the game with any bugfixes by developers.
|
||||
|
||||
If you don't run this on old hardware that uses an analog version of a Realtek
|
||||
integrated sound chip, you have to replace RtEffect.dll with a stubbed/patched
|
||||
version (RtEffect_patched.dll). Otherwise, the game might crash instantly when
|
||||
trying to start it.
|
||||
|
||||
Run the gamestart-13.bat file as admin.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook.conf* in the same directory) on the first
|
||||
start of the game using the gamestart-13.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-13.bat
|
||||
(e.g. *gamestart-13.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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you have to set a valid PCBID in the
|
||||
configuration file or as a command line argument. You also have to set the
|
||||
url of the eamuse server you want to connect to.
|
||||
|
||||
Run the game with the gamestart-13.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Real hardware support
|
||||
|
||||
## USB IO (ezusb)
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb.dll to use
|
||||
an old C02 EZUSB IO board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use more modern IO, e.g. IO2 boards with
|
||||
iidxio-ezusb2.dll, even with old games that do not support them.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Known bugs
|
||||
## USBIO (FM-DL TIMEOUT)
|
||||
IIDX occasionally fails to boot with a "USBIO (FM-DL TIMEOUT)" error. If this
|
||||
happens, run the game again.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
* Use iidxhook's frame rate limiter feature (see further below) to software lock
|
||||
the refresh rate. This might be necessary on Windows 7 and newer for D3D8 games,
|
||||
e.g. iidx 9 to 12, which seem to ignore GPU side v-sync.
|
||||
* Use iidxhook's auto timebase feature (see further below) or set a pre-determined
|
||||
value to cut down start-up times.
|
||||
|
||||
### The game still stutters (randomly) and drifts off-sync
|
||||
If this concerns a d3d8 based game, i.e. IIDX 9 to 13, use the d3d8to9 wrapper from
|
||||
the bemanitools-supplement package (follow the included instructions).
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
* Make sure your machine's refresh rate is stable
|
||||
* If you don't get a close to 59.94hz refresh rate, use the software monitor
|
||||
check/auto timebase that's built into iidxhook (refer to help/config file)
|
||||
|
||||
## The game crashes instantly
|
||||
Replace the original RtEffects.dll with the patched version
|
||||
RtEffects_patched.dll from utils (for explanation see above).
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## All background videos are looking streched (starting with HAPPY SKY)
|
||||
The game requires on a hardware feature that is not present on newer GPUs.
|
||||
Refer to the help/config file and turn on the UV fix.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, remove the debug flag (*-D*)
|
||||
from gamestart or use a CLVSD.ax codec which has the debugger checks removed.
|
||||
|
||||
## I used the auto timebase option and/or limited my refresh rate but the songs are still going offsync
|
||||
There aren't many options left. The old games were developed for specific
|
||||
hardware and are not guaranteed to work well on (especially) newer hardware.
|
||||
Multiple monitor setups can also have a bad impact on a stable refresh rate.
|
||||
Try a setup with just a single monitor you want to use for gameplay physically
|
||||
connected. Furthermore, dedicated and tested/verified hardware by other users
|
||||
is recommended if you want to save yourself a lot of fiddling.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale 640x480 output properly. This can lead to
|
||||
over-/underscan, bad image quality or even latency caused by the upscaler of the device
|
||||
you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
||||
If you want to use this with old d3d8 games (IIDX 9-13), you have to use the d3d8to9
|
||||
library from bemanitools-supplement because the d3d8 hook module cannot support this
|
||||
upscaling feature. Make sure to set *misc.use_d3d9_hooks=true*.
|
185
doc/iidxhook/iidxhook3.md
Normal file
185
doc/iidxhook/iidxhook3.md
Normal file
@ -0,0 +1,185 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* GOLD
|
||||
* DJ Troopers
|
||||
* EMPRESS
|
||||
* SIRIUS
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
Ensure your folder with your unpacked data looks like this:
|
||||
- yyyymmddrr (y = year digit, m = month digit, d = day digit, r = revision digit)
|
||||
revision folder containing game binary and libraries
|
||||
- data
|
||||
- sidcode.txt
|
||||
|
||||
Any further files are optional and not required to just run the game.
|
||||
|
||||
Unpack the package containing iidxhook3 into the revision folder of your choice.
|
||||
Most likely, you want to target the latest revision you have to run the latest
|
||||
binary of the game with any bugfixes by developers.
|
||||
|
||||
Run the gamestart-XX.bat file as admin where XX is the version of your choice
|
||||
that's supported by this hook.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook.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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you have to set a valid PCBID and EAMID
|
||||
(use the PCBID as the EAMID) in the configuration file or as a command line
|
||||
argument. You also have to set the url of the eamuse server you want to
|
||||
connect to.
|
||||
|
||||
Run the game with the gamestart-XX.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Real hardware support
|
||||
|
||||
## USB IO (ezusb)
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb2.dll to use
|
||||
the IO2 EZUSB board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use custom IO boards or whatever Konami hardware
|
||||
is going to be available in the future. Obviously, someone has to write a
|
||||
driver, first.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Known bugs
|
||||
## USBIO (FM-DL TIMEOUT)
|
||||
IIDX occasionally fails to boot with a "USBIO (FM-DL TIMEOUT)" error. If this
|
||||
happens, run the game again.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
* Use iidxhook's frame rate limiter feature (see further below) to software lock
|
||||
the refresh rate. This might be necessary on Windows 7 and newer for D3D8 games,
|
||||
e.g. iidx 9 to 12, which seem to ignore GPU side v-sync.
|
||||
* Use iidxhook's auto timebase feature (see further below) or set a pre-determined
|
||||
value to cut down start-up times.
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
The built-in monitor check just determines if the game should sync to either
|
||||
59.94 hz (S-Video setting) or 60.04 hz (VGA setting). If you don't have a setup
|
||||
that runs on (as close as possible) these values:
|
||||
* Make sure your machine's refresh rate is stable, e.g. 60.00x hz.
|
||||
* If you don't get a close to 59.94hz (S-Video setting) or 60.04 hz
|
||||
(VGA setting) refresh rate, go an set the output mode in the operator menu
|
||||
to "VGA" to enforce the game to run chart syncing on 60.04 hz refresh
|
||||
rate (even if your setup does not have that value). Next, use the software
|
||||
monitor check/auto timebase that's built into iidxhook (refer to cmd
|
||||
help/configfile).
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## All background videos are looking streched (starting with HAPPY SKY)
|
||||
The game requires on a hardware feature that is not present on newer GPUs.
|
||||
Refer to the help/config file and turn on the UV fix.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, remove the debug flag (*-D*)
|
||||
from gamestart or use a CLVSD.ax codec which has the debugger checks removed.
|
||||
|
||||
## I used the auto timebase option and/or limited my refresh rate but the songs are still going offsync
|
||||
There aren't many options left. The old games were developed for specific
|
||||
hardware and are not guaranteed to work well on (especially) newer hardware.
|
||||
Multiple monitor setups can also have a bad impact on a stable refresh rate.
|
||||
Try a setup with just a single monitor you want to use for gameplay physically
|
||||
connected. Furthermore, dedicated and tested/verified hardware by other users
|
||||
is recommended if you want to save yourself a lot of fiddling.
|
||||
|
||||
## I am getting a message box with a japanese error message and a black window immediately after starting the game
|
||||
The game checks the vendor and product ID of your GPU installed. If it doesn't
|
||||
match a hardcoded whitelist, the game won't boot. Use the option *gfx.pci_id*
|
||||
either in the config file or as a cmd argument to spoof these IDs. See the
|
||||
help message for instructions and possible IDs.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale 640x480 output properly. This can lead to
|
||||
over-/underscan, bad image quality or even latency caused by the upscaler of the device
|
||||
you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
201
doc/iidxhook/iidxhook4.md
Normal file
201
doc/iidxhook/iidxhook4.md
Normal file
@ -0,0 +1,201 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* Resort Anthem
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
We assume that you are using a clean/vanilla data dump. Ensure your ("concents")
|
||||
folder with your unpacked data looks like this:
|
||||
- data
|
||||
- modules
|
||||
- prop
|
||||
|
||||
* Copy/Move all files from the *modules* directory to the root folder, so they
|
||||
are located next to the *data* and *prop* folders.
|
||||
* Copy all files from *prop/defaults* to the *prop* folder.
|
||||
* Create a new file *app-config.xml* in the *prop* folder with the following
|
||||
content:
|
||||
```
|
||||
<?xml version="1.0"?>
|
||||
<param></param>
|
||||
```
|
||||
* Setup proper paths for *dev/nvram* and *dev/raw* in *prop/avs-config.xml* by
|
||||
replacing the *<fs>*-block in that file with the following block:
|
||||
```
|
||||
<fs>
|
||||
<root>
|
||||
<device __type="str">.</device>
|
||||
</root>
|
||||
<nvram>
|
||||
<device __type="str">dev/nvram</device>
|
||||
<fstype __type="str">fs</fstype>
|
||||
<option __type="str">posix=1</option>
|
||||
</nvram>
|
||||
<raw>
|
||||
<device __type="str">dev/raw</device>
|
||||
</raw>
|
||||
<nr_mountpoint __type="u16">256</nr_mountpoint>
|
||||
<nr_filedesc __type="u16">256</nr_filedesc>
|
||||
</fs>
|
||||
```
|
||||
* Unpack the package containing iidxhook4 into the root folder so iidxhook4.dll
|
||||
and all other files are located in the same folder as *data*, *prop*,
|
||||
*bm2dx.dll*, etc.
|
||||
* Run the gamestart-18.bat file as admin.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook-18.conf* in the same directory) on the first
|
||||
start of the game using the gamestart-18.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-18.bat
|
||||
(e.g. *gamestart-18.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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you need a valid PCBID and the service URL.
|
||||
Open *prop/ea3-config.xml* and set the values of the *ea3/id/pcbid* and
|
||||
*ea3/network/services* nodes accordingly.
|
||||
|
||||
Run the game with the gamestart-18.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Real hardware support
|
||||
|
||||
## USB IO (ezusb)
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb2.dll to use
|
||||
the IO2 EZUSB board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use custom IO boards or whatever Konami hardware
|
||||
is going to be available in the future. Obviously, someone has to write a
|
||||
driver, first.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Known bugs
|
||||
## USBIO (FM-DL TIMEOUT)
|
||||
IIDX occasionally fails to boot with a "USBIO (FM-DL TIMEOUT)" error. If this
|
||||
happens, run the game again.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
* Use iidxhook's frame rate limiter feature (see further below) to software lock
|
||||
the refresh rate. This might be necessary on Windows 7 and newer for D3D8 games,
|
||||
e.g. iidx 9 to 12, which seem to ignore GPU side v-sync.
|
||||
* Use iidxhook's auto timebase feature (see further below) or set a pre-determined
|
||||
value to cut down start-up times.
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
The built-in monitor check just determines if the game should sync to either
|
||||
59.94 hz (S-Video setting) or 60.04 hz (VGA setting). If you don't have a setup
|
||||
that runs on (as close as possible) these values:
|
||||
* Make sure your machine's refresh rate is stable, e.g. 60.00x hz.
|
||||
* If you don't get a close to 59.94hz (S-Video setting) or 60.04 hz
|
||||
(VGA setting) refresh rate, go an set the output mode in the operator menu
|
||||
to "VGA" to enforce the game to run chart syncing on 60.04 hz refresh
|
||||
rate (even if your setup does not have that value). Next, use the software
|
||||
monitor check/auto timebase that's built into iidxhook (refer to cmd
|
||||
help/configfile).
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, remove the debug flag (*-D*)
|
||||
from gamestart or use a CLVSD.ax codec which has the debugger checks removed.
|
||||
|
||||
## I used the auto timebase option and/or limited my refresh rate but the songs are still going offsync
|
||||
There aren't many options left. The old games were developed for specific
|
||||
hardware and are not guaranteed to work well on (especially) newer hardware.
|
||||
Multiple monitor setups can also have a bad impact on a stable refresh rate.
|
||||
Try a setup with just a single monitor you want to use for gameplay physically
|
||||
connected. Furthermore, dedicated and tested/verified hardware by other users
|
||||
is recommended if you want to save yourself a lot of fiddling.
|
||||
|
||||
## I am getting a message box with a japanese error message and a black window immediately after starting the game
|
||||
The game checks the vendor and product ID of your GPU installed. If it doesn't
|
||||
match a hardcoded whitelist, the game won't boot. Use the option *gfx.pci_id*
|
||||
either in the config file or as a cmd argument to spoof these IDs. See the
|
||||
help message for instructions and possible IDs.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale 640x480 output properly. This can lead to
|
||||
over-/underscan, bad image quality or even latency caused by the upscaler of the device
|
||||
you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
189
doc/iidxhook/iidxhook5.md
Normal file
189
doc/iidxhook/iidxhook5.md
Normal file
@ -0,0 +1,189 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* Lincle
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
We assume that you are using a clean/vanilla data dump. Ensure your ("concents")
|
||||
folder with your unpacked data looks like this:
|
||||
- data
|
||||
- modules
|
||||
- prop
|
||||
|
||||
* Copy/Move all files from the *modules* directory to the root folder, so they
|
||||
are located next to the *data* and *prop* folders.
|
||||
* Copy all files from *prop/defaults* to the *prop* folder.
|
||||
* Create a new file *app-config.xml* in the *prop* folder with the following
|
||||
content:
|
||||
```
|
||||
<?xml version="1.0"?>
|
||||
<param></param>
|
||||
```
|
||||
* Setup proper paths for *dev/nvram* and *dev/raw* in *prop/avs-config.xml* by
|
||||
replacing the *<fs>*-block in that file with the following block:
|
||||
```
|
||||
<fs>
|
||||
<root>
|
||||
<device __type="str">.</device>
|
||||
</root>
|
||||
<nvram>
|
||||
<device __type="str">dev/nvram</device>
|
||||
<fstype __type="str">fs</fstype>
|
||||
<option __type="str">posix=1</option>
|
||||
</nvram>
|
||||
<raw>
|
||||
<device __type="str">dev/raw</device>
|
||||
</raw>
|
||||
<nr_mountpoint __type="u16">256</nr_mountpoint>
|
||||
<nr_filedesc __type="u16">256</nr_filedesc>
|
||||
</fs>
|
||||
```
|
||||
* Unpack the package containing iidxhook5 into the root folder so iidxhook5.dll
|
||||
and all other files are located in the same folder as *data*, *prop*,
|
||||
*bm2dx.dll*, etc.
|
||||
* Run the gamestart-19.bat file as admin.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook-19.conf* in the same directory) on the first
|
||||
start of the game using the gamestart-19.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-19.bat
|
||||
(e.g. *gamestart-19.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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you need a valid PCBID and the service URL.
|
||||
Open *prop/ea3-config.xml* and set the values of the *ea3/id/pcbid* and
|
||||
*ea3/network/services* nodes accordingly.
|
||||
|
||||
Run the game with the gamestart-19.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Real hardware support
|
||||
|
||||
## USB IO (ezusb)
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb2.dll to use
|
||||
the IO2 EZUSB board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use custom IO boards or whatever Konami hardware
|
||||
is going to be available in the future. Obviously, someone has to write a
|
||||
driver, first.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Known bugs
|
||||
## USBIO (FM-DL TIMEOUT)
|
||||
IIDX occasionally fails to boot with a "USBIO (FM-DL TIMEOUT)" error. If this
|
||||
happens, run the game again.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
* Use iidxhook's frame rate limiter feature (see further below) to software lock
|
||||
the refresh rate. This might be necessary on Windows 7 and newer for D3D8 games,
|
||||
e.g. iidx 9 to 12, which seem to ignore GPU side v-sync.
|
||||
* Use iidxhook's auto timebase feature (see further below) or set a pre-determined
|
||||
value to cut down start-up times.
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
From this version onwards (if you use the very final data of Lincle), the game
|
||||
comes with a built-in auto timebase option ("monitor check" on startup) which
|
||||
dynamically, detects the refresh rate of your current setup. Thus, BT5's
|
||||
timebase option is not included from this hook version onwards, anymore.
|
||||
Ensure that refresh rate displayed is very stable, e.g. 60.00x hz, and the
|
||||
game should be able to provide you with a smooth and sync game experience.
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, remove the debug flag (*-D*)
|
||||
from gamestart or use a CLVSD.ax codec which has the debugger checks removed.
|
||||
|
||||
## I am getting a message box with a japanese error message and a black window immediately after starting the game
|
||||
The game checks the vendor and product ID of your GPU installed. If it doesn't
|
||||
match a hardcoded whitelist, the game won't boot. Use the option *gfx.pci_id*
|
||||
either in the config file or as a cmd argument to spoof these IDs. See the
|
||||
help message for instructions and possible IDs.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale 640x480 output properly. This can lead to
|
||||
over-/underscan, bad image quality or even latency caused by the upscaler of the device
|
||||
you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
195
doc/iidxhook/iidxhook6.md
Normal file
195
doc/iidxhook/iidxhook6.md
Normal file
@ -0,0 +1,195 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* Tricoro
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
We assume that you are using a clean/vanilla data dump. Ensure your ("concents")
|
||||
folder with your unpacked data looks like this:
|
||||
- data
|
||||
- modules
|
||||
- prop
|
||||
|
||||
* Copy/Move all files from the *modules* directory to the root folder, so they
|
||||
are located next to the *data* and *prop* folders.
|
||||
* Copy all files from *prop/defaults* to the *prop* folder.
|
||||
* Create a new file *app-config.xml* in the *prop* folder with the following
|
||||
content:
|
||||
```
|
||||
<?xml version="1.0"?>
|
||||
<param></param>
|
||||
```
|
||||
* Setup proper paths for *dev/nvram* and *dev/raw* in *prop/avs-config.xml* by
|
||||
replacing the *<fs>*-block in that file with the following block:
|
||||
```
|
||||
<fs>
|
||||
<root>
|
||||
<device __type="str">.</device>
|
||||
</root>
|
||||
<nvram>
|
||||
<device __type="str">dev/nvram</device>
|
||||
<fstype __type="str">fs</fstype>
|
||||
<option __type="str">posix=1</option>
|
||||
</nvram>
|
||||
<raw>
|
||||
<device __type="str">dev/raw</device>
|
||||
</raw>
|
||||
<nr_mountpoint __type="u16">256</nr_mountpoint>
|
||||
<nr_filedesc __type="u16">256</nr_filedesc>
|
||||
</fs>
|
||||
```
|
||||
* Setup valid logger configuration by replacing the *<log>*-block in
|
||||
*prop/avs-config.xml* with:
|
||||
```
|
||||
<log>
|
||||
<netsci>
|
||||
<enable __type="bool">0</enable>
|
||||
</netsci>
|
||||
|
||||
<level __type="str">misc</level>
|
||||
</log>
|
||||
```
|
||||
* Unpack the package containing iidxhook6 into the root folder so iidxhook6.dll
|
||||
and all other files are located in the same folder as *data*, *prop*,
|
||||
*bm2dx.dll*, etc.
|
||||
* Run the gamestart-20.bat file as admin.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook-20.conf* in the same directory) on the first
|
||||
start of the game using the gamestart-20.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-20.bat
|
||||
(e.g. *gamestart-20.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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you need a valid PCBID and the service URL.
|
||||
Open *prop/ea3-config.xml* and set the values of the *ea3/id/pcbid* and
|
||||
*ea3/network/services* nodes accordingly.
|
||||
|
||||
Run the game with the gamestart-20.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Real hardware support
|
||||
|
||||
## USB IO (ezusb)
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb2.dll to use
|
||||
the IO2 EZUSB board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use custom IO boards or whatever Konami hardware
|
||||
is going to be available in the future. Obviously, someone has to write a
|
||||
driver, first.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Known bugs
|
||||
## USBIO (FM-DL TIMEOUT)
|
||||
IIDX occasionally fails to boot with a "USBIO (FM-DL TIMEOUT)" error. If this
|
||||
happens, run the game again.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
From this version onwards (or Lincle very final revision), the game comes with
|
||||
a built-in auto timebase option ("monitor check" on startup) which
|
||||
dynamically, detects the refresh rate of your current setup. Thus, BT5's
|
||||
timebase option is not included from this hook version onwards, anymore.
|
||||
Ensure that refresh rate displayed is very stable, e.g. 60.00x hz, and the
|
||||
game should be able to provide you with a smooth and sync game experience.
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, remove the debug flag (*-D*)
|
||||
from gamestart or use a CLVSD.ax codec which has the debugger checks removed.
|
||||
|
||||
## I am getting a message box with a japanese error message and a black window immediately after starting the game
|
||||
The game checks the vendor and product ID of your GPU installed. If it doesn't
|
||||
match a hardcoded whitelist, the game won't boot. Use the option *gfx.pci_id*
|
||||
either in the config file or as a cmd argument to spoof these IDs. See the
|
||||
help message for instructions and possible IDs.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale some lower resolutions, e.g. 640x480, properly.
|
||||
This can lead to over-/underscan, bad image quality or even latency caused by the upscaler
|
||||
of the device you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
201
doc/iidxhook/iidxhook7.md
Normal file
201
doc/iidxhook/iidxhook7.md
Normal file
@ -0,0 +1,201 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* SPADA
|
||||
* PENDUAL
|
||||
* copula
|
||||
* SINOBUZ
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
We assume that you are using a clean/vanilla data dump. Ensure your ("concents")
|
||||
folder with your unpacked data looks like this:
|
||||
- data
|
||||
- modules
|
||||
- prop
|
||||
|
||||
* Copy/Move all files from the *modules* directory to the root folder, so they
|
||||
are located next to the *data* and *prop* folders.
|
||||
* Copy all files from *prop/defaults* to the *prop* folder.
|
||||
* Create a new file *app-config.xml* in the *prop* folder with the following
|
||||
content:
|
||||
```
|
||||
<?xml version="1.0"?>
|
||||
<param></param>
|
||||
```
|
||||
* Setup proper paths for *dev/nvram* and *dev/raw* in *prop/avs-config.xml* by
|
||||
replacing the *<fs>*-block in that file with the following block:
|
||||
```
|
||||
<fs>
|
||||
<root>
|
||||
<device __type="str">.</device>
|
||||
</root>
|
||||
<nvram>
|
||||
<device __type="str">dev/nvram</device>
|
||||
<fstype __type="str">fs</fstype>
|
||||
<option __type="str">posix=1</option>
|
||||
</nvram>
|
||||
<raw>
|
||||
<device __type="str">dev/raw</device>
|
||||
</raw>
|
||||
<nr_mountpoint __type="u16">256</nr_mountpoint>
|
||||
<nr_filedesc __type="u16">256</nr_filedesc>
|
||||
</fs>
|
||||
```
|
||||
* Setup valid logger configuration by replacing the *<log>*-block in
|
||||
*prop/avs-config.xml* with:
|
||||
```
|
||||
<log>
|
||||
<netsci>
|
||||
<enable __type="bool">0</enable>
|
||||
</netsci>
|
||||
|
||||
<level __type="str">misc</level>
|
||||
</log>
|
||||
```
|
||||
* Unpack the package containing iidxhook7 into the root folder so iidxhook7.dll
|
||||
and all other files are located in the same folder as *data*, *prop*,
|
||||
*bm2dx.dll*, etc.
|
||||
* Run the gamestart-XX.bat file as admin. Where XX matches the version you
|
||||
want to run.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook-XX.conf* in the same directory) on the first
|
||||
start of the game using the gamestart-XX.bat file (again, XX matches your target
|
||||
game version). 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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you need a valid PCBID and the service URL.
|
||||
Open *prop/ea3-config.xml* and set the values of the *ea3/id/pcbid* and
|
||||
*ea3/network/services* nodes accordingly.
|
||||
|
||||
Run the game with the gamestart-XX.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Real hardware support
|
||||
|
||||
## USB IO (ezusb)
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb2.dll to use
|
||||
the IO2 EZUSB board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use custom IO boards or whatever Konami hardware
|
||||
is going to be available in the future. Obviously, someone has to write a
|
||||
driver, first.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Known bugs
|
||||
## USBIO (FM-DL TIMEOUT)
|
||||
IIDX occasionally fails to boot with a "USBIO (FM-DL TIMEOUT)" error. If this
|
||||
happens, run the game again.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
From IIDX 20 (or Lincle very final revision) onwards, the game comes with
|
||||
a built-in auto timebase option ("monitor check" on startup) which
|
||||
dynamically, detects the refresh rate of your current setup. Thus, BT5's
|
||||
timebase option is not included from this hook version onwards, anymore.
|
||||
Ensure that refresh rate displayed is very stable, e.g. 60.00x hz, and the
|
||||
game should be able to provide you with a smooth and sync game experience.
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, remove the debug flag (*-D*)
|
||||
from gamestart or use a CLVSD.ax codec which has the debugger checks removed.
|
||||
|
||||
## I am getting a message box with a japanese error message and a black window immediately after starting the game
|
||||
The game checks the vendor and product ID of your GPU installed. If it doesn't
|
||||
match a hardcoded whitelist, the game won't boot. Use the option *gfx.pci_id*
|
||||
either in the config file or as a cmd argument to spoof these IDs. See the
|
||||
help message for instructions and possible IDs.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale some lower resolutions, e.g. 640x480, properly.
|
||||
This can lead to over-/underscan, bad image quality or even latency caused by the upscaler
|
||||
of the device you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
||||
|
195
doc/iidxhook/iidxhook8.md
Normal file
195
doc/iidxhook/iidxhook8.md
Normal file
@ -0,0 +1,195 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of iidxhook:
|
||||
* CANNON BALLERS
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
## Supported versions of Windows
|
||||
|
||||
This version requires at least Win 7 x64 and will not run, like the
|
||||
former versions, on Win XP x86!
|
||||
|
||||
## Dependencies
|
||||
|
||||
Make sure to have the following dependencies installed:
|
||||
* DirectX 9
|
||||
* Visual C++ 2010 Redistributable Package (x64)
|
||||
|
||||
## Data setup
|
||||
|
||||
We assume that you are using a clean/vanilla data dump. Ensure your ("concents")
|
||||
folder with your unpacked data looks like this:
|
||||
- data
|
||||
- modules
|
||||
- prop
|
||||
|
||||
* Copy/Move all files from the *modules* directory to the root folder, so they
|
||||
are located next to the *data* and *prop* folders.
|
||||
* Copy all files from *prop/defaults* to the *prop* folder.
|
||||
* Create a new file *app-config.xml* in the *prop* folder with the following
|
||||
content:
|
||||
```
|
||||
<?xml version="1.0"?>
|
||||
<param></param>
|
||||
```
|
||||
* Setup proper paths for *dev/nvram* and *dev/raw* in *prop/avs-config.xml* by
|
||||
replacing the *<fs>*-block in that file with the following block:
|
||||
```
|
||||
<fs>
|
||||
<root>
|
||||
<device __type="str">.</device>
|
||||
</root>
|
||||
<mounttable>
|
||||
<vfs name="boot" fstype="fs" src="dev/raw" dst="/dev/raw" opt="vf=1,posix=1"/>
|
||||
<vfs name="boot" fstype="fs" src="dev/nvram" dst="/dev/nvram" opt="vf=0,posix=1"/>
|
||||
</mounttable>
|
||||
<nr_mountpoint __type="u16">256</nr_mountpoint>
|
||||
<nr_filedesc __type="u16">256</nr_filedesc>
|
||||
</fs>
|
||||
```
|
||||
* Unpack the package containing iidxhook8 into the root folder so iidxhook8.dll
|
||||
and all other files are located in the same folder as *data*, *prop*,
|
||||
*bm2dx.dll*, etc.
|
||||
* Run the gamestart-XX.bat file as admin. Where XX matches the version you
|
||||
want to run.
|
||||
|
||||
# Configuring iidxhook
|
||||
|
||||
The hook library can be configured via cmd arguments or a configuration file.
|
||||
The latter is generated (*iidxhook-XX.conf* in the same directory) on the first
|
||||
start of the game using the gamestart-XX.bat file (again, XX matches your target
|
||||
game version). 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-09.bat -p gfx.windowed=true -p gfx.framed=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.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
If you want to run the games online, you need a valid PCBID and the service URL.
|
||||
Open *prop/ea3-config.xml* and set the values of the *ea3/id/pcbid* and
|
||||
*ea3/network/services* nodes accordingly.
|
||||
|
||||
Run the game with the gamestart-XX.bat file and enable network on the operator
|
||||
menu. When enabled, the game seems to hang and expects you to power
|
||||
cycle the machine (i.e. quit the game and restart it).
|
||||
|
||||
# Real hardware support
|
||||
|
||||
### BIO2 hardware
|
||||
|
||||
Set the *io.disable_bio2_emu* configuration value to *1* to disable BIO2
|
||||
emulation to run the game using real BIO2 hardware.
|
||||
|
||||
### Ezusb and other
|
||||
|
||||
Use the specific iidxio API implementations, e.g. iidxio-ezusb2.dll to use
|
||||
the IO2 EZUSB board, to run the game on real hardware. Thanks to a common
|
||||
abstraction layer, you can also use custom IO boards or whatever Konami hardware
|
||||
is going to be available in the future. Obviously, someone has to write a
|
||||
driver, first.
|
||||
|
||||
## Slotted/Wave pass card readers
|
||||
|
||||
Replace the default *eamio.dll* with the *eamio-icca.dll* and have either your
|
||||
slotted (IIDX, DDR Supernova or GF/DM type) or new wave pass card readers
|
||||
conencted and and assigned to *COM1*.
|
||||
|
||||
### ICCA device settings (device manager)
|
||||
* Port: COM1
|
||||
* BAUD rate: 57600
|
||||
* Data bits: 8
|
||||
* Parity: None
|
||||
* Stop bits: 1
|
||||
* Flow control: None
|
||||
|
||||
If you encounter issues after the game opened the device, e.g. application
|
||||
stuck, try a USB <-> COM dongle instead of using one of the COM ports of the
|
||||
mainboard.
|
||||
|
||||
# Troubleshooting and FAQ
|
||||
|
||||
## The game does not run "well" (frame drops, drifting offsync etc)
|
||||
This can be related to various issues:
|
||||
* Make sure to run the game as (true) Administrator especially on Windows 7 and
|
||||
newer. This will also get rid of various other errors (see below) that are
|
||||
related to permission issues.
|
||||
* Run the game's process with a higher priority:
|
||||
```
|
||||
start "" /relatime "gamestart.bat"
|
||||
```
|
||||
* Enforce v-sync enabled in your GPU settings.
|
||||
* Ensure that you have a constant refresh rate around the 60 hz (59.9xx or 60.0xx)
|
||||
that is not jumping around. Use the timebase feature of one of the newer games to
|
||||
check that or enable iidxhook's timebase and check the log output for the
|
||||
determined value. Run this a few times and check if the results differ.
|
||||
|
||||
## "NETWORK WARNING" instead of "NETWORK OK"
|
||||
This can be caused by:
|
||||
* Invalid PCBID
|
||||
* Firewall blocking connections
|
||||
* Invalid eamuse url or port specified
|
||||
* Game is not run using the Administrator account
|
||||
Make sure to check these things first
|
||||
|
||||
## My songs are offsync
|
||||
From IIDX 20 (or Lincle very final revision) onwards, the game comes with
|
||||
a built-in auto timebase option ("monitor check" on startup) which
|
||||
dynamically, detects the refresh rate of your current setup. Thus, BT5's
|
||||
timebase option is not included from this hook version onwards, anymore.
|
||||
Ensure that refresh rate displayed is very stable, e.g. 60.00x hz, and the
|
||||
game should be able to provide you with a smooth and sync game experience.
|
||||
|
||||
## My game runs too fast
|
||||
iidxhook can limit the frame rate for you (refer to help/config file)
|
||||
|
||||
## My game crashes when I try fullscreen
|
||||
Use dxwnd and set settings like "Acquire admin caps" and "Fullscreen only"
|
||||
|
||||
## Background videos aren't working. When starting a song, windows is playing the error sound and a message box appears
|
||||
You are missing a codec to decode and play the videos. There are different
|
||||
methods available to get background videos working. Probably, the easiest
|
||||
solution: grab the CLVSD.ax file and go to Start -> Run -> regsvr32 clvsd.ax
|
||||
Make sure to run cmd.exe as Administrator, otherwise you will get errors caused
|
||||
by invalid permissions.
|
||||
|
||||
## I installed the CLVSD.ax codec but the game crashes or displays a message box that tells me to disable my debugger
|
||||
If songs keep crashing upon start and you get an error message that says
|
||||
```
|
||||
DirectShow Texture3D Sample
|
||||
Could not create source filter to graph! hr=0x80040266
|
||||
```
|
||||
despite having the codec (CLVSD.ax) installed, remove the debug flag (*-D*)
|
||||
from gamestart or use a CLVSD.ax codec which has the debugger checks removed.
|
||||
|
||||
## I am getting a message box with a japanese error message and a black window immediately after starting the game
|
||||
The game checks the vendor and product ID of your GPU installed. If it doesn't
|
||||
match a hardcoded whitelist, the game won't boot. Use the option *gfx.pci_id*
|
||||
either in the config file or as a cmd argument to spoof these IDs. See the
|
||||
help message for instructions and possible IDs.
|
||||
|
||||
## Over-/underscan, bad image quality or latency caused by my monitor's/TV's upscaler
|
||||
Many modern monitors/TVs cannot upscale some lower resolutions, e.g. 640x480, properly.
|
||||
This can lead to over-/underscan, bad image quality or even latency caused by the upscaler
|
||||
of the device you are using.
|
||||
If one or multiple of these issues apply, use the built in scaling options by setting
|
||||
*gfx.scale_back_buffer_width* and *gfx.scale_back_buffer_height* to a target resolution
|
||||
to scale to. Usually, you want to set this to the monitor's native resolution, e.g.
|
||||
1920x1080 for full HD. You can play around with a few different filters using
|
||||
*gfx.scale_back_buffer_filter* which impacts image quality/blurriness on upscaling.
|
28
doc/iidxhook/iidxio-ezusb.md
Normal file
28
doc/iidxhook/iidxio-ezusb.md
Normal file
@ -0,0 +1,28 @@
|
||||
This library drives a "legacy" ezusb IO board, also known as C02 IO, and
|
||||
implements the iidxio API of BT5. Thus, it allows you to use this IO board with
|
||||
*any* version of IIDX that is supported by BT5.
|
||||
|
||||
# Setup
|
||||
* Rename iidxio-ezusb.dll to iidxio.dll.
|
||||
* Ensure that your gamestart.bat actually injects the appropriate iidxhook dll,
|
||||
for example:
|
||||
```
|
||||
*inject iidxhook3.dll bm2dx.exe ...*
|
||||
```
|
||||
or
|
||||
```
|
||||
launcher -K iidxhook4.dll bm2dx.dll ...*
|
||||
```
|
||||
* Before running the game, you have to flash a set of binaries to your IO board
|
||||
(base firmware and FPGA). The iidxio-ezusb.dll does NOT take care of this and
|
||||
only drives the hardware during gameplay. The binary images required are not
|
||||
included with BT5.
|
||||
* Use the ezusb-tool.exe binary included in the tools sub-package to flash the
|
||||
appropriate ezusb base firmware. Once the firmware is flashed successfully,
|
||||
the status LEDs on the side of the board should show a blinking pattern.
|
||||
* Use the ezusb-iidx-fpga-flash.exe binary to flash the appropriate FPGA binary
|
||||
dump to the FPGA.
|
||||
* There is a script called ezusb-boot.bat which combines the two steps above
|
||||
and can be integrated into the startup process of a dedicated setup.
|
||||
* If you ignore these steps, you will either run into errors or parts of the
|
||||
IO board won't work (e.g. lights).
|
27
doc/iidxhook/iidxio-ezusb2.md
Normal file
27
doc/iidxhook/iidxio-ezusb2.md
Normal file
@ -0,0 +1,27 @@
|
||||
This library drives the ezusb FX2 IO board, also known as IO2, and
|
||||
implements the iidxio API of BT5. Thus, it allows you to use this IO2 board with
|
||||
*any* version of IIDX that is supported by BT5.
|
||||
|
||||
# Setup
|
||||
* Rename iidxio-ezusb2.dll to iidxio.dll.
|
||||
* Ensure that your gamestart.bat actually injects the appropriate iidxhook dll,
|
||||
for example:
|
||||
```
|
||||
*inject iidxhook3.dll bm2dx.exe ...*
|
||||
```
|
||||
or
|
||||
```
|
||||
launcher -K iidxhook4.dll bm2dx.dll ...*
|
||||
```
|
||||
* Before running the game, you have to flash the appropriate firmware to your
|
||||
IO board. The iidxio-ezusb2.dll does NOT take care of this and only drives the
|
||||
hardware during gameplay. The binary image required is not included with BT5.
|
||||
* Use the ezusb2-tool.exe binary included in the tools sub-package to first scan
|
||||
for the device path of your connected hardware. Then, use the device path to
|
||||
flash the appropriate ezusb base firmware. Once the firmware is flashed
|
||||
successfully, the status LEDs on the side of the board should show a blinking
|
||||
pattern.
|
||||
* There is a script called ezusb2-boot.bat which combines the two steps above
|
||||
and can be integrated into the startup process of a dedicated setup.
|
||||
* If you ignore these steps, your IO board won't work with our iidxio
|
||||
implementation.
|
31
doc/jbhook/jbhook.md
Normal file
31
doc/jbhook/jbhook.md
Normal file
@ -0,0 +1,31 @@
|
||||
# Game list
|
||||
|
||||
The following games are compatible with this version of jbhook:
|
||||
* saucer
|
||||
* prop
|
||||
* qubell
|
||||
|
||||
# Data setup and running the game
|
||||
|
||||
Ensure your folder with your unpacked data looks like this:
|
||||
- data
|
||||
- prop
|
||||
- Various dll files including jubeat.dll
|
||||
|
||||
Unpack the package containing jbhook into the folder containing the jubeat.dll
|
||||
file.
|
||||
|
||||
Run the gamestart.bat file.
|
||||
|
||||
# Eamuse network setup
|
||||
|
||||
* Open the prop/ea3-config.xml
|
||||
* Replace the *ea3/network/services* URL with network service URL of your
|
||||
choice (for example http://my.eamuse.com)
|
||||
* Edit the *ea3/id/pcbid*
|
||||
|
||||
# Real hardware support
|
||||
|
||||
Run the launcher without the hook dll: *launcher jubeat.dll*
|
||||
|
||||
# Troubleshooting and FAQ
|
2
doc/tools/aciotest.md
Normal file
2
doc/tools/aciotest.md
Normal file
@ -0,0 +1,2 @@
|
||||
Test your real ACIO hardware connected to your machine using this tool. Just
|
||||
execute it and follow the usage instructions.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user