mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2024-11-28 00:10:51 +01:00
WIP: bemanitools 6
highly WIP, what’s “working”: - iidxhook 9 to 24 - launcher - inject
This commit is contained in:
parent
81821490bd
commit
acf2498939
@ -139,13 +139,14 @@ libs :=
|
||||
|
||||
avsdlls :=
|
||||
avsexes :=
|
||||
avslibs :=
|
||||
|
||||
testdlls :=
|
||||
testexes :=
|
||||
|
||||
include Module.mk
|
||||
|
||||
modules := $(dlls) $(exes) $(libs) $(avsdlls) $(avsexes) $(testdlls) $(testexes)
|
||||
modules := $(dlls) $(exes) $(libs) $(avsdlls) $(avsexes) $(avslibs) $(testdlls) $(testexes)
|
||||
|
||||
#
|
||||
# $1: Bitness
|
||||
@ -200,6 +201,7 @@ $$(bindir_$1_$2):
|
||||
$$(eval $$(foreach imp,$(imps),$$(call t_import,$1,$2,$$(imp))))
|
||||
$$(eval $$(foreach dll,$(avsdlls),$$(call t_linkdll,$1,$2,$$(dll))))
|
||||
$$(eval $$(foreach exe,$(avsexes),$$(call t_linkexe,$1,$2,$$(exe))))
|
||||
$$(eval $$(foreach lib,$(avslibs),$$(call t_archive,$1,$2,$$(lib))))
|
||||
|
||||
endef
|
||||
|
||||
@ -209,6 +211,7 @@ define t_compile
|
||||
|
||||
depdir_$1_$2_$3 := $(depdir)/$$(subdir_$1_$2)/$3
|
||||
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)
|
||||
objdir_$1_$2_$3 := $(objdir)/$$(subdir_$1_$2)/$3
|
||||
obj_$1_$2_$3 := $$(src_$3:%.c=$$(objdir_$1_$2_$3)/%.o) \
|
||||
@ -260,6 +263,7 @@ dll_$1_$2_$3 := $$(bindir_$1_$2)/$3.dll
|
||||
implib_$1_$2_$3 := $$(bindir_$1_$2)/lib$3.a
|
||||
|
||||
$$(dll_$1_$2_$3) $$(implib_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) \
|
||||
$$(avslib_$1_$2_$3) \
|
||||
$$(absdpl_$1_$2_$3) \
|
||||
$$(srcdir_$3)/$3.def | $$(bindir_$1_$2)
|
||||
$(V)echo ... $$(dll_$1_$2_$3)
|
||||
@ -278,7 +282,7 @@ $(t_compile)
|
||||
|
||||
exe_$1_$2_$3 := $$(bindir_$1_$2)/$3.exe
|
||||
|
||||
$$(exe_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) $$(absdpl_$1_$2_$3) \
|
||||
$$(exe_$1_$2_$3): $$(obj_$1_$2_$3) $$(abslib_$1_$2_$3) $$(avslib_$1_$2_$3) $$(absdpl_$1_$2_$3) \
|
||||
| $$(bindir_$1_$2)
|
||||
$(V)echo ... $$@
|
||||
$(V)$$(toolchain_$1)gcc -o $$@ $$^ $$(ldflags_$3)
|
||||
|
21
Module.mk
21
Module.mk
@ -88,10 +88,10 @@ imps += avs avs-ea3
|
||||
include src/main/aciodrv/Module.mk
|
||||
include src/main/aciodrv-proc/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/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/bio2emu-iidx/Module.mk
|
||||
include src/main/bio2emu/Module.mk
|
||||
@ -116,6 +116,7 @@ include src/main/dinput/Module.mk
|
||||
include src/main/eamio-icca/Module.mk
|
||||
include src/main/eamio/Module.mk
|
||||
include src/main/eamiotest/Module.mk
|
||||
include src/main/exceptiontrace/Module.mk
|
||||
include src/main/extio/Module.mk
|
||||
include src/main/extiodrv/Module.mk
|
||||
include src/main/extiotest/Module.mk
|
||||
@ -138,6 +139,10 @@ include src/main/ezusb2/Module.mk
|
||||
include src/main/geninput/Module.mk
|
||||
include src/main/hook/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-ezusb-exit-hook/Module.mk
|
||||
include src/main/iidx-ezusb2-exit-hook/Module.mk
|
||||
@ -173,6 +178,7 @@ include src/main/jbhook3/Module.mk
|
||||
include src/main/launcher/Module.mk
|
||||
include src/main/mempatch-hook/Module.mk
|
||||
include src/main/mm/Module.mk
|
||||
include src/main/module/Module.mk
|
||||
include src/main/p3io/Module.mk
|
||||
include src/main/p3iodrv/Module.mk
|
||||
include src/main/p3ioemu/Module.mk
|
||||
@ -183,7 +189,6 @@ include src/main/popnhook-util/Module.mk
|
||||
include src/main/popnhook1/Module.mk
|
||||
include src/main/popnio/Module.mk
|
||||
include src/main/procmon/Module.mk
|
||||
include src/main/procmon-lib/Module.mk
|
||||
include src/main/pcbidgen/Module.mk
|
||||
include src/main/sdvxhook/Module.mk
|
||||
include src/main/sdvxhook2-cn/Module.mk
|
||||
@ -493,7 +498,7 @@ $(zipdir)/iidx-27-to-30.zip: \
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(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/iidxio-bio2.dll \
|
||||
build/bin/indep-32/iidxio-ezusb.dll \
|
||||
@ -506,7 +511,7 @@ $(zipdir)/iidx-hwio-x86.zip: \
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(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/iidxio-bio2.dll \
|
||||
build/bin/indep-64/iidxio-ezusb.dll \
|
||||
@ -617,7 +622,7 @@ $(zipdir)/jb-08.zip: \
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(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/jbio-magicbox.dll \
|
||||
build/bin/indep-32/jbio-p4io.dll \
|
||||
@ -681,7 +686,7 @@ $(zipdir)/sdvx-05-cn.zip: \
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(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/sdvxio-kfca.dll \
|
||||
build/bin/indep-32/sdvxio-bio2.dll \
|
||||
@ -691,7 +696,7 @@ $(zipdir)/sdvx-hwio-x86.zip: \
|
||||
$(V)zip -j $@ $^
|
||||
|
||||
$(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/sdvxio-kfca.dll \
|
||||
build/bin/indep-64/sdvxio-bio2.dll \
|
||||
|
42
btsdk/example/hook-example/hook.c
Normal file
42
btsdk/example/hook-example/hook.c
Normal 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");
|
||||
}
|
0
btsdk/example/hook/config.c
Normal file
0
btsdk/example/hook/config.c
Normal file
74
btsdk/example/hook/dllmain copy.c
Normal file
74
btsdk/example/hook/dllmain copy.c
Normal 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;
|
||||
}
|
15
btsdk/example/hook/dllmain-bootstrap.c
Normal file
15
btsdk/example/hook/dllmain-bootstrap.c
Normal 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();
|
||||
}
|
12
btsdk/example/hook/dllmain-bootstrap.h
Normal file
12
btsdk/example/hook/dllmain-bootstrap.h
Normal 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
0
btsdk/example/hook/log.c
Normal file
21
btsdk/example/hook/thread.c
Normal file
21
btsdk/example/hook/thread.c
Normal 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)
|
||||
{
|
||||
|
||||
}
|
3
btsdk/example/hook/thread.h
Normal file
3
btsdk/example/hook/thread.h
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
void btapi_thread_impl_set();
|
0
btsdk/hook-btapi/dllmain.c
Normal file
0
btsdk/hook-btapi/dllmain.c
Normal file
30
btsdk/hook-btapi/hook.c
Normal file
30
btsdk/hook-btapi/hook.c
Normal 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
|
||||
}
|
2
btsdk/hook-simple/dllmain.c
Normal file
2
btsdk/hook-simple/dllmain.c
Normal file
@ -0,0 +1,2 @@
|
||||
// TODO simple hook example with DllMain only
|
||||
// ignoring the BT5 API
|
14
dist/ddr/launcher-12.xml
vendored
14
dist/ddr/launcher-12.xml
vendored
@ -59,15 +59,11 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">ddrhook2.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
14
dist/ddr/launcher-13.xml
vendored
14
dist/ddr/launcher-13.xml
vendored
@ -59,15 +59,11 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">ddrhook2.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
14
dist/ddr/launcher-14.xml
vendored
14
dist/ddr/launcher-14.xml
vendored
@ -59,15 +59,11 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">ddrhook2.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
14
dist/ddr/launcher-15.xml
vendored
14
dist/ddr/launcher-15.xml
vendored
@ -59,15 +59,11 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">ddrhook2.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
14
dist/ddr/launcher-16.xml
vendored
14
dist/ddr/launcher-16.xml
vendored
@ -60,15 +60,11 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">ddrhook2.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
14
dist/ddr/launcher-17.xml
vendored
14
dist/ddr/launcher-17.xml
vendored
@ -60,15 +60,11 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">ddrhook2.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
14
dist/ddr/launcher-18.xml
vendored
14
dist/ddr/launcher-18.xml
vendored
@ -60,15 +60,11 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">ddrhook2.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
10
dist/iidx/ea3-ident.xml
vendored
10
dist/iidx/ea3-ident.xml
vendored
@ -1,10 +0,0 @@
|
||||
<?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/iidx/eamuse-server.xml
vendored
6
dist/iidx/eamuse-server.xml
vendored
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<ea3>
|
||||
<network>
|
||||
<services>http://localhost</services>
|
||||
</network>
|
||||
</ea3>
|
48
dist/iidx/gamestart-09.bat
vendored
48
dist/iidx/gamestart-09.bat
vendored
@ -1,6 +1,52 @@
|
||||
@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
|
||||
|
||||
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^
|
||||
%*
|
48
dist/iidx/gamestart-10.bat
vendored
48
dist/iidx/gamestart-10.bat
vendored
@ -1,6 +1,52 @@
|
||||
@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
|
||||
|
||||
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^
|
||||
%*
|
||||
|
48
dist/iidx/gamestart-11.bat
vendored
48
dist/iidx/gamestart-11.bat
vendored
@ -1,6 +1,52 @@
|
||||
@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
|
||||
|
||||
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^
|
||||
%*
|
||||
|
49
dist/iidx/gamestart-12.bat
vendored
49
dist/iidx/gamestart-12.bat
vendored
@ -1,5 +1,52 @@
|
||||
@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
|
||||
|
||||
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^
|
||||
%*
|
||||
|
50
dist/iidx/gamestart-13.bat
vendored
50
dist/iidx/gamestart-13.bat
vendored
@ -1,7 +1,49 @@
|
||||
@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
|
||||
|
||||
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 e mkdir e
|
||||
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\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^
|
||||
%*
|
||||
|
50
dist/iidx/gamestart-14.bat
vendored
50
dist/iidx/gamestart-14.bat
vendored
@ -1,7 +1,49 @@
|
||||
@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
|
||||
|
||||
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 e mkdir e
|
||||
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\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^
|
||||
%*
|
||||
|
50
dist/iidx/gamestart-15.bat
vendored
50
dist/iidx/gamestart-15.bat
vendored
@ -1,7 +1,49 @@
|
||||
@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
|
||||
|
||||
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 e mkdir e
|
||||
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\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^
|
||||
%*
|
||||
|
52
dist/iidx/gamestart-16.bat
vendored
52
dist/iidx/gamestart-16.bat
vendored
@ -1,7 +1,49 @@
|
||||
@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
|
||||
|
||||
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 e mkdir e
|
||||
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\CONF mkdir e\avs_conf\CONF
|
||||
if not exist e\avs_conf\CONF\NVRAM mkdir e\avs_conf\CONF\NVRAM
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
inject iidxhook3.dll bm2dx.exe -D --config iidxhook-16.conf %*
|
||||
if not exist e\avs_conf\CONF\RAW mkdir e\avs_conf\CONF\RAW
|
||||
|
||||
%BEMANITOOLS_DIR%\inject.exe^
|
||||
%BEMANITOOLS_DIR%\iidxhook3.dll^
|
||||
%REVISION_DIR%\bm2dx.exe^
|
||||
-D^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-16.conf^
|
||||
%*
|
||||
|
50
dist/iidx/gamestart-17.bat
vendored
50
dist/iidx/gamestart-17.bat
vendored
@ -1,7 +1,49 @@
|
||||
@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
|
||||
|
||||
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 e mkdir e
|
||||
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\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^
|
||||
%*
|
||||
|
49
dist/iidx/gamestart-18-cn.bat
vendored
49
dist/iidx/gamestart-18-cn.bat
vendored
@ -1,7 +1,49 @@
|
||||
@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
|
||||
|
||||
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 e mkdir e
|
||||
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\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^
|
||||
%*
|
||||
|
28
dist/iidx/gamestart-18.bat
vendored
28
dist/iidx/gamestart-18.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,15 +23,30 @@ 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
|
||||
:: 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=^
|
||||
%MODULES_DIR%;^
|
||||
%BEMANITOOLS_DIR%;^
|
||||
%MODULES_DIR%;^
|
||||
%PATH%
|
||||
|
||||
:: Current working dir is the game's root folder
|
||||
:: Current working dir is the root/content directory of the game
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-18.xml --config %BEMANITOOLS_DIR%\iidxhook-18.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-18.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-18.conf^
|
||||
%*
|
20
dist/iidx/gamestart-19.bat
vendored
20
dist/iidx/gamestart-19.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-19.xml --config %BEMANITOOLS_DIR%\iidxhook-19.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-19.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-19.conf^
|
||||
%*
|
49
dist/iidx/gamestart-20-cn.bat
vendored
49
dist/iidx/gamestart-20-cn.bat
vendored
@ -1,7 +1,49 @@
|
||||
@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
|
||||
|
||||
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 e mkdir e
|
||||
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\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^
|
||||
%*
|
20
dist/iidx/gamestart-20.bat
vendored
20
dist/iidx/gamestart-20.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-20.xml --config %BEMANITOOLS_DIR%\iidxhook-20.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-20.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-20.conf^
|
||||
%*
|
20
dist/iidx/gamestart-21.bat
vendored
20
dist/iidx/gamestart-21.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-21.xml --config %BEMANITOOLS_DIR%\iidxhook-21.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-21.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-21.conf^
|
||||
%*
|
20
dist/iidx/gamestart-22.bat
vendored
20
dist/iidx/gamestart-22.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-22.xml --config %BEMANITOOLS_DIR%\iidxhook-22.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-22.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-22.conf^
|
||||
%*
|
20
dist/iidx/gamestart-23.bat
vendored
20
dist/iidx/gamestart-23.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-23.xml --config %BEMANITOOLS_DIR%\iidxhook-23.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-23.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-23.conf^
|
||||
%*
|
20
dist/iidx/gamestart-24.bat
vendored
20
dist/iidx/gamestart-24.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-24.xml --config %BEMANITOOLS_DIR%\iidxhook-24.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-24.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-24.conf^
|
||||
%*
|
20
dist/iidx/gamestart-25.bat
vendored
20
dist/iidx/gamestart-25.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-25.xml --config %BEMANITOOLS_DIR%\iidxhook-25.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-25.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-25.conf^
|
||||
%*
|
20
dist/iidx/gamestart-26.bat
vendored
20
dist/iidx/gamestart-26.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-26.xml --config %BEMANITOOLS_DIR%\iidxhook-26.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-26.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-26.conf^
|
||||
%*
|
20
dist/iidx/gamestart-27.bat
vendored
20
dist/iidx/gamestart-27.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-27.xml --config %BEMANITOOLS_DIR%\iidxhook-27.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-27.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-27.conf^
|
||||
%*
|
20
dist/iidx/gamestart-28.bat
vendored
20
dist/iidx/gamestart-28.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-28.xml --config %BEMANITOOLS_DIR%\iidxhook-28.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-28.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-28.conf^
|
||||
%*
|
20
dist/iidx/gamestart-29.bat
vendored
20
dist/iidx/gamestart-29.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-29.xml --config %BEMANITOOLS_DIR%\iidxhook-29.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-29.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-29.conf^
|
||||
%*
|
20
dist/iidx/gamestart-30.bat
vendored
20
dist/iidx/gamestart-30.bat
vendored
@ -1,5 +1,8 @@
|
||||
@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
|
||||
|
||||
@ -20,6 +23,18 @@ 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
|
||||
@ -31,4 +46,7 @@ set PATH=^
|
||||
:: Current working dir is the game's root folder
|
||||
cd /d %CONTENT_DIR%
|
||||
|
||||
%BEMANITOOLS_DIR%\launcher %BEMANITOOLS_DIR%\launcher-30.xml --config %BEMANITOOLS_DIR%\iidxhook-30.conf %*
|
||||
%BEMANITOOLS_DIR%\launcher.exe^
|
||||
%BEMANITOOLS_DIR%\launcher-30.xml^
|
||||
--config %BEMANITOOLS_DIR%\iidxhook-30.conf^
|
||||
%*
|
2
dist/iidx/iidxhook-10.conf
vendored
2
dist/iidx/iidxhook-10.conf
vendored
@ -56,7 +56,7 @@ ezusb.io_board_type=1
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# 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
|
||||
misc.settings_path=.\
|
||||
|
2
dist/iidx/iidxhook-11.conf
vendored
2
dist/iidx/iidxhook-11.conf
vendored
@ -56,7 +56,7 @@ ezusb.io_board_type=1
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# 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
|
||||
misc.settings_path=.\
|
||||
|
2
dist/iidx/iidxhook-12.conf
vendored
2
dist/iidx/iidxhook-12.conf
vendored
@ -59,7 +59,7 @@ misc.happy_sky_ms_bg_fix=false
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# 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
|
||||
misc.settings_path=.\
|
||||
|
2
dist/iidx/iidxhook-13.conf
vendored
2
dist/iidx/iidxhook-13.conf
vendored
@ -59,7 +59,7 @@ misc.distorted_ms_bg_fix=false
|
||||
misc.disable_clock_set=false
|
||||
|
||||
# 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
|
||||
misc.settings_path=.\
|
||||
|
44
dist/iidx/iidxhook-30.xml
vendored
Normal file
44
dist/iidx/iidxhook-30.xml
vendored
Normal 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>
|
20
dist/iidx/launcher-18.xml
vendored
20
dist/iidx/launcher-18.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -41,6 +42,8 @@
|
||||
<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>
|
||||
@ -60,13 +63,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook4.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
20
dist/iidx/launcher-19.xml
vendored
20
dist/iidx/launcher-19.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -41,6 +42,8 @@
|
||||
<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>
|
||||
@ -60,13 +63,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook5.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
20
dist/iidx/launcher-20.xml
vendored
20
dist/iidx/launcher-20.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -41,6 +42,8 @@
|
||||
<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>
|
||||
@ -60,13 +63,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook6.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
20
dist/iidx/launcher-21.xml
vendored
20
dist/iidx/launcher-21.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -41,6 +42,8 @@
|
||||
<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>
|
||||
@ -60,13 +63,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook7.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
20
dist/iidx/launcher-22.xml
vendored
20
dist/iidx/launcher-22.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -41,6 +42,8 @@
|
||||
<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>
|
||||
@ -60,13 +63,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook7.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
20
dist/iidx/launcher-23.xml
vendored
20
dist/iidx/launcher-23.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -41,6 +42,8 @@
|
||||
<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>
|
||||
@ -60,13 +63,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook7.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
20
dist/iidx/launcher-24.xml
vendored
20
dist/iidx/launcher-24.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -41,6 +42,8 @@
|
||||
<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>
|
||||
@ -60,13 +63,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook7.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
18
dist/iidx/launcher-25.xml
vendored
18
dist/iidx/launcher-25.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -59,13 +60,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook8.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
18
dist/iidx/launcher-26.xml
vendored
18
dist/iidx/launcher-26.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -59,13 +60,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
<dll __type="str">iidxhook8.dll</dll>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
18
dist/iidx/launcher-27.xml
vendored
18
dist/iidx/launcher-27.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -54,13 +55,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
<dll __type="str">iidxhook9.dll</dll>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
18
dist/iidx/launcher-28.xml
vendored
18
dist/iidx/launcher-28.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -54,13 +55,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
<dll __type="str">iidxhook9.dll</dll>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
18
dist/iidx/launcher-29.xml
vendored
18
dist/iidx/launcher-29.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -54,13 +55,14 @@
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
<dll __type="str">iidxhook9.dll</dll>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
<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>
|
||||
|
22
dist/iidx/launcher-30.xml
vendored
22
dist/iidx/launcher-30.xml
vendored
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<launcher version="1">
|
||||
<launcher>
|
||||
<version __type="u32">1</version>
|
||||
<bootstrap>
|
||||
<selector __type="str">bemanitools_local_fs</selector>
|
||||
<config kind="inline">
|
||||
@ -53,15 +54,16 @@
|
||||
<eamuse>
|
||||
<config kind="file">bemanitools/ea3-service.xml</config>
|
||||
</eamuse>
|
||||
<hook>
|
||||
<hook_dlls>
|
||||
</hook_dlls>
|
||||
<before_hook_dlls>
|
||||
<dll __type="str">iidxhook9.dll</dll>
|
||||
</before_hook_dlls>
|
||||
<iat_hook_dlls>
|
||||
</iat_hook_dlls>
|
||||
</hook>
|
||||
<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>
|
||||
|
7
dist/iidx/pcbid.xml
vendored
7
dist/iidx/pcbid.xml
vendored
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<ea3_conf>
|
||||
<id>
|
||||
<softid __type="str">0101020304050607083F</softid>
|
||||
<pcbid __type="str">0101020304050607083F</pcbid>
|
||||
</id>
|
||||
</ea3_conf>
|
69
notes.md
Normal file
69
notes.md
Normal 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
|
42
src/api/acio/mgr.h
Normal file
42
src/api/acio/mgr.h
Normal file
@ -0,0 +1,42 @@
|
||||
#ifndef BT_API_ACIO_MGR_H
|
||||
#define BT_API_ACIO_MGR_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define BT_ACIO_MGR_NODE_PRODUCT_CODE_LEN 4
|
||||
|
||||
typedef struct ac_io_message bt_acio_message_t;
|
||||
typedef struct aciodrv_device_ctx bt_acio_drv_device_ctx_t;
|
||||
typedef struct bt_acio_mgr_port_dispatcher bt_acio_mgr_port_dispatcher_t;
|
||||
|
||||
typedef bt_acio_mgr_port_dispatcher_t *(*bt_acio_mgr_port_init_t)(const char *path, uint32_t baud);
|
||||
typedef void (*bt_acio_mgr_port_fini_t)(bt_acio_mgr_port_dispatcher_t *dispatcher);
|
||||
typedef uint8_t (*bt_acio_mgr_node_count_get_t)(const bt_acio_mgr_port_dispatcher_t *dispatcher);
|
||||
typedef bool (*bt_acio_mgr_node_product_ident_get_t)(
|
||||
const bt_acio_mgr_port_dispatcher_t *dispatcher,
|
||||
uint8_t node_id,
|
||||
char product[BT_ACIO_MGR_NODE_PRODUCT_CODE_LEN]);
|
||||
typedef bool (*bt_acio_mgr_port_packet_submit_t)(
|
||||
bt_acio_mgr_port_dispatcher_t *dispatcher,
|
||||
bt_acio_message_t *msg,
|
||||
uint32_t max_resp_size);
|
||||
typedef bt_acio_drv_device_ctx_t *(*bt_acio_mgr_port_checkout_t)(bt_acio_mgr_port_dispatcher_t *dispatcher);
|
||||
typedef void (*bt_acio_mgr_port_checkin_t)(bt_acio_mgr_port_dispatcher_t *dispatcher);
|
||||
|
||||
typedef struct bt_acio_mgr_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_acio_mgr_port_init_t port_init;
|
||||
bt_acio_mgr_port_fini_t port_fini;
|
||||
bt_acio_mgr_node_count_get_t node_count_get;
|
||||
bt_acio_mgr_node_product_ident_get_t node_product_ident_get;
|
||||
bt_acio_mgr_port_packet_submit_t port_packet_submit;
|
||||
bt_acio_mgr_port_checkout_t port_checkout;
|
||||
bt_acio_mgr_port_checkin_t port_checkin;
|
||||
} v1;
|
||||
} bt_acio_mgr_api_t;
|
||||
|
||||
#endif
|
51
src/api/core/config.h
Normal file
51
src/api/core/config.h
Normal file
@ -0,0 +1,51 @@
|
||||
#ifndef BT_API_CORE_CONFIG_H
|
||||
#define BT_API_CORE_CONFIG_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
typedef struct bt_core_config bt_core_config_t;
|
||||
|
||||
typedef enum bt_core_config_result {
|
||||
BT_CORE_CONFIG_RESULT_SUCCESS = 0,
|
||||
BT_CORE_CONFIG_RESULT_ERROR_INTERNAL = 1,
|
||||
BT_CORE_CONFIG_RESULT_VALUE_NOT_FOUND = 2,
|
||||
BT_CORE_CONFIG_RESULT_TYPE_MISMATCH = 3,
|
||||
} bt_core_config_result_t;
|
||||
|
||||
typedef bt_core_config_result_t (*bt_core_config_s8_get_t)(const bt_core_config_t *config, const char *path, int8_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_u8_get_t)(const bt_core_config_t *config, const char *path, uint8_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_s16_get_t)(const bt_core_config_t *config, const char *path, int16_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_u16_get_t)(const bt_core_config_t *config, const char *path, uint16_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_s32_get_t)(const bt_core_config_t *config, const char *path, int32_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_u32_get_t)(const bt_core_config_t *config, const char *path, uint32_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_s64_get_t)(const bt_core_config_t *config, const char *path, int64_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_u64_get_t)(const bt_core_config_t *config, const char *path, uint64_t *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_float_get_t)(const bt_core_config_t *config, const char *path, float *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_double_get_t)(const bt_core_config_t *config, const char *path, double *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_bool_get_t)(const bt_core_config_t *config, const char *path, bool *value);
|
||||
typedef bt_core_config_result_t (*bt_core_config_bin_get_t)(const bt_core_config_t *config, const char *path, void *value, size_t len);
|
||||
typedef bt_core_config_result_t (*bt_core_config_str_get_t)(const bt_core_config_t *config, const char *path, char *value, size_t len);
|
||||
|
||||
typedef struct bt_core_config_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
bt_core_config_s8_get_t s8_get;
|
||||
bt_core_config_u8_get_t u8_get;
|
||||
bt_core_config_s16_get_t s16_get;
|
||||
bt_core_config_u16_get_t u16_get;
|
||||
bt_core_config_s32_get_t s32_get;
|
||||
bt_core_config_u32_get_t u32_get;
|
||||
bt_core_config_s64_get_t s64_get;
|
||||
bt_core_config_u64_get_t u64_get;
|
||||
bt_core_config_float_get_t float_get;
|
||||
bt_core_config_double_get_t double_get;
|
||||
bt_core_config_bool_get_t bool_get;
|
||||
bt_core_config_bin_get_t bin_get;
|
||||
bt_core_config_str_get_t str_get;
|
||||
} v1;
|
||||
} bt_core_config_api_t;
|
||||
|
||||
#endif
|
19
src/api/core/log.h
Normal file
19
src/api/core/log.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef BT_API_CORE_LOG_H
|
||||
#define BT_API_CORE_LOG_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef void (*bt_core_log_message_t)(const char *module, const char *fmt, ...);
|
||||
|
||||
typedef struct bt_core_log_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
bt_core_log_message_t misc;
|
||||
bt_core_log_message_t info;
|
||||
bt_core_log_message_t warning;
|
||||
bt_core_log_message_t fatal;
|
||||
} v1;
|
||||
} bt_core_log_api_t;
|
||||
|
||||
#endif
|
28
src/api/core/thread.h
Normal file
28
src/api/core/thread.h
Normal file
@ -0,0 +1,28 @@
|
||||
#ifndef BT_API_CORE_THREAD_H
|
||||
#define BT_API_CORE_THREAD_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef enum bt_core_thread_result {
|
||||
BT_CORE_THREAD_RESULT_SUCCESS = 0,
|
||||
BT_CORE_THREAD_RESULT_ERROR_INTERNAL = 1,
|
||||
} bt_core_thread_result_t;
|
||||
|
||||
typedef int bt_core_thread_id_t;
|
||||
|
||||
typedef bt_core_thread_result_t (*bt_core_thread_create_t)(
|
||||
int (*proc)(void *), void *ctx, uint32_t stack_sz, unsigned int priority, bt_core_thread_id_t *thread_id);
|
||||
typedef bt_core_thread_result_t (*bt_core_thread_join_t)(bt_core_thread_id_t thread_id, int *result);
|
||||
typedef bt_core_thread_result_t (*bt_core_thread_destroy_t)(bt_core_thread_id_t thread_id);
|
||||
|
||||
typedef struct bt_core_thread_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
bt_core_thread_create_t create;
|
||||
bt_core_thread_join_t join;
|
||||
bt_core_thread_destroy_t destroy;
|
||||
} v1;
|
||||
} bt_core_thread_api_t;
|
||||
|
||||
#endif
|
41
src/api/hook.h
Normal file
41
src/api/hook.h
Normal file
@ -0,0 +1,41 @@
|
||||
#ifndef BT_API_HOOK_H
|
||||
#define BT_API_HOOK_H
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "api/core/config.h"
|
||||
|
||||
typedef enum bt_io_bst_gpio_sys_bit {
|
||||
BT_IO_BST_GPIO_SYS_COIN = 2,
|
||||
BT_IO_BST_GPIO_SYS_TEST = 4,
|
||||
BT_IO_BST_GPIO_SYS_SERVICE = 5,
|
||||
} bt_io_bst_gpio_sys_bit_t;
|
||||
|
||||
typedef void (*bt_hook_iat_dll_name_get_t)(char *buffer, size_t size);
|
||||
typedef bool (*bt_hook_pre_avs_init_t)(const bt_core_config_t *config);
|
||||
// game module reference, either the exe or dll. allow for further targeted hooking/patching
|
||||
// remark: you can't own the memory of the property_node config. whatever you need form that, make sure to copy the data and not just reference it.
|
||||
// there is no guarantee the data is not free'd/gone after this call returns
|
||||
// use the property api to iterate the data and parse it into your own custom configuration struct
|
||||
// it is advised to also validate all parameters
|
||||
// if no configuration was provided upon loading, the config_node contains an empty root node
|
||||
typedef bool (*bt_hook_main_init_t)(HMODULE game_module, const bt_core_config_t *config);
|
||||
typedef void (*bt_hook_main_fini_t)();
|
||||
|
||||
typedef struct bt_hook_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Optional
|
||||
bt_hook_iat_dll_name_get_t iat_dll_name_get;
|
||||
bt_hook_pre_avs_init_t pre_avs_init;
|
||||
bt_hook_main_init_t main_init;
|
||||
bt_hook_main_fini_t main_fini;
|
||||
} v1;
|
||||
} bt_hook_api_t;
|
||||
|
||||
#endif
|
28
src/api/input.h
Normal file
28
src/api/input.h
Normal file
@ -0,0 +1,28 @@
|
||||
#ifndef BT_API_INPUT_H
|
||||
#define BT_API_INPUT_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef bool (*bt_input_init_t)();
|
||||
typedef void (*bt_input_fini_t)();
|
||||
typedef bool (*bt_input_mapper_config_load_t)(const char *game_type);
|
||||
typedef uint8_t (*bt_input_mapper_analog_read_t)(uint8_t analog);
|
||||
typedef uint64_t (*bt_input_mapper_update_t)();
|
||||
typedef void (*bt_input_mapper_light_write_t)(uint8_t light, uint8_t intensity);
|
||||
|
||||
typedef struct bt_input_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_input_init_t init;
|
||||
bt_input_fini_t fini;
|
||||
bt_input_mapper_config_load_t mapper_config_load;
|
||||
bt_input_mapper_analog_read_t mapper_analog_read;
|
||||
bt_input_mapper_update_t mapper_update;
|
||||
bt_input_mapper_light_write_t mapper_light_write;
|
||||
} v1;
|
||||
} bt_input_api_t;
|
||||
|
||||
#endif
|
30
src/api/io/bst.h
Normal file
30
src/api/io/bst.h
Normal file
@ -0,0 +1,30 @@
|
||||
#ifndef BT_API_IO_BST_H
|
||||
#define BT_API_IO_BST_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef enum bt_io_bst_gpio_sys_bit {
|
||||
BT_IO_BST_GPIO_SYS_COIN = 2,
|
||||
BT_IO_BST_GPIO_SYS_TEST = 4,
|
||||
BT_IO_BST_GPIO_SYS_SERVICE = 5,
|
||||
} bt_io_bst_gpio_sys_bit_t;
|
||||
|
||||
typedef bool (*bt_io_bst_init_t)();
|
||||
typedef void (*bt_io_bst_fini_t)();
|
||||
typedef bool (*bt_io_bst_input_read_t)();
|
||||
typedef uint8_t (*bt_io_bst_input_get_t)();
|
||||
|
||||
typedef struct bt_io_bst_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_bst_init_t init;
|
||||
bt_io_bst_fini_t fini;
|
||||
bt_io_bst_input_read_t input_read;
|
||||
bt_io_bst_input_get_t input_get;
|
||||
} v1;
|
||||
} bt_io_bst_api_t;
|
||||
|
||||
#endif
|
106
src/api/io/ddr.h
Normal file
106
src/api/io/ddr.h
Normal file
@ -0,0 +1,106 @@
|
||||
#ifndef BT_API_IO_DDR_H
|
||||
#define BT_API_IO_DDR_H
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef enum bt_io_ddr_pad_bit {
|
||||
BT_IO_DDR_TEST = 0x04,
|
||||
BT_IO_DDR_COIN = 0x05,
|
||||
BT_IO_DDR_SERVICE = 0x06,
|
||||
|
||||
BT_IO_DDR_P2_START = 0x08,
|
||||
BT_IO_DDR_P2_UP = 0x09,
|
||||
BT_IO_DDR_P2_DOWN = 0x0A,
|
||||
BT_IO_DDR_P2_LEFT = 0x0B,
|
||||
BT_IO_DDR_P2_RIGHT = 0x0C,
|
||||
BT_IO_DDR_P2_MENU_LEFT = 0x0E,
|
||||
BT_IO_DDR_P2_MENU_RIGHT = 0x0F,
|
||||
BT_IO_DDR_P2_MENU_UP = 0x02,
|
||||
BT_IO_DDR_P2_MENU_DOWN = 0x03,
|
||||
|
||||
BT_IO_DDR_P1_START = 0x10,
|
||||
BT_IO_DDR_P1_UP = 0x11,
|
||||
BT_IO_DDR_P1_DOWN = 0x12,
|
||||
BT_IO_DDR_P1_LEFT = 0x13,
|
||||
BT_IO_DDR_P1_RIGHT = 0x14,
|
||||
BT_IO_DDR_P1_MENU_LEFT = 0x16,
|
||||
BT_IO_DDR_P1_MENU_RIGHT = 0x17,
|
||||
BT_IO_DDR_P1_MENU_UP = 0x00,
|
||||
BT_IO_DDR_P1_MENU_DOWN = 0x01,
|
||||
} bt_io_ddr_pad_bit_t;
|
||||
|
||||
// see the functions below for more information
|
||||
|
||||
typedef enum bt_io_ddr_p3io_light_bit {
|
||||
BT_IO_DDR_P3IO_LIGHT_P1_MENU = 0x00,
|
||||
BT_IO_DDR_P3IO_LIGHT_P2_MENU = 0x01,
|
||||
BT_IO_DDR_P3IO_LIGHT_P2_LOWER_LAMP = 0x04,
|
||||
BT_IO_DDR_P3IO_LIGHT_P2_UPPER_LAMP = 0x05,
|
||||
BT_IO_DDR_P3IO_LIGHT_P1_LOWER_LAMP = 0x06,
|
||||
BT_IO_DDR_P3IO_LIGHT_P1_UPPER_LAMP = 0x07,
|
||||
} bt_io_ddr_p3io_light_bit_t;
|
||||
|
||||
typedef enum bt_io_ddr_hdxs_light_bit {
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_START = 0x08,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_UP_DOWN = 0x09,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_LEFT_RIGHT = 0x0A,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_START = 0x0B,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_UP_DOWN = 0x0C,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_LEFT_RIGHT = 0x0D,
|
||||
} bt_io_ddr_hdxs_light_bit_t;
|
||||
|
||||
// the indexing starts from 0x20 if you're looking in geninput
|
||||
typedef enum bt_io_ddr_hdxs_rgb_light_idx {
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_SPEAKER_F_R = 0x00,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_SPEAKER_F_G = 0x01,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_SPEAKER_F_B = 0x02,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_SPEAKER_F_R = 0x03,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_SPEAKER_F_G = 0x04,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_SPEAKER_F_B = 0x05,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_SPEAKER_W_R = 0x06,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_SPEAKER_W_G = 0x07,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P1_SPEAKER_W_B = 0x08,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_SPEAKER_W_R = 0x09,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_SPEAKER_W_G = 0x0A,
|
||||
BT_IO_DDR_HDXS_LIGHT_HD_P2_SPEAKER_W_B = 0x0B,
|
||||
} bt_io_ddr_hdxs_rgb_light_idx_t;
|
||||
|
||||
typedef enum bt_io_ddr_extio_light_bit {
|
||||
BT_IO_DDR_EXTIO_LIGHT_NEONS = 0x0E,
|
||||
|
||||
BT_IO_DDR_EXTIO_LIGHT_P2_RIGHT = 0x13,
|
||||
BT_IO_DDR_EXTIO_LIGHT_P2_LEFT = 0x14,
|
||||
BT_IO_DDR_EXTIO_LIGHT_P2_DOWN = 0x15,
|
||||
BT_IO_DDR_EXTIO_LIGHT_P2_UP = 0x16,
|
||||
|
||||
BT_IO_DDR_EXTIO_LIGHT_P1_RIGHT = 0x1B,
|
||||
BT_IO_DDR_EXTIO_LIGHT_P1_LEFT = 0x1C,
|
||||
BT_IO_DDR_EXTIO_LIGHT_P1_DOWN = 0x1D,
|
||||
BT_IO_DDR_EXTIO_LIGHT_P1_UP = 0x1E
|
||||
} bt_io_ddr_extio_light_bit_t;
|
||||
|
||||
typedef bool (*bt_io_ddr_init_t)();
|
||||
typedef void (*bt_io_ddr_fini_t)();
|
||||
typedef uint32_t (*bt_io_ddr_pad_read_t)();
|
||||
typedef void (*bt_io_ddr_extio_lights_set_t)(uint32_t extio_lights);
|
||||
typedef void (*bt_io_ddr_p3io_lights_set_t)(uint32_t p3io_lights);
|
||||
typedef void (*bt_io_ddr_hdxs_lights_panel_set_t)(uint32_t hdxs_lights);
|
||||
typedef void (*bt_io_ddr_hdxs_lights_rgb_set_t)(uint8_t idx, uint8_t r, uint8_t g, uint8_t b);
|
||||
|
||||
typedef struct bt_io_ddr_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_ddr_init_t init;
|
||||
bt_io_ddr_fini_t fini;
|
||||
bt_io_ddr_pad_read_t pad_read;
|
||||
bt_io_ddr_extio_lights_set_t extio_lights_set;
|
||||
bt_io_ddr_p3io_lights_set_t p3io_lights_set;
|
||||
bt_io_ddr_hdxs_lights_panel_set_t hdxs_lights_panel_set;
|
||||
bt_io_ddr_hdxs_lights_rgb_set_t hdxs_lights_rgb_set;
|
||||
} v1;
|
||||
} bt_io_ddr_api_t;
|
||||
|
||||
#endif
|
88
src/api/io/eam.h
Normal file
88
src/api/io/eam.h
Normal file
@ -0,0 +1,88 @@
|
||||
#ifndef BT_API_IO_EAM_H
|
||||
#define BT_API_IO_EAM_H
|
||||
|
||||
/* Card reader emulator API. You may replace the stock EAMIO.DLL supplied by
|
||||
Bemanitools with your own custom implementation, which should implement the
|
||||
interface contract defined in this header file. */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* Scan codes for the so-called "10 key" button panel on each card reader. Each
|
||||
scan code corresponds to a bit position within the 16-bit bitfield that you
|
||||
return from eam_io_get_keypad_state(). */
|
||||
|
||||
typedef enum bt_io_eam_keypad_scan_code {
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_0 = 0,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_1 = 1,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_4 = 2,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_7 = 3,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_00 = 4,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_2 = 5,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_5 = 6,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_8 = 7,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_DECIMAL = 8,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_3 = 9,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_6 = 10,
|
||||
BT_IO_EAM_KEYPAD_SCAN_CODE_9 = 11,
|
||||
|
||||
BT_IO_EAM_KEYPAD_COUNT = 12, /* Not an actual scan code */
|
||||
} bt_io_eam_keypad_scan_code_t;
|
||||
|
||||
/* Emulating the sensors of a slotted card reader. The reader has one
|
||||
sensor at the front that detects if a card is getting inserted or
|
||||
if the card is not fully removed. When the back sensor is triggered
|
||||
the card is locked in the slot and its data is read. */
|
||||
|
||||
typedef enum bt_io_eam_sensor_state {
|
||||
BT_IO_EAM_SENSOR_STATE_FRONT = 0,
|
||||
BT_IO_EAM_SENSOR_STATE_BACK = 1,
|
||||
} bt_io_eam_sensor_state_t;
|
||||
|
||||
/* Different commands for the (slotted) reader. The game triggers one
|
||||
of these actions and the card slot as to execute it. When non-slotted
|
||||
readers are emulated, these states are not used/set. */
|
||||
|
||||
typedef enum bt_io_eam_card_slot_cmd {
|
||||
BT_IO_EAM_CARD_SLOT_CMD_CLOSE = 0,
|
||||
BT_IO_EAM_CARD_SLOT_CMD_OPEN = 1,
|
||||
BT_IO_EAM_CARD_SLOT_CMD_EJECT = 2,
|
||||
BT_IO_EAM_CARD_SLOT_CMD_READ = 3,
|
||||
} bt_io_eam_card_slot_cmd_t;
|
||||
|
||||
/* Emulating of the card type for new readers. */
|
||||
|
||||
typedef enum bt_io_eam_read_card_result {
|
||||
BT_IO_EAM_READ_CARD_RESULT_NONE = 0,
|
||||
BT_IO_EAM_READ_CARD_RESULT_ISO15696 = 1,
|
||||
BT_IO_EAM_READ_CARD_RESULT_FELICA = 2,
|
||||
} bt_io_eam_read_card_result_t;
|
||||
|
||||
typedef struct bt_io_eam_config_api bt_io_eam_config_api_t;
|
||||
|
||||
typedef bool (*bt_io_eam_init_t)();
|
||||
typedef void (*bt_io_eam_fini_t)();
|
||||
typedef uint16_t (*bt_io_eam_keypad_state_get_t)(uint8_t unit_no);
|
||||
typedef uint8_t (*bt_io_eam_sensor_state_get_t)(uint8_t unit_no);
|
||||
typedef uint8_t (*bt_io_eam_card_read_t)(uint8_t unit_no, uint8_t *card_id, uint8_t nbytes);
|
||||
typedef bool (*bt_io_eam_card_slot_cmd_send_t)(uint8_t unit_no, uint8_t cmd);
|
||||
typedef bool (*bt_io_eam_poll_t)(uint8_t unit_no);
|
||||
typedef const bt_io_eam_config_api_t *(*bt_io_eam_config_api_get_t)();
|
||||
|
||||
typedef struct bt_io_eam_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_eam_init_t init;
|
||||
bt_io_eam_fini_t fini;
|
||||
bt_io_eam_keypad_state_get_t keypad_state_get;
|
||||
bt_io_eam_sensor_state_get_t sensor_state_get;
|
||||
bt_io_eam_card_read_t card_read;
|
||||
bt_io_eam_card_slot_cmd_send_t card_slot_cmd_send;
|
||||
bt_io_eam_poll_t poll;
|
||||
bt_io_eam_config_api_get_t config_api_get;
|
||||
} v1;
|
||||
} bt_io_eam_api_t;
|
||||
|
||||
#endif
|
122
src/api/io/iidx.h
Normal file
122
src/api/io/iidx.h
Normal file
@ -0,0 +1,122 @@
|
||||
#ifndef BT_API_IO_IIDX_H
|
||||
#define BT_API_IO_IIDX_H
|
||||
|
||||
/* IO emulation provider for beatmania IIDX. */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* Bit mapping for the "pad" word */
|
||||
|
||||
typedef enum bt_io_iidx_sys_bit {
|
||||
BT_IO_IIDX_SYS_TEST = 0x00,
|
||||
BT_IO_IIDX_SYS_SERVICE = 0x01,
|
||||
BT_IO_IIDX_SYS_COIN = 0x02
|
||||
} bt_io_iidx_sys_bit_t;
|
||||
|
||||
typedef enum bt_io_iidx_panel_bit {
|
||||
BT_IO_IIDX_PANEL_P1_START = 0x00,
|
||||
BT_IO_IIDX_PANEL_P2_START = 0x01,
|
||||
BT_IO_IIDX_PANEL_VEFX = 0x02,
|
||||
BT_IO_IIDX_PANEL_EFFECT = 0x03
|
||||
} bt_io_iidx_panel_bit_t;
|
||||
|
||||
typedef enum bt_io_iidx_key_bit {
|
||||
BT_IO_IIDX_KEY_P1_1 = 0x00,
|
||||
BT_IO_IIDX_KEY_P1_2 = 0x01,
|
||||
BT_IO_IIDX_KEY_P1_3 = 0x02,
|
||||
BT_IO_IIDX_KEY_P1_4 = 0x03,
|
||||
BT_IO_IIDX_KEY_P1_5 = 0x04,
|
||||
BT_IO_IIDX_KEY_P1_6 = 0x05,
|
||||
BT_IO_IIDX_KEY_P1_7 = 0x06,
|
||||
|
||||
BT_IO_IIDX_KEY_P2_1 = 0x07,
|
||||
BT_IO_IIDX_KEY_P2_2 = 0x08,
|
||||
BT_IO_IIDX_KEY_P2_3 = 0x09,
|
||||
BT_IO_IIDX_KEY_P2_4 = 0x0A,
|
||||
BT_IO_IIDX_KEY_P2_5 = 0x0B,
|
||||
BT_IO_IIDX_KEY_P2_6 = 0x0C,
|
||||
BT_IO_IIDX_KEY_P2_7 = 0x0D
|
||||
} bt_io_iidx_key_bit_t;
|
||||
|
||||
/* Bit mapping for the P1 and P2 deck lights */
|
||||
|
||||
typedef enum bt_io_iidx_deck_light {
|
||||
BT_IO_IIDX_DECK_LIGHT_P1_1 = 0,
|
||||
BT_IO_IIDX_DECK_LIGHT_P1_2 = 1,
|
||||
BT_IO_IIDX_DECK_LIGHT_P1_3 = 2,
|
||||
BT_IO_IIDX_DECK_LIGHT_P1_4 = 3,
|
||||
BT_IO_IIDX_DECK_LIGHT_P1_5 = 4,
|
||||
BT_IO_IIDX_DECK_LIGHT_P1_6 = 5,
|
||||
BT_IO_IIDX_DECK_LIGHT_P1_7 = 6,
|
||||
|
||||
BT_IO_IIDX_DECK_LIGHT_P2_1 = 8,
|
||||
BT_IO_IIDX_DECK_LIGHT_P2_2 = 9,
|
||||
BT_IO_IIDX_DECK_LIGHT_P2_3 = 10,
|
||||
BT_IO_IIDX_DECK_LIGHT_P2_4 = 11,
|
||||
BT_IO_IIDX_DECK_LIGHT_P2_5 = 12,
|
||||
BT_IO_IIDX_DECK_LIGHT_P2_6 = 13,
|
||||
BT_IO_IIDX_DECK_LIGHT_P2_7 = 14,
|
||||
} bt_io_iidx_deck_light_t;
|
||||
|
||||
/* Bit mapping for the front panel lights */
|
||||
|
||||
typedef enum bt_io_iidx_panel_light {
|
||||
BT_IO_IIDX_PANEL_LIGHT_P1_START = 0,
|
||||
BT_IO_IIDX_PANEL_LIGHT_P2_START = 1,
|
||||
BT_IO_IIDX_PANEL_LIGHT_VEFX = 2,
|
||||
BT_IO_IIDX_PANEL_LIGHT_EFFECT = 3,
|
||||
} bt_io_iidx_panel_light_t;
|
||||
|
||||
/* Bit mapping for the top lamps from left to right when facing cabinet screen
|
||||
*/
|
||||
|
||||
typedef enum bt_io_iidx_top_lamp {
|
||||
BT_IO_IIDX_TOP_LAMP_LEFT_BLUE = 0,
|
||||
BT_IO_IIDX_TOP_LAMP_LEFT_GREEN = 1,
|
||||
BT_IO_IIDX_TOP_LAMP_LEFT_YELLOW = 2,
|
||||
BT_IO_IIDX_TOP_LAMP_LEFT_RED = 3,
|
||||
BT_IO_IIDX_TOP_LAMP_RIGHT_BLUE = 4,
|
||||
BT_IO_IIDX_TOP_LAMP_RIGHT_GREEN = 5,
|
||||
BT_IO_IIDX_TOP_LAMP_RIGHT_YELLOW = 6,
|
||||
BT_IO_IIDX_TOP_LAMP_RIGHT_RED = 7,
|
||||
} bt_io_iidx_top_lamp_t;
|
||||
|
||||
typedef bool (*bt_io_iidx_init_t)();
|
||||
typedef void (*bt_io_iidx_fini_t)();
|
||||
typedef void (*bt_io_iidx_ep1_deck_lights_set_t)(uint16_t deck_lights);
|
||||
typedef void (*bt_io_iidx_ep1_panel_lights_set_t)(uint8_t panel_lights);
|
||||
typedef void (*bt_io_iidx_ep1_top_lamps_set_t)(uint8_t top_lamps);
|
||||
typedef void (*bt_io_iidx_ep1_top_neons_set_t)(bool top_neons);
|
||||
typedef bool (*bt_io_iidx_ep1_send_t)();
|
||||
typedef bool (*bt_io_iidx_ep2_recv_t)();
|
||||
typedef uint8_t (*bt_io_iidx_ep2_turntable_get_t)(uint8_t player_no);
|
||||
typedef uint8_t (*bt_io_iidx_ep2_slider_get_t)(uint8_t slider_no);
|
||||
typedef uint8_t (*bt_io_iidx_ep2_sys_get_t)();
|
||||
typedef uint8_t (*bt_io_iidx_ep2_panel_get_t)();
|
||||
typedef uint16_t (*bt_io_iidx_ep2_keys_get_t)();
|
||||
typedef bool (*bt_io_iidx_ep3_16seg_send_t)(const char *text);
|
||||
|
||||
typedef struct bt_io_iidx_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_iidx_init_t init;
|
||||
bt_io_iidx_fini_t fini;
|
||||
bt_io_iidx_ep1_deck_lights_set_t ep1_deck_lights_set;
|
||||
bt_io_iidx_ep1_panel_lights_set_t ep1_panel_lights_set;
|
||||
bt_io_iidx_ep1_top_lamps_set_t ep1_top_lamps_set;
|
||||
bt_io_iidx_ep1_top_neons_set_t ep1_top_neons_set;
|
||||
bt_io_iidx_ep1_send_t ep1_send;
|
||||
bt_io_iidx_ep2_recv_t ep2_recv;
|
||||
bt_io_iidx_ep2_turntable_get_t ep2_turntable_get;
|
||||
bt_io_iidx_ep2_slider_get_t ep2_slider_get;
|
||||
bt_io_iidx_ep2_sys_get_t ep2_sys_get;
|
||||
bt_io_iidx_ep2_panel_get_t ep2_panel_get;
|
||||
bt_io_iidx_ep2_keys_get_t ep2_keys_get;
|
||||
bt_io_iidx_ep3_16seg_send_t ep3_16seg_send;
|
||||
} v1;
|
||||
} bt_io_iidx_api_t;
|
||||
|
||||
#endif
|
85
src/api/io/jb.h
Normal file
85
src/api/io/jb.h
Normal file
@ -0,0 +1,85 @@
|
||||
#ifndef BT_API_IO_JB_H
|
||||
#define BT_API_IO_JB_H
|
||||
|
||||
/* IO emulation provider for jubeat. */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* input bit mappings. Panels on the controller are
|
||||
panel 1 top left corner down to panel 16 bottom right corner */
|
||||
typedef enum bt_io_jb_panel_bit {
|
||||
BT_IO_JB_PANEL_01 = 0x00,
|
||||
BT_IO_JB_PANEL_02 = 0x01,
|
||||
BT_IO_JB_PANEL_03 = 0x02,
|
||||
BT_IO_JB_PANEL_04 = 0x03,
|
||||
BT_IO_JB_PANEL_05 = 0x04,
|
||||
BT_IO_JB_PANEL_06 = 0x05,
|
||||
BT_IO_JB_PANEL_07 = 0x06,
|
||||
BT_IO_JB_PANEL_08 = 0x07,
|
||||
BT_IO_JB_PANEL_09 = 0x08,
|
||||
BT_IO_JB_PANEL_10 = 0x09,
|
||||
BT_IO_JB_PANEL_11 = 0x0A,
|
||||
BT_IO_JB_PANEL_12 = 0x0B,
|
||||
BT_IO_JB_PANEL_13 = 0x0C,
|
||||
BT_IO_JB_PANEL_14 = 0x0D,
|
||||
BT_IO_JB_PANEL_15 = 0x0E,
|
||||
BT_IO_JB_PANEL_16 = 0x0F,
|
||||
} bt_io_jb_panel_bit_t;
|
||||
|
||||
/* input "single button mode" mappings. Allows you to check each corner of each
|
||||
button to determine any flaky inputs
|
||||
*/
|
||||
typedef enum bt_io_jb_panel_mode {
|
||||
BT_IO_JB_PANEL_MODE_ALL = 0, // any of the four corners will trigger a panel
|
||||
BT_IO_JB_PANEL_MODE_TOP_LEFT = 1,
|
||||
BT_IO_JB_PANEL_MODE_TOP_RIGHT = 2,
|
||||
BT_IO_JB_PANEL_MODE_BOTTOM_RIGHT = 3,
|
||||
BT_IO_JB_PANEL_MODE_BOTTOM_LEFT = 4,
|
||||
} bt_io_jb_panel_mode_t;
|
||||
|
||||
/* Bit mappings for "system" inputs */
|
||||
typedef enum bt_io_jb_sys_bit {
|
||||
BT_IO_JB_SYS_TEST = 0x00,
|
||||
BT_IO_JB_SYS_SERVICE = 0x01,
|
||||
BT_IO_JB_SYS_COIN = 0x02,
|
||||
} bt_io_jb_sys_bit_t;
|
||||
|
||||
/* RGB led units to address */
|
||||
typedef enum bt_io_jb_rgb_led {
|
||||
BT_IO_JB_RGB_LED_FRONT = 0,
|
||||
BT_IO_JB_RGB_LED_TOP = 1,
|
||||
BT_IO_JB_RGB_LED_LEFT = 2,
|
||||
BT_IO_JB_RGB_LED_RIGHT = 3,
|
||||
BT_IO_JB_RGB_LED_TITLE = 4,
|
||||
BT_IO_JB_RGB_LED_WOOFER = 5
|
||||
} bt_io_jb_rgb_led_t;
|
||||
|
||||
typedef bool (*bt_io_jb_init_t)();
|
||||
typedef void (*bt_io_jb_fini_t)();
|
||||
typedef bool (*bt_io_jb_inputs_read_t)();
|
||||
typedef uint8_t (*bt_io_jb_sys_inputs_get_t)();
|
||||
typedef uint16_t (*bt_io_jb_panel_inputs_get_t)();
|
||||
typedef void (*bt_io_jb_rgb_led_set_t)(bt_io_jb_rgb_led_t unit, uint8_t r, uint8_t g, uint8_t b);
|
||||
typedef bool (*bt_io_jb_lights_write_t)();
|
||||
typedef bool (*bt_io_jb_panel_mode_set_t)(bt_io_jb_panel_mode_t mode);
|
||||
typedef bool (*bt_io_jb_coin_blocker_set_t)(bool blocked);
|
||||
|
||||
typedef struct bt_io_jb_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_jb_init_t init;
|
||||
bt_io_jb_fini_t fini;
|
||||
bt_io_jb_inputs_read_t inputs_read;
|
||||
bt_io_jb_sys_inputs_get_t sys_inputs_get;
|
||||
bt_io_jb_panel_inputs_get_t panel_inputs_get;
|
||||
bt_io_jb_rgb_led_set_t rgb_led_set;
|
||||
bt_io_jb_lights_write_t lights_write;
|
||||
bt_io_jb_panel_mode_set_t panel_mode_set;
|
||||
bt_io_jb_coin_blocker_set_t coin_blocker_set;
|
||||
} v1;
|
||||
} bt_io_jb_api_t;
|
||||
|
||||
#endif
|
80
src/api/io/popn.h
Normal file
80
src/api/io/popn.h
Normal file
@ -0,0 +1,80 @@
|
||||
#ifndef BT_API_IO_POPN_H
|
||||
#define BT_API_IO_POPN_H
|
||||
|
||||
/* IO emulation provider for pop'n music. */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/* Bit mapping for the "buttons" word */
|
||||
|
||||
typedef enum bt_io_popn_sys_bit {
|
||||
BT_IO_POPN_SYS_SERVICE = 0x06,
|
||||
BT_IO_POPN_SYS_TEST = 0x07,
|
||||
} bt_io_popn_sys_bit_t;
|
||||
|
||||
typedef enum bt_io_popn_button_bit {
|
||||
BT_IO_POPN_BUTTON_1 = 0x08,
|
||||
BT_IO_POPN_BUTTON_2 = 0x09,
|
||||
BT_IO_POPN_BUTTON_3 = 0x0a,
|
||||
BT_IO_POPN_BUTTON_4 = 0x0b,
|
||||
BT_IO_POPN_BUTTON_5 = 0x0c,
|
||||
BT_IO_POPN_BUTTON_6 = 0x0d,
|
||||
BT_IO_POPN_BUTTON_7 = 0x0e,
|
||||
BT_IO_POPN_BUTTON_8 = 0x0f,
|
||||
BT_IO_POPN_BUTTON_9 = 0x10,
|
||||
} bt_io_popn_button_bit_t;
|
||||
|
||||
typedef enum bt_io_popn_light_top_lamp_bit {
|
||||
BT_IO_POPN_LIGHT_HI_LAMP1 = 0x00,
|
||||
BT_IO_POPN_LIGHT_HI_LAMP2 = 0x01,
|
||||
BT_IO_POPN_LIGHT_HI_LAMP3 = 0x02,
|
||||
BT_IO_POPN_LIGHT_HI_LAMP4 = 0x03,
|
||||
BT_IO_POPN_LIGHT_HI_LAMP5 = 0x04,
|
||||
} bt_io_popn_light_top_lamp_bit_t;
|
||||
|
||||
typedef enum bt_io_popn_light_side_lamp_bit {
|
||||
BT_IO_POPN_LIGHT_LEFT_LAMP1 = 0x00,
|
||||
BT_IO_POPN_LIGHT_LEFT_LAMP2 = 0x01,
|
||||
BT_IO_POPN_LIGHT_RIGHT_LAMP1 = 0x02,
|
||||
BT_IO_POPN_LIGHT_RIGHT_LAMP2 = 0x03,
|
||||
} bt_io_popn_light_side_lamp_bit_t;
|
||||
|
||||
typedef enum bt_io_popn_light_switch_lamp_bit {
|
||||
BT_IO_POPN_LIGHT_SW_LAMP1 = 0x00, // Is actually 4 bits wide
|
||||
BT_IO_POPN_LIGHT_SW_LAMP2 = 0x04,
|
||||
BT_IO_POPN_LIGHT_SW_LAMP3 = 0x05,
|
||||
BT_IO_POPN_LIGHT_SW_LAMP4 = 0x06,
|
||||
BT_IO_POPN_LIGHT_SW_LAMP5 = 0x07,
|
||||
BT_IO_POPN_LIGHT_SW_LAMP6 = 0x08,
|
||||
BT_IO_POPN_LIGHT_SW_LAMP7 = 0x09,
|
||||
BT_IO_POPN_LIGHT_SW_LAMP8 = 0x0a,
|
||||
BT_IO_POPN_LIGHT_SW_LAMP9 = 0x0b,
|
||||
} bt_io_popn_light_switch_lamp_bit_t;
|
||||
|
||||
typedef bool (*bt_io_popn_init_t)();
|
||||
typedef void (*bt_io_popn_fini_t)();
|
||||
typedef uint32_t (*bt_io_popn_buttons_get_t)();
|
||||
typedef void (*bt_io_popn_top_lights_set_t)(uint32_t lights);
|
||||
typedef void (*bt_io_popn_side_lights_set_t)(uint32_t lights);
|
||||
typedef void (*bt_io_popn_button_lights_set_t)(uint32_t lights);
|
||||
typedef void (*bt_io_popn_coin_blocker_light_set_t)(bool enabled);
|
||||
typedef void (*bt_io_popn_coin_counter_light_set_t)(bool enabled);
|
||||
|
||||
typedef struct bt_io_popn_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_popn_init_t init;
|
||||
bt_io_popn_fini_t fini;
|
||||
bt_io_popn_buttons_get_t buttons_get;
|
||||
bt_io_popn_top_lights_set_t top_lights_set;
|
||||
bt_io_popn_side_lights_set_t side_lights_set;
|
||||
bt_io_popn_button_lights_set_t button_lights_set;
|
||||
bt_io_popn_coin_blocker_light_set_t coin_blocker_light_set;
|
||||
bt_io_popn_coin_counter_light_set_t coin_counter_light_set;
|
||||
} v1;
|
||||
} bt_io_popn_api_t;
|
||||
|
||||
#endif
|
70
src/api/io/sdvx.h
Normal file
70
src/api/io/sdvx.h
Normal file
@ -0,0 +1,70 @@
|
||||
#ifndef BT_API_IO_SDVX_H
|
||||
#define BT_API_IO_SDVX_H
|
||||
|
||||
/* IO emulation provider for SOUND VOLTEX */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef enum bt_io_sdvx_in_gpio_sys_bit {
|
||||
BT_IO_SDVX_IN_GPIO_SYS_COIN = 2,
|
||||
BT_IO_SDVX_IN_GPIO_SYS_SERVICE = 4,
|
||||
BT_IO_SDVX_IN_GPIO_SYS_TEST = 5,
|
||||
} bt_io_sdvx_in_gpio_sys_bit_t;
|
||||
|
||||
typedef enum bt_io_sdvx_in_gpio_0_bit {
|
||||
BT_IO_SDVX_IN_GPIO_0_C = 0,
|
||||
BT_IO_SDVX_IN_GPIO_0_B = 1,
|
||||
BT_IO_SDVX_IN_GPIO_0_A = 2,
|
||||
BT_IO_SDVX_IN_GPIO_0_START = 3,
|
||||
BT_IO_SDVX_IN_GPIO_0_RECORDER = 4,
|
||||
BT_IO_SDVX_IN_GPIO_0_HEADPHONE = 5,
|
||||
} bt_io_sdvx_in_gpio_0_bit_t;
|
||||
|
||||
typedef enum bt_io_sdvx_in_gpio_1_bit {
|
||||
BT_IO_SDVX_IN_GPIO_1_FX_R = 3,
|
||||
BT_IO_SDVX_IN_GPIO_1_FX_L = 4,
|
||||
BT_IO_SDVX_IN_GPIO_1_D = 5,
|
||||
} bt_io_sdvx_in_gpio_1_bit_t;
|
||||
|
||||
typedef enum bt_io_sdvx_out_gpio_bit {
|
||||
BT_IO_SDVX_OUT_GPIO_D = 0,
|
||||
BT_IO_SDVX_OUT_GPIO_FX_L = 1,
|
||||
BT_IO_SDVX_OUT_GPIO_FX_R = 2,
|
||||
BT_IO_SDVX_OUT_GPIO_GENERATOR_B = 3,
|
||||
BT_IO_SDVX_OUT_GPIO_START = 12,
|
||||
BT_IO_SDVX_OUT_GPIO_A = 13,
|
||||
BT_IO_SDVX_OUT_GPIO_B = 14,
|
||||
BT_IO_SDVX_OUT_GPIO_C = 15,
|
||||
} bt_io_sdvx_out_gpio_bit_t;
|
||||
|
||||
typedef bool (*bt_io_sdvx_init_t)();
|
||||
typedef void (*bt_io_sdvx_fini_t)();
|
||||
typedef void (*bt_io_sdvx_gpio_lights_set_t)(uint32_t gpio_lights);
|
||||
typedef void (*bt_io_sdvx_pwm_light_set_t)(uint8_t light_no, uint8_t intensity);
|
||||
typedef bool (*bt_io_sdvx_output_write_t)();
|
||||
typedef bool (*bt_io_sdvx_input_read_t)();
|
||||
typedef uint8_t (*bt_io_sdvx_input_gpio_sys_get_t)();
|
||||
typedef uint16_t (*bt_io_sdvx_input_gpio_get_t)(uint8_t gpio_bank);
|
||||
typedef uint16_t (*bt_io_sdvx_spinner_pos_get_t)(uint8_t spinner_no);
|
||||
typedef bool (*bt_io_sdvx_amp_volume_set_t)(uint8_t primary, uint8_t headphone, uint8_t subwoofer);
|
||||
|
||||
typedef struct bt_io_sdvx_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_sdvx_init_t init;
|
||||
bt_io_sdvx_fini_t fini;
|
||||
bt_io_sdvx_gpio_lights_set_t gpio_lights_set;
|
||||
bt_io_sdvx_pwm_light_set_t pwm_light_set;
|
||||
bt_io_sdvx_output_write_t output_write;
|
||||
bt_io_sdvx_input_read_t input_read;
|
||||
bt_io_sdvx_input_gpio_sys_get_t input_gpio_sys_get;
|
||||
bt_io_sdvx_input_gpio_get_t input_gpio_get;
|
||||
bt_io_sdvx_spinner_pos_get_t spinner_pos_get;
|
||||
bt_io_sdvx_amp_volume_set_t amp_volume_set;
|
||||
} v1;
|
||||
} bt_io_sdvx_api_t;
|
||||
|
||||
#endif
|
28
src/api/io/vefx.h
Normal file
28
src/api/io/vefx.h
Normal file
@ -0,0 +1,28 @@
|
||||
#ifndef BT_API_IO_VEFX_H
|
||||
#define BT_API_IO_VEFX_H
|
||||
|
||||
/* IO emulation provider for beatmania IIDX Effector Panel. */
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef bool (*bt_io_vefx_init_t)();
|
||||
typedef void (*bt_io_vefx_fini_t)();
|
||||
typedef bool (*bt_io_vefx_recv_t)(uint64_t *ppad);
|
||||
typedef uint8_t (*bt_io_vefx_slider_get_t)(uint8_t slider_no);
|
||||
typedef bool (*bt_io_vefx_16seg_send_t)(const char *text);
|
||||
|
||||
typedef struct bt_io_vefx_api {
|
||||
uint16_t version;
|
||||
|
||||
struct {
|
||||
// Required to be implemented
|
||||
bt_io_vefx_init_t init;
|
||||
bt_io_vefx_fini_t fini;
|
||||
bt_io_vefx_recv_t recv;
|
||||
bt_io_vefx_slider_get_t slider_get;
|
||||
bt_io_vefx_16seg_send_t _16seg_send;
|
||||
} v1;
|
||||
} bt_io_vefx_api_t;
|
||||
|
||||
#endif
|
@ -1,31 +0,0 @@
|
||||
#ifndef BEMANITOOLS_API_THREAD_H
|
||||
#define BEMANITOOLS_API_THREAD_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __GNUC__
|
||||
/* Bemanitools is compiled with GCC (MinGW, specifically) as of version 5 */
|
||||
#define LOG_CHECK_FMT __attribute__((format(printf, 2, 3)))
|
||||
#else
|
||||
/* Compile it out for MSVC plebs */
|
||||
#define LOG_CHECK_FMT
|
||||
#endif
|
||||
|
||||
/* An AVS-style logger function. Comes in four flavors: misc, info, warning,
|
||||
and fatal, with increasing severity. Fatal loggers do not return, they
|
||||
abort the running process after writing their message to the log.
|
||||
|
||||
"module" is an arbitrary short string identifying the source of the log
|
||||
message. The name of the calling DLL is a good default choice for this
|
||||
string, although you might want to identify a module within your DLL here
|
||||
instead.
|
||||
|
||||
"fmt" is a printf-style format string. Depending on the context in which
|
||||
your DLL is running you might end up calling a logger function exported
|
||||
from libavs, which has its own printf implementation (including a number of
|
||||
proprietary extensions), so don't use any overly exotic formats. */
|
||||
|
||||
typedef void (*btapi_log_formatter_t)(const char *module, const char *fmt, ...)
|
||||
LOG_CHECK_FMT;
|
||||
|
||||
#endif
|
@ -1,20 +0,0 @@
|
||||
#ifndef BEMANITOOLS_API_THREAD_H
|
||||
#define BEMANITOOLS_API_THREAD_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* An API for spawning threads. This API is defined by libavs, although
|
||||
Bemanitools itself may supply compatible implementations of these functions
|
||||
to your DLL, depending on the context in which it runs.
|
||||
|
||||
NOTE: You may only use the logging functions from a thread where Bemanitools
|
||||
calls you, or a thread that you create using this API. Failure to observe
|
||||
this restriction will cause the process to crash. This is a limitation of
|
||||
libavs itself, not Bemanitools. */
|
||||
|
||||
typedef int (*btapi_thread_create_t)(
|
||||
int (*proc)(void *), void *ctx, uint32_t stack_sz, unsigned int priority);
|
||||
typedef void (*btapi_thread_join_t)(int thread_id, int *result);
|
||||
typedef void (*btapi_thread_destroy_t)(int thread_id);
|
||||
|
||||
#endif
|
@ -142,7 +142,7 @@ typedef void (*avs_log_writer_t)(const char *chars, uint32_t nchars, void *ctx);
|
||||
typedef void (*avs_log_writer_t)(void *ctx, const char *chars, uint32_t nchars);
|
||||
#endif
|
||||
|
||||
typedef int (*avs_reader_t)(uint32_t context, void *bytes, size_t nbytes);
|
||||
typedef size_t (*avs_reader_t)(uint32_t context, void *bytes, size_t nbytes);
|
||||
|
||||
#if AVS_VERSION >= 1600
|
||||
/* "avs" and "std" heaps have been unified */
|
||||
@ -186,7 +186,7 @@ void avs_shutdown(void);
|
||||
typedef uint32_t avs_desc;
|
||||
typedef int avs_error;
|
||||
|
||||
#define AVS_IS_ERROR(x) x < 0
|
||||
#define AVS_IS_ERROR(x) ((avs_error) x) < 0
|
||||
|
||||
void log_body_fatal(const char *module, const char *fmt, ...);
|
||||
void log_body_info(const char *module, const char *fmt, ...);
|
||||
@ -223,12 +223,12 @@ void property_destroy(struct property *prop);
|
||||
avs_error property_get_error(struct property *prop);
|
||||
void property_clear_error(struct property *prop);
|
||||
|
||||
int property_psmap_import(
|
||||
avs_error property_psmap_import(
|
||||
struct property *prop,
|
||||
struct property_node *root,
|
||||
void *dest,
|
||||
const struct property_psmap *psmap);
|
||||
int property_psmap_export(
|
||||
avs_error property_psmap_export(
|
||||
struct property *prop,
|
||||
struct property_node *root,
|
||||
const void *src,
|
||||
@ -254,7 +254,7 @@ int property_node_refer(
|
||||
enum property_type type,
|
||||
void *bytes,
|
||||
uint32_t nbytes);
|
||||
void property_node_remove(struct property_node *node);
|
||||
avs_error property_node_remove(struct property_node *node);
|
||||
enum property_type property_node_type(struct property_node *node);
|
||||
struct property_node *property_node_traversal(
|
||||
struct property_node *node, enum property_node_traversal direction);
|
||||
@ -315,7 +315,7 @@ enum avs_seek_origin {
|
||||
|
||||
avs_desc avs_fs_open(const char *path, uint16_t mode, int flags);
|
||||
int avs_fs_close(avs_desc desc);
|
||||
size_t avs_fs_read(avs_desc desc, char *buf, uint32_t sz);
|
||||
size_t avs_fs_read(avs_desc desc, void *buf, size_t sz);
|
||||
int avs_fs_lseek(avs_desc desc, long pos, int whence);
|
||||
int avs_fs_lstat(const char *path, struct avs_stat *st);
|
||||
int avs_fs_copy(const char *src, const char *dest);
|
||||
|
@ -26,8 +26,8 @@ EXPORTS
|
||||
property_desc_to_buffer @246 NONAME
|
||||
property_destroy @247 NONAME
|
||||
property_insert_read @255 NONAME
|
||||
property_clear_error @573 NONAME
|
||||
property_get_error @573 NONAME
|
||||
property_clear_error @244 NONAME
|
||||
property_get_error @253 NONAME
|
||||
property_node_create @266 NONAME
|
||||
property_node_datasize @267 NONAME
|
||||
property_node_name @274 NONAME
|
||||
@ -35,8 +35,8 @@ EXPORTS
|
||||
property_node_refer @278 NONAME
|
||||
property_node_remove @279 NONAME
|
||||
property_node_type @282 NONAME
|
||||
property_node_clone @280 NONAME
|
||||
property_node_traversal @282 NONAME
|
||||
property_node_clone @265 NONAME
|
||||
property_node_traversal @281 NONAME
|
||||
property_node_refdata @277 NONAME
|
||||
property_query_size @290 NONAME
|
||||
property_psmap_import @288 NONAME
|
||||
|
@ -1,46 +1,46 @@
|
||||
LIBRARY libavs-win32
|
||||
|
||||
EXPORTS
|
||||
avs_boot @237 NONAME
|
||||
avs_fs_close @276 NONAME
|
||||
avs_fs_copy @283 NONAME
|
||||
avs_fs_lseek @16 NONAME
|
||||
avs_fs_lstat @97 NONAME
|
||||
avs_fs_open @178 NONAME
|
||||
avs_fs_read @306 NONAME
|
||||
avs_fs_opendir @216 NONAME
|
||||
avs_fs_readdir @130 NONAME
|
||||
avs_fs_closedir @131 NONAME
|
||||
avs_net_ctrl @15 NONAME
|
||||
avs_shutdown @333 NONAME
|
||||
avs_thread_create @183 NONAME
|
||||
avs_thread_destroy @76 NONAME
|
||||
avs_thread_exit @147 NONAME
|
||||
avs_thread_join @92 NONAME
|
||||
log_body_misc @44 NONAME
|
||||
log_body_info @339 NONAME
|
||||
log_body_warning @219 NONAME
|
||||
log_body_fatal @128 NONAME
|
||||
property_create @256 NONAME
|
||||
property_desc_to_buffer @201 NONAME
|
||||
property_destroy @264 NONAME
|
||||
property_insert_read @23 NONAME
|
||||
property_clear_error @573 NONAME
|
||||
property_get_error @573 NONAME
|
||||
property_node_create @316 NONAME
|
||||
property_node_datasize @249 NONAME
|
||||
property_node_name @255 NONAME
|
||||
property_node_read @2 NONAME
|
||||
property_node_refer @268 NONAME
|
||||
property_node_remove @129 NONAME
|
||||
property_node_type @329 NONAME
|
||||
property_node_clone @130 NONAME
|
||||
property_node_traversal @93 NONAME
|
||||
avs_boot @237 NONAME == XC058ba50000f4
|
||||
avs_fs_close @276 NONAME == XC058ba500011b
|
||||
avs_fs_copy @283 NONAME == XC058ba5000122
|
||||
avs_fs_lseek @16 NONAME == XC058ba500000f
|
||||
avs_fs_lstat @97 NONAME == XC058ba5000063
|
||||
avs_fs_open @178 NONAME == XC058ba50000b6
|
||||
avs_fs_read @306 NONAME == XC058ba5000139
|
||||
avs_fs_opendir @216 NONAME == XC058ba50000dd
|
||||
avs_fs_readdir @130 NONAME == XC058ba5000086
|
||||
avs_fs_closedir @131 NONAME == XC058ba5000087
|
||||
avs_net_ctrl @15 NONAME == XC058ba500000e
|
||||
avs_shutdown @333 NONAME == XC058ba5000154
|
||||
avs_thread_create @183 NONAME == XC058ba50000bb
|
||||
avs_thread_destroy @76 NONAME == XC058ba500004e
|
||||
avs_thread_exit @147 NONAME == XC058ba5000097
|
||||
avs_thread_join @92 NONAME == XC058ba500005e
|
||||
log_body_misc @44 NONAME == XC058ba500002d
|
||||
log_body_info @339 NONAME == XC058ba500015a
|
||||
log_body_warning @219 NONAME == XC058ba50000e1
|
||||
log_body_fatal @128 NONAME == XC058ba5000084
|
||||
property_create @256 NONAME == XC058ba5000107
|
||||
property_desc_to_buffer @201 NONAME == XC058ba50000cd
|
||||
property_destroy @264 NONAME == XC058ba500010f
|
||||
property_insert_read @23 NONAME == XC058ba5000016
|
||||
property_clear_error @163 NONAME == XC058ba50000a7
|
||||
property_get_error @295 NONAME == XC058ba500012e
|
||||
property_node_create @316 NONAME == XC058ba5000143
|
||||
property_node_datasize @249 NONAME == XC058ba5000100
|
||||
property_node_name @255 NONAME == XC058ba5000106
|
||||
property_node_read @2 NONAME == XC058ba5000001
|
||||
property_node_refer @268 NONAME == XC058ba5000113
|
||||
property_node_remove @129 NONAME == XC058ba5000085
|
||||
property_node_type @329 NONAME == XC058ba5000150
|
||||
property_node_clone @252 NONAME == XC058ba5000103
|
||||
property_node_traversal @93 NONAME == XC058ba500005f
|
||||
property_node_refdata @330 NONAME == XC058ba5000151
|
||||
property_query_size @250 NONAME == XC058ba5000101
|
||||
property_psmap_import @102 NONAME
|
||||
property_psmap_export @110 NONAME
|
||||
property_read_query_memsize @100 NONAME
|
||||
property_search @244 NONAME
|
||||
std_getenv @226 NONAME
|
||||
std_setenv @114 NONAME
|
||||
property_psmap_import @102 NONAME == XC058ba5000068
|
||||
property_psmap_export @110 NONAME == XC058ba5000071
|
||||
property_read_query_memsize @100 NONAME == XC058ba5000066
|
||||
property_search @244 NONAME == XC058ba50000fb
|
||||
std_getenv @226 NONAME == XC058ba50000e8
|
||||
std_setenv @114 NONAME == XC058ba5000075
|
||||
|
@ -25,8 +25,8 @@ EXPORTS
|
||||
property_desc_to_buffer @201 NONAME == XC058ba50000cd
|
||||
property_destroy @264 NONAME == XC058ba500010f
|
||||
property_insert_read @23 NONAME == XC058ba5000016
|
||||
property_clear_error @573 NONAME
|
||||
property_get_error @573 NONAME
|
||||
property_clear_error @163 NONAME == XC058ba50000a7
|
||||
property_get_error @295 NONAME == XC058ba500012e
|
||||
property_node_create @316 NONAME == XC058ba5000143
|
||||
property_node_datasize @249 NONAME == XC058ba5000100
|
||||
property_node_name @255 NONAME == XC058ba5000106
|
||||
|
@ -6,8 +6,8 @@ EXPORTS
|
||||
avs_fs_lseek @59 NONAME
|
||||
avs_fs_lseek64 @60 NONAME
|
||||
avs_fs_lstat @79 NONAME
|
||||
avs_fs_open @58 NONAME
|
||||
avs_fs_read @61 NONAME
|
||||
avs_fs_open @58 NONAME == XCd229cc000090
|
||||
avs_fs_read @61 NONAME == XCd229cc00010d
|
||||
avs_fs_copy @81 NONAME
|
||||
avs_fs_opendir @72 NONAME == XCd229cc0000f0
|
||||
avs_fs_readdir @73 NONAME == XCd229cc0000bb
|
||||
@ -26,8 +26,8 @@ EXPORTS
|
||||
property_desc_to_buffer @129 NONAME
|
||||
property_destroy @128 NONAME
|
||||
property_insert_read @131 NONAME
|
||||
property_clear_error @573 NONAME
|
||||
property_get_error @573 NONAME
|
||||
property_clear_error @140 NONAME == XCd229cc00014b
|
||||
property_get_error @141 NONAME == XCd229cc0000b5
|
||||
property_node_create @145 NONAME
|
||||
property_node_name @150 NONAME
|
||||
property_node_read @154 NONAME == XCd229cc0000f3
|
||||
@ -41,7 +41,7 @@ EXPORTS
|
||||
property_query_size @142 NONAME == XCd229cc000032
|
||||
property_psmap_export @162 NONAME
|
||||
property_psmap_import @161 NONAME
|
||||
property_read_query_memsize @159 NONAME
|
||||
property_read_query_memsize @159 NONAME == XCd229cc0000ff
|
||||
property_search @144 NONAME
|
||||
std_getenv @207 NONAME
|
||||
std_setenv @208 NONAME
|
||||
|
@ -5,8 +5,8 @@ EXPORTS
|
||||
avs_fs_copy @81 NONAME
|
||||
avs_fs_lseek @59 NONAME
|
||||
avs_fs_lstat @79 NONAME
|
||||
avs_fs_open @58 NONAME
|
||||
avs_fs_read @61 NONAME
|
||||
avs_fs_open @58 NONAME == XCnbrep7000039
|
||||
avs_fs_read @61 NONAME == XCnbrep700003c
|
||||
avs_fs_opendir @72 NONAME == XCnbrep7000047
|
||||
avs_fs_readdir @73 NONAME == XCnbrep7000048
|
||||
avs_fs_closedir @74 NONAME == XCnbrep7000049
|
||||
@ -19,8 +19,8 @@ EXPORTS
|
||||
property_destroy @125 NONAME
|
||||
property_desc_to_buffer @126 NONAME
|
||||
property_insert_read @128 NONAME
|
||||
property_clear_error @573 NONAME
|
||||
property_get_error @573 NONAME
|
||||
property_clear_error @137 NONAME == XCnbrep7000088
|
||||
property_get_error @138 NONAME == XCnbrep7000089
|
||||
property_search @141 NONAME
|
||||
property_node_create @142 NONAME
|
||||
property_node_name @147 NONAME == XCnbrep7000092
|
||||
|
11
src/main/acio-mgr/Module.mk
Normal file
11
src/main/acio-mgr/Module.mk
Normal file
@ -0,0 +1,11 @@
|
||||
dlls += acio-mgr
|
||||
|
||||
libs_acio-mgr := \
|
||||
aciodrv \
|
||||
iface-core \
|
||||
core \
|
||||
util \
|
||||
|
||||
src_acio-mgr := \
|
||||
dllmain.c \
|
||||
mgr.c \
|
20
src/main/acio-mgr/acio-mgr.def
Normal file
20
src/main/acio-mgr/acio-mgr.def
Normal file
@ -0,0 +1,20 @@
|
||||
LIBRARY acio-mgr
|
||||
|
||||
EXPORTS
|
||||
; Bemanitools 6 API
|
||||
bt_module_core_log_api_set
|
||||
bt_module_acio_mgr_api_get
|
||||
|
||||
; Not exporting as these are called in DllMain
|
||||
; bt_acio_mgr_init
|
||||
; bt_acio_mgr_fini
|
||||
DllMain@12 @1 NONAME
|
||||
|
||||
; Direct API
|
||||
bt_acio_mgr_port_init
|
||||
bt_acio_mgr_port_fini
|
||||
bt_acio_mgr_node_count_get
|
||||
bt_acio_mgr_node_product_ident_get
|
||||
bt_acio_mgr_port_packet_submit
|
||||
bt_acio_mgr_port_checkout
|
||||
bt_acio_mgr_port_checkin
|
@ -1,15 +1,15 @@
|
||||
#include <windows.h>
|
||||
|
||||
#include "manager-init.h"
|
||||
#include "acio-mgr/internal.h"
|
||||
|
||||
BOOL WINAPI DllMain(HMODULE self, DWORD reason, void *ctx)
|
||||
{
|
||||
if (reason == DLL_PROCESS_ATTACH) {
|
||||
_aciomgr_init();
|
||||
bt_acio_mgr_init();
|
||||
}
|
||||
|
||||
if (reason == DLL_PROCESS_DETACH) {
|
||||
_aciomgr_fini();
|
||||
bt_acio_mgr_fini();
|
||||
}
|
||||
|
||||
return TRUE;
|
7
src/main/acio-mgr/internal.h
Normal file
7
src/main/acio-mgr/internal.h
Normal file
@ -0,0 +1,7 @@
|
||||
#ifndef ACIO_MGR_INTERNAL_T
|
||||
#define ACIO_MGR_INTERNAL_T
|
||||
|
||||
void bt_acio_mgr_init();
|
||||
void bt_acio_mgr_fini();
|
||||
|
||||
#endif
|
@ -4,40 +4,43 @@
|
||||
|
||||
#include <stdatomic.h>
|
||||
|
||||
#include "aciomgr/manager-init.h"
|
||||
#include "aciomgr/manager.h"
|
||||
|
||||
#include "acio/acio.h"
|
||||
|
||||
#include "aciodrv/device.h"
|
||||
|
||||
#include "core/log.h"
|
||||
#include "acio-mgr/internal.h"
|
||||
|
||||
#include "api/core/log.h"
|
||||
|
||||
#include "iface-core/log.h"
|
||||
|
||||
#include "sdk/module/acio/mgr.h"
|
||||
#include "sdk/module/core/log.h"
|
||||
|
||||
#include "util/array.h"
|
||||
|
||||
#define MAX_PORT_PATH_LENGTH 256
|
||||
|
||||
struct aciomgr_port_dispatcher {
|
||||
typedef struct bt_acio_mgr_port_dispatcher {
|
||||
CRITICAL_SECTION cs;
|
||||
atomic_size_t references;
|
||||
struct aciodrv_device_ctx *device;
|
||||
char path[MAX_PORT_PATH_LENGTH];
|
||||
int baud;
|
||||
bool has_failure;
|
||||
};
|
||||
} bt_acio_mgr_port_dispatcher_t;
|
||||
|
||||
static void _aciomgr_setup_port_dispatcher(
|
||||
struct aciomgr_port_dispatcher *dispatcher, const char *path, int baud);
|
||||
static void _bt_acio_mgr_setup_port_dispatcher(
|
||||
bt_acio_mgr_port_dispatcher_t *dispatcher, const char *path, int baud);
|
||||
static void
|
||||
_aciomgr_destroy_port_dispatcher(struct aciomgr_port_dispatcher *dispatcher);
|
||||
_bt_acio_mgr_destroy_port_dispatcher(bt_acio_mgr_port_dispatcher_t *dispatcher);
|
||||
|
||||
// DLL-globals
|
||||
static atomic_bool running;
|
||||
static CRITICAL_SECTION mgr_cs;
|
||||
static struct array active_ports;
|
||||
|
||||
static void _aciomgr_setup_port_dispatcher(
|
||||
struct aciomgr_port_dispatcher *dispatcher, const char *path, int baud)
|
||||
static void _bt_acio_mgr_setup_port_dispatcher(
|
||||
bt_acio_mgr_port_dispatcher_t *dispatcher, const char *path, int baud)
|
||||
{
|
||||
InitializeCriticalSection(&dispatcher->cs);
|
||||
|
||||
@ -56,17 +59,17 @@ static void _aciomgr_setup_port_dispatcher(
|
||||
}
|
||||
|
||||
static void
|
||||
_aciomgr_destroy_port_dispatcher(struct aciomgr_port_dispatcher *dispatcher)
|
||||
_bt_acio_mgr_destroy_port_dispatcher(bt_acio_mgr_port_dispatcher_t *dispatcher)
|
||||
{
|
||||
aciodrv_device_close(dispatcher->device);
|
||||
DeleteCriticalSection(&dispatcher->cs);
|
||||
}
|
||||
|
||||
void _aciomgr_init()
|
||||
void bt_acio_mgr_init()
|
||||
{
|
||||
if (running) {
|
||||
log_warning("_aciomgr_init called when already running");
|
||||
_aciomgr_fini();
|
||||
bt_acio_mgr_fini();
|
||||
}
|
||||
InitializeCriticalSection(&mgr_cs);
|
||||
array_init(&active_ports);
|
||||
@ -74,7 +77,7 @@ void _aciomgr_init()
|
||||
running = true;
|
||||
}
|
||||
|
||||
void _aciomgr_fini()
|
||||
void bt_acio_mgr_fini()
|
||||
{
|
||||
if (!running) {
|
||||
log_warning("_aciomgr_fini called when not running");
|
||||
@ -85,16 +88,8 @@ void _aciomgr_fini()
|
||||
array_fini(&active_ports);
|
||||
}
|
||||
|
||||
void aciomgr_set_loggers(
|
||||
log_formatter_t misc,
|
||||
log_formatter_t info,
|
||||
log_formatter_t warning,
|
||||
log_formatter_t fatal)
|
||||
{
|
||||
core_log_impl_set(misc, warning, info, fatal);
|
||||
}
|
||||
|
||||
struct aciomgr_port_dispatcher *aciomgr_port_init(const char *path, int baud)
|
||||
bt_acio_mgr_port_dispatcher_t *
|
||||
bt_acio_mgr_port_init(const char *path, uint32_t baud)
|
||||
{
|
||||
if (!running) {
|
||||
log_warning("aciomgr_port_init: called when not running");
|
||||
@ -106,12 +101,12 @@ struct aciomgr_port_dispatcher *aciomgr_port_init(const char *path, int baud)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct aciomgr_port_dispatcher *entry;
|
||||
bt_acio_mgr_port_dispatcher_t *entry;
|
||||
|
||||
EnterCriticalSection(&mgr_cs);
|
||||
|
||||
for (size_t i = 0; i < active_ports.nitems; i++) {
|
||||
entry = array_item(struct aciomgr_port_dispatcher, &active_ports, i);
|
||||
entry = array_item(bt_acio_mgr_port_dispatcher_t, &active_ports, i);
|
||||
|
||||
if (strcmp(entry->path, path) == 0) {
|
||||
// found
|
||||
@ -126,8 +121,8 @@ struct aciomgr_port_dispatcher *aciomgr_port_init(const char *path, int baud)
|
||||
}
|
||||
}
|
||||
|
||||
entry = array_append(struct aciomgr_port_dispatcher, &active_ports);
|
||||
_aciomgr_setup_port_dispatcher(entry, path, baud);
|
||||
entry = array_append(bt_acio_mgr_port_dispatcher_t, &active_ports);
|
||||
_bt_acio_mgr_setup_port_dispatcher(entry, path, baud);
|
||||
|
||||
done:
|
||||
if (!entry->has_failure) {
|
||||
@ -143,7 +138,7 @@ done:
|
||||
return entry;
|
||||
}
|
||||
|
||||
void aciomgr_port_fini(struct aciomgr_port_dispatcher *dispatcher)
|
||||
void bt_acio_mgr_port_fini(bt_acio_mgr_port_dispatcher_t *dispatcher)
|
||||
{
|
||||
if (!running) {
|
||||
log_warning("aciomgr_port_fini: called when not running");
|
||||
@ -155,30 +150,31 @@ void aciomgr_port_fini(struct aciomgr_port_dispatcher *dispatcher)
|
||||
LeaveCriticalSection(&mgr_cs);
|
||||
|
||||
if (dispatcher->references == 0) {
|
||||
_aciomgr_destroy_port_dispatcher(dispatcher);
|
||||
_bt_acio_mgr_destroy_port_dispatcher(dispatcher);
|
||||
}
|
||||
}
|
||||
|
||||
// this function don't require the lock
|
||||
uint8_t aciomgr_get_node_count(struct aciomgr_port_dispatcher *dispatcher)
|
||||
uint8_t
|
||||
bt_acio_mgr_node_count_get(const bt_acio_mgr_port_dispatcher_t *dispatcher)
|
||||
{
|
||||
return aciodrv_device_get_node_count(dispatcher->device);
|
||||
}
|
||||
|
||||
// this function don't require the lock
|
||||
bool aciomgr_get_node_product_ident(
|
||||
struct aciomgr_port_dispatcher *dispatcher,
|
||||
bool bt_acio_mgr_node_product_ident_get(
|
||||
const bt_acio_mgr_port_dispatcher_t *dispatcher,
|
||||
uint8_t node_id,
|
||||
char product[ACIOMGR_NODE_PRODUCT_CODE_LEN])
|
||||
char product[BT_ACIO_MGR_NODE_PRODUCT_CODE_LEN])
|
||||
{
|
||||
return aciodrv_device_get_node_product_ident(
|
||||
dispatcher->device, node_id, product);
|
||||
}
|
||||
|
||||
bool aciomgr_port_submit_packet(
|
||||
struct aciomgr_port_dispatcher *dispatcher,
|
||||
struct ac_io_message *msg,
|
||||
int max_resp_size)
|
||||
bool bt_acio_mgr_port_packet_submit(
|
||||
bt_acio_mgr_port_dispatcher_t *dispatcher,
|
||||
bt_acio_message_t *msg,
|
||||
uint32_t max_resp_size)
|
||||
{
|
||||
// CS's although lightweight, may still be a burden, short circuit
|
||||
if (dispatcher->references > 1) {
|
||||
@ -192,8 +188,8 @@ bool aciomgr_port_submit_packet(
|
||||
return aciodrv_send_and_recv(dispatcher->device, msg, max_resp_size);
|
||||
}
|
||||
|
||||
struct aciodrv_device_ctx *
|
||||
aciomgr_port_checkout(struct aciomgr_port_dispatcher *dispatcher)
|
||||
bt_acio_drv_device_ctx_t *
|
||||
bt_acio_mgr_port_checkout(bt_acio_mgr_port_dispatcher_t *dispatcher)
|
||||
{
|
||||
if (dispatcher->references > 1) {
|
||||
EnterCriticalSection(&dispatcher->cs);
|
||||
@ -202,9 +198,27 @@ aciomgr_port_checkout(struct aciomgr_port_dispatcher *dispatcher)
|
||||
return dispatcher->device;
|
||||
}
|
||||
|
||||
void aciomgr_port_checkin(struct aciomgr_port_dispatcher *dispatcher)
|
||||
void bt_acio_mgr_port_checkin(bt_acio_mgr_port_dispatcher_t *dispatcher)
|
||||
{
|
||||
if (dispatcher->references > 1) {
|
||||
LeaveCriticalSection(&dispatcher->cs);
|
||||
}
|
||||
}
|
||||
|
||||
void bt_module_core_log_api_set(const bt_core_log_api_t *api)
|
||||
{
|
||||
bt_core_log_api_set(api);
|
||||
}
|
||||
|
||||
void bt_module_acio_mgr_api_get(bt_acio_mgr_api_t *api)
|
||||
{
|
||||
api->version = 1;
|
||||
|
||||
api->v1.port_init = bt_acio_mgr_port_init;
|
||||
api->v1.port_fini = bt_acio_mgr_port_fini;
|
||||
api->v1.node_count_get = bt_acio_mgr_node_count_get;
|
||||
api->v1.node_product_ident_get = bt_acio_mgr_node_product_ident_get;
|
||||
api->v1.port_packet_submit = bt_acio_mgr_port_packet_submit;
|
||||
api->v1.port_checkout = bt_acio_mgr_port_checkout;
|
||||
api->v1.port_checkin = bt_acio_mgr_port_checkin;
|
||||
}
|
@ -5,9 +5,8 @@
|
||||
#include "aciodrv/device.h"
|
||||
#include "aciodrv/panb.h"
|
||||
|
||||
#include "core/thread.h"
|
||||
|
||||
#include "core/log.h"
|
||||
#include "iface-core/log.h"
|
||||
#include "iface-core/thread.h"
|
||||
|
||||
static int auto_poll_proc(void *auto_poll_param);
|
||||
static int auto_poll_threadid;
|
||||
@ -41,6 +40,8 @@ static int auto_poll_proc(void *param)
|
||||
|
||||
bool aciodrv_proc_panb_init(struct aciodrv_device_ctx *device)
|
||||
{
|
||||
bt_core_thread_result_t result;
|
||||
|
||||
log_assert(device);
|
||||
|
||||
if (!aciodrv_panb_start_auto_input(device, 0, AC_IO_PANB_NUM_NODES)) {
|
||||
@ -50,8 +51,10 @@ bool aciodrv_proc_panb_init(struct aciodrv_device_ctx *device)
|
||||
auto_poll_stop = false;
|
||||
InitializeCriticalSection(&keypair_lock);
|
||||
InitializeCriticalSection(&auto_poll_stop_lock);
|
||||
auto_poll_threadid =
|
||||
core_thread_create(auto_poll_proc, (void *) device, 0x4000, 0);
|
||||
|
||||
result = bt_core_thread_create(
|
||||
auto_poll_proc, (void *) device, 0x4000, 0, &auto_poll_threadid);
|
||||
bt_core_thread_fatal_on_error(result);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -77,12 +80,17 @@ bool aciodrv_proc_panb_get_state(uint8_t *button_state)
|
||||
|
||||
void aciodrv_proc_panb_fini(struct aciodrv_device_ctx *device)
|
||||
{
|
||||
bt_core_thread_result_t result;
|
||||
|
||||
EnterCriticalSection(&auto_poll_stop_lock);
|
||||
auto_poll_stop = true;
|
||||
LeaveCriticalSection(&auto_poll_stop_lock);
|
||||
|
||||
core_thread_join(auto_poll_threadid, NULL);
|
||||
core_thread_destroy(auto_poll_threadid);
|
||||
result = bt_core_thread_join(auto_poll_threadid, NULL);
|
||||
bt_core_thread_fatal_on_error(result);
|
||||
|
||||
result = bt_core_thread_destroy(auto_poll_threadid);
|
||||
bt_core_thread_fatal_on_error(result);
|
||||
|
||||
DeleteCriticalSection(&keypair_lock);
|
||||
DeleteCriticalSection(&auto_poll_stop_lock);
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include "aciodrv/port.h"
|
||||
|
||||
#include "core/log.h"
|
||||
#include "iface-core/log.h"
|
||||
|
||||
#include "util/hex.h"
|
||||
#include "util/mem.h"
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include "aciodrv/device.h"
|
||||
|
||||
#include "core/log.h"
|
||||
#include "iface-core/log.h"
|
||||
|
||||
bool aciodrv_h44b_init(struct aciodrv_device_ctx *device, uint8_t node_id)
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "aciodrv/device.h"
|
||||
#include "aciodrv/icca.h"
|
||||
|
||||
#include "core/log.h"
|
||||
#include "iface-core/log.h"
|
||||
|
||||
static bool aciodrv_icca_queue_loop_start(
|
||||
struct aciodrv_device_ctx *device, uint8_t node_id)
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include "aciodrv/device.h"
|
||||
|
||||
#include "core/log.h"
|
||||
#include "iface-core/log.h"
|
||||
|
||||
static bool
|
||||
aciodrv_kfca_watchdog_start(struct aciodrv_device_ctx *device, uint8_t node_id)
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "aciodrv/device.h"
|
||||
#include "aciodrv/panb.h"
|
||||
|
||||
#include "core/log.h"
|
||||
#include "iface-core/log.h"
|
||||
|
||||
bool aciodrv_panb_start_auto_input(
|
||||
struct aciodrv_device_ctx *device, uint8_t node_id, uint8_t node_count)
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#include "core/log.h"
|
||||
#include "iface-core/log.h"
|
||||
|
||||
HANDLE aciodrv_port_open(const char *port_path, int baud)
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user