Compare commits

...

16 Commits

Author SHA1 Message Date
icex2
acf2498939 WIP: bemanitools 6
highly WIP, what’s “working”:
- iidxhook 9 to 24
- launcher
- inject
2024-06-12 17:41:20 +02:00
icex2
81821490bd feat(launcher): Integrate procmon as optional dependency
Integrate this as an optional dependency into launcher and
load it dynamically. Thus, these can be easily loaded/enabled
by developers and end-users.
2024-02-25 09:36:53 +01:00
icex2
024929e13c feat(procmon): Library to hook and monitor selected system calls
A general debugging tool. 3rd party applications such as
"procmon" (same name) provide these capabilites and even
more. But, they are more difficult to run with bemanitools
and don't provide a unified look at the output in combination
with the log output by bemanitools.

Provide an initial set of system call hooks that have already
supported debugging efforts. More can be added when needed
later.
2024-02-25 09:36:53 +01:00
icex2
cbb3d37f11 fix(make): Include dwarf symbols and remove stripping
Expecting to improve debugability significantly. Stacktraces
can be enhanced with function names, file names and line
numbers when symbols are included in all exe and dll files.

Furthermore, this also improves debugger usage as symbols
can be imported to help navigate disassembly/decompiled code.
2024-02-25 09:36:53 +01:00
icex2
3a2ebae869 feat(launcher): Improve error output when missing vcredist deps
Apply a simple heuristic to provide the user with more
specific information regarding which vcredist package
might not have been found on their system.

This is a common problem as different games require
different versions and different versions of windows
and installations might already come with some versions
already pre-installed.

Also improve the readme regarding that and provide links
to all versions that are required by one game or another
today.
2024-02-25 09:36:53 +01:00
icex2
d3c293de45 feat(util): Separate debug module with proper stacktrace printing
Because we are using mingw, we can't just use window's
dbghelp library as the symbols created are in dwarf format.

Fortunately, the dwarfstack library already provides all the
facilities to easily print very descriptive stacktraces,
including function names, file names and line numbers,
when dwarf symbols are available.

This moves the incomplete exception handling portion from
signal to a separate module as well to improve scoping.
2024-02-25 09:36:53 +01:00
icex2
31fa84e0ef feat(inject): Use new exception handler with stacktraces
Adjust inject to utilize the new feature. This also
requires including the dwarfstack.dll in all distribution
packages.
2024-02-25 09:36:53 +01:00
icex2
eeff90b355 fix(mingw): Version upgrade caused this to error
HRESULT not defined fixed by including windows header
2024-02-25 09:36:53 +01:00
icex2
9b7590f728 refactor(dist): Config and .bat files
Move everything to new launcher.xml configuration
files. Adjust the bootstrapping of launcher in the
.bat files. Features such as copying the default
props/ files to nvram are now handled by launcher.

Using the PATH variable, bemanitools binaries can
live in their own dedicated bemanitools/ subfolder
next to props/ and modules/ now. All original
binaries are expected to be kept in a modules/
folder like on stock data.
2024-02-25 09:36:53 +01:00
icex2
a243791d5c refactor(launcher): Major re-work of launcher
Kudos to Shiz for providing the groundwork for this.

Fundamentally re-think how launcher operates and
bootstrapping the games is managed and configured.

This brings it significantly closer to how the original
bootstrap is doing the job: launcher now utilizes the
data (structures) provided by the bootstrap.xml configuration
file. This creates compatibility with vanilla data dumps
and original stock images. Note that bemanitools does not
include any code or means to run DRM'd data, only decrypted.

But, this allows users to keep decrypted dumps as stock as
possible which means:

* No copying around of property files anymore
* Keep the modules/ folder with the binaries
* Have bemanitools binaries separate in the data
* No need to edit/customize the original configuration files

A list of key features of the "new" launcher:

* Boostrap games by following the configuration provided by
  stock game's bootstrap.xml files
* Custom launcher.xml configuration file that adds further
  launcher configurable features, composability of
  bootstrap.xml configuration(s) as well as configuration
  overriding/stacking of selected types of configurations,
  e.g. eamuse config, avs-config. The latter eliminates
  the need for modifying stock config files in the prop/
  folder
* Unified logging system: launcher and AVS logging uses
  the same logger, all output can now be in a single file
* Original features such as various hook types still
  available

Due to the significant architectural changes, this also
breaks with any backwards compatibility to existing
launcher setups. Thus, users need to migrate by re-applying
the new configuration format and migrating their config
parameters accordingly.

Further migration instructions and updated documentation
will be provided upon release.

Co-authored-by: Shiz <hi@shiz.me>
2024-02-25 09:36:53 +01:00
icex2
cd798ebe77 refactor(inject): Use new core thread and log modules
Keep this a separate commit because this also removes
inject's own logging engine and replaces it with the
streamlined core API. The core API provides all the
features of inject's own logging engine which also
performed horribly. The entire logging operation
was locked which included expensive operations
that formatted the log messages and required
memory allocations and copying around data.

The core API's implementation at least only
synchronizes the actual IO operations
(though this can be improved further with an
actual async logging sink, TBD)
2024-02-25 09:36:53 +01:00
icex2
9254fcd6f5 chore: Delete old log and thread modules in util
The log API stopped scaling already a while ago and needs
considerable refactoring to consider the various use-cases
that emerged since it was first created on alpha versions
of bemanitools.
2024-02-25 09:36:53 +01:00
icex2
40027fa995 refactor: Entire code base, thread and log usage
Boils down to:
- Include headers
- Reduce boiler plate with helpers
- Swap out explicit usages with core API layer
  and ensure the right API is configured beforehand
2024-02-25 09:36:53 +01:00
icex2
62a17b56d6 refactor(api): Thread and log API
Split files and add name spacing.
2024-02-25 09:36:53 +01:00
icex2
8a5a8c8a7c feat: Add helper to set avs implementations
Doesn't really reduce boiler plate but adds
clarity with a more meaningful function name
what the operation does.
2024-02-25 09:36:53 +01:00
icex2
df8bf56d0c feat: Add core module
This module contains the "core" (API) of
bemanitools which includes an abstraction
layer for threads and logging at this time.

The threads API is very close to what
util/thread already was with some structural
enhancements which make it easier to understand
and work with the API, I hope. Some additional
helpers (*-ext module) support in doing common
tasks, e.g. setting up the thread API with other
modules.

The log(ging) part receives a major overhaul to
address known limitations and issues with the
util/log module:
- Cleaner API layer
- Separate sinks from actual logging engine
- Sinks are composable
- Improved and cleaner compatibility layer
  with AVS logging API

Additional "extensions" (*-ext modules) add
various helper functions for common tasks like
setting up the logging engine with a file and stdout
sink.

The sinks also improved significantly with the file
sink now supporting proper appending and log rotation.
Logging to stdout/stderr supports coloring of log
messages which works across logging engines.

Overall, this refactored foundation is expected to
support future developments and removes known
limitations at the current scale of bemanitools such as:
- Reducing boiler plate code across hooks
- Interop of bemanitools and AVS (and setting the foundation
  for addressing currently missing interop, e.g. for
  dealing with property structures without AVS)
- Addressing performance issues in the logging engine
  due to incorrect interop with AVS
2024-02-25 09:36:53 +01:00
740 changed files with 28516 additions and 6172 deletions

View File

@@ -27,7 +27,7 @@ toolchain_64 := x86_64-w64-mingw32-
gitrev := $(shell git rev-parse HEAD) gitrev := $(shell git rev-parse HEAD)
cppflags := -I src -I src/main -I src/test -DGITREV=$(gitrev) cppflags := -I src -I src/main -I src/test -DGITREV=$(gitrev)
cflags := -O2 -pipe -ffunction-sections -fdata-sections \ cflags := -g -O2 -pipe -ffunction-sections -fdata-sections \
-Wall -std=c99 -DPSAPI_VERSION=1 -Wall -std=c99 -DPSAPI_VERSION=1
cflags_release := -Werror cflags_release := -Werror
ldflags := -Wl,--gc-sections -static-libgcc ldflags := -Wl,--gc-sections -static-libgcc
@@ -139,13 +139,14 @@ libs :=
avsdlls := avsdlls :=
avsexes := avsexes :=
avslibs :=
testdlls := testdlls :=
testexes := testexes :=
include Module.mk include Module.mk
modules := $(dlls) $(exes) $(libs) $(avsdlls) $(avsexes) $(testdlls) $(testexes) modules := $(dlls) $(exes) $(libs) $(avsdlls) $(avsexes) $(avslibs) $(testdlls) $(testexes)
# #
# $1: Bitness # $1: Bitness
@@ -200,6 +201,7 @@ $$(bindir_$1_$2):
$$(eval $$(foreach imp,$(imps),$$(call t_import,$1,$2,$$(imp)))) $$(eval $$(foreach imp,$(imps),$$(call t_import,$1,$2,$$(imp))))
$$(eval $$(foreach dll,$(avsdlls),$$(call t_linkdll,$1,$2,$$(dll)))) $$(eval $$(foreach dll,$(avsdlls),$$(call t_linkdll,$1,$2,$$(dll))))
$$(eval $$(foreach exe,$(avsexes),$$(call t_linkexe,$1,$2,$$(exe)))) $$(eval $$(foreach exe,$(avsexes),$$(call t_linkexe,$1,$2,$$(exe))))
$$(eval $$(foreach lib,$(avslibs),$$(call t_archive,$1,$2,$$(lib))))
endef endef
@@ -209,6 +211,7 @@ define t_compile
depdir_$1_$2_$3 := $(depdir)/$$(subdir_$1_$2)/$3 depdir_$1_$2_$3 := $(depdir)/$$(subdir_$1_$2)/$3
abslib_$1_$2_$3 := $$(libs_$3:%=$$(bindir_$1_indep)/lib%.a) abslib_$1_$2_$3 := $$(libs_$3:%=$$(bindir_$1_indep)/lib%.a)
avslib_$1_$2_$3 := $$(avslibs_$3:%=$$(bindir_$1_$2)/lib%.a)
absdpl_$1_$2_$3 := $$(deplibs_$3:%=$$(bindir_$1_$2)/lib%.a) absdpl_$1_$2_$3 := $$(deplibs_$3:%=$$(bindir_$1_$2)/lib%.a)
objdir_$1_$2_$3 := $(objdir)/$$(subdir_$1_$2)/$3 objdir_$1_$2_$3 := $(objdir)/$$(subdir_$1_$2)/$3
obj_$1_$2_$3 := $$(src_$3:%.c=$$(objdir_$1_$2_$3)/%.o) \ obj_$1_$2_$3 := $$(src_$3:%.c=$$(objdir_$1_$2_$3)/%.o) \
@@ -260,13 +263,13 @@ dll_$1_$2_$3 := $$(bindir_$1_$2)/$3.dll
implib_$1_$2_$3 := $$(bindir_$1_$2)/lib$3.a 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) \ $$(dll_$1_$2_$3) $$(implib_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) \
$$(avslib_$1_$2_$3) \
$$(absdpl_$1_$2_$3) \ $$(absdpl_$1_$2_$3) \
$$(srcdir_$3)/$3.def | $$(bindir_$1_$2) $$(srcdir_$3)/$3.def | $$(bindir_$1_$2)
$(V)echo ... $$(dll_$1_$2_$3) $(V)echo ... $$(dll_$1_$2_$3)
$(V)$$(toolchain_$1)gcc -shared \ $(V)$$(toolchain_$1)gcc -shared \
-o $$(dll_$1_$2_$3) -Wl,--out-implib,$$(implib_$1_$2_$3) \ -o $$(dll_$1_$2_$3) -Wl,--out-implib,$$(implib_$1_$2_$3) \
-Wl,--start-group $$^ -Wl,--end-group $$(ldflags_$3) -Wl,--start-group $$^ -Wl,--end-group $$(ldflags_$3)
$(V)$$(toolchain_$1)strip $$(dll_$1_$2_$3)
$(V)$$(toolchain_$1)ranlib $$(implib_$1_$2_$3) $(V)$$(toolchain_$1)ranlib $$(implib_$1_$2_$3)
endef endef
@@ -279,11 +282,10 @@ $(t_compile)
exe_$1_$2_$3 := $$(bindir_$1_$2)/$3.exe 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) \ $$(exe_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) $$(avslib_$1_$2_$3) $$(absdpl_$1_$2_$3) \
| $$(bindir_$1_$2) | $$(bindir_$1_$2)
$(V)echo ... $$@ $(V)echo ... $$@
$(V)$$(toolchain_$1)gcc -o $$@ $$^ $$(ldflags_$3) $(V)$$(toolchain_$1)gcc -o $$@ $$^ $$(ldflags_$3)
$(V)$$(toolchain_$1)strip $$@
endef endef

118
Module.mk
View File

@@ -88,10 +88,10 @@ imps += avs avs-ea3
include src/main/aciodrv/Module.mk include src/main/aciodrv/Module.mk
include src/main/aciodrv-proc/Module.mk include src/main/aciodrv-proc/Module.mk
include src/main/acioemu/Module.mk include src/main/acioemu/Module.mk
include src/main/aciomgr/Module.mk include src/main/acio-mgr/Module.mk
include src/main/aciotest/Module.mk include src/main/aciotest/Module.mk
include src/main/asio/Module.mk include src/main/asio/Module.mk
include src/main/avs-util/Module.mk include src/main/avs-ext/Module.mk
include src/main/bio2drv/Module.mk include src/main/bio2drv/Module.mk
include src/main/bio2emu-iidx/Module.mk include src/main/bio2emu-iidx/Module.mk
include src/main/bio2emu/Module.mk include src/main/bio2emu/Module.mk
@@ -100,6 +100,7 @@ include src/main/bstio/Module.mk
include src/main/camhook/Module.mk include src/main/camhook/Module.mk
include src/main/cconfig/Module.mk include src/main/cconfig/Module.mk
include src/main/config/Module.mk include src/main/config/Module.mk
include src/main/core/Module.mk
include src/main/d3d9-util/Module.mk include src/main/d3d9-util/Module.mk
include src/main/d3d9exhook/Module.mk include src/main/d3d9exhook/Module.mk
include src/main/ddrhook-util/Module.mk include src/main/ddrhook-util/Module.mk
@@ -115,6 +116,7 @@ include src/main/dinput/Module.mk
include src/main/eamio-icca/Module.mk include src/main/eamio-icca/Module.mk
include src/main/eamio/Module.mk include src/main/eamio/Module.mk
include src/main/eamiotest/Module.mk include src/main/eamiotest/Module.mk
include src/main/exceptiontrace/Module.mk
include src/main/extio/Module.mk include src/main/extio/Module.mk
include src/main/extiodrv/Module.mk include src/main/extiodrv/Module.mk
include src/main/extiotest/Module.mk include src/main/extiotest/Module.mk
@@ -137,6 +139,10 @@ include src/main/ezusb2/Module.mk
include src/main/geninput/Module.mk include src/main/geninput/Module.mk
include src/main/hook/Module.mk include src/main/hook/Module.mk
include src/main/hooklib/Module.mk include src/main/hooklib/Module.mk
include src/main/iface/Module.mk
include src/main/iface-acio/Module.mk
include src/main/iface-core/Module.mk
include src/main/iface-io/Module.mk
include src/main/iidx-bio2-exit-hook/Module.mk include src/main/iidx-bio2-exit-hook/Module.mk
include src/main/iidx-ezusb-exit-hook/Module.mk include src/main/iidx-ezusb-exit-hook/Module.mk
include src/main/iidx-ezusb2-exit-hook/Module.mk include src/main/iidx-ezusb2-exit-hook/Module.mk
@@ -172,6 +178,7 @@ include src/main/jbhook3/Module.mk
include src/main/launcher/Module.mk include src/main/launcher/Module.mk
include src/main/mempatch-hook/Module.mk include src/main/mempatch-hook/Module.mk
include src/main/mm/Module.mk include src/main/mm/Module.mk
include src/main/module/Module.mk
include src/main/p3io/Module.mk include src/main/p3io/Module.mk
include src/main/p3iodrv/Module.mk include src/main/p3iodrv/Module.mk
include src/main/p3ioemu/Module.mk include src/main/p3ioemu/Module.mk
@@ -181,6 +188,7 @@ include src/main/p4ioemu/Module.mk
include src/main/popnhook-util/Module.mk include src/main/popnhook-util/Module.mk
include src/main/popnhook1/Module.mk include src/main/popnhook1/Module.mk
include src/main/popnio/Module.mk include src/main/popnio/Module.mk
include src/main/procmon/Module.mk
include src/main/pcbidgen/Module.mk include src/main/pcbidgen/Module.mk
include src/main/sdvxhook/Module.mk include src/main/sdvxhook/Module.mk
include src/main/sdvxhook2-cn/Module.mk include src/main/sdvxhook2-cn/Module.mk
@@ -232,6 +240,7 @@ $(zipdir)/tools.zip: \
build/bin/indep-32/ezusb2-dbg-hook.dll \ build/bin/indep-32/ezusb2-dbg-hook.dll \
build/bin/indep-32/ezusb2-tool.exe \ build/bin/indep-32/ezusb2-tool.exe \
build/bin/indep-32/ezusb-tool.exe \ build/bin/indep-32/ezusb-tool.exe \
build/bin/indep-32/procmon.dll \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -246,6 +255,7 @@ $(zipdir)/tools-x64.zip: \
build/bin/indep-64/iidx-ezusb2-exit-hook.dll \ build/bin/indep-64/iidx-ezusb2-exit-hook.dll \
build/bin/indep-64/jbiotest.exe \ build/bin/indep-64/jbiotest.exe \
build/bin/indep-64/mempatch-hook.dll \ build/bin/indep-64/mempatch-hook.dll \
build/bin/indep-64/procmon.dll \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -258,6 +268,7 @@ $(zipdir)/iidx-09-to-12.zip: \
build/bin/indep-32/iidxio.dll \ build/bin/indep-32/iidxio.dll \
build/bin/indep-32/vefxio.dll \ build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \ build/bin/indep-32/inject.exe \
dist/dwarfstack/32/dwarfstack.dll \
dist/iidx/config.bat \ dist/iidx/config.bat \
dist/iidx/gamestart-09.bat \ dist/iidx/gamestart-09.bat \
dist/iidx/gamestart-10.bat \ dist/iidx/gamestart-10.bat \
@@ -283,6 +294,7 @@ $(zipdir)/iidx-13.zip: \
build/bin/indep-32/iidxio.dll \ build/bin/indep-32/iidxio.dll \
build/bin/indep-32/vefxio.dll \ build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \ build/bin/indep-32/inject.exe \
dist/dwarfstack/32/dwarfstack.dll \
dist/iidx/config.bat \ dist/iidx/config.bat \
dist/iidx/gamestart-13.bat \ dist/iidx/gamestart-13.bat \
dist/iidx/iidxhook-13.conf \ dist/iidx/iidxhook-13.conf \
@@ -299,6 +311,7 @@ $(zipdir)/iidx-14-to-17.zip: \
build/bin/indep-32/iidxio.dll \ build/bin/indep-32/iidxio.dll \
build/bin/indep-32/vefxio.dll \ build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \ build/bin/indep-32/inject.exe \
dist/dwarfstack/32/dwarfstack.dll \
dist/iidx/config.bat \ dist/iidx/config.bat \
dist/iidx/gamestart-14.bat \ dist/iidx/gamestart-14.bat \
dist/iidx/gamestart-15.bat \ dist/iidx/gamestart-15.bat \
@@ -324,6 +337,10 @@ $(zipdir)/iidx-18.zip: \
dist/iidx/config.bat \ dist/iidx/config.bat \
dist/iidx/gamestart-18.bat \ dist/iidx/gamestart-18.bat \
dist/iidx/iidxhook-18.conf \ dist/iidx/iidxhook-18.conf \
dist/iidx/launcher-18.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \ dist/iidx/vefx.txt \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
@@ -355,6 +372,10 @@ $(zipdir)/iidx-19.zip: \
dist/iidx/config.bat \ dist/iidx/config.bat \
dist/iidx/gamestart-19.bat \ dist/iidx/gamestart-19.bat \
dist/iidx/iidxhook-19.conf \ dist/iidx/iidxhook-19.conf \
dist/iidx/launcher-19.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \ dist/iidx/vefx.txt \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
@@ -371,6 +392,10 @@ $(zipdir)/iidx-20.zip: \
dist/iidx/config.bat \ dist/iidx/config.bat \
dist/iidx/gamestart-20.bat \ dist/iidx/gamestart-20.bat \
dist/iidx/iidxhook-20.conf \ dist/iidx/iidxhook-20.conf \
dist/iidx/launcher-20.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \ dist/iidx/vefx.txt \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
@@ -408,6 +433,13 @@ $(zipdir)/iidx-21-to-24.zip: \
dist/iidx/iidxhook-22.conf \ dist/iidx/iidxhook-22.conf \
dist/iidx/iidxhook-23.conf \ dist/iidx/iidxhook-23.conf \
dist/iidx/iidxhook-24.conf \ dist/iidx/iidxhook-24.conf \
dist/iidx/launcher-21.xml \
dist/iidx/launcher-22.xml \
dist/iidx/launcher-23.xml \
dist/iidx/launcher-24.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \ dist/iidx/vefx.txt \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
@@ -426,6 +458,11 @@ $(zipdir)/iidx-25-to-26.zip: \
dist/iidx/gamestart-26.bat \ dist/iidx/gamestart-26.bat \
dist/iidx/iidxhook-25.conf \ dist/iidx/iidxhook-25.conf \
dist/iidx/iidxhook-26.conf \ dist/iidx/iidxhook-26.conf \
dist/iidx/launcher-25.xml \
dist/iidx/launcher-26.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \ dist/iidx/vefx.txt \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
@@ -448,13 +485,20 @@ $(zipdir)/iidx-27-to-30.zip: \
dist/iidx/iidxhook-28.conf \ dist/iidx/iidxhook-28.conf \
dist/iidx/iidxhook-29.conf \ dist/iidx/iidxhook-29.conf \
dist/iidx/iidxhook-30.conf \ dist/iidx/iidxhook-30.conf \
dist/iidx/launcher-27.xml \
dist/iidx/launcher-28.xml \
dist/iidx/launcher-29.xml \
dist/iidx/launcher-30.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \ dist/iidx/vefx.txt \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
$(zipdir)/iidx-hwio-x86.zip: \ $(zipdir)/iidx-hwio-x86.zip: \
build/bin/indep-32/aciomgr.dll \ build/bin/indep-32/acio-mgr.dll \
build/bin/indep-32/eamio-icca.dll \ build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/iidxio-bio2.dll \ build/bin/indep-32/iidxio-bio2.dll \
build/bin/indep-32/iidxio-ezusb.dll \ build/bin/indep-32/iidxio-ezusb.dll \
@@ -467,7 +511,7 @@ $(zipdir)/iidx-hwio-x86.zip: \
$(V)zip -j $@ $^ $(V)zip -j $@ $^
$(zipdir)/iidx-hwio-x64.zip: \ $(zipdir)/iidx-hwio-x64.zip: \
build/bin/indep-64/aciomgr.dll \ build/bin/indep-64/acio-mgr.dll \
build/bin/indep-64/eamio-icca.dll \ build/bin/indep-64/eamio-icca.dll \
build/bin/indep-64/iidxio-bio2.dll \ build/bin/indep-64/iidxio-bio2.dll \
build/bin/indep-64/iidxio-ezusb.dll \ build/bin/indep-64/iidxio-ezusb.dll \
@@ -486,6 +530,7 @@ $(zipdir)/jb-01.zip: \
build/bin/indep-32/eamio.dll \ build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \ build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \ build/bin/indep-32/jbio.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/jb/config.bat \ dist/jb/config.bat \
dist/jb/gamestart-01.bat \ dist/jb/gamestart-01.bat \
dist/jb/jbhook-01.conf \ dist/jb/jbhook-01.conf \
@@ -500,6 +545,7 @@ $(zipdir)/jb-02.zip: \
build/bin/indep-32/eamio.dll \ build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \ build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \ build/bin/indep-32/jbio.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/jb/config.bat \ dist/jb/config.bat \
dist/jb/gamestart-02.bat \ dist/jb/gamestart-02.bat \
dist/jb/jbhook-02.conf \ dist/jb/jbhook-02.conf \
@@ -516,6 +562,10 @@ $(zipdir)/jb-03.zip: \
build/bin/indep-32/jbio.dll \ build/bin/indep-32/jbio.dll \
dist/jb/config.bat \ dist/jb/config.bat \
dist/jb/gamestart-03.bat \ dist/jb/gamestart-03.bat \
dist/jb/launcher-03.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -529,6 +579,10 @@ $(zipdir)/jb-04.zip: \
build/bin/indep-32/jbio.dll \ build/bin/indep-32/jbio.dll \
dist/jb/config.bat \ dist/jb/config.bat \
dist/jb/gamestart-03.bat \ dist/jb/gamestart-03.bat \
dist/jb/launcher-03.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -542,6 +596,10 @@ $(zipdir)/jb-05-to-07.zip: \
build/bin/indep-32/jbio.dll \ build/bin/indep-32/jbio.dll \
dist/jb/config.bat \ dist/jb/config.bat \
dist/jb/gamestart-04.bat \ dist/jb/gamestart-04.bat \
dist/jb/launcher-04.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -555,12 +613,16 @@ $(zipdir)/jb-08.zip: \
build/bin/indep-32/jbio.dll \ build/bin/indep-32/jbio.dll \
dist/jb/config.bat \ dist/jb/config.bat \
dist/jb/gamestart-04.bat \ dist/jb/gamestart-04.bat \
dist/jb/launcher-04.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
$(zipdir)/jb-hwio.zip: \ $(zipdir)/jb-hwio.zip: \
build/bin/indep-32/aciomgr.dll \ build/bin/indep-32/acio-mgr.dll \
build/bin/indep-32/eamio-icca.dll \ build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/jbio-magicbox.dll \ build/bin/indep-32/jbio-magicbox.dll \
build/bin/indep-32/jbio-p4io.dll \ build/bin/indep-32/jbio-p4io.dll \
@@ -579,6 +641,10 @@ $(zipdir)/sdvx-01-to-04.zip: \
build/bin/indep-32/sdvxio.dll \ build/bin/indep-32/sdvxio.dll \
dist/sdvx/config.bat \ dist/sdvx/config.bat \
dist/sdvx/gamestart.bat \ dist/sdvx/gamestart.bat \
dist/sdvx/launcher.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -593,6 +659,10 @@ $(zipdir)/sdvx-05-to-06.zip: \
dist/sdvx5/config.bat \ dist/sdvx5/config.bat \
dist/sdvx5/gamestart.bat \ dist/sdvx5/gamestart.bat \
dist/sdvx5/sdvxhook2.conf \ dist/sdvx5/sdvxhook2.conf \
dist/sdvx5/launcher.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -607,12 +677,16 @@ $(zipdir)/sdvx-05-cn.zip: \
dist/sdvx5/config.bat \ dist/sdvx5/config.bat \
dist/sdvx5/gamestart-cn.bat \ dist/sdvx5/gamestart-cn.bat \
dist/sdvx5/sdvxhook2-cn.conf \ dist/sdvx5/sdvxhook2-cn.conf \
dist/sdvx5/launcher-cn.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
$(zipdir)/sdvx-hwio-x86.zip: \ $(zipdir)/sdvx-hwio-x86.zip: \
build/bin/indep-32/aciomgr.dll \ build/bin/indep-32/acio-mgr.dll \
build/bin/indep-32/eamio-icca.dll \ build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/sdvxio-kfca.dll \ build/bin/indep-32/sdvxio-kfca.dll \
build/bin/indep-32/sdvxio-bio2.dll \ build/bin/indep-32/sdvxio-bio2.dll \
@@ -622,7 +696,7 @@ $(zipdir)/sdvx-hwio-x86.zip: \
$(V)zip -j $@ $^ $(V)zip -j $@ $^
$(zipdir)/sdvx-hwio-x64.zip: \ $(zipdir)/sdvx-hwio-x64.zip: \
build/bin/indep-64/aciomgr.dll \ build/bin/indep-64/acio-mgr.dll \
build/bin/indep-64/eamio-icca.dll \ build/bin/indep-64/eamio-icca.dll \
build/bin/indep-64/sdvxio-kfca.dll \ build/bin/indep-64/sdvxio-kfca.dll \
build/bin/indep-64/sdvxio-bio2.dll \ build/bin/indep-64/sdvxio-bio2.dll \
@@ -660,6 +734,7 @@ $(zipdir)/ddr-12-us.zip: \
build/bin/indep-32/ddrio-smx.dll \ build/bin/indep-32/ddrio-smx.dll \
build/bin/indep-32/eamio.dll \ build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \ build/bin/indep-32/geninput.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/ddr/config.bat \ dist/ddr/config.bat \
dist/ddr/gamestart-12-us.bat \ dist/ddr/gamestart-12-us.bat \
dist/ddr/gamestart-12-eu.bat \ dist/ddr/gamestart-12-eu.bat \
@@ -681,6 +756,10 @@ $(zipdir)/ddr-12.zip: \
build/bin/indep-32/geninput.dll \ build/bin/indep-32/geninput.dll \
dist/ddr/config.bat \ dist/ddr/config.bat \
dist/ddr/gamestart-12.bat \ dist/ddr/gamestart-12.bat \
dist/ddr/launcher-12.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -697,6 +776,10 @@ $(zipdir)/ddr-13.zip: \
build/bin/indep-32/geninput.dll \ build/bin/indep-32/geninput.dll \
dist/ddr/config.bat \ dist/ddr/config.bat \
dist/ddr/gamestart-13.bat \ dist/ddr/gamestart-13.bat \
dist/ddr/launcher-13.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -717,6 +800,14 @@ $(zipdir)/ddr-14-to-18.zip: \
dist/ddr/gamestart-16.bat \ dist/ddr/gamestart-16.bat \
dist/ddr/gamestart-17.bat \ dist/ddr/gamestart-17.bat \
dist/ddr/gamestart-18.bat \ dist/ddr/gamestart-18.bat \
dist/ddr/launcher-14.xml \
dist/ddr/launcher-15.xml \
dist/ddr/launcher-16.xml \
dist/ddr/launcher-17.xml \
dist/ddr/launcher-18.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -735,6 +826,12 @@ $(zipdir)/ddr-16-to-18-x64.zip: \
dist/ddr/gamestart-16.bat \ dist/ddr/gamestart-16.bat \
dist/ddr/gamestart-17.bat \ dist/ddr/gamestart-17.bat \
dist/ddr/gamestart-18.bat \ dist/ddr/gamestart-18.bat \
dist/ddr/launcher-16.xml \
dist/ddr/launcher-17.xml \
dist/ddr/launcher-18.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -773,6 +870,11 @@ $(zipdir)/bst.zip: \
dist/bst/config.bat \ dist/bst/config.bat \
dist/bst/gamestart1.bat \ dist/bst/gamestart1.bat \
dist/bst/gamestart2.bat \ dist/bst/gamestart2.bat \
dist/bst/launcher-01.xml \
dist/bst/launcher-02.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/ | $(zipdir)/
$(V)echo ... $@ $(V)echo ... $@
$(V)zip -j $@ $^ $(V)zip -j $@ $^
@@ -785,6 +887,7 @@ $(zipdir)/popn-15-to-18.zip: \
build/bin/indep-32/eamio.dll \ build/bin/indep-32/eamio.dll \
build/bin/indep-32/popnio.dll \ build/bin/indep-32/popnio.dll \
build/bin/indep-32/ezusb2-popn-shim.dll \ build/bin/indep-32/ezusb2-popn-shim.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/popn/config.bat \ dist/popn/config.bat \
dist/popn/gamestart-15.bat \ dist/popn/gamestart-15.bat \
dist/popn/gamestart-16.bat \ dist/popn/gamestart-16.bat \
@@ -816,6 +919,7 @@ $(BUILDDIR)/tests.zip: \
build/bin/indep-32/iidxhook-util-config-gfx-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-misc-test.exe \
build/bin/indep-32/iidxhook-util-config-sec-test.exe \ build/bin/indep-32/iidxhook-util-config-sec-test.exe \
dist/dwarfstack/32/dwarfstack.dll \
build/bin/indep-32/inject.exe \ build/bin/indep-32/inject.exe \
build/bin/indep-32/security-id-test.exe \ build/bin/indep-32/security-id-test.exe \
build/bin/indep-32/security-mcode-test.exe \ build/bin/indep-32/security-mcode-test.exe \

View File

@@ -148,21 +148,36 @@ helpful or important to know and should be added.
### Setup and dependencies ### Setup and dependencies
Most (older generation) games were developed for Windows XP Embedded but should run fine on any The games bemanitools support span several generations of (embedded) Windows versions: XP, 7 and 10
consumer version of Windows XP. Newer versions of Windows, e.g. Windows 7, 8 and 10, should be fine (IoT). With these come different generations of dependencies as requirements.
as well. Some hooks also include fixes required to run the games on a more recent version.
Depending on the game, you also need the following dependencies installed: Simplified, this boils down to the following list of C++ Redistributable (vcredist) packages that
are recommended to be installed without going into detail which game needs exactly which version.
Keep in mind the "bitness" (32-bit vs. 64-bit) of each specific game and download the right ones
accordingly.
- The 32-bit (x86) version of You can use a tool like [dependencywalker](https://www.dependencywalker.com/) to figure that out if
[Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package MFC Security Update](https://www.microsoft.com/en-sg/download/details.aspx?id=26999) it is relevant to you.
- The 32-bit (x86) and 64-bit (x64) versions of
[Microsoft Visual C++ Redistributable Packages for Visual Studio 2013](https://www.microsoft.com/en-sg/download/details.aspx?id=40784)
- The
[DirectX 9 End-User Runtimes (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=8109)
See also [bemanitools-supplement](https://www.github.com/djhackersdev/bemanitools-supplement/) for Links/files are also provided by
files. [bemanitools-supplement](https://github.com/djhackersdev/bemanitools-supplement/tree/master/misc/win-runtime#windows-runtimes-and-libraries)
#### Visual C++ Redistributable Packages
- 2010
- [32-bit (x86)](http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe)
- [64-bit (x64)](http://download.microsoft.com/download/d/2/4/d242c3fb-da5a-4542-ad66-f9661d0a8d19/vcredist_x64.exe)
- 2013
- [32-bit (x86)](http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe)
- [64-bit (x64)](http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe)
- 2015
- [32-bit (x86)](https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe)
- [64-bit (x64)](https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe)
#### DirectX 9
Most/nearly all games support to this day use the DirectX 9(ex) API. Make sure to install the
[DirectX 9 End-User Runtimes (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=8109)
## Development ## Development

View File

@@ -0,0 +1,42 @@
#define LOG_MODULE "btsdk-hook-example"
#include <windows.h>
#include <stdbool.h>
#include <stdint.h>
#include "btapi/hook-core.h"
#include "btapi/hook-main.h"
#include "core/log.h"
#include "core/thread.h"
void btapi_hook_core_thread_impl_set(
btapi_thread_create_t create,
btapi_thread_join_t join,
btapi_thread_destroy_t destroy)
{
core_thread_impl_set(create, join, destroy);
}
void btapi_hook_core_log_impl_set(
btapi_log_formatter_t misc,
btapi_log_formatter_t info,
btapi_log_formatter_t warning,
btapi_log_formatter_t fatal)
{
core_log_impl_set(misc, info, warning, fatal);
}
bool btapi_hook_main_init(
HMODULE game_module, struct property_node *property_node_config)
{
log_info("btapi_hook_main_init");
return true;
}
void btapi_hook_main_fini()
{
log_info("btapi_hook_main_fini");
}

View File

View File

@@ -0,0 +1,74 @@
#define LOG_MODULE "procmon-dllmain"
#include <windows.h>
#include "core/log-bt-ext.h"
#include "core/log-bt.h"
#include "core/thread-crt-ext.h"
#include "launcher/property-util.h"
#include "procmon/config.h"
#include "procmon/procmon.h"
#include "util/fs.h"
// TODO move this to a separate "standalone dllmain bootstrap" module in sdk
BOOL WINAPI DllMain(HMODULE mod, DWORD reason, void *ctx)
{
struct property *property;
struct property_node *root_node;
struct procmon_config config;
// TODO provide compatibility mode here? ctx set to...something?
// to figure out if this is loaded/run by any bemanitools loader
// or not.
if (reason == DLL_PROCESS_ATTACH) {
core_thread_crt_ext_impl_set();
core_log_bt_ext_init_with_stderr();
// TODO make this somehow configurable?
// have additional stuff on procmon configuration xml
// <dllmain>
// <log>
// have the same log stuff here as with launcher like file, level, rotation etc
// </log>
// <procmon>
// ....
// </procmon>
// </dllmain>
core_log_bt_level_set(CORE_LOG_BT_LOG_LEVEL_INFO);
log_info("DLL_PROCESS_ATTACH");
if (path_exists("procmon-config.xml")) {
property = property_util_load("procmon-config.xml");
root_node = property_search(NULL, "hook/procmon");
if (!root_node) {
// TODO error handling
}
procmon_config_init(&config);
procmon_config_load(root_node, &config);
procmon_init(&config);
} else {
log_warning("No configuration file found, defaulting");
procmon_config_init(&config);
procmon_init(&config);
}
} else if (reason == DLL_PROCESS_DETACH) {
log_info("DLL_PROCESS_DETACH");
procmon_fini();
core_log_bt_fini();
}
return TRUE;
}

View File

@@ -0,0 +1,15 @@
void btsdk_dllmain_bootstrap_process_attach()
{
// TODO have the whole stuff to bootstrap independently of hook API
// with logging setup etc.
// provide stuff via recovering from command line args or env vars?
}
void btsdk_dllmain_bootstrap_process_detach()
{
// TODO cleanup
core_log_bt_fini();
}

View File

@@ -0,0 +1,12 @@
#ifndef DLLMAIN_BOOTSTRAP_H
#define DLLMAIN_BOOTSTRAP_H
#include <stdint.h>
#include "imports/avs.h"
void btsdk_dllmain_bootstrap_process_attach();
void btsdk_dllmain_bootstrap_process_detach();
#endif

0
btsdk/example/hook/log.c Normal file
View File

View File

@@ -0,0 +1,21 @@
void btapi_thread_impl_set()
{
}
int btapi_thread_create(int (*proc)(void *), void *ctx, uint32_t stack_sz, unsigned int priority)
{
}
void btapi_thread_join(int thread_id, int *result)
{
}
void btapi_thread_destroy(int thread_id)
{
}

View File

@@ -0,0 +1,3 @@
void btapi_thread_impl_set();

View File

30
btsdk/hook-btapi/hook.c Normal file
View File

@@ -0,0 +1,30 @@
#include "api/hook.h"
void btapi_hook_thread_impl_set(
btapi_thread_create_t create,
btapi_thread_join_t join,
btapi_thread_destroy_t destroy)
{
// TODO some simple example how to use basic functionality of the API
}
void btapi_hook_log_impl_set(
btapi_log_formatter_t misc,
btapi_log_formatter_t info,
btapi_log_formatter_t warning,
btapi_log_formatter_t fatal)
{
// TODO some simple example how to use basic functionality of the API
}
bool btapi_hook_init(struct property_node *config)
{
// TODO some simple example how to use basic functionality of the API
return true;
}
void btapi_hook_fini()
{
// TODO some simple example how to use basic functionality of the API
}

View File

@@ -0,0 +1,2 @@
// TODO simple hook example with DllMain only
// ignoring the BT5 API

View File

@@ -1,10 +1,34 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml :: folders modules, data etc.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist dev\raw mkdir dev\raw set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
launcher -K bsthook.dll -E prop/ea3-config-1.xml beatstream1.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-01.xml %*

View File

@@ -1,10 +1,34 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml :: folders modules, data etc.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist dev\raw mkdir dev\raw set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
launcher -K bsthook.dll -E prop/ea3-config-2.xml beatstream2.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-02.xml %*

75
dist/bst/launcher-01.xml vendored Normal file
View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config-1.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>beatstream1.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-server.xml</config>
</eamuse>
<hook>
<hook_dlls>
<dll __type="str">bsthook.dll</dll>
</hook_dlls>
<before_hook_dlls>
</before_hook_dlls>
<iat_hook_dlls>
</iat_hook_dlls>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

75
dist/bst/launcher-02.xml vendored Normal file
View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config-2.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>beatstream2.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook_dlls>
<dll __type="str">bsthook.dll</dll>
</hook_dlls>
<before_hook_dlls>
</before_hook_dlls>
<iat_hook_dlls>
</iat_hook_dlls>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

View File

@@ -1,11 +1,42 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist conf\raw mkdir conf\raw :: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set COM_DIR=%CONTENT_DIR%\com
set MODULES_DIR=%CONTENT_DIR%\modules
regsvr32 /s k-clvsd.dll :: Register video codecs, e.g. required for background videos
regsvr32 /s xactengine2_10.dll regsvr32 /s %COM_DIR%\k-clvsd.dll
.\launcher.exe -K .\ddrhook2.dll .\ddr.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-13.xml %*
:: Unregister video codec to avoid conflicts with other/older video codecs crashing different
:: game versions, e.g. DDR X
regsvr32 /u /s %COM_DIR%\k-clvsd.dll

View File

@@ -1,11 +1,42 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist conf\raw mkdir conf\raw :: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set COM_DIR=%CONTENT_DIR%\com
set MODULES_DIR=%CONTENT_DIR%\modules
regsvr32 /s k-clvsd.dll :: Register video codecs, e.g. required for background videos
regsvr32 /s xactengine2_10.dll regsvr32 /s %COM_DIR%\k-clvsd.dll
.\launcher.exe -K .\ddrhook2.dll .\ddr.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-13.xml %*
:: Unregister video codec to avoid conflicts with other/older video codecs crashing different
:: game versions, e.g. DDR X
regsvr32 /u /s %COM_DIR%\k-clvsd.dll

View File

@@ -1,14 +1,44 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml :: folders modules, data etc.
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist conf\nvram\share-config.xml copy prop\share-config.xml conf\nvram\share-config.xml set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
if not exist conf\raw mkdir conf\raw set COM_DIR=%CONTENT_DIR%\com
set MODULES_DIR=%CONTENT_DIR%\modules
regsvr32 /s k-clvsd.dll :: Register video codecs, e.g. required for background videos
regsvr32 /s xactengine2_10.dll regsvr32 /s %COM_DIR%\k-clvsd.dll
regsvr32 /s %COM_DIR%\xactengine2_10.dll
.\launcher.exe -K .\ddrhook2.dll .\mdxja_945.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-14.xml %*
:: Unregister video codec to avoid conflicts with other/older video codecs crashing different
:: game versions, e.g. DDR X
regsvr32 /u /s %COM_DIR%\k-clvsd.dll
regsvr32 /u /s %COM_DIR%\xactengine2_10.dll

View File

@@ -1,14 +1,44 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml :: folders modules, data etc.
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist conf\nvram\share-config.xml copy prop\share-config.xml conf\nvram\share-config.xml set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
if not exist conf\raw mkdir conf\raw set COM_DIR=%CONTENT_DIR%\com
set MODULES_DIR=%CONTENT_DIR%\modules
regsvr32 /s k-clvsd.dll :: Register video codecs, e.g. required for background videos
regsvr32 /s xactengine2_10.dll regsvr32 /s %COM_DIR%\k-clvsd.dll
regsvr32 /s %COM_DIR%\xactengine2_10.dll
.\launcher.exe -K .\ddrhook2.dll .\mdxja_945.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-15.xml %*
:: Unregister video codec to avoid conflicts with other/older video codecs crashing different
:: game versions, e.g. DDR X
regsvr32 /u /s %COM_DIR%\k-clvsd.dll
regsvr32 /u /s %COM_DIR%\xactengine2_10.dll

View File

@@ -1,15 +1,44 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist conf\nvram\ea3-config.xml copy prop\eamuse-config.xml conf\nvram\ea3-config.xml :: folders modules, data etc.
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml set CONTENT_DIR=%CD%\..
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
if not exist conf\nvram\testmode-v.xml copy prop\testmode-v.xml conf\nvram\testmode-v.xml set COM_DIR=%CONTENT_DIR%\com
if not exist conf\raw mkdir conf\raw set MODULES_DIR=%CONTENT_DIR%\modules
regsvr32 /s com\k-clvsd.dll :: Register video codecs, e.g. required for background videos
regsvr32 /s com\xactengine2_10.dll regsvr32 /s %COM_DIR%\k-clvsd.dll
regsvr32 /s %COM_DIR%\xactengine2_10.dll
.\launcher.exe -H 33554432 -K .\ddrhook2.dll .\arkmdxp3.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-17.xml %*
:: Unregister video codec to avoid conflicts with other/older video codecs crashing different
:: game versions, e.g. DDR X
regsvr32 /u /s %COM_DIR%\k-clvsd.dll
regsvr32 /u /s %COM_DIR%\xactengine2_10.dll

View File

@@ -1,15 +1,44 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist conf\nvram\ea3-config.xml copy prop\eamuse-config.xml conf\nvram\ea3-config.xml :: folders modules, data etc.
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml set CONTENT_DIR=%CD%\..
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
if not exist conf\nvram\testmode-v.xml copy prop\testmode-v.xml conf\nvram\testmode-v.xml set COM_DIR=%CONTENT_DIR%\com
if not exist conf\raw mkdir conf\raw set MODULES_DIR=%CONTENT_DIR%\modules
regsvr32 /s com\k-clvsd.dll :: Register video codecs, e.g. required for background videos
regsvr32 /s com\xactengine2_10.dll regsvr32 /s %COM_DIR%\k-clvsd.dll
regsvr32 /s %COM_DIR%\xactengine2_10.dll
.\launcher.exe -H 33554432 -K .\ddrhook2.dll .\arkmdxp3.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-17.xml %*
:: Unregister video codec to avoid conflicts with other/older video codecs crashing different
:: game versions, e.g. DDR X
regsvr32 /u /s %COM_DIR%\k-clvsd.dll
regsvr32 /u /s %COM_DIR%\xactengine2_10.dll

View File

@@ -1,15 +1,44 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist conf\nvram\ea3-config.xml copy prop\eamuse-config.xml conf\nvram\ea3-config.xml :: folders modules, data etc.
if not exist conf\nvram\coin.xml copy prop\coin.xml conf\nvram\coin.xml set CONTENT_DIR=%CD%\..
if not exist conf\nvram\eacoin.xml copy prop\eacoin.xml conf\nvram\eacoin.xml set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
if not exist conf\nvram\testmode-v.xml copy prop\testmode-v.xml conf\nvram\testmode-v.xml set COM_DIR=%CONTENT_DIR%\com
if not exist conf\raw mkdir conf\raw set MODULES_DIR=%CONTENT_DIR%\modules
regsvr32 /s com\k-clvsd.dll :: Register video codecs, e.g. required for background videos
regsvr32 /s com\xactengine2_10.dll regsvr32 /s %COM_DIR%\k-clvsd.dll
regsvr32 /s %COM_DIR%\xactengine2_10.dll
.\launcher.exe -H 33554432 -K .\ddrhook2.dll .\arkmdxp3.dll %* :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-18.xml %*
:: Unregister video codec to avoid conflicts with other/older video codecs crashing different
:: game versions, e.g. DDR X
regsvr32 /u /s %COM_DIR%\k-clvsd.dll
regsvr32 /u /s %COM_DIR%\xactengine2_10.dll

71
dist/ddr/launcher-12.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">31457280</heap_avs>
<heap_std __type="u32">31457280</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>ddr.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<hook>
<path __type="str">ddrhook2.dll</path>
</hook>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

71
dist/ddr/launcher-13.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">31457280</heap_avs>
<heap_std __type="u32">31457280</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>ddr.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<hook>
<path __type="str">ddrhook2.dll</path>
</hook>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

71
dist/ddr/launcher-14.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">31457280</heap_avs>
<heap_std __type="u32">31457280</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>mdxja_945.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<hook>
<path __type="str">ddrhook2.dll</path>
</hook>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

71
dist/ddr/launcher-15.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">31457280</heap_avs>
<heap_std __type="u32">31457280</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>mdxja_945.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<hook>
<path __type="str">ddrhook2.dll</path>
</hook>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

72
dist/ddr/launcher-16.xml vendored Normal file
View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
<file dst="/dev/nvram/testmode-v.xml" src="/prop/testmode-v.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">33554432</heap_avs>
<heap_std __type="u32">1048576</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>arkmdxp3.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<hook>
<path __type="str">ddrhook2.dll</path>
</hook>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

72
dist/ddr/launcher-17.xml vendored Normal file
View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
<file dst="/dev/nvram/testmode-v.xml" src="/prop/testmode-v.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">33554432</heap_avs>
<heap_std __type="u32">1048576</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>arkmdxp3.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<hook>
<path __type="str">ddrhook2.dll</path>
</hook>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

72
dist/ddr/launcher-18.xml vendored Normal file
View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
<file dst="/dev/nvram/testmode-v.xml" src="/prop/testmode-v.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">33554432</heap_avs>
<heap_std __type="u32">1048576</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>arkmdxp3.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<hook>
<path __type="str">ddrhook2.dll</path>
</hook>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

BIN
dist/dwarfstack/32/dwarfstack.dll vendored Normal file

Binary file not shown.

BIN
dist/dwarfstack/64/dwarfstack.dll vendored Normal file

Binary file not shown.

1
dist/dwarfstack/readme.md vendored Normal file
View File

@@ -0,0 +1 @@
Version/release: https://github.com/ssbssa/dwarfstack/releases/tag/2.2

View File

@@ -1,6 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-09.conf %* set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\JAG
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
%BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook1.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-09.conf^
%*

View File

@@ -1,6 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-10.conf %* set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\JAE
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
%BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook1.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-10.conf^
%*

View File

@@ -1,6 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-11.conf %* set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\JAA
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
%BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook1.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-11.conf^
%*

View File

@@ -1,5 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
inject iidxhook1.dll bm2dx.exe -D --config iidxhook-12.conf %* set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\JAD
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
%BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook1.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-12.conf^
%*

View File

@@ -1,7 +1,49 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\JAG
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
if not exist d mkdir d if not exist d mkdir d
if not exist e mkdir e if not exist e mkdir e
if not exist f mkdir f if not exist f mkdir f
@@ -11,5 +53,9 @@ 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\NVRAM mkdir e\avs_conf\CONF\NVRAM
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
inject iidxhook2.dll bm2dx.exe -D --config iidxhook-13.conf %* %BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook2.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-13.conf^
%*

View File

@@ -1,7 +1,49 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\2007072301
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
if not exist d mkdir d if not exist d mkdir d
if not exist e mkdir e if not exist e mkdir e
if not exist f mkdir f if not exist f mkdir f
@@ -11,5 +53,9 @@ 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\NVRAM mkdir e\avs_conf\CONF\NVRAM
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-14.conf %* %BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook3.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-14.conf^
%*

View File

@@ -1,7 +1,49 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\2008031100
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
if not exist d mkdir d if not exist d mkdir d
if not exist e mkdir e if not exist e mkdir e
if not exist f mkdir f if not exist f mkdir f
@@ -11,5 +53,9 @@ 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\NVRAM mkdir e\avs_conf\CONF\NVRAM
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-15.conf %* %BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook3.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-15.conf^
%*

View File

@@ -1,7 +1,49 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\2009072200
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
if not exist d mkdir d if not exist d mkdir d
if not exist e mkdir e if not exist e mkdir e
if not exist f mkdir f if not exist f mkdir f
@@ -9,7 +51,11 @@ if not exist f mkdir f
if not exist e\avs_conf mkdir e\avs_conf 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 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\NVRAM mkdir e\avs_conf\CONF\NVRAM
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-16.conf %*
%BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook3.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-16.conf^
%*

View File

@@ -1,7 +1,49 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%\2010071200
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
if not exist d mkdir d if not exist d mkdir d
if not exist e mkdir e if not exist e mkdir e
if not exist f mkdir f if not exist f mkdir f
@@ -11,5 +53,9 @@ 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\NVRAM mkdir e\avs_conf\CONF\NVRAM
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-17.conf %* %BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook3.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-17.conf^
%*

View File

@@ -1,7 +1,49 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
if not exist d mkdir d if not exist d mkdir d
if not exist e mkdir e if not exist e mkdir e
if not exist f mkdir f if not exist f mkdir f
@@ -14,4 +56,9 @@ if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
if not exist dev\nvram mkdir dev\nvram if not exist dev\nvram mkdir dev\nvram
if not exist dev\raw mkdir dev\raw if not exist dev\raw mkdir dev\raw
inject iidxhook4-cn.dll bm2dx.exe -D --config iidxhook-18-cn.conf %* %BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook4-cn.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-18-cn.conf^
%*

View File

@@ -1,14 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist d mkdir d :: Script expects to be located in the root folder (contents/) next to the
if not exist e mkdir e :: folders modules, data etc.
if not exist f mkdir f set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist dev\nvram mkdir dev\nvram if not exist "%BEMANITOOLS_DIR%" (
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml pause
if not exist dev\raw mkdir dev\raw exit 1
)
launcher -K iidxhook4.dll bm2dx.dll --config iidxhook-18.conf %* if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%BEMANITOOLS_DIR%;^
%MODULES_DIR%;^
%PATH%
:: Current working dir is the root/content directory of the game
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-18.xml^
--config %BEMANITOOLS_DIR%\iidxhook-18.conf^
%*

View File

@@ -1,14 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist d mkdir d :: Script expects to be located in the root folder (contents/) next to the
if not exist e mkdir e :: folders modules, data etc.
if not exist f mkdir f set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist dev\nvram mkdir dev\nvram if not exist "%BEMANITOOLS_DIR%" (
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml pause
if not exist dev\raw mkdir dev\raw exit 1
)
launcher -K iidxhook5.dll bm2dx.dll --config iidxhook-19.conf %* if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-19.xml^
--config %BEMANITOOLS_DIR%\iidxhook-19.conf^
%*

View File

@@ -1,7 +1,49 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: next to the folders data, JAA, JAB, etc.
cd /d %~dp0 cd /d %~dp0
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set REVISION_DIR=%CONTENT_DIR%
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%REVISION_DIR%" (
echo The game modules directory "%REVISION_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so inject can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to inject
set PATH=^
%REVISION_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the selected game revision root folder
cd /d %REVISION_DIR%
if not exist d mkdir d if not exist d mkdir d
if not exist e mkdir e if not exist e mkdir e
if not exist f mkdir f if not exist f mkdir f
@@ -14,4 +56,9 @@ if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
if not exist dev\nvram mkdir dev\nvram if not exist dev\nvram mkdir dev\nvram
if not exist dev\raw mkdir dev\raw if not exist dev\raw mkdir dev\raw
inject iidxhook5-cn.dll bm2dx.exe -D --config iidxhook-20-cn.conf %* %BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook5-cn.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-20-cn.conf^
%*

View File

@@ -1,10 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml :: folders modules, data etc.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist dev\raw mkdir dev\raw set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
launcher -K iidxhook6.dll bm2dx.dll --config iidxhook-20.conf %* if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-20.xml^
--config %BEMANITOOLS_DIR%\iidxhook-20.conf^
%*

View File

@@ -1,10 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml :: folders modules, data etc.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist dev\raw mkdir dev\raw set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-21.conf %* if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-21.xml^
--config %BEMANITOOLS_DIR%\iidxhook-21.conf^
%*

View File

@@ -1,10 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml :: folders modules, data etc.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist dev\raw mkdir dev\raw set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-22.conf %* if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-22.xml^
--config %BEMANITOOLS_DIR%\iidxhook-22.conf^
%*

View File

@@ -1,10 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml :: folders modules, data etc.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist dev\raw mkdir dev\raw set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-23.conf %* if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-23.xml^
--config %BEMANITOOLS_DIR%\iidxhook-23.conf^
%*

View File

@@ -1,10 +1,52 @@
@echo off @echo off
:: Keep all vars scoped to this script
setlocal
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml :: folders modules, data etc.
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set CONTENT_DIR=%CD%\..
if not exist dev\raw mkdir dev\raw set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
launcher -K iidxhook7.dll bm2dx.dll --config iidxhook-24.conf %* if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-24.xml^
--config %BEMANITOOLS_DIR%\iidxhook-24.conf^
%*

View File

@@ -1,16 +1,52 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Keep all vars scoped to this script
if not exist dev\e mkdir dev\e setlocal
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 ( :: Game doesn't work properly when not run with administrator privileges
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram >nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
launcher -H 134217728 -K iidxhook8.dll bm2dx.dll --config iidxhook-25.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-25.xml^
--config %BEMANITOOLS_DIR%\iidxhook-25.conf^
%*

View File

@@ -1,16 +1,52 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Keep all vars scoped to this script
if not exist dev\e mkdir dev\e setlocal
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 ( :: Game doesn't work properly when not run with administrator privileges
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram >nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
launcher -H 134217728 -K iidxhook8.dll bm2dx.dll --config iidxhook-26.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-26.xml^
--config %BEMANITOOLS_DIR%\iidxhook-26.conf^
%*

View File

@@ -1,16 +1,52 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Keep all vars scoped to this script
if not exist dev\e mkdir dev\e setlocal
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 ( :: Game doesn't work properly when not run with administrator privileges
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram >nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-27.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-27.xml^
--config %BEMANITOOLS_DIR%\iidxhook-27.conf^
%*

View File

@@ -1,16 +1,52 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Keep all vars scoped to this script
if not exist dev\e mkdir dev\e setlocal
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 ( :: Game doesn't work properly when not run with administrator privileges
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram >nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-28.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-28.xml^
--config %BEMANITOOLS_DIR%\iidxhook-28.conf^
%*

View File

@@ -1,16 +1,52 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Keep all vars scoped to this script
if not exist dev\e mkdir dev\e setlocal
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 ( :: Game doesn't work properly when not run with administrator privileges
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram >nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-29.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-29.xml^
--config %BEMANITOOLS_DIR%\iidxhook-29.conf^
%*

View File

@@ -1,16 +1,52 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Keep all vars scoped to this script
if not exist dev\e mkdir dev\e setlocal
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 ( :: Game doesn't work properly when not run with administrator privileges
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram >nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
modules\launcher -H 134217728 -B iidxhook9.dll bm2dx.dll --config iidxhook-30.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-30.xml^
--config %BEMANITOOLS_DIR%\iidxhook-30.conf^
%*

View File

@@ -56,7 +56,7 @@ ezusb.io_board_type=1
misc.disable_clock_set=false misc.disable_clock_set=false
# Stub calls to rteffect.dll (10th to DistorteD) # Stub calls to rteffect.dll (10th to DistorteD)
misc.rteffect_stub=false misc.rteffect_stub=true
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data # Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\ misc.settings_path=.\

View File

@@ -56,7 +56,7 @@ ezusb.io_board_type=1
misc.disable_clock_set=false misc.disable_clock_set=false
# Stub calls to rteffect.dll (10th to DistorteD) # Stub calls to rteffect.dll (10th to DistorteD)
misc.rteffect_stub=false misc.rteffect_stub=true
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data # Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\ misc.settings_path=.\

View File

@@ -59,7 +59,7 @@ misc.happy_sky_ms_bg_fix=false
misc.disable_clock_set=false misc.disable_clock_set=false
# Stub calls to rteffect.dll (10th to DistorteD) # Stub calls to rteffect.dll (10th to DistorteD)
misc.rteffect_stub=false misc.rteffect_stub=true
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data # Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\ misc.settings_path=.\

View File

@@ -59,7 +59,7 @@ misc.distorted_ms_bg_fix=false
misc.disable_clock_set=false misc.disable_clock_set=false
# Stub calls to rteffect.dll (10th to DistorteD) # Stub calls to rteffect.dll (10th to DistorteD)
misc.rteffect_stub=false misc.rteffect_stub=true
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data # Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\ misc.settings_path=.\

44
dist/iidx/iidxhook-30.xml vendored Normal file
View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<hook>
<version __type="u32">1</version>
<io>
<disable_card_reader_emu __type="bool">0</disable_card_reader_emu>
<disable_bio2_emu __type="bool">0</disable_bio2_emu>
<disable_poll_limiter __type="bool">0</disable_poll_limiter>
<lightning_mode __type="bool">0</lighting_mode>
<disable_cams __type="bool">1</disable_cams>
<disable_file_hooks __type="bool">0</disable_file_hooks>
<tt_multiplier __type="float">1.0</tt_multiplier>
</io>
<cam>
<disable_emu __type="bool">1</disable_emu>
<disable_camera1 __type="bool">1</disable_camera1>
<disable_camera2 __type="bool">1</disable_camera2>
<device_id1 __type="str"></device_id1>
<device_id2 __type="str"></device_id2>
</cam>
<gfx>
<framed __type="bool">1</framed>
<windowed __type="bool">0</windowed>
<confined __type="bool">0</confined>
<window_width __type="s32">-1</window_width>
<window_height __type="s32">-1</window_height>
<window_x __type="s32">-1</window_x>
<window_y __type="s32">-1</window_y>
<forced_refresh_rate __type="s32">-1</forced_refresh_rate>
<device_adapter __type="s32">-1</device_adapter>
<force_orientation __type="s32">-1</force_orientation>
<force_screen_res>
<width __type="s32">-1</width>
<height __type="s32">-1</height>
</force_screen_res>
</gfx>
<adapter>
<override_ip __type="str"></override_ip>
</adapter>
<asio>
<force_asio __type="bool">0</force_asio>
<force_wasapi __type="bool">1</force_wasapi>
<device_name __type="str">XONAR SOUND CARD(64)</device_name>
</asio>
</hook>

79
dist/iidx/launcher-18.xml vendored Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
<fstype __type="str">fs</fstype>
<option __type="str">posix=1</option>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook4.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

79
dist/iidx/launcher-19.xml vendored Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
<fstype __type="str">fs</fstype>
<option __type="str">posix=1</option>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook5.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

79
dist/iidx/launcher-20.xml vendored Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
<fstype __type="str">fs</fstype>
<option __type="str">posix=1</option>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook6.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

79
dist/iidx/launcher-21.xml vendored Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
<fstype __type="str">fs</fstype>
<option __type="str">posix=1</option>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook7.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

79
dist/iidx/launcher-22.xml vendored Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
<fstype __type="str">fs</fstype>
<option __type="str">posix=1</option>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook7.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

79
dist/iidx/launcher-23.xml vendored Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
<fstype __type="str">fs</fstype>
<option __type="str">posix=1</option>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook7.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

79
dist/iidx/launcher-24.xml vendored Normal file
View File

@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
<fstype __type="str">fs</fstype>
<option __type="str">posix=1</option>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook7.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

76
dist/iidx/launcher-25.xml vendored Normal file
View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">134217728</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook8.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

76
dist/iidx/launcher-26.xml vendored Normal file
View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">134217728</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook>
<enable __type="bool">1</enable>
<path __type="str">iidxhook8.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</hook>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

71
dist/iidx/launcher-27.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">134217728</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<mounttable_selector __type="str">boot</mounttable_selector>
<mounttable>
<vfs name="boot" fstype="fs" src="dev/raw" dst="/dev/raw" opt=""/>
<vfs name="boot" fstype="fs" src="dev/nvram" dst="/dev/nvram" opt=""/>
</mounttable>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<pre_avs>
<enable __type="bool">1</enable>
<path __type="str">iidxhook9.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</pre_avs>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

71
dist/iidx/launcher-28.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">134217728</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<mounttable_selector __type="str">boot</mounttable_selector>
<mounttable>
<vfs name="boot" fstype="fs" src="dev/raw" dst="/dev/raw" opt=""/>
<vfs name="boot" fstype="fs" src="dev/nvram" dst="/dev/nvram" opt=""/>
</mounttable>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<pre_avs>
<enable __type="bool">1</enable>
<path __type="str">iidxhook9.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</pre_avs>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

71
dist/iidx/launcher-29.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">134217728</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<mounttable_selector __type="str">boot</mounttable_selector>
<mounttable>
<vfs name="boot" fstype="fs" src="dev/raw" dst="/dev/raw" opt=""/>
<vfs name="boot" fstype="fs" src="dev/nvram" dst="/dev/nvram" opt=""/>
</mounttable>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<pre_avs>
<enable __type="bool">1</enable>
<path __type="str">iidxhook9.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</pre_avs>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

71
dist/iidx/launcher-30.xml vendored Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher>
<version __type="u32">1</version>
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">134217728</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>bm2dx.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<mounttable_selector __type="str">boot</mounttable_selector>
<mounttable>
<vfs name="boot" fstype="fs" src="dev/raw" dst="/dev/raw" opt=""/>
<vfs name="boot" fstype="fs" src="dev/nvram" dst="/dev/nvram" opt=""/>
</mounttable>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hooks>
<pre_avs>
<enable __type="bool">1</enable>
<path __type="str">iidxhook9.dll</path>
<config kind="inline">
<hook>
</hook>
</config>
</pre_avs>
</hooks>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

10
dist/jb/ea3-ident.xml vendored Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<soft>
<model __type="str">LDJ</model>
<dest __type="str">J</dest>
<spec __type="str">A</spec>
<rev __type="str">A</rev>
<ext __type="str">2022082400</ext>
</soft>
</ea3_conf>

6
dist/jb/eamuse-server.xml vendored Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3>
<network>
<services>http://localhost</services>
</network>
</ea3>

View File

@@ -1,11 +1,34 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\ea3-config.xml copy prop\ea3-config.xml dev\nvram\ea3-config.xml :: folders modules, data etc.
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml set CONTENT_DIR=%CD%\..
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
if not exist dev\raw mkdir dev\raw set MODULES_DIR=%CONTENT_DIR%\modules
launcher -H 33554432 -K jbhook2.dll jubeat.dll -v :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-03.xml -v %*

View File

@@ -1,11 +1,34 @@
@echo off @echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0 cd /d %~dp0
if not exist dev\nvram mkdir dev\nvram :: Script expects to be located in the root folder (contents/) next to the
if not exist dev\nvram\ea3-config.xml copy prop\ea3-config.xml dev\nvram\ea3-config.xml :: folders modules, data etc.
if not exist dev\nvram\coin.xml copy prop\defaults\coin.xml dev\nvram\coin.xml set CONTENT_DIR=%CD%\..
if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin.xml set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
if not exist dev\raw mkdir dev\raw set MODULES_DIR=%CONTENT_DIR%\modules
launcher -H 33554432 -K jbhook3.dll jubeat.dll :: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-04.xml %*

75
dist/jb/launcher-03.xml vendored Normal file
View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">33554432</heap_avs>
<heap_std __type="u32">33554432</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>jubeat.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook_dlls>
<dll __type="str">jbhook2.dll</dll>
</hook_dlls>
<before_hook_dlls>
</before_hook_dlls>
<iat_hook_dlls>
</iat_hook_dlls>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

75
dist/jb/launcher-04.xml vendored Normal file
View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">33554432</heap_avs>
<heap_std __type="u32">33554432</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>jubeat.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook_dlls>
<dll __type="str">jbhook3.dll</dll>
</hook_dlls>
<before_hook_dlls>
</before_hook_dlls>
<iat_hook_dlls>
</iat_hook_dlls>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

7
dist/jb/pcbid.xml vendored Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<id>
<softid __type="str">0101020304050607083F</softid>
<pcbid __type="str">0101020304050607083F</pcbid>
</id>
</ea3_conf>

10
dist/sdvx/ea3-ident.xml vendored Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<soft>
<model __type="str">LDJ</model>
<dest __type="str">J</dest>
<spec __type="str">A</spec>
<rev __type="str">A</rev>
<ext __type="str">2022082400</ext>
</soft>
</ea3_conf>

6
dist/sdvx/eamuse-server.xml vendored Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3>
<network>
<services>http://localhost</services>
</network>
</ea3>

View File

@@ -8,3 +8,38 @@ if not exist dev\nvram\eacoin.xml copy prop\defaults\eacoin.xml dev\nvram\eacoin
if not exist dev\raw mkdir dev\raw if not exist dev\raw mkdir dev\raw
launcher -K sdvxhook.dll soundvoltex.dll %* launcher -K sdvxhook.dll soundvoltex.dll %*
@echo off
:: Game doesn't work properly when not run with administrator privileges
>nul 2>&1 net session
if %errorlevel% neq 0 (
echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
)
:: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher.xml %*

75
dist/sdvx/launcher.xml vendored Normal file
View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">16777216</heap_avs>
<heap_std __type="u32">16777216</heap_std>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>soundvoltex.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook_dlls>
<dll __type="str">sdvxhook.dll</dll>
</hook_dlls>
<before_hook_dlls>
</before_hook_dlls>
<iat_hook_dlls>
</iat_hook_dlls>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

7
dist/sdvx/pcbid.xml vendored Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<id>
<softid __type="str">0101020304050607083F</softid>
<pcbid __type="str">0101020304050607083F</pcbid>
</id>
</ea3_conf>

10
dist/sdvx5/ea3-ident.xml vendored Normal file
View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<soft>
<model __type="str">LDJ</model>
<dest __type="str">J</dest>
<spec __type="str">A</spec>
<rev __type="str">A</rev>
<ext __type="str">2022082400</ext>
</soft>
</ea3_conf>

6
dist/sdvx5/eamuse-server.xml vendored Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3>
<network>
<services>http://localhost</services>
</network>
</ea3>

View File

@@ -1,17 +1,34 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Game doesn't work properly when not run with administrator privileges
if not exist dev\e mkdir dev\e >nul 2>&1 net session
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\c.dest echo $null >> dev\raw\c.dest
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 %errorlevel% neq 0 (
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
launcher -H 268435456 -K sdvxhook2-cn.dll soundvoltex.dll --config sdvxhook2-cn.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-cn.xml --config %BEMANITOOLS_DIR%\sdvxhook2-cn.conf %*

View File

@@ -1,16 +1,34 @@
@echo off @echo off
cd /d %~dp0
if not exist dev mkdir dev :: Game doesn't work properly when not run with administrator privileges
if not exist dev\e mkdir dev\e >nul 2>&1 net session
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 %errorlevel% neq 0 (
if not exist dev\nvram\%%~nxD copy /y prop\defaults\%%~nxD dev\nvram echo This script requires administrative privileges.
echo Please run the script as an administrator.
pause
exit 1
) )
launcher -H 268435456 -K sdvxhook2.dll soundvoltex.dll --config sdvxhook2.conf %* :: Script expects to be located in a subfolder "bemanitools" in the root folder
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher.xml --config %BEMANITOOLS_DIR%\sdvxhook2.conf %*

74
dist/sdvx5/launcher-cn.xml vendored Normal file
View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">268435456</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>soundvoltex.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook_dlls>
<dll __type="str">sdvxhook2-cn.dll</dll>
</hook_dlls>
<before_hook_dlls>
</before_hook_dlls>
<iat_hook_dlls>
</iat_hook_dlls>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

74
dist/sdvx5/launcher.xml vendored Normal file
View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<launcher version="1">
<bootstrap>
<selector __type="str">bemanitools_local_fs</selector>
<config kind="inline">
<config>
<startup>
<bemanitools_local_fs>
<default>
<file dst="/dev/nvram/ea3-config.xml" src="/prop/eamuse-config.xml" />
<file dst="/dev/nvram/coin.xml" src="/prop/coin.xml" />
<file dst="/dev/nvram/eacoin.xml" src="/prop/eacoin.xml" />
</default>
<boot>
<file>prop/avs-config.xml</file>
<heap_avs __type="u32">268435456</heap_avs>
</boot>
<log>
<level>info</level>
</log>
<eamuse>
<file>/dev/nvram/ea3-config.xml</file>
</eamuse>
<component>
<file>soundvoltex.dll</file>
<param></param>
</component>
</bemanitools_local_fs>
</startup>
</config>
</config>
</bootstrap>
<ea3_ident>
<config kind="file">bemanitools/ea3-ident.xml</config>
<config kind="file">bemanitools/ea3-license.xml</config>
</ea3_ident>
<avs>
<config kind="inline">
<config>
<fs>
<root>
<device __type="str">.</device>
</root>
<nvram>
<device __type="str">dev/nvram</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</nvram>
<raw>
<device __type="str">dev/raw</device>
<fstype __type="str">fs</fstype>
<option __type="str">vf=1,posix=1</option>
</raw>
</fs>
</config>
</config>
</avs>
<eamuse>
<config kind="file">bemanitools/ea3-service.xml</config>
</eamuse>
<hook>
<hook_dlls>
<dll __type="str">sdvxhook2.dll</dll>
</hook_dlls>
<before_hook_dlls>
</before_hook_dlls>
<iat_hook_dlls>
</iat_hook_dlls>
</hook>
<debug>
<remote_debugger __type="bool">0</remote_debugger>
<log_property_configs __type="bool">0</log_property_configs>
</debug>
</launcher>

7
dist/sdvx5/pcbid.xml vendored Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<id>
<softid __type="str">0101020304050607083F</softid>
<pcbid __type="str">0101020304050607083F</pcbid>
</id>
</ea3_conf>

11
dist/shared/ea3-ident.xml vendored Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<soft>
<!-- USER TODO: Change these accordingly to match the specifications of the game and version you are running -->
<model __type="str">000</model>
<dest __type="str">A</dest>
<spec __type="str">A</spec>
<rev __type="str">A</rev>
<ext __type="str">1969032100</ext>
</soft>
</ea3_conf>

8
dist/shared/ea3-license.xml vendored Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3_conf>
<id>
<!-- USER TODO: Change accordingly to comply with your favorite eamuse service -->
<softid __type="str">0101020304050607083F</softid>
<pcbid __type="str">0101020304050607083F</pcbid>
</id>
</ea3_conf>

7
dist/shared/ea3-service.xml vendored Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="Shift-JIS"?>
<ea3>
<network>
<!-- USER TODO: Change to your favorite eamuse service URL -->
<services>http://localhost</services>
</network>
</ea3>

69
notes.md Normal file
View File

@@ -0,0 +1,69 @@
* document life cycle of hooks, when they happen, what gets called, what to do and what not to do -> document this in the API + overview with references from some sdk docs
* dll load: DllMain
* ... refer to hook API calls
* documentation as a rendered page on bemanitools.github.io domain
* Design and style like sapling documentation
* support command lines with paths, i.e. -P launcher.hooks.bla.gfx.windowed
as well as allowing hooks and other things to define arbitrary short versions
e.g. -w for windowed
* think about splitting mono hooks into smaller ones. iidx is probably a good
example because stuff is being re-used everywhere, e.g. gfx stuff?
* group all hooks in its own subfolder -> name them all with a "hook" postfix?
* procmon: lib avs monitor
* make vtables for core thread and log
* for io api
* use structs with bit fields everywhere to avoid all the bit shifting etc
* align several IO interfaces regarding separate polling (read/write) calls etc
* make them work closer to the actual device IOs, e.g. ddr with different sensor modes polling vs individual
* have all IO APIs in the style of
* setters + getters: modify internal state, but don't transfer to hardware/device, yet
* transactional functions: read/write (or send/recv) or update to execute a transaction to the hardware. this also can be a stubbed function that doesn't do anything if the backend is async driven but the API is not exposing that and looks like a sync API
* split iidxio into vefx and control deck parts -> have this as a separate library that loads two libs and composes them to the iidxio one?
* btapi design choice: have return types always be a status code and use parameter pointers to return actual data, e.g. for getting IO values
* io/popn: doesn't have read/write (poll) calls to explicitly drive the hardware
* have command in build script/justfile to create a package that can be used as a standalone project
to develop for bemanitools using the sdk
* Have a version.h/version.c for every dll/exe in bemanitools, see launcher. Print these at the first possible occasion when logging is available to console
* have shim dlls in sdk (?) that create backward compatibility with
BT5 equivalent DLLs but only support the api v1 of BT6
* avs log server in iidx-utils (and also for other games where needed?)
move to bt-core and make it a generic and improved async log sink
* make vefx.dll optional in iidxio.dll with geninput.dll
* iidx io emulation is not getting values "atomic" from iidxio API
see the various msg implementations which hook the API
for example
msg_resp.inverted_pad = ((iidx_io_ep2_get_keys() & 0x3FFF) << 16) |
(iidx_io_ep2_get_panel() & 0x0F) |
((iidx_io_ep2_get_sys() & 0x07) << 4) |
(((iidx_io_ep2_get_sys() >> 2) & 0x01) << 30);
-> iidx_io_ep2_get_sys is called twice
* deprecate cconfig and replace with core-config everywhere, e.g. in IO libs
* command line tooling unification: command arg parsing, common command args like setting log level/enabling/disabling log file
* iat hook impl in launcher not complete and working, yet
* Support config api, required implementation for modules such as IO once being used, see modules/io-ext -> TODOs next to api inits
* have a library that provides global options for any
command line tool such as setting log level, log file etc.
and have a piece of code allowing for quick and simply usage everywhere -> unify command line args
* notes for migration guide from bemanitools 5 to 6
* Delete config.exe configurations in appdata: C:\Users\<USERNAME>\AppData\Roaming\DJHACKERS\iidx.bin
* incompatibility list to BT5
* All IO libs
* hooks?
* configuration files .conf
* previous setups with eapki data, keep stuff stock now and use bootstrap.xml provided by btools or stock bootstrap.xml
* config tool broken -> various functions from geninput need
to be loaded in addition to the input interface
* rteffects stubs don't seem to work, iidxhook1+2
* split all games and versions for distribution files to distribution packages for each game version. avoids having a mixed bag of multiple versions with different startup scripts and sometimes oneofs, e.g. one specific lib for one version.
* for iidx e,f settings folders (old games), have default configuration values allocate them outside of the revision dirs, e.g. under settings/save next to the bemanitools folder to keep revision folders clean
* improve config defaults, e.g. on old iidx games: have various gfx fixes enabled by default, cause disabling is rather the exception, e.g. running on actual old hardware that doesn't have these issues
* iidx15 needs default save data -> btools supplement and link in documentation that this needs to be setup or game crashes
* improve command line tool/usage docs by following the man page style format with sections name, synopsis description, options etc.
* similar to trace wrapper for core api, have performance measuring around IO api
* reverse engineer NvDisplayConfigLDJ and make bemanitools version of that
* replace inject logging through debug api with unified logging through bemanitools 6 api
* also solves issue with blocking logging on OutputDebugStr that needs synchronized
* bemanitools performance monitoring of IO and rendering loops, measure and expose metrics alert on flaky performance
* tool to easily read and change xml properties configs from command line, similar to jq, but a lot simpler. no query language, just simple get and put
* command line overrides for hook (and other?) configurations managed in
inject and launcher, transparent to hook which just gets the final config

Some files were not shown because too many files have changed in this diff Show More