Compare commits

..

525 Commits

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Overall, this refactored foundation is expected to
support future developments and removes known
limitations at the current scale of bemanitools such as:
- Reducing boiler plate code across hooks
- Interop of bemanitools and AVS (and setting the foundation
  for addressing currently missing interop, e.g. for
  dealing with property structures without AVS)
- Addressing performance issues in the logging engine
  due to incorrect interop with AVS
2024-02-25 09:36:53 +01:00
icex2
2d4d5fa535 feat(avs-util): Add helper to translate property errors 2024-02-25 09:36:24 +01:00
icex2
e81bd6f9cd fix(avs): Incorrect function signature
After getting doubts, I looked this one up again on the
assembly. The decompiled output confused me
and no actual value is being returned there.
2024-02-25 09:35:30 +01:00
icex2
a4b3f92935 feat(avs): Add property get and clear error functions
Use these to improve error handling by allowing
one to provide additional error information on
property related operations.
2024-02-25 09:23:02 +01:00
icex2
6a98ce1f59 feat(dev): Add a separate docker dev container
Improve the development experience by providing
an additional docker container that can be started
and used as an interactive development environment.
It provides all the tools and a stable environment
for building (identical to the build container).
2024-02-25 09:14:59 +01:00
icex2
5833197b03 fix(hook): Add missing hook_table_revert impl
Allow hooks to cleanup when they are shut down.
2024-02-25 09:09:12 +01:00
icex2
7ee9a2e219 fix(dist): Incorrect versioning for ddr distribution packages
Apparently forgotten to get updated to reflect the
currently supported versions correctly.
2024-02-25 08:52:00 +01:00
icex2
ce1a004bf6 fix(ddr): Add missing distribution files for 17 and 18
Even they are identical to 16, stick to the current scheme
of copy-pasting them.
2024-02-03 10:29:10 +01:00
icex2
e72e38eda2 chore: Fix ordering of files in module.mk 2024-02-03 10:28:42 +01:00
icex2
e71373e718 fix(doc): Update list of supported ddr versions
Apparently also forgotten to reflect currently
supported games.
2024-01-31 22:47:14 +01:00
icex2
44cd2ba098 fix(dist): Incorrect versioning for ddr distribution packages
Apparently forgotten to get updated to reflect the
currently supported versions correctly.
2024-01-31 22:47:14 +01:00
icex2
f17a2d2044 feat/fix(avs/ddr): Support AVS 2.13.06
This one was missing and is the actual correct
version used for ddr-13. 2.13.04 was compatible,
thus far, but there isn't any guarantee that they
are actually 100% compatible (only konmai knows...).
2024-01-31 22:47:14 +01:00
icex2
42f09417a0 feat(avs imports): Add lib export definitions of new AVS API functions
Add all functions and their respective ordinals (and mangled names for
documentation purpose) to all currently used AVS version.
2024-01-31 22:47:14 +01:00
icex2
dc16844bbb feat(avs-api): Various improvements
* Improve psmap types, taken from a private
  eamuse server backend which had more complete
  mappings.
* Move psmap terminator to enum
* AVS error type: Supports improving
  expressiveness of the API interface
* Add more property node related functions

Add more AVS file system related functions

These were previously missing and are required for
various file system related tasks such as iterating
directory trees, reading and writing files through
the AVS file system for the upcoming launcher
rework.

Note that the AVS API broke with some mode flags
after version 2.13.06.
2024-01-31 22:47:14 +01:00
icex2
4fedf34d6b feat: Add new module to scope avs related "utility" stuff
Use this to share helpers or other extensions to the
original avs API across modules.

Start with including error codes to readable strings
to improve velocity on AVS API error analysis.
2024-01-31 22:47:14 +01:00
icex2
06317d63e7 feat(util): Add func to check if running as admin user
This has been a source of common error in the past.
It is known that most, or even all, games run into
various issues when not run with elevated privileges.
2024-01-31 22:47:14 +01:00
icex2
e2a6410461 chore: Apply code formatting 2024-01-31 22:47:14 +01:00
icex2
0a29e031ff chore: Apply formatting to all markdown docs 2024-01-31 22:20:51 +01:00
icex2
0897a25174 feat(dev): Add markdown document formatting
Apply a consistent style across all markdown documents.
Use mdformat (https://github.com/executablebooks/mdformat)
to achieve that. Improves maintainability and readability.
2024-01-31 22:20:51 +01:00
icex2
6efbf71c30 chore: Bump version to 5.49 to start next development cycle 2024-01-31 22:19:32 +01:00
icex2
e1008576ce chore: Update changelog for release 2024-01-31 21:52:05 +01:00
icex2
f41cdba8b8 chore: Bump version to 5.48 to start next development cycle 2024-01-31 21:42:14 +01:00
ahnada
1379c1e11b New filename (without version string) for the new save files 2024-01-31 21:40:22 +01:00
ahnada
d1525a98dd Mapper serialization versioning
Add a "BTMD" FOURCC + version in the beginning of the mapper data file.
Is backwards compatible with the current data format.
2024-01-31 21:40:22 +01:00
ahnada
329d6a80a3 Properly save/load the new analog invert option 2024-01-31 21:40:22 +01:00
ahnada
f37f216c69 Add invert analog input option 2024-01-31 21:40:22 +01:00
icex2
bdf493d2fb chore: Update changelog for 5.47 release 2024-01-29 22:08:28 +01:00
icex2
bec007d52a fix(p3ioemu): Incorrect dispatching of unknown p3io commands
Using ddrhook1, this caused DDR X to crash on startup when the
P3io client sends the currently unknown command 2B. Handling it
with the incorrect p3io command struct, any following reading
attempts from the P3IO by the game fail.

Handle the 2B case explicitly with a generic response that worked
previously before the restructuring of the code. Apply the same
to any further unknown commands with improved logging warning
about this.
2023-11-30 20:33:36 +01:00
icex2
a177913bd6 fix(p3io): Off-by-one error on assert
Buffers are allowed to have the exact size as the max defined
P3IO buffer size. Cutting it short by one byte causes this
to fail incorrectly when using the pure raw buffer structure
2023-11-30 20:33:36 +01:00
ahnada
0fdde8b32d Allow generic HID devices with broken(?) outputs to still work as inputs.
Fixes Sony DualShock 4 not working
2023-11-13 21:35:28 +01:00
ahnada
09b3a6c24a Fix incorrect SetupDiGetClassDevs error checking 2023-11-13 19:37:29 +01:00
icex2
f8b2f5f40d chore: Bump version to 5.47 to start next development cycle 2023-11-03 15:48:04 +01:00
icex2
882a3557c9 chore(doc): Fix release process notes
Update outdated references and improve some phrasing
2023-11-03 15:46:11 +01:00
icex2
2454141cab chore: Housekeeping, remove dead link, fix description 2023-11-03 15:46:11 +01:00
icex2
4b740c13e8 chore: Remove obsolete gitlab-ci yaml
Repository is not on gitlab anymore, left over
from migration
2023-11-03 15:46:11 +01:00
icex2
ec4e81d9d3 chore: Update changelog 2023-11-03 15:46:11 +01:00
icex2
9a964e6bdb doc: Add info/instructions regarding ddrio-async 2023-11-03 15:46:11 +01:00
icex2
9b2ed6910e feat: ddrio-async wrapper/shim driver for async IO
Wrapper/shim library to drive another ddrio in a dedicated
IO thread. Depending on the other ddrio backend used, this
can significantly improve performance while staying
compatible to the existing ddrio API interface

This turned out to be a good solution to solve performance
problems when running MAME with ddrio-p3io that is
(currently) implemented with synchronous IO calls that are
very costly: ~12 ms for a write over the ACIO protocol, ~4 ms
for a read using an IOCTL. As this already adds up to nearly
a full frame (60 fps) regarding latency, there isn't a lot
of time left to do other stuff in a synchronous update loop.
MAME's performance was unstable and dropped all the time below
100%. The result was a choppy gameplay experience.

Combining ddrio-async with ddrio-p3io, the combined backend
is able to drive inputs/outputs at a rate of ~250hz = ~4
updates per frame. This results in an average input latency
of ~4 ms which is as good as it can get with the p3io
hardware's performance limitations that I measured (see
the 4 ms for the IOCTL mentioned above).

This is more than good enough as as update frequency of
the 573 hardware is slightly less than that (I got told
something ~180 hz?).

tl;dr: Gameplay on MAME is great, smooth frame rate, IO feels
amazing and responsive.
2023-11-03 15:46:11 +01:00
Will Toohey
82343d8cf1 Fix missing xml for jb04. Fixes booting Ave. 2023-10-18 23:29:19 +02:00
Will Toohey
c0101cb614 Fix missing xml for jb03. Closes #258. 2023-10-18 23:29:19 +02:00
Will Toohey
820036087d Revert "Make roundplug PCBID/EAMID verification fail a hard error"
This reverts commit 67de6639ef.
2023-10-18 23:29:19 +02:00
Will Toohey
ebd80d3749 Make roundplug PCBID/EAMID verification fail a hard error
This was previously a soft error, and also said "reverting to default"
without actually doing so. We should be forcing correct format.
2023-10-18 23:29:19 +02:00
Will Toohey
3bff7f8a5e jbhook1: If gfx.vertical is set, rotate error messages too
By hooking CreateProcessA, we can adjust the commandline to
disable any rotation, which displays the error box at the correct
place on screen (no additional x/y adjustment is needed)
2023-10-18 23:29:19 +02:00
Will Toohey
9ce47e7050 jbhook1: More effectively setup avs boot config
The NVRAM redirection was silently failing because the prop
delete/recreate pair didn't work. This just recreates the entire
config from scratch instead, which guarantees success every time.
By making the NVRAM type "fs", we also make it easier to debug
any issues that people may have.
2023-10-18 23:29:19 +02:00
MatryoshkaLJY
13c87eaf8d feat: Add bi2a-iidx support for aciotest (#263) 2023-10-18 23:06:10 +02:00
icex2
f8d394e124 chore: Bump version to 5.46 to start next development cycle 2023-10-18 01:24:15 +02:00
icex2
09080f7ae2 chore: Update changelog for 5.45 release 2023-10-18 01:09:46 +02:00
icex2
e673cf694f feat(iidx): Support iidx 30 2023-10-18 01:09:45 +02:00
Will Toohey
9afb28a759 acio: Add BIOB and BI2B identifiers 2023-10-09 19:11:37 +02:00
Will Toohey
2920e2b2cf Update BIO2 IIDX emulation to support watchdog poll 2023-10-09 19:11:37 +02:00
icex2
5c08e966d9 doc: Update documentation for various tools and ddrio added 2023-06-25 13:24:07 +02:00
icex2
6be7bdc403 chore(module.mk): Add various ddr related IO tools 2023-06-25 13:24:07 +02:00
icex2
20c6e46a71 feat(ddriotest): Add driotest tool to test ddrio API implementations 2023-06-25 13:24:07 +02:00
icex2
d7c4128a28 doc(dev/journal): Add notes when working on the P3IO driver 2023-06-25 13:24:07 +02:00
icex2
0961bae99f feat(ddrio-p3io): Add ddrio API implementation for DDR P3IO
Also includes EXTIO. Run a SD style cabinet with bemanitools
ddrio API.
2023-06-25 13:24:07 +02:00
icex2
3a89502498 feat(p3io-ddr-tool): CLI tool to test and debug a real DDR P3IO
Extensive tool with subcommands to trigger the various
P3IO commands and run the P3IO + EXTIO DDR hardware
combo with a hardware test menu.
2023-06-25 13:24:07 +02:00
icex2
23ca366f78 chore(module.mk): Add extio related sub-projects 2023-06-25 13:24:07 +02:00
icex2
ec374ec291 feat(extiotest): Add testing tool for real EXTIO devices
A small but helpful tool to run a quick functional test
of a real EXTIO device connected to the target machine.
2023-06-25 13:24:07 +02:00
icex2
db2d71e13c feat(extiodrv): Add (DDR) EXTIO driver
Initial version that supports the most important
features to operate a DDR SD cabinet with all
inputs and outputs working.

Note that the individual sensor cycling modes are
currently broken. The driver will always set the
sensor read mode to all for now.
2023-06-25 13:24:07 +02:00
icex2
2bbbfccd13 feat(extio): Add EXTIO command data structures
Reverse engineered from a real EXTIO device, open-io
project as further reference
2023-06-25 13:24:07 +02:00
icex2
c22ec4fcff feat(p3iodrv): Add DDR compatible P3IO driver
Initial version that supports the most important
features to operate all inputs and outputs of a
DDR SD cabinet.
2023-06-25 13:24:07 +02:00
icex2
1a86cc7ee5 feat(p3io/ddr): Add data structures for DDR P3IO data
Reverse engineered using a real P3IO DDR IO board and
the DDR 16 game binary for additional reference
2023-06-25 13:24:07 +02:00
icex2
069981ef63 refactor(unicorntail): Adjust to p3io command structure changes 2023-06-25 13:24:07 +02:00
icex2
4c3febfcad refactor(p3ioemu/emu): Adjust to command structure changes
Various structures were improved, some slightly changed
even. Behavior/functionality expected to be identical.
2023-06-25 13:24:07 +02:00
icex2
7d9b837463 refactor(p3ioemu/uart): Adjust to command structure changes 2023-06-25 13:24:07 +02:00
icex2
c5bba84940 refactor(p3io/cmd): Add and improve p3io command helper functions
With the overhaul of commands, some helpers needed tweaks while
new ones were added to abstract p3io command details with a
common interface, e.g. dealing with the command length field.
2023-06-25 13:24:07 +02:00
icex2
5ef190f0af feat(p3io/cmd): Overhaul based on real P3IO DDR hardware tests
Using a real DDR P3IO (Dragon PCB), the overall P3IO command
structures improved significantly. Added further notes about
unknown/unclear commands that were not derivable from the
DDR 18 game binary either.

Note that this module is also used by jubeat to some extend.
The initial design apparently assumed a greater overlap in
commands. This now seems less likely as many commands appear
to be DDR specific.

Refactoring/splitting this is a major effort that is not being
addressed here.
2023-06-25 13:24:07 +02:00
icex2
ed0ce2de35 refactor(p3io/frame): Lift magic numbers to macro
Aligns the code with other ACIO code where the
init and escape chars have proper macros to
improve readability
2023-06-25 13:24:07 +02:00
icex2
f2628a954c feat(util/iobuf): Improve log output
Output the full buffer and the buffer up to the
currently set position. Makes debugging a lot
easier if you know the position set is ok to
only look at the output up to there.

Otherwise, having the full view is also important
to check if data got truncated or checking for
odd looking "garbage" data.
2023-06-25 13:24:07 +02:00
icex2
96d7c4ed91 feat(util/log): Expose proper log level definition with enum
Internally, this was already used but it lacked a clean
public interface to set different log levels from the outside.

Useful for various command line tooling to implement verbosity
levels, e.g. -v, -vv, -vvv
2023-06-25 13:24:07 +02:00
Jeffrey Paine
3c185d5fde fix(iidx): Fix stretched BGAs in 9th and 10th style
This adds edge cases to the existing logic that checks the
vertex UV values to fix stretched BG videos on 11 to 17
already.

However, 9 and 10 also show this issue on modern GPU
hardware though it does not appear on all BG videos but
only on videos from 1st to 3rd style songs.

This commit addresses that issue by adding the missing
checks to the existing logic. Additional refactoring of
configuration naming etc. to match the extended
functionality is included.
2023-06-25 13:02:02 +02:00
Shiz
d3f192976c launcher: print build info at startup 2023-06-25 12:51:33 +02:00
Shiz
7d0c502c45 inject: mark version.c as volatile 2023-06-25 12:51:33 +02:00
Shiz
387dc046f4 build: add volatile_$module variable for targets that need to be always rebuilt 2023-06-25 12:51:33 +02:00
icex2
e40709ddf7 chore: Apply code formatting 2023-04-15 22:37:07 +02:00
icex2
bf83bd89e5 feat(doc/journal): Add dev notes about iidx HD era upscaling feature 2023-04-15 22:37:07 +02:00
icex2
9c9e554234 feat(iidx 20-26): Hook new "HD era scaling" module
Replace the old module, re-use the configuration for now to
avoid introducing breaking changes in the configuration API.

This can be further cleaned up, once the monolithic
iidxhook-util/d3d9 module is further broken up.
2023-04-15 22:37:07 +02:00
icex2
782a23db74 feat(iidx 20-26): New up-/downscaling gfx module, old one doesn't work
This replaces the scaling feature of iidxhook-util/d3d9 as the
game engine changed significantly that the old one is incompatible.

Create a new module because the logic to implement a scaling
feature is very different now. This also avoids further cluttering
the already badly overloaded old module.

The new module is light weight and "plugable" on a hooking
level. Further modules will follow to de-clutter the
iidxhook-util/d3d9 module
2023-04-15 22:37:07 +02:00
icex2
6ea099fd9e feat(d3d9-util): Add separate module for d3d9 utils/helpers
Currently includes:

* dx9 error formatting helpers. Turn error codes into readable
  text
* Vertex struct and helper function
2023-04-15 22:37:07 +02:00
icex2
6dea29ec6a feat(hook/d3d9): Support hooking of SetScissorRect 2023-04-15 22:37:07 +02:00
din
b864c0dcfd Feature: vigem driver for ddrio (#247)
Reads state of ddrio and updates vigem pads. Similar in vein to
viggem-sdvxio and vigem-iidxio

Useful for playing xinput related games with official hardware.
2023-04-11 18:04:36 +02:00
icex2
c4e77a9152 fix(workflow): Permission issues when creating releases on tagging 2023-04-11 00:29:06 +02:00
icex2
736c82975f chore(workflow): Improve workflow names
These show up on github under "Actions" and it should be possible
to tell them apart.
2023-04-11 00:29:06 +02:00
din
ecd598185b unicorn tail doc update 2023-04-11 00:16:07 +02:00
icex2
89efe0cc86 feat(dev): Add github build and release workflows 2023-04-10 23:55:20 +02:00
Jeffrey Paine
3249e70cc2 iidx25-29 - Fix settings description in config files
Co-authored-by: icex2 <icex2@users.noreply.github.com>
2023-04-10 21:44:52 +02:00
Jeffrey Paine
d54627c3fc iidx25-29 - Fix settings description in config files
Co-authored-by: icex2 <icex2@users.noreply.github.com>
2023-04-10 21:44:52 +02:00
Jeffrey Paine
be4b303ed7 iidx25-29 - Fix settings description in config files
Co-authored-by: icex2 <icex2@users.noreply.github.com>
2023-04-10 21:44:52 +02:00
Jeffrey Paine
d438cd320e iidx25-29 - Fix settings description in config files
Co-authored-by: icex2 <icex2@users.noreply.github.com>
2023-04-10 21:44:52 +02:00
Jeffrey Paine
4b23860f8c iidx28/29 - Add cam.disable_camera options to config files 2023-04-10 21:44:52 +02:00
Jeffrey Paine
3d36da6751 iidx28/29 - Add cam.disable_camera options to config files 2023-04-10 21:44:52 +02:00
Jeffrey Paine
9dd7a81033 iidx26 - Fix cam.disable_camera1 default 2023-04-10 21:44:52 +02:00
Jeffrey Paine
6eb415a9d7 iidx27 - Add cam.disable_cam options and align cam.disable_emu with 28/29 2023-04-10 21:44:52 +02:00
Jeffrey Paine
df9a617062 iidx25/26 - Add cam.disable_camera options to config files 2023-04-10 21:44:52 +02:00
Jeffrey Paine
11f670b5a1 iidx25/26 - Add cam.disable_camera options to config files 2023-04-10 21:44:52 +02:00
Jeffrey Paine
139c658d03 camhook: Add disable_camera options
Allow users to manually disable specific cameras
2023-04-10 21:44:52 +02:00
Jeffrey Paine
043906e353 camhook: Add disable_camera options
Allow users to manually disable specific cameras
2023-04-10 21:44:52 +02:00
Jeffrey Paine
c38ea64ea9 Update iidxhook-26.conf
Add info on new SKIP feature for cameras
2023-04-10 21:44:52 +02:00
Jeffrey Paine
cd7425a3b9 Update iidxhook-25.conf
Added instructions on the new SKIP feature for cameras
2023-04-10 21:44:52 +02:00
Jeffrey Paine
8fb42aff73 Update cam.c
The user can now set a custom camera device override of "SKIP" to leave that camera unassigned
2023-04-10 21:44:52 +02:00
Jeffrey Paine
fc052b2d7f Fix link to bemanitools-supplement to point to github instead of s-ul 2023-04-10 21:41:33 +02:00
Will Xyen
e9d24f7f90 camhook: fix convert_path_to_fakesym failing on some versions of mingw 2023-04-07 23:03:42 -07:00
icex2
64901bdb61 chore: Bump version to 5.45 to start next development cycle 2023-04-06 15:56:31 +02:00
icex2
52ff4927b4 chore: Update changelog for 5.44 release 2023-04-06 15:39:53 +02:00
icex2
d989e75488 feat(doc iidx15): Add crashinig on boot due to no backup data 2023-04-06 15:39:53 +02:00
icex2
b0564b97c6 chore: Apply code formatting to entire code base 2023-04-06 15:39:53 +02:00
icex2
47bfb4e9b2 chore(doc): Add dev journal about 10th style IO and security boot 2023-04-06 15:39:53 +02:00
icex2
5c4afb8a2a fix(iidx/config): Utilize io board type, fix 10th SQ-INIT error
Using the right combination of "flags", this addresses the
SQ-INIT error on 10th style as well as forces 10 to 13 into
using the D01 operation mode. The latter follows the approach that
14+ is also using the best/latest IO type supported (IO2 in that
case). Expecting that gameplay experience benefits from more
optimized/better maintained code paths.

Make 10 operate in D01 IO mode which forces security to using
the D01 dongle from a D01 dedicab setup. The alternative would
be using a C02 dongle from a C02 upgraded cabinet.

More details to follow in another commit with a dev journal
entry.
2023-04-06 15:39:53 +02:00
icex2
83ef8e2e9d chore(iidx): Wire-up ezusb configuration in iidxhook1 and 2
Make io board type for ezusb board configurable as well as allow
switching on/off additional ezusb debugging feature.
2023-04-06 15:39:53 +02:00
icex2
3a71a5047a feat(iidx/config): Expose ezusb specific configuration params
Useful (debugging) and required (io board type) for different
game versions
2023-04-06 15:39:53 +02:00
icex2
aaab9bfbfc feat(iidx/ezusb): Make iidx ezusb emu io board type configurable
Second part to fixing the 10th style SQ-INIT error. This has
cross-impact on the kind of security data the game expects.
Therefore, we need to expose the IO board type and make it
configurable like the security data for the different game
versions.

More details explained in a dev journal entry to following
in one of the next commits.
2023-04-06 15:39:53 +02:00
icex2
eab80455b2 fix(iidx/ezusb): ezusb does not have a white dongle
This is one part of fixing the 10th style SQ-INIT boot error.
For some reason, 10th style calls the "second dongle slot"
which, according to the code, is expected to return the same data
as the first (black) dongle slot. Original ezusb/C02/D01 IO boards
do not have a second dongle round plug slot nor ever came with
a splitter cable. I checked original manuals of the C02 conversion
kit, E11 and ECO software upgrade kits. No white dongle nor
additional hardware for any other dongle than a black dongle.
2023-04-06 15:39:53 +02:00
icex2
27e9775101 fix(iidx/ezusb2): Fix IO buffer inconsistency on ezusb ioctl level
See same commit for ezusb for details and reasoning.
2023-04-06 15:39:53 +02:00
icex2
da94ad8f76 fix(iidx/ezusb): Fix IO buffer inconsistency on ezusb ioctl level 2023-04-06 15:39:53 +02:00
icex2
4c127d26e5 chore(dev): Fix incorrect log module header 2023-04-06 15:39:53 +02:00
icex2
e807376d6b feat(iidx/ezusb): Add ezusb api monitoring module
Implement several functions relevant to the boot process with
a focus on the security init part
2023-04-06 15:39:53 +02:00
icex2
a2c2d31ca8 fix(iidx/ezusb2): Fix IO buffer inconsistency on ezusb device level 2023-04-06 15:39:53 +02:00
icex2
22978afc9b feat(iidx 14-24): Wire up coin mech to IO emulation 2023-04-06 15:39:53 +02:00
icex2
94c562f17b feat(iidx 9-13): Wire up coin mech to IO emulation 2023-04-06 15:39:53 +02:00
icex2
1f95437b17 fix(pnm/ezusb2-emu): Fix IO buffer inconsistency/random input misfiring 2023-04-06 15:39:53 +02:00
icex2
58d4130c2a fix(jb/p4io): Fix IO buffer inconsistency/random input misfiring 2023-04-06 15:39:53 +02:00
icex2
e530968dab fix(jb/p3io): Fix IO buffer inconsistency/random input misfiring 2023-04-06 15:39:53 +02:00
icex2
99d756f207 fix(iidx/ezusb2): Fix IO buffer inconsistency/random input misfiring 2023-04-06 15:39:53 +02:00
icex2
2b8d19d82a chore: Move and convert from gitlab templates to github templates 2023-04-06 15:39:53 +02:00
icex2
fb84085f69 chore(doc): Re-structure, separate dev journals 2023-04-06 15:39:53 +02:00
icex2
ffe678de61 feat(iidx19): imagefs override strategy with local file redir 2023-04-06 15:39:53 +02:00
icex2
031836ef0e chore: Apply code formatting on entire codebase for consistent style 2023-04-06 15:39:53 +02:00
icex2
a1a849aef3 feat(iidx18/19): Improve chart-patch to correctly support iidx 18 and 19
The paths changed for 18 and again for 19. Refactor and improve
the detection logic to consider this. This also should make
the code more maintainable.
2023-04-06 15:39:53 +02:00
icex2
32c786de27 fix(iidxhook-util/chart-patch): Bugfix broken synchronization
The synchronization block was too coarse and kept the lock
acquired even when the hooked call continued traversing because
it skipped the chart patch trap code. This was apparently fine
on several games but caused very flaky deadlocking on iidx18
during the boot screens and even crashed iidx19 consistently
before showing the boot screen.
2023-04-06 15:39:53 +02:00
icex2
4d9fe0002a fix(iidxhook-util/settings): Bugfix broken paths with mixed / and \
Applies to iidx18 and iidx19 when using the recently extended
redirect feature for settings paths, mixing / and \ crashes the
game in some operator sub-menus when trying to save settings.
2023-04-06 15:39:53 +02:00
icex2
a2ceb0f6cc doc: Add documentation about parallel building being broken 2023-04-06 15:39:53 +02:00
icex2
2a57ed9916 fix(dev): Upgrade docker file, move to latest debian bullseye base image
The fedora image was already quite old but also took ages to
initially install the dependencies. Being more familiar with debian,
initial container building with package installation being rather
quick, and assuming most folks being more familiar debian as well,
I decided to shift to make this easier to maintain.
2023-04-06 15:39:53 +02:00
icex2
825ac8e6d2 chore(dev): Fix compiler warning about not knowing the definition for a struct 2023-04-06 15:39:53 +02:00
icex2
ef103eb299 chore(dev): Fix format warning 2023-04-06 15:39:53 +02:00
icex2
65aa31ca22 chore(dev): Fix compiler warning, use correct format for size_t type 2023-04-06 15:39:53 +02:00
icex2
ecda3ff86f fix(iidx/ezusb): Improve code resiliance of ezusb node-serial module
- Use static assert to verify struct sizes
- Replace "magic numbers" with proper sizeof's
- Allocate largest size buffer for message response to address
  compiler warnings which indicates potential out of bounds
  reads/writes
2023-04-06 15:39:53 +02:00
icex2
389708f794 chore(doc): Documentation cleanup and improvements
- Add index with aux tooling to main readme
- Move release process to doc, not valuable to have this on the
  main readme
2023-04-06 15:39:53 +02:00
icex2
34aca9dc2a chore(dev): Disable formatting on some files to prevent header resorting
This leads to compiler errors as windows.h is expected to be
the first header included for other windows related header files.
2023-04-06 15:39:53 +02:00
icex2
c2104e7758 chore(dev): Scope code formatting to src/main and src/test
Do not format imports which includes headers from other projects
with different code styles.
2023-04-06 15:39:53 +02:00
icex2
6a140699ec fix(dev): Improve deps docker build process, mount local folder as volume
This removes the need to copy all the data into the docker container
and outputs from the build process out of the container. In
hindsight, this was a poor design decision as it created docker
images that were very large with data, that you don't have to
keep stored once the build finished, e.g. the build output.

Therefore, mount the local folder, keep the checkouts also local
which is good for debugging and also re-using them to build without
the docker container (no second checkout required).

Build output is also written directly to the build/ output folder

Overall, the docker container is more lightweight and actually
a "build environment" only not tainted with specific versions
of the dependencies to build.
2023-04-06 15:39:53 +02:00
icex2
b2e0d9f3d6 feat(iidx19): Add back btools monitor check for iidxhook5
Provide an option for non final lincle revisions and
if the "modern" monitor check is not delivering stable
results on the final lincle revision, e.g. using the
original "pendual lcd" monitor.
2023-04-06 15:39:53 +02:00
icex2
cb884c307c iidx: Update dist default files, add settings_path item 2023-03-19 21:15:28 +01:00
icex2
1154444d16 iidxhook: Integrate settings hook configurability 2023-03-19 21:15:28 +01:00
icex2
7b90963f53 iidhxook-util: Expose settings_path as a configuration option 2023-03-19 21:15:28 +01:00
icex2
722927caa7 iidxhook-util: Add option to configure path for storing settings
Additional flexibility to cover use-cases like storing this
data on a separate partition which keeps the game data folder
clean and read-only.
2023-03-19 21:15:28 +01:00
icex2
5eb40bfad3 dist/iidx27: Align disabled cam connection with 28 and 29
The default should be targeting emulation on a "normal
desktop pc". The default confits for 28 and 29 refeclt
that already, but it seems that 27 was missed out here.
2023-03-06 00:08:06 +01:00
icex2
f2678539c3 Bugfix inject: Handle process exit event correctly
When the process requests to exit, the debugger thread attached
from inject swallowed that event simply without taking action
of actually terminating the process. Handle this accordingly
when the debugger loop is running and terminate the process
2023-03-06 00:08:06 +01:00
icex2
bb0d2823bf Bugfix util/proc: Forward exit code to TerminateProcess 2023-03-06 00:08:06 +01:00
icex2
cb290ab02e Add .DS_Store to .gitignore 2023-03-06 00:08:06 +01:00
1f68cdff2564c6c03bac2fa00ca22e9e02f41e43
3d955a8dca Rewrite batch files, allow passing args, terminal close fix 2022-12-22 19:08:52 +01:00
17cef301cbf0c9bbe9e0c5a946206d54079429d7
4a333d0b13 Fixed gamestart.bat files for Chinese IIDX styles
Chinese IIDX styles will hang if bemanitools can't mount the dev\\nvram and dev\\raw folders. This simply adds commands to their gamestart.bat files to create those directories if they don't exist, preventing the game from hanging.
2022-12-19 23:19:48 +00:00
icex2
f63c759ab2 Update changelog for 5.43 release 2022-10-19 00:49:46 +02:00
icex2
edd0bda3bb Update distribution files and naming to indicate support of iidx 29
No significant changes on the game's side. Tooling that works for
27 and 28 also works fine for 29
2022-10-19 00:46:47 +02:00
icex2
c49fc61f89 doc bugfix: Fix incorrect COM port ID
Must be 1 and not 0 for iidx. See also the api.md docs.
2022-10-19 00:44:07 +02:00
icex2
885bffd9eb doc: Update api doc regarding eamuse readers and usage 2022-10-19 00:43:43 +02:00
icex2
c310a41752 Add missing AVS module doc for DDR A20+ 64-bit 2022-09-19 20:05:28 +02:00
Will Xyen
2a7738dac8 ezusb-iidx-16seg-emu: add to makefile 2022-06-24 14:49:53 -07:00
Will Xyen
b4bf1f481d iidxhook: split off node-16seg to remove eamio dependency from iidxhook-cn
(so iidxhook-cn doesn't need to link against ezusb-iidx-emu)
2022-06-24 00:57:26 -07:00
Will Xyen
dc931faf86 ezusb: decouple some nodes from ezusb-iidx-emu
This fixes a build failure in newer gcc for popnhook.
Since node-16seg has a dependency on iidxio
2022-06-23 23:54:30 -07:00
Will Xyen
523c0ad3f2 iidxhook: fix builds in cn versions 2022-06-23 23:42:05 -07:00
icex2
3cba8db787 Add docs for ddr unicorntail 2022-06-19 12:51:49 +02:00
icex2
2139fce2ae Add docs for ddr A20+ data setup and folder structure 2022-06-19 12:51:33 +02:00
icex2
bb86aa65e5 Add download links key software dependencies 2022-06-18 19:09:34 +02:00
aa05679ca91b93e4ecbac7804aff38033811559a
f0dfc61128 Change reference of jubeat in popnhook documentation 2022-06-16 12:51:58 -04:00
icex2
61a343d59a Bump version to 5.43 for next development cycle 2022-06-16 00:20:56 +02:00
icex2
119272b5d2 Update changelog for 5.42 release 2022-06-16 00:19:59 +02:00
icex2
0cd85083f6 Fix compiler warning about conversion type in snprintf 2022-06-16 00:10:50 +02:00
icex2
485c4d0ad7 Documentation clarification 2022-06-16 00:02:49 +02:00
2d9f8a0741a7573b189035dcb819847ecb5d981d
4bd0ee5ef6 iidxhook: Fix diagonal tearing on textures on iidx18 and 19
Affects all games based on version 18 and 19 which includes
the chinese versions

This code is based on the toastertools implementation.
Credits to the original authors.
2022-06-16 00:02:47 +02:00
2d9f8a0741a7573b189035dcb819847ecb5d981d
8081793a5f iidxhook4-cn: Add support for IIDX Resort Anthem CN
* Exe based game
* No network functionality
* No card readers checked/used
2022-06-15 23:34:50 +02:00
2d9f8a0741a7573b189035dcb819847ecb5d981d
badd616add iidxhook 4, 5, 5-cn: enable nvidia fix
Was absent but actually fixes crashing on nvidia cards
on these versions as well.
2022-06-15 21:30:43 +00:00
2d9f8a0741a7573b189035dcb819847ecb5d981d
926e976c36 iidxhook5-cn: Fix log messages, Delete unnecessary code
The game doesn't have network nor uses card readers
2022-06-15 21:29:15 +00:00
95c6cd771e00602e3ec82fccba1b3741fdb7f7ca
5d2b46376d popn: add config.bat 2022-06-13 04:28:33 +09:00
icex2
8d5ef0bfb3 Bump version to 5.42 for next development cycle 2022-06-12 20:09:10 +02:00
icex2
db12f21fd2 Update changelog for 5.41 release 2022-06-12 19:47:44 +02:00
icex2
d009502c9f Add basic documentation for tricoro CN 2022-06-12 19:47:27 +02:00
2d9f8a0741a7573b189035dcb819847ecb5d981d
aa147022c6 Add iidxhook5-cn, support IIDX tricoro CN
alternative name: (狂热节拍 IIDX 2)
2022-06-10 22:54:13 +00:00
icex2
8bcadcfa8f doc/game-errorcodes: Add the well known IIDX network error on boot 2022-06-11 00:45:54 +02:00
icex2
993e6718b3 doc/game-error-codes: Extend USB IO errors 2022-06-11 00:45:54 +02:00
icex2
2939106841 doc: Add links to game error code documentation 2022-06-11 00:45:52 +02:00
icex2
91bb3b4278 doc/game-error-codes: Add information about backup data error 2022-06-11 00:45:07 +02:00
icex2
9c49839e57 Add document with game error codes
Reasoning given in document why this should be part of btools
2022-06-11 00:45:07 +02:00
icex2
52d907e0c6 doc/iidxhook: Improve faq item video codec background video
Add some more information making it easier to identify the entry
2022-06-11 00:45:07 +02:00
QCDLZCLW3K
f8a09580ea Support pop'n music 15-18
* popnhook1 for pop'n 15 - 18 has been added
* popnio has been added
* inject.exe has new syntax for loading hook DLLs, `real.dll=hook.dll`. This will trigger an early IAT hook where it will load the EXE suspended without resolving imports, replace the reference to real.dll in the import table with hook.dll, and then resolve everything before launching. This allows for ezusb.dll to be hooked properly.
* launcher.exe also has a new early IAT hook feature now. Use `-I real.dll=hook.dll`. The idea is the same as described above for inject.exe.
* Updated ezusb constant namings based on what is visible in ezusb.dll's debug statements.

The launcher.exe implementation of early IAT hooking means that someone can implement popnhook2.dll for 19 and above. I have tried pop'n music Sunny Park using a modified version of popnhook1 and it seems to work to some degree: the I/O check and security check returns OK which means the ezusb hooking used in popnhook1 is also working for the later games using `launcher.exe -I ezusb.dll=ezusb2-popn-shim.dll ...`. The process is rather invasive (manually resolving all imports means more chances to fail) so it has been implemented in such a way that the launcher will work the same as it has before as long as `-I` isn't specified.

One questionable thing I am not confident about is the `texture_usage_fix` hack flag I added in the conf. As the comment says, pop'n music 16 will work in Windows XP without the flag being set, but the game will immediately crash on later OSes without the flag being set in my experience. No other games had this issue in my experience. Enabling it in other games doesn't seem to have any negative effects.
2022-06-10 22:46:59 +00:00
icex2
6e06685551 Bump version to 5.41 for next development cycle 2022-06-07 20:20:30 +02:00
icex2
efca967553 Update changelog for 5.40 release 2022-06-07 20:19:04 +02:00
QCDLZCLW3K
6c1bb3db82 Documentation fixes, MR feedback 2022-06-07 18:17:54 +00:00
icex2
bec809fbaa doc: Add further references from root readme to docs 2022-06-07 18:17:54 +00:00
icex2
9775f2c853 doc: Add root ddrhook readme 2022-06-07 18:17:54 +00:00
icex2
26c9d7fe0a doc: Add documentation for ddrhook1 and 2 2022-06-07 18:17:54 +00:00
icex2
6b81cd7535 docs: Formatting, highlighting and minor re-phrasing 2022-06-07 18:17:54 +00:00
Will Xyen
b3b6c3f499 ddrhook1: fix build (missing flag) 2022-06-06 21:51:09 -07:00
QCDLZCLW3K
0586ea50aa Add ddr-12 EU support 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
cafa60d0f6 Clean up old variables 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
76c2c49c13 Add ddr-12-us.zip to bemanitools.zip 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
6d38aa5f4a Add support for DDR X2 US 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
c1c5685e3a Force game to always think a debugger isn't present 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
050e52b21e revert: Use process_hijack_startup instead of hooking an early function 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
ab50c70f71 Fix conf description string 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
2223947dd8 Split USB memory path configurations 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
0294eed22b Add in check for updates folder too 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
d7235c3c2c Add in more filesystem hooks 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
402d0d4ca4 Fix bemanitools.zip build 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
89fe822919 Fix window mode for X2 and X3 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
75583897c1 Be more careful about USB memory errors 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
58d297458c ddr: Disable cursor during fullscreen 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
ba528488f0 Fix typo in README 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
7692e14b0b Fix ddr-16-x64.zip build 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
4cc81f48f3 ddr: Fix windowed mode regressions 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
da736d2968 Refactor d3d9 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
c3f9ce7e91 Fixes based on PR feedback 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
41de45d459 Update README 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
bda239a2ba Use process_hijack_startup instead of hooking an early function 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
1e32d1a9a8 Fix DDR X2 and X3 not booting 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
852d770629 Nearly complete USB memory support 2022-05-30 02:00:49 +00:00
QCDLZCLW3K
4be866e69e Add support for DDR X 2022-05-30 02:00:49 +00:00
Will Xyen
537b1fa384 sdvxhook2: fix crash when using sdvxhook2 on certain OS versions 2022-05-27 23:26:17 +00:00
Will Xyen
bd2d722031 sdvxio-bio2: set title pop lights to 50% by default 2022-05-27 23:26:17 +00:00
95c6cd771e00602e3ec82fccba1b3741fdb7f7ca
4f8f6c0f7a jb ripples: Create dev/nvram if not exists in gamestart.bat 2022-05-23 19:10:44 +00:00
96021c6f149619c2abfb151ec48670b44f896293
51a018b0cf Add sdvx generator lights to sdvxio-bio2. 2022-05-20 03:49:29 +00:00
icex2
04442a6dbc Bump version to 5.40 for next development cycle 2022-05-19 01:02:01 +02:00
icex2
85a080e6b3 Update changelog for 5.39 release 2022-05-19 00:02:20 +02:00
95c6cd771e00602e3ec82fccba1b3741fdb7f7ca
28633ded37 jbhook2 and jbhook3 gfx updates
- Fix jbhook3 window mode
- Remove -f option for framed window, no value
- Add -s option to show mouse cursor on window
2022-05-13 19:26:00 +00:00
QCDLZCLW3K
721897d7b0 Separate key algorithm and core code for rp2 and rp3 2022-05-12 10:25:53 +09:00
QCDLZCLW3K
926bbf2e10 Small refactor for rp2 and rp3 + add new sign keys 2022-05-12 05:18:07 +09:00
Will Toohey
ce75e149f7 Sane default for vertical window (true) 2022-04-03 21:40:18 +10:00
Will Toohey
57d9d976ff jbhook2: get p3io sidcode from ea3-config, don't hardcode 2022-04-03 21:32:33 +10:00
Will Toohey
7e731916e2 Move p3io-specific jbhook-util funcs to their own static lib 2022-04-03 21:02:38 +10:00
icex2
dd9b8faafe Bump version to 5.39 for next development cycle 2022-04-02 11:16:58 +02:00
icex2
50ff026b85 Update changelog and docs for 5.38 release 2022-04-02 10:51:43 +02:00
Will Xyen
0ff6134b79 sdvxhook: address comments 2022-03-15 16:50:03 -07:00
Will Xyen
ae35b859d9 sdvxio-kfca: add volume overrides 2022-03-15 00:39:10 -07:00
Will Xyen
3cf3d44945 sdvxhook2: add nvapi and power hooks 2022-03-15 00:38:46 -07:00
icex2
2a80083af2 Update changelog for 5.37 2022-01-04 22:15:24 +01:00
icex2
66e0467ad3 Version bump in readme 2022-01-04 22:13:54 +01:00
icex2
c5f0116294 Add supported jubeat games to list of games 2022-01-04 22:13:39 +01:00
Will Toohey
ddfa814387 jbhook2: Move hooking further back where possible
This fixes a failure to boot (due to aciomgr hanging)
on jubeat knit append on my cab
2022-01-03 19:57:28 +10:00
Will Toohey
088d4bf338 jbhook2: fix broken windowed toggle 2022-01-03 19:56:10 +10:00
Will Toohey
f1a7621e2b jbhook1: also use ICCB 2022-01-03 18:32:31 +10:00
Will Toohey
4a3d5fa189 jbhook2: also use ICCB mode (fixes copious) 2022-01-03 17:03:44 +10:00
Will Toohey
0f2828da40 jbhook: make errors right-side-up as well 2022-01-03 16:48:12 +10:00
Will Toohey
ba2016b5bc jbhook: Fix security error when booting knit append 2022-01-03 16:46:56 +10:00
Will Toohey
b42c9aa93b jbhook: Finalise half-baked "rotate window" hooks 2022-01-03 14:57:43 +10:00
Will Toohey
8de259c639 jbhook: Add some better documentation 2022-01-03 14:30:20 +10:00
Will Toohey
0d54587787 jbhook: fix missing heap sizes in gamestart.bat 2022-01-03 14:13:33 +10:00
Will Toohey
4721ba2d3c p3ioemu: reorganise code for easy reading 2022-01-03 14:12:23 +10:00
Will Toohey
1105a2a130 jubeat: support p3io games 2021-12-31 20:23:31 +10:00
icex2
8ab92872ad Improve debugability for inline scripts in ci pipeline
Instead of a single big block of code which only shows up as a
single command executed, have each command on a separate "line"
so they show up on debug output. If one line fails, it's easier
to tell which one failed
2021-12-28 23:41:37 +01:00
icex2
a16dc82cef Bugfix gitlab-ci
Artifacts need to be yielded from build stage in order to have
these available in the following stages
2021-12-28 23:41:04 +01:00
icex2
729f5abcc0 Output to stderr instead of stdout in release message script
stdout is used for actual data output which is captured by
the ci pipeline. stderr shows up properly in debug output
2021-12-28 23:40:21 +01:00
Felix
6e0e5031ac avs: add additional avs_net_interface fields for newer AVS 2021-10-25 23:21:02 +00:00
Will Xyen
f17e8d6739 Bump version to 5.37 2021-10-11 14:01:45 -07:00
Will Xyen
ac02609948 dist: add IIDX28 support 2021-10-11 13:59:02 -07:00
icex2
c644db03ae doc/iidxhook3: Clarify usage of EAMID on iidx 14-17, network error
Add some additional symptoms and reasoning as this is different
for 14 to 17 compared to any other iidx version on how to use
the PCBID you get from server operators.
2021-09-27 21:50:16 +02:00
Will Xyen
7d5398b6af acio: minor fixes 2021-09-13 13:38:27 -07:00
Will Xyen
cac09f8f87 bio2: add definitions for 20th anniversary model 2021-09-13 02:51:19 +00:00
Will Xyen
85c9c444f1 aciotest: add RVOL test, and change to use product types instead of names 2021-09-13 02:51:19 +00:00
Will Xyen
8f2ce1f1b3 acio: add RVOL node definition 2021-09-13 02:51:19 +00:00
Will Xyen
d3bf381a4f aciodrv: add method to get product type of node
some devices share product codes (KFCA->RVOL), we really should be using type to differentiate them.
2021-09-13 02:51:19 +00:00
Will Xyen
3acbc7f251 acioemu: update name of AC_IO_ICCA_CMD_DEVICE_CONTROL 2021-09-13 02:51:19 +00:00
Will Xyen
839903ab48 acio: add MDXF node definition 2021-09-13 02:51:19 +00:00
Will Xyen
c929141e71 ddrhook: move common hooks to ddrhook-util 2021-09-13 02:51:19 +00:00
icex2
1477480836 Remove hardware docs, moved to arcade-docs project
These didn't really belong to this project to begin with but
didn't find a good home until recently. Already moved to
arcade-docs repository
2021-09-12 23:58:28 +02:00
icex2
bf4322e855 Add reference to arcade-docs project to documentation 2021-09-12 23:57:55 +02:00
icex2
3eed0a4ab3 Formatting 2021-09-12 23:56:45 +02:00
icex2
a9ade9d9d4 Refine CI/CD pipeline
Make use of GitLab features like the package registry to store dist
packages, GitLab releases and broadcast the release to different
channels.

Overall, this enables developers to be push out releases for frequently
since the amount of manual work is reduced.
2021-07-11 18:03:06 +00:00
Will Xyen
26336805d2 iidxhook: fix eamuse hook not using a sane port as the default when none are specified (#64) 2021-07-08 22:25:45 -07:00
Will Xyen
7d0e916b9f changelog: mention wavepass support in 5.35 2021-06-23 11:35:43 -07:00
Will Xyen
a03a5604ec Bump version to 5.36 2021-06-23 11:23:08 -07:00
Will Xyen
54e7d783ef Update changelog for 5.35 2021-06-23 11:17:29 -07:00
CrazyRedMachine
4ea1397af2 aciodrv: add PANB support (+ aciotest handler)
add aciodrv-proc module

explanation : PANB works differently from other acio devices ; you send
one "start auto input" command without expecting a reply, and then the
piano keeps spamming "recv poll" commands on the acio bus and never replies
to any other commands.. failure to process these messages quickly enough
will saturate the serial buffer and cause checksum errors after a while.

for this reason, aciodrv-proc module was added in order to create a
thread which manages these recv poll commands and keeps the latest
known button state in memory so that it can be retrieved easily.
2021-05-03 20:14:21 +02:00
icex2
fb593df4a1 Update Bug.md, fix comment not closing 2021-05-02 10:54:45 +00:00
icex2
f0c33663e9 Update bug template, add info to run with default config 2021-05-02 10:54:24 +00:00
icex2
87ee37d059 Fix typo in log message 2021-05-02 10:39:55 +00:00
Will Xyen
5688fb7319 aciodrv: refactor aciodrv_device_init function 2021-05-01 10:42:55 -07:00
Will Xyen
d529ee484f aciodrv: Update aciodrv_device_init to properly reset the device 2021-05-01 10:30:02 -07:00
Will Xyen
7c43fb7163 doc: Make doc.zip include the whole folder
Also update vigem docs
2021-04-30 20:24:13 -07:00
Will Xyen
652d2ef633 aciodrv: fix pointer logging 2021-04-26 12:50:22 -07:00
Will Toohey
78884aebad Clarify how eamio-icca works with jbio-p4io 2021-04-06 21:04:34 +10:00
Will Toohey
549f00bfb3 Add default jbio-h44b.conf to /dist 2021-04-06 20:58:47 +10:00
Will T
aab45f145f Add missing backticks in jbio-p4io.md 2021-04-06 10:54:20 +00:00
Will Toohey
6171f0dc60 Make h44b light mapping explicit 2021-04-06 20:52:19 +10:00
Will Toohey
2f05760f4e Add enum p4io_roundplug_type for clarity 2021-04-06 20:35:14 +10:00
Will Toohey
7b5e4772ea Clarify p4io_cmd_init's lack of response checking 2021-04-06 20:30:47 +10:00
Will Toohey
e266aed1f9 p4io/usb: clarify jamma reads use interrupt handle 2021-04-06 20:28:08 +10:00
Will Toohey
0b0e7faef0 jbio-magicbox: comment nonfunctional jb_io_set_panel_mode 2021-04-06 20:25:07 +10:00
Will Toohey
53866130cb p4io: change magic AA to P4IO_SOF 2021-04-06 20:23:01 +10:00
Will Toohey
dbb8c45a9f H44B drv: add missed deinit code, comments 2021-04-06 20:19:19 +10:00
Will Toohey
8ed7d6db71 remove spurious warning 2021-04-04 18:35:21 +10:00
Will Toohey
4c746df6a8 Fix warnings on format strings 2021-04-04 17:19:16 +10:00
Will Toohey
7d485e7c7e Improve robustness of p4iodrv/usb 2021-04-04 17:16:19 +10:00
Will Toohey
deb6e5cf77 Fix const warning in aciodrv-icca 2021-04-04 16:41:59 +10:00
Will Toohey
2a03690772 Update jbio for testmenu support and add jbio-p4io 2021-04-04 16:41:45 +10:00
Will Xyen
6ce4cce500 eamio-icca: Fix state being mis-fired during felica poll (causing errors in IIDX13-18) 2021-03-21 04:19:39 +00:00
ab3a6534ca292e2c3580175f809ec08257496a8e
c6e59bae9b Updates dev.s-ul.eu URLs and fixes bad doc link for vigem 2021-03-19 18:09:07 +00:00
Will Xyen
31e15ec5ea sdvxhook: re-order hooks so eamio-icca can be used 2021-03-17 16:06:31 -07:00
Will Xyen
9cef7c03d0 aciodrv: address some magic numbers with felica polling 2021-03-17 14:42:14 -07:00
Will Xyen
f9b37c7a72 aciodrv: Add wavepass support to ICCA (#1)
Tested with:
aciotest / eamiotest:
 - DDR Slotted: Node 1: type 3, flag 0, version 1.1.0, product ICCA, build date: Oct 26 2005 13:55:03
 - DDR Slotted: Node 2: type 3, flag 0, version 1.1.0, product ICCA, build date: Oct 26 2005 13:55:03
(tested with just 1, as well as a pair)

aciotest / eamiotest / IIDX10,12,27:
 - IIDX Wavepass: Node 1: type 3, flag 0, version 1.5.1, product ICCB, build date: Apr 12 2010 09:29:00
 - IIDX Wavepass: Node 2: type 3, flag 0, version 1.5.1, product ICCB, build date: Apr 12 2010 09:29:00
(IIDX13 errors on card-in, probably issue with how eamio is being used as previously eamio-icca had no use on it)

aciotest / eamiotest / sdvx1-5:
 - SDVX Wavepass: Node 1: type 3, flag 0, version 1.5.1, product ICCB, build date: Apr 12 2010 09:29:00

aciotest:
 - Jubeat Wavepass:  Node 1: type 3, flag 0, version 1.7.3, product ICCC, build date: Oct 05 2012 20:26:53
 - Museca Wavepass:  Node 2: type 3, flag 0, version 1.7.4, product ICCC, build date: Feb 27 2013 16:44:51
2021-03-17 10:34:30 -07:00
Will Xyen
609c19b0ca sdvxio-kfca: fix build 2021-03-16 16:51:10 -07:00
Will Xyen
75b27d5992 aciomgr: move internal init stuff to manager-init.h 2021-03-16 22:06:21 +00:00
Will Xyen
965df98093 aciomgr: cleanup and address comments 2021-03-16 22:06:21 +00:00
Will Xyen
0c06d224cc eamio-icca: fix config prefix 2021-03-16 22:06:21 +00:00
Will Xyen
fb3d2ea312 eamio-icca: add config to allow port to be set
also fixes issue where no logging would show up in eamiotest
2021-03-16 22:06:21 +00:00
Will Xyen
089253a537 aciomgr: Add acio manager dll 2021-03-16 22:06:21 +00:00
Will Xyen
a4436747de aciodrv: fix build warnings for logging format strings 2021-03-16 22:06:21 +00:00
a5a845f95bba57bc03c1a6bfabfbca25c2de8e01
43b11c8778 doc: minor update to bio2-sub-io-turntable-bypass-cable 2021-03-16 00:48:47 +00:00
Will Xyen
dd7fd860b5 launcher: add 2.15.9 def
(same as 2.15.8 except with new kbt, and different log ordinals)
2021-02-12 02:11:07 -08:00
Will Xyen
18842a1dd3 d3d9ex: override adapter mode information when all the info is pre-provided by the user
This speeds up IIDX load times, as well as allows you to use "unsupported" resolutions/refresh rates on weird monitors
2021-02-06 16:25:33 -08:00
Will Xyen
18f6d9ef70 d3d9ex: add windowed position setting 2021-02-04 23:38:54 -08:00
Will Xyen
592967e191 d3d9ex: revert previous window size fix, and fix it properly 2021-02-04 23:04:56 -08:00
Will Xyen
6614cc801e d3d9ex: fix framed and window sizes for IIDX 2021-02-04 22:57:29 -08:00
Will Xyen
8e1151ac02 aciodrv: address review
also some formatting fixes
2021-01-19 21:10:34 -08:00
Will Xyen
4b60cb6c6c aciodrv: fix pointer format, and missing close context 2021-01-14 11:05:46 -08:00
Will Xyen
770bae4169 aciodrv: support multi-sized response packets by divining the packet size 2021-01-14 10:57:38 -08:00
Will Xyen
49d0bc638b aciodrv: refactor to support multiple active drivers (with specified ports) 2021-01-14 10:02:27 -08:00
icex2
837affc66c Readme: Update with release process steps for devs 2021-01-07 22:01:52 +01:00
icex2
ec76ba075f gitlab-ci: Fix pipeline to include build step for tagged release 2021-01-07 20:30:09 +00:00
icex2
f438f04f2a gitlab-ci: Build + automatic upload of tagged releases 2021-01-07 21:05:41 +01:00
icex2
865980991e Bump version to 5.35 2021-01-06 22:17:30 +01:00
icex2
37384c15ec Update changelog for 5.34 2021-01-06 22:05:11 +01:00
icex2
f0d62cc938 Bump version to 5.34 2021-01-06 21:44:31 +01:00
icex2
bf067de633 iidxio-bio2: Add missing aciodrv on finit to cleanup acio stuff 2021-01-06 20:34:34 +00:00
icex2
f3b07aeb0a iidxio-ezusb: Fix same flushing issue on shutdown as bio2 2021-01-06 20:34:34 +00:00
icex2
a1a67697c4 iidxio-bio2: Properly fix flushing on shutdown
Moved this hardware/iidxio impl specific logic from vigem-iidxio
to iidxio-bio2. Other hardware impls should follow this if
necessary to ensure a transparent and deterministic interface
(as good as possible)
2021-01-06 20:34:33 +00:00
icex2
ce5b1b2eac vigem-iidxio: Reduce random flickering cab-light on tt spin 2021-01-06 20:34:33 +00:00
icex2
3f2aed65e4 vigem-iidxio: Add default configuration to dist files
Aligns with established idea in BT5 to always provide default configs
2021-01-06 20:34:33 +00:00
icex2
22f3845609 vigem/doc: Minor fixes and improvements 2021-01-06 20:34:33 +00:00
icex2
de0d70d808 vigem-iidxio: Improve responsiveness on fast direction change TT 2021-01-06 20:34:33 +00:00
icex2
12c52bb0d8 vigem-iidxio: Major refactoring incorporating features from Grim's branch
- 3 turntable modes: analog (raw), relative and button mapped
- re-structure main to make it easier to maintain and less
repetitive code
2021-01-06 20:34:33 +00:00
icex2
279d4de4b3 vigem-iidxio: Fix cab light sequencer blink on TT spin
Similar to the TT analog to button code in main
2021-01-06 20:34:32 +00:00
icex2
2b52fbe211 vigem-iidxio: Bugfix missing break in switch 2021-01-06 20:34:32 +00:00
icex2
78e7c05876 vigem-iidxio: Refactor configuration
Add more properties from Grim's implementation to support the
additional features. Re-structure struct to be less repetitive
on variable names.
2021-01-06 20:34:32 +00:00
icex2
9a5418f6a3 vigem-iidxio: Fix Luncatic Rave 2 incompatible button mappings
Reported by Grim:
LR2 cannot make use of the d-pad as buttons for inputs because
reasons. Create a third virtual gamepad to allow handling all
inputs as "normal buttons" including turntables.
2021-01-06 20:34:32 +00:00
icex2
2363498f73 vigem-iidxio: Support multiple different light sequence modes
Add new one suggested and implemented by Grim to flash the neons
when spinning the turntables
2021-01-06 20:34:32 +00:00
icex2
edbbe5ae67 iidxio-ezusb: Bugfix random input/outputs on startup 2021-01-06 20:34:32 +00:00
icex2
d799b69d12 doc: Add index README for vigem stuff, add vigem info to root readme 2021-01-06 20:34:31 +00:00
icex2
91f83cd975 doc: Collect vigem related documentation in own subfolder in doc 2021-01-06 20:34:31 +00:00
icex2
adeabbea19 doc: Add vigem-iidxio documentation 2021-01-06 20:34:31 +00:00
icex2
41187091b0 vigem-iidxio: Add vigem implementation with iidxio interface
This uses vigem to create two virtual xbox gamepads and hooks
up the iidxio API to them. It allows you to use anything that
implements the BT5's iidxio API as a game controller, e.g.
iidxio-bio2, iidxio-ezusb1/2 to play any game that supports
xbox game controllers, e.g. lunatic rave, IIDX infinitas.

Further features include setting your own custom 16seg text
from a configuration file or enable some hardcoded light
sequence to make your cabinet look bad ass even when playing
"Big Rigs: Over the Road Racing"
2021-01-06 20:34:31 +00:00
icex2
5658658d3a vigem-sdvxio: Add missing free for cleaning up vigem client 2021-01-06 20:34:31 +00:00
icex2
79a74b2d2f vigem-sdvxio: Make private functions static 2021-01-06 20:34:31 +00:00
icex2
51484b1d3d iidxiotest: Bugfix, properly turn off lights on exit 2021-01-06 18:08:18 +00:00
Will Xyen
df8f3bc96a iidxhook9: set TT multiplier 2021-01-02 20:11:03 +00:00
icex2
ec435e7a7b iidxio-bio2 conf: Improve doc, port optional if autodetect on 2021-01-02 12:07:00 +00:00
icex2
f8a01ed92f dist/iidx: Add default iidxio-bio2 conf
We have stock/default configs for everything else, e.g. hooks.
2021-01-02 12:07:00 +00:00
Matt Bilker
2b1dd866d0 dist: add jubeat heap size
- Sourced from L44-011's bootstrap.xml

Jubeat clan 2018081401 clean data ran out of memory.

jubeat clan 2018081401 has a slightly larger achievement_info.xml
so that may have caused the problem.
2020-12-31 17:56:57 +01:00
Will Xyen
7d129a3e63 launcher: Actually init the default service override options and make override_urlslash_value more clear 2020-12-21 10:03:48 -08:00
Will Xyen
29db89cebe launcher: allow overriding service url and url slash from the command line 2020-12-21 09:59:06 -08:00
icex2
f7e1c8b3f9 doc: Add a bunch of root readme files to various levels, enhance doc
Not complete, but a start to make documentation browsable and
therefore more accessible.
2020-12-20 17:06:27 +01:00
icex2
f667ae5601 doc: Add doc for using bio2 exit hook 2020-12-20 17:06:13 +01:00
icex2
4b061bdf8f Add iidx-bio2-exit-hook: Exit games with bio2 with button combination
Press Start P1 + Start P2 + Effect + VEFX at the same time to
terminate the game. Useful for multi game setups running some
sort of game loader/selector and not having to use a keyboard.
2020-12-20 16:39:00 +01:00
icex2
13600db1d5 iidx-ezusb1/2 exit hook: Replace duplicate code with util function 2020-12-20 16:38:06 +01:00
icex2
e4126500ef util/proc: Create util module for handling process related stuff 2020-12-20 16:37:40 +01:00
icex2
049f1b4564 doc/hardware: Add information about bio2 turntable bypass cable 2020-12-20 15:25:16 +01:00
icex2
687c000000 doc/iidxhook9: Add notes about BIO2 driver usage 2020-12-20 15:25:16 +01:00
icex2
1b593a8e23 doc: Improve visibility of iidxio API implementations 2020-12-20 15:25:16 +01:00
icex2
24178121f0 doc: Add iidxio-bio2 documentation 2020-12-20 15:25:16 +01:00
icex2
62ad4e0616 hardware doc: ezusb RJ45 to DIN8 connector pinout
Can be used to build adapter cables to up-/downgrade cabinets with
C02 to IO2 and IO2 to C02 wiring.
2020-12-20 15:25:16 +01:00
icex2
c348a41d22 bi2a-iidx: Fix incorrect init command data
Taken from a communication dump of the real IO with iidx 27,
this needs to be 0x2D in order to get a fully working setup with
BIO2 and sub IO board connected.
2020-12-20 15:25:16 +01:00
icex2
ef377f40d8 bi2a: Clarify data field usage on init command
The single byte is a specific parameter required to initialize
the IO correctly. Otherwise, it either will only work partially
or not worked at all. The full impact and meaning of that byte
is not entirely known, yet.
2020-12-20 15:25:16 +01:00
icex2
0c88518a1f bio2: Add BIO2_BI2A_CMD_INIT command
Turns out this is different from the generic CLEAR command used
on other ACIO devices. Has further implications when initializing
BIO2 boards for specific games, e.g. IIDX.
2020-12-20 15:25:16 +01:00
icex2
0bc87db8da dev doc: Documented BIO2 package dumps used for debugging 2020-12-20 15:25:16 +01:00
icex2
53f8cb3bf3 iidxio-bio2: Add iidxio implementation using bio2 iidx driver
Use the original bio2 hardware with anything that supports BT5's
iidxio interface, e.g. old IIDX versions of BT5.
2020-12-20 15:25:16 +01:00
icex2
41edfec702 bio2drv: Add implementation for iidx
Basically, a copy-paste of SDVX KFCA with minor tweaks.
2020-12-20 15:25:16 +01:00
icex2
c6c3bdb075 bio2/iidx: Add enums to easily map top lamps and panel buttons
Naturally, this also serves as documentation
2020-12-20 15:25:16 +01:00
icex2
b3a89012ca bio2/iidx: Deduplicate node command, use common acio base command 2020-12-20 15:25:16 +01:00
icex2
f0bc87f1d6 iidxiotool: Fix incorrect top lamp order for setting output 2020-12-20 15:25:16 +01:00
icex2
7508c43119 bt5 api/iidxio: Add missing enum to easily identify top lamp order 2020-12-20 15:25:16 +01:00
icex2
34be731211 doc/api: Add missing sdvxio implementations to list 2020-12-20 15:25:16 +01:00
icex2
bac1ce62e5 Module.mk: Apply lex sort to includes 2020-12-20 15:25:16 +01:00
icex2
58689bbc30 Add missing iidx 27 avs version info to list 2020-12-20 15:25:16 +01:00
icex2
d5e186ffe2 bio2/iidx: Swap in and out struct names to align with sdvx definitions
From hosts perspective:
- "in" for inputs received from device
- "out" for outputs to send to device
2020-12-20 15:25:16 +01:00
icex2
34c95561c4 bio2: Update unknown commands
Credits to xyen for this
2020-12-20 15:25:16 +01:00
icex2
81d697d59a doc/iidxhook9: Add doc to FAQ how and when to use force screen res 2020-12-19 23:18:36 +01:00
icex2
3bdda4d123 dist/iidx: Update dist config file with new parameters force screen res 2020-12-19 23:18:36 +01:00
icex2
ea8842b58a d3d9ex: Add force screen resolution feature
For details, see the commit adding doc to the iidxhook9 readme
2020-12-19 23:18:34 +01:00
icex2
e89889806b d3d9ex: Add new config parameters for forcing screen resolution 2020-12-19 16:57:11 +01:00
icex2
b3b2f8f433 d3d9ex: Log parameters of CreateDeviceEx for debugging and tracing 2020-12-19 16:37:02 +01:00
icex2
1cdf330cbf iidxhook8/9 faq: Add force refresh rate on high freq monitors entry 2020-12-19 01:52:07 +01:00
Will Xyen
89c3ada28f iidxhook9: Add turntable multiplier 2020-12-09 17:22:40 -08:00
aa0f384305e16816d055f34ff91a93cad4c6d179
d9cb953b67 Update README.md 2020-11-26 03:52:56 +00:00
icex2
7ebb80d600 doc/iidxhook1: Add info about AMD GPU scaling causing slow downs 2020-11-15 00:22:16 +01:00
Will Xyen
e737d60893 Actually implement the coin mech in BIO2 based games
Properly fixes #45
2020-11-10 18:08:16 -08:00
Will Toohey
f39843b41f Better comments in ch341.h 2020-11-08 15:32:42 +01:00
Will Toohey
98d0debd05 Cleanup 2020-11-08 15:32:42 +01:00
Will Toohey
950584f025 Formatting 2020-11-08 15:32:42 +01:00
Will Toohey
e4081c057f Add jbio-magicbox.dll 2020-11-08 15:32:42 +01:00
icex2
8c3030354a Improve contributing documentation
- Summary of "golden rules" in main readme
- Improve contirbution document by outlining steps
2020-11-08 13:05:13 +01:00
icex2
9777eddaa0 gitlab: Update bug template to point out how to log to file 2020-11-08 12:02:39 +01:00
icex2
671723febd doc/iidxhook: Update documentation, explain new io feature switches 2020-11-08 00:24:52 +01:00
icex2
c1f6166e1b dist/iidx: Update default configs with new io config entries 2020-11-08 00:24:39 +01:00
icex2
538650f7ac iidxhook7: Support new IO config feature switches 2020-11-08 00:23:44 +01:00
icex2
efd243fd9d iidxhook6: Support new IO config feature switches 2020-11-08 00:23:35 +01:00
icex2
383b301d3c iidxhook5: : Support new IO config feature switches 2020-11-08 00:23:21 +01:00
icex2
a9d201691a iidxhook4: Support new IO config feature switches 2020-11-08 00:22:25 +01:00
icex2
ebb6f811b4 sqash 2020-11-08 00:22:12 +01:00
icex2
9e96cf074f iidxhook-util: Add config for io stuff
Switches to disable card reader and IO emulation
2020-11-08 00:20:55 +01:00
icex2
e6766d4a3b Update readme with supported games, iidx27 2020-10-27 20:10:10 +01:00
icex2
843d78bc4b Update changelog for 5.33 release 2020-10-27 19:51:48 +01:00
Will Xyen
0792b29f3d iidxhook9: Add iidxhook support for versions that use dx9ex and some other features 2020-10-24 12:17:55 -07:00
Will Xyen
e1d4810743 mempatch-hook: fix CRLF 2020-10-24 11:15:58 -07:00
Will Xyen
2110abc269 [avs] add avs_is_active import 2020-10-23 17:31:49 -07:00
icex2
fc22f76988 doc: Add missing supported iidx version to iidxhook8 2020-10-20 23:45:19 +02:00
Will Xyen
3d4df4cd64 [memfile] Add support for faking files in memory 2020-10-18 14:46:34 -07:00
Will Xyen
be5a773cb7 [iohook] Fix iohook_init race condition 2020-10-18 14:45:49 -07:00
Will Xyen
3ed6ac6290 [tools] Add x64 mempatch-hook 2020-10-06 20:01:41 -07:00
icex2
e49149b03d Update README.md, add pipeline status 2020-10-03 20:38:05 +00:00
Will Xyen
af507e6dcb vigem-sdvxio: Remove unused header 2020-09-27 18:59:24 -07:00
Will Xyen
a9ebc30ea7 vigem-sdvxio: Add relative mode and address comments 2020-09-26 22:54:12 -07:00
Will Xyen
4f3135439d vigem-sdvxio: Add readme 2020-09-13 20:16:37 -07:00
Will Xyen
2d1c09d4e6 sdvxhook: code-format 2020-09-13 19:46:16 -07:00
Will Xyen
164d56b6eb vigem-sdvxio: Add implementation 2020-09-13 19:45:52 -07:00
Will Xyen
1712f10f66 minor bugfixes 2020-09-12 07:53:00 -07:00
Will T
128496901e Add jbiotest for testing jubeat IO impls 2020-09-12 09:12:35 +00:00
icex2
65a45740d2 launcher: Log OS version on startup 2020-09-02 22:04:55 +02:00
icex2
8bd0f44e24 inject: Log OS version on startup 2020-09-02 22:04:55 +02:00
icex2
7733912ae2 util: Add OS module to get version information of Windows
Data we always need when things go wrong, log it on boot.
2020-09-02 22:04:53 +02:00
icex2
55c9f5a521 hooks for inject: Fix log output in DllMain
With the new inject tool, the output of OutputDebugString is
available on console and file logging.
2020-09-02 22:03:26 +02:00
icex2
917dc88826 util/log: Remove log_error, replace occurances with log_warning
log_error was using the log_writer_fatal impl which conflicts with
how this is used on AVS. Therefore, achieve a visible "error"
message in inject by using log_warning + ERROR string in the message
2020-09-02 19:53:07 +00:00
icex2
475d438ec7 inject/debugger: Avoid code dupe 2020-09-02 19:53:07 +00:00
icex2
f23d3531a2 util/signal: Expose signal_exception_code_to_str
Can be re-used in inject/debugger to avoid code duplication
2020-09-02 19:53:07 +00:00
icex2
32c3428c59 inject/logger: Add timestamps to log messages 2020-09-02 19:53:07 +00:00
icex2
ee034a1f08 inject: Fix windows psapi mess by explicitly defining version
Otherwise, the compiler does not link the correct version of that
API. See the requirements section at the bottom of the page here:
https://docs.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-getmodulebasenamea
2020-09-02 19:53:06 +00:00
icex2
54b321c7d9 inject: Major refactoring
This addresses one major issue and multiple minor ones:
Major:
Inject's debugger is not attached to the process before
injecting DLL files. This misses out on OutputDebugString
calls by anything logging in the DllMain functions of the hook
dlls.

Minor:
- Fix coloring of log entries
- Add ASCII header to easily determine start
- Fix file logging, log _everything_ to a single log file
- Enhance inject's debugger: log further debug events to incrase
visibility on issues, proper exception handling for inject
- Re-iterated code structure of inject
2020-09-02 19:53:06 +00:00
icex2
de894ae5ce util/log: Add log_error which logs errors but does not abort
This is required for tools/applications that want or have to fail
gracefully but still need to highlight the severity in the log.
2020-09-02 19:53:06 +00:00
icex2
1d25abc10b util: Add signal module introducing signal and exception handling
Right now, this prints to the console using the util/log logger
only. Stacktrace on exception still needs to be added.
2020-09-02 19:53:05 +00:00
icex2
beea9e7bb7 util/log: Add TODO pointing out design flaw 2020-09-02 19:53:05 +00:00
icex2
fbb69d4550 Makefile: Fix minor inconsistency 2020-09-02 19:53:05 +00:00
icex2
e0fe9bcf94 Makefile: Fix clang format command 2020-09-02 19:53:05 +00:00
icex2
f9c0733af3 Adapt everything in BT5 to new capnhook API
This includes:
- Renaming of functions (iohook_invoke_next)
- Slight interface changes (com_proxy_wrap, iohook_push_handler)
- De-duplicate stuff from utils (iobuf, hr)
2020-09-02 19:35:15 +00:00
icex2
a016f27652 hook: Update capnhook source files from latest master
https://github.com/decafcode/capnhook
2020-09-02 19:35:15 +00:00
Will Xyen
3a1005f1f8 sdvxio: Add atomics to kfca/bio2 2020-08-16 20:58:12 -07:00
Will Xyen
f1700ca551 sdvxio-bio2: Add better comments to amp command, and sleep in fini 2020-08-15 11:37:03 -07:00
Will Xyen
60b081b01c Merge branch 'sdvxio-bio2' of dev.s-ul.eu:djhackers/bemanitools into sdvxio-bio2 2020-08-14 19:11:57 -07:00
Will Xyen
89989ae49c doc: add documentation for sdvxio-bio2 2020-08-15 02:11:45 +00:00
Will Xyen
ff1b9ff9a2 sdvxio-bio2: Add sdvxio BIO2 along with bio2drv and aciotest updates 2020-08-15 02:11:45 +00:00
Will Xyen
4c0f60fc93 sdvx: Allow setting digital amp level from sdvxio
For SDVX 1-4: passes amp values through as-is

For SDVX5: ignores the amp volume control (as the game uses windows volume controls, which will work without any hooks)
2020-08-15 02:11:45 +00:00
Will Xyen
caba39843f bio2: bio2_bi2a_state -> bi2a_sdvx_state 2020-08-15 02:11:45 +00:00
Will Xyen
f028bdeb20 iidxhook-util: allow setting specified ICCA emulation version 2020-08-15 02:11:44 +00:00
Will Xyen
bfbb7103ef bio2emu: refactor BIO2 emulation 2020-08-15 02:11:44 +00:00
Will Xyen
95e073271f doc: add documentation for sdvxio-bio2 2020-08-14 19:05:44 -07:00
Will Xyen
cdefc2b09e sdvxio-bio2: Add sdvxio BIO2 along with bio2drv and aciotest updates 2020-08-14 18:44:05 -07:00
Will Xyen
9246e7f9e0 sdvx: Allow setting digital amp level from sdvxio
For SDVX 1-4: passes amp values through as-is

For SDVX5: ignores the amp volume control (as the game uses windows volume controls, which will work without any hooks)
2020-08-14 04:38:38 -07:00
icex2
bbb5157460 Version bump 5.33 2020-08-13 13:15:41 +02:00
icex2
e0cfc8c948 Bump to version 5.32 and update changelog 2020-08-13 13:14:54 +02:00
Will Xyen
69ef963451 Merge branch 'master' of dev.s-ul.eu:djhackers/bemanitools 2020-08-12 12:31:14 -07:00
icex2
93cfb591b7 iidxio-ezusb: Update documentation 2020-08-12 18:01:22 +00:00
icex2
3396c09fbf ezusb-iidx: Add macro to enable D01 board emulation
Used for dumping firmware, only. C02 and D01 boards only differ
in the FPGA firmware written to the board on boot up. This doesn't
matter for emulation, but when using a real IO board with
iidxio-ezusb.dll, a different FPGA firmware is required to be
flashed in order to get working turntables, top unit lights etc
2020-08-12 18:01:22 +00:00
icex2
bd8dc18b30 iidxio-ezusb: Support coin mech input 2020-08-11 22:05:46 +02:00
Will Xyen
86517bd001 bio2: bio2_bi2a_state -> bi2a_sdvx_state 2020-08-02 23:16:28 -07:00
Will Xyen
172c83a854 iidxhook-util: allow setting specified ICCA emulation version 2020-08-02 23:03:04 -07:00
Will Xyen
c7137659bc bio2emu: refactor BIO2 emulation 2020-08-02 23:02:13 -07:00
Will Xyen
8e9abf9906 launcher: Set soft_id_code before calling init as some games use it then 2020-07-24 08:47:25 -07:00
Will Xyen
62bb717582 hdxs: Is really an HDXB 1.0.1 apparently
Also update enum hdxs_rgb_light_idx to start from 0 since that's what the function does
2020-07-10 11:06:13 -07:00
Will Xyen
4816fb809d launcher: Use more descriptive error message for ERROR_MOD_NOT_FOUND 2020-07-06 18:03:25 +00:00
Tau
2a2c77f255 Add ddrhook "COM4" passthrough mode 2020-07-01 21:03:47 +02:00
icex2
55513bac41 Update changelog for 5.31 release 2020-07-01 20:33:35 +02:00
Will Xyen
9c37ef71ba ddrio: add some more comments 2020-06-29 11:23:01 -07:00
Will Xyen
a0a1dea397 ddrhook: Add HDXS acio device + emu 2020-06-29 06:52:07 -07:00
Will Xyen
3c26a3f315 ddrio: Add hdxs output functions
Also fixes IDS_DDR_P1_BOTTOM_LIGHT schema being incorrectly mapped (on SD)
2020-06-29 06:51:25 -07:00
Will Xyen
b408cd9687 config: fix number of lights being loaded wrong if config is outdated 2020-06-29 06:49:22 -07:00
Will Xyen
be4df516fd ddrio: Fix p3io and extio lighting output being swapped with one another
the header, mm and smx modules had it right

also fixes p3io responses being the wrong size in 2 cases
2020-06-29 06:47:31 -07:00
Will Xyen
d1080905e5 ddrhook: Adds 64 bit ddr build and related dependencies 2020-06-29 06:43:29 -07:00
Tau
f87a51bbe4 Silence cabinet type spam under DDR A 2020-06-28 22:10:27 -07:00
635e512cccf1256559f0c600d8185deae60a6840
2a4d3e2865 Moved location of ddrio-smx.md to doc/ddrhook/ddrio-smx.md, fixed some formatting, clarified joystick config. 2020-06-28 15:37:29 -04:00
635e512cccf1256559f0c600d8185deae60a6840
6697ff7df1 Included SMX md file with step-by-step instructions and additional info. 2020-06-28 14:47:51 -04:00
Will Xyen
682fe8aa1b crc: forgot an include 2020-06-24 19:25:46 -07:00
Will Xyen
7d533f60cb acioemu: add support for 1.7.0 and encrypted polls 2020-06-25 00:57:59 +00:00
233596621999a3accb78d883a9ab4d1f3460d772
e5331fbc7c jbhook: add adapter hook 2020-06-14 02:22:07 +02:00
10f2d26b708e9205de6ce889920e36b5596f4908
77527e346b popn hid lights 2020-06-08 11:17:22 +02:00
Will Xyen
1d0a96fa20 aciodrv: Make init more consistent by reading until we actually get a 0xAA
(reboots / command interruptions will cause incorrect state on device side)
2020-05-27 08:51:16 -07:00
icex2
63e19aaaf6 Remove src.zip from distribution package
No need to include the source code with the repository being public.
2020-05-11 00:27:11 +02:00
icex2
4c59f16d46 Update gitlab-ci, build project with Dockerfile 2020-05-11 00:27:09 +02:00
icex2
7157fdedb7 Update readme/development doc about docker building 2020-05-11 00:24:21 +02:00
icex2
13d29cb62e Add Dockerfile for building bemanitools with docker 2020-05-11 00:23:53 +02:00
icex2
bf48715466 test: Fix compiler warning 2020-05-11 00:23:29 +02:00
icex2
24b490e36b Bump version to 5.31 2020-04-27 22:00:50 +02:00
icex2
ff2a4b9a2c Changelog 5.30 update 2020-04-27 21:59:33 +02:00
Will Xyen
10bddd4905 d3d9ex: add cursor confining (ported from sdvxhook1) 2020-04-27 12:52:07 -07:00
Will Xyen
ad5fbc1f5b sdvxhook2: Add option to force headphone detection on 2020-04-27 10:19:29 -07:00
Will Xyen
25413bcba8 dinput/asio: drop hook suffix 2020-04-05 02:18:24 -07:00
Will Xyen
937290f93d asiohook: add config 2020-04-05 01:44:42 -07:00
Will Xyen
d04598a570 dinputhook: Adds dinput stub hook for later use
Thanks to felix for the original di8_stub_device.
2020-04-05 01:44:42 -07:00
Will Xyen
bd382e5509 asiohook: Adds asio reghook for later use 2020-04-05 01:44:41 -07:00
Will Xyen
0d3fa54316 launcher: Add before-hook support
Required to hook certain things that happen on module load / avs boot:
 - network adapter hooking for avs
 - envvar setting

Note: the logging facilities are NOT setup yet at this point
so these hooks cannot use avs for logging
2020-04-05 01:42:08 -07:00
6d16ce71d2cb7fb29ef6c9b6fd0f0943018cd3d0
e8943edff6 Add light support for SMX gen 4 pads
The old set lights API doesn't support gen 4 pads. Replace the call to SMX_SetLights with SMX_SetLights2 which adds support for gen 4 pads while maintaining backwards compatibility.
2020-03-22 21:18:38 +01:00
Will Xyen
61f3eb44d2 hooklib: fix warning in adapter.c 2020-02-05 01:26:41 -05:00
icex2
5aa1e27a31 Bump version to 5.30 2020-02-01 11:15:51 +01:00
icex2
596b962cfe Update changelog for 5.29 release 2020-02-01 11:07:18 +01:00
Will Xyen
5969573dc9 d3d9exhook: actually rotate the right monitor 2020-01-29 00:29:46 -05:00
Will Xyen
5da6997805 address MR comments. 2020-01-29 00:09:26 -05:00
Will Xyen
dc98103419 formatting update 2020-01-28 04:25:25 -05:00
Will Xyen
2d07bd6f5a d3d9exhook/sdvxhook2: add option to force monitor orientation
also adds adapter hook into sdvxhook2
2020-01-28 04:23:19 -05:00
Will Xyen
a21e37c894 hooklib: add adapter_hook_override to allow specifying network adapter id 2020-01-28 04:15:47 -05:00
Will Xyen
fbb7731681 dist: Update sdvxhook2.conf provided to have new d3d9exhook options 2020-01-21 06:13:36 -05:00
Will Xyen
3659494c18 misc: touchup some comments 2020-01-13 21:21:43 -05:00
Will Xyen
6d638ff1ae sdvxhook2-cn: sdvx5 cn support 2020-01-13 16:16:12 -05:00
Will Xyen
214a31b24d iidxhook/d3d9exhook: Use -1 to specify default adapter instead of 0 because the indexing starts at 0
Originally thought the default monitor showed up again later, it does not
2020-01-10 17:36:34 -05:00
Will Xyen
66d1131664 clang-format pass 2020-01-10 17:24:47 -05:00
Will Xyen
3450686cf5 iidxhook: allow forcing adapter and refresh rate in d3d9 based IIDX games 2020-01-10 10:44:21 -05:00
Will Xyen
3b8f6ac1d9 launcher: make app_config.xml optional 2019-12-23 20:40:51 -05:00
Will Xyen
8ae06f6f4b d3d9exhook: Add option to specify the display adapter to open 2019-12-23 20:14:26 -05:00
Will Xyen
b1fd175318 dist/docs: --config not --options 2019-12-18 21:48:47 -05:00
Will Xyen
b1329d10bf camhook: Fix cameras not being auto-detected sometimes on older machines
MFStartup needs to be called before any MF functions are used (such as for auto detect)
2019-12-10 15:24:46 -05:00
icex2
bf3d543893 Add some general notes about data setup for OS to README 2019-12-09 15:17:09 +01:00
icex2
f1f26dece3 Update development doc with some useful dev tools 2019-12-09 15:08:14 +01:00
icex2
fe0996ec3b Update MR templates, add checklist for guidance 2019-12-09 15:01:16 +01:00
icex2
d551930ea0 Version bump to 5.29 2019-12-06 23:25:21 +01:00
icex2
daad6a09c5 Fix versioning for sdvx distribution packages
sdvx.zip -> sdvx-01-to-04.zip
sdvx5.zip -> sdvx-05.zip
2019-12-06 23:23:12 +01:00
icex2
27fdabe17a Add instructions how to create releases 2019-12-06 23:19:27 +01:00
1184 changed files with 70895 additions and 10794 deletions

103
.github/ISSUE_TEMPLATE/bug.md vendored Normal file
View File

@@ -0,0 +1,103 @@
# Bug report
## Summary
<!--- Provide a general summary of the issue in the Title above -->
## Expected behavior
<!--- Tell us what should happen -->
## Current behavior
<!--- Tell us what happens instead of the expected behavior -->
## Detailed Description
<!--- Provide a detailed description of the issue. Include links to screenshots or videos if
necessary -->
## Steps to reproduce
<!-- Try running the game with a default configuration as well. If that also causes issues, please point that out here in the report. This might speed up the debugging process.-->
<!--- Provide a detailed step by step description how to reproduce this issue -->
1.
1.
1.
1.
## Possible solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
## Context (Environment)
### Bemanitools version(s) affected
- <!--- Add one or multiple versions as a bullet list -->
### Game(s) and version(s) affected
- <!--- Add one or multiple game versions as a bullet list -->
### Log output
See attachment.
<!---
Provide FULL log output, e.g. inject.log or launcher.log. Please do not guess which things
are relevant or not. Without knowing, you might leave out things that are relevant for the developers. You have to enable log output explicitly if not done already.
For inject.exe and launcher.exe, add `-Y logfile.log` to the command line args to output to a file, e.g. `gamestart.bat -Y logfile.log`.
!!!!!!
REMOVE ANY SENSITIVE DATA LIKE PCBIDS OR DEVICE NAMES BY REPLACING IT THEM WITH
[REDACTED]
BEFORE UPLOADING/POSTING ANY LOG DATA!!!
Use the search and replace feature of any kind of text editor.
!!!!!!
-->
### Configuration files
See attachment.
<!--- Provide any configuration files that you used, e.g. iidxhook-XX.conf. This file is located in
the same directory as launcher.exe or inject.exe.
!!!!!!
REMOVE ANY SENSITIVE DATA LIKE PCBIDS OR DEVICE NAMES BY REPLACING IT THEM WITH
[REDACTED]
BEFORE UPLOADING/POSTING ANY LOG DATA!!!
Use the search and replace feature of any kind of text editor.
!!!!!!
-->
### Command line arguments
<!--- Provide how you run the game from the command line, e.g. which gamestart.bat you used and any
additional arguments that you provided to it. Also provide the contents of the gamestart.bat you
used if you altered it. -->
### APIs used
- <!--- List all APIs you used as a bullet list, e.g. iidxio-keyboard, eamio-keyboard -->
### OS version
<!--- Provide the version of Windows you used with whatever update/build identifier -->
### Hardware specs
- CPU: <!--- Insert, e.g. Core i7 2600k 3.20ghz -->
- RAM: <!--- Insert, e.g. 16 GB -->
- GPU: <!--- Insert, e.g. Nvidia GeForce GTX 970, 4GB -->
- Controllers/IO: <!--- Insert, e.g. DJ Dao RE over USB -->

View File

@@ -1,14 +1,21 @@
# Feature request
## Summary
<!--- Provide a general summary of your changes in the Title above -->
## Detailed description
<!--- Describe your feature in detail -->
## Benefits
<!--- Describe the value/benefits of the feature in detail -->
## Drawbacks
<!--- Describe any drawbacks that might be introduced with this feature -->
## Current blockers
<!--- Describe any blockers that need to be resolved before implementing this feature -->
<!--- Describe any blockers that need to be resolved before implementing this feature -->

View File

@@ -1,16 +1,41 @@
# Pull request
## Summary
<!--- Provide a general summary of your changes in the Title above -->
## Description
<!--- Describe your changes in detail -->
## Related Issue
<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
<!--- see how your change affects other areas of the code, etc. -->
## Checklist
<!-- Make sure you covered all items, which apply, of the checklist below. -->
<!-- Strikethrough items that do not apply and provide a brief description why. -->
- \[ \] Implemented (unit) test(s) which prove that the introduced changes are working as expected.
- Tested with the following games:
- \[ \] ... <!-- insert game name 1-->
- \[ \] ... \<!-- insert game name 2--->
- \[ \] Followed the developer (style) guidelines.
- \[ \] Updated existing doc of or add new doc to README file(s).
- \[ \] Updated development documentation.

39
.github/workflows/build-master.yaml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: "Build bemanitools"
on:
push:
branches:
- master
jobs:
build:
runs-on: "ubuntu-22.04"
steps:
- name: "Checkout repository"
uses: "actions/checkout@v2"
- name: "Install prerequisites"
run: |
sudo apt-get update
sudo apt-get install -y runc containerd docker.io
- name: "Build"
run: |
make build-docker
# Do some unpacking of the dist zip. Artifact upload repackages stuff
- name: "Prepare artifact package"
run: |
mkdir artifact
cd artifact
unzip ../build/bemanitools.zip
cd ..
- name: "Upload artifact"
uses: "actions/upload-artifact@v2"
with:
name: bemanitools-${{ github.sha }}
retention-days: 90
if-no-files-found: "error"
path: |
artifact/**

75
.github/workflows/build-tag.yaml vendored Normal file
View File

@@ -0,0 +1,75 @@
name: "Build bemanitools and publish release"
permissions:
contents: write
packages: write
on:
push:
tags:
- "*.*"
jobs:
build:
runs-on: "ubuntu-22.04"
steps:
- name: "Checkout repository"
uses: "actions/checkout@v2"
# Building bootstrapped using docker containers
- name: "Install prerequisites"
run: |
sudo apt-get update
sudo apt-get install -y runc containerd docker.io
- name: "Build"
run: |
make build-docker
# Do some unpacking of the dist zip. Artifact upload repackages stuff
- name: "Prepare artifact package"
run: |
mkdir artifact
cd artifact
unzip ../build/bemanitools.zip
cd ..
- name: "Upload artifact"
uses: "actions/upload-artifact@v2"
with:
name: bemanitools-${{ github.sha }}
retention-days: 90
if-no-files-found: "error"
path: |
artifact/**
publish-release:
needs: "build"
runs-on: "ubuntu-22.04"
steps:
# This already extracts the contents of the artifact
- name: "Download artifact"
uses: "actions/download-artifact@v2"
with:
name: bemanitools-${{ github.sha }}
- name: "Get the version"
id: get_version
run: |
echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3)
# The publish release action does not package the artifact *sigh*
- name: "Create release package"
run: |
zip bemanitools-${{ steps.get_version.outputs.VERSION }}.zip *
- name: "Publish release"
uses: "marvinpinto/action-automatic-releases@v1.2.1"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
draft: false
prerelease: true
title: ${{ steps.get_version.outputs.VERSION }}
files: |
bemanitools-${{ steps.get_version.outputs.VERSION }}.zip

3
.gitignore vendored
View File

@@ -3,4 +3,5 @@ build/
.idea
.vscode
.vs
version
version
.DS_Store

View File

@@ -1,73 +0,0 @@
image: debian
stages:
- build
- test
- release
- releasetag
build:
stage: build
before_script:
- apt-get update && apt-get -qq install clang mingw-w64 git make zip > /dev/null
script:
- make
artifacts:
name: "$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
paths:
- build
only:
refs:
- master
test:
allow_failure: true
stage: test
dependencies:
- build
before_script:
- apt-get update && apt-get -qq install make wine unzip > /dev/null
- dpkg --add-architecture i386 && apt-get update && apt-get -qq install wine32 > /dev/null
script:
- ls
- make run-tests
only:
refs:
- master
release:
stage: release
variables:
GIT_STRATEGY: none
dependencies:
- build
before_script:
- apt-get update && apt-get -qq install zip > /dev/null
script:
- mv build/bemanitools.zip ./bemanitools.zip
- find . -mindepth 1 ! -regex '^./bemanitools.zip' -delete
- unzip bemanitools.zip
- rm bemanitools.zip
artifacts:
name: "$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
paths:
- ./*
only:
refs:
- master
releasetag:
stage: releasetag
dependencies: []
before_script:
- apt-get update && apt-get -qq install curl > /dev/null
script:
- |
curl --silent --show-error \
--data "{\"tag_name\": \"${CI_COMMIT_TAG}\", \"name\": \"${CI_PROJECT_NAME}-${CI_COMMIT_TAG}\", \"description\": \"${CI_COMMIT_TAG_MESSAGE:-No release notes.}\"}" \
--header "Content-Type: application/json" \
--header "Private-Token: ${CI_PRIVATE_TOKEN}" \
--request POST \
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases"
only:
- tags

View File

@@ -1,53 +0,0 @@
## Summary
<!--- Provide a general summary of the issue in the Title above -->
## Expected behavior
<!--- Tell us what should happen -->
## Current behavior
<!--- Tell us what happens instead of the expected behavior -->
## Detailed Description
<!--- Provide a detailed description of the issue. Include links to screenshots or videos if necessary -->
## Steps to reproduce
<!--- Provide a detailed step by step description how to reproduce this issue -->
1.
2.
3.
4.
## Possible solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
## Context (Environment)
### Bemanitools version(s) affected
* <!--- Add one or multiple versions as a bullet list -->
### Game(s) and version(s) affected
* <!--- Add one or multiple game versions as a bullet list -->
### Log output
See attachment.
<!--- Provide log output as attachment. Make sure to censor sensitive data like PCBIDs or device names if necessary -->
### Configuration files
See attachment.
<!--- Provide any configuration files that you used, e.g. iidxhook-XX.conf. Make sure to censor sensitive data like
PCBIDs -->
### Command line arguments
<!--- Provide how you run the game from the command line, e.g. which gamestart.bat you used and any additional arguments
that you provided to it. Also provide the contents of the gamestart.bat you used if you altered it. -->
### APIs used
* <!--- List all APIs you used as a bullet list, e.g. iidxio-keyboard, eamio-keyboard -->
### OS version
<!--- Provide the version of Windows you used with whatever update/build identifier -->
### Hardware specs
* CPU: <!--- Insert, e.g. Core i7 2600k 3.20ghz -->
* RAM: <!--- Insert, e.g. 16 GB -->
* GPU: <!--- Insert, e.g. Nvidia GeForce GTX 970, 4GB -->
* Controllers/IO: <!--- Insert, e.g. DJ Dao RE over USB -->

View File

@@ -1,16 +0,0 @@
## Summary
<!--- Provide a general summary of your changes in the Title above -->
## Description
<!--- Describe your changes in detail -->
## Related Issue
<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->

View File

@@ -1,198 +1,420 @@
# Release history
Note for CI/CD: Ensure the version formatting in the sections is kept identical to the versions
given in tags. The pipeline will pick this up and cuts out the relevant section for release notes.
## 5.49
### Features
### Fixes
## 5.48
### Features
- feat(config): Add invert analog input option. Remark: The old configuration file format is
upgraded but downgrading is not possible anymore. The new saves are using a new filename and it
doesn't delete the old files, see `C:\Users\<YOUR_USERNAME>\AppData\Roaming\DJHACKERS`
### Fixes
## 5.47
### Features
N/A
### Fixes
- fix(ddr/p3ioemu): Handle unknown 2B command to fix DDR X IO errors
- fix(ddr/p3io): Crash on all supported DDR games due to incorrect p3io message size validation
- fix(geninput): Sony DualShock 4 not working
## 5.46
### Features
- feat(ddrio): Wrapper/shim library to drive another ddrio in a dedicated IO thread. Improves
performance for highly IO bound ddrio implementations, e.g. ddrio-p3io
- feat(iidxiotest): bi2a-iidx support
### Fixes
- fix(jb03/04): Missing XML in gamestart script
- fix(jbhook1): Rotate error message box when screen is rotated
- fix(jbhook1): Improve/fix automatic config/nvram fs initialization
## 5.45
### Features
- feat(iidx 30): Added support
- feat(ddr): Add ddrio implementation with P3IO driver backend
- feat(ddr): Add p3io-ddr-tool for testing/debugging real P3IO devices with EXTIO
- feat(ddr): Add testing tool for real EXTIO devices
- feat(ddr): Add extio driver
- feat(ddr): Add p3io driver
- feat(iidx 20-26): New/fixed gfx up-/downscaling feature, old one was broken
- feat(ddr): Vigem driver for ddrio
- feat(iidx 25-30): The user can now set a custom camera device override of "SKIP" to leave that
camera unassigned
### Fixes
- fix(iidx 09/10): Fix stretched BGAs on 1st and 3rd style videos
## 5.44
### Features
- feat(doc): ezusb dev journal entry, 10th style ezusb boot up and security setup
- feat(iidx 09/10): ezusb API call monitoring module and configuration flag
- feat(iidx 19): Add back btools monitor check for iidxhook5
- feat(iidx 9-19): Add configurable settings path hook. Redirect settings paths, i.e. `d/`, `e/` and
`f/` drive "folders" to an arbitrary path on any partition, e.g. writable partition
- feat(iidx 9/10): Improve commandline script for irbeat-patch 09 and 10, add interactive mode
### Fixes
- fix(iidx 10): SQ-INIT error caused by incorrect security configuration
- fix(iidx 9-24): Wire up coin input in ezusb1/2 IO emulation layer
- fix(pnm 15-18): Fix IO buffer inconsistency causing random input misfiring
- fix(jb 1-8): Fix IO buffer inconsistency causing random input misfiring
- fix(iidx 9-24): Fix IO buffer inconsistency causing random input misfiring
- fix(iidx 19): imagefs override strategy with local file redir. Required to enable monitor-check on
all chart files
- fix(iidx 9-19): Code synchronization issue causing deadlock resulting in game hang/stuck on boot
- fix(iidx 9-19): Fix broken settings path handling with mixed / and \\
- fix(iidx 27): Align disabled cam connection config defaults with 28/29
- fix(inject): Fix missing forwarding of exit code
- fix(inject): Getting stuck when game exits cleanly due to locked up debugger thread.
- fix(iidx 18/19 CN): gamestart.bat creating dev/nvram and dev/raw folders
## 5.43
- iidx29: (Officially) support IIDX CASTHOUR
- Code structure maintenance
- Various documentation improvements
## 5.42
- Bugfix: Fix diagonal texture tearing on IIDX 18 and 19 based games
- Feature: Add support for IIDX Resort Anthem CN using iidxhook4-cn
- Feature/bugfix: Enable "nvidia fix" for iidxhook4, 5 and 5-cn. Should fix crashing on some/all
nvidia cards
- Various minor fixes
## 5.41
- Feature: Support pop'n music 15-18 using popnhook1
- Feature: Support IIDX tricoro CN using iidxhook5-cn
- Various documentation improvements
## 5.40
- Feature: Support DDR X and X2 US/EU using ddrhook1 including memory card emulation
- Fix: sdvxhook2 crashing on some OS versions
- Feature: Support sdvx generator lights in sdvxio
## 5.39
- jbhook3: Fix window mode, remove window frame option, add show cursor on window option
- Code simplification and cleanup round plug modules
- Code structure improvements p3io jubeat
## 5.38
- sdvxhook2: Support sound voltex exceed gear
## 5.37
- jbhook1: Support jubeat (1) and ripples
- jbhook2: Support jubeat knit and copious
- jbhook3: Support jubeat saucer, prop, qubell, clan and festo
## 5.36
- iidxhook9: Support for IIDX28
- Various bugfixes
## 5.35
- Jubeat: Add jbio-p4io
- Nostalgia: Add nostio-panb
- Misc: Add wavepass support to aciodrv-icca (and eamio-icca)
- Misc: Refactor aciodrv to support multiple devices using the same port (with aciomgr)
- Misc: Fix d3d9ex windowed hook not behaving correctly (size/framed)
- Misc: Fix docs not being included with release
- Various bugfixes
## 5.34
- IIDX: Support IO and card reader feature switches to disable emulation in iidxhook4-7
- Jubeat: jbio implementation for magicbox hardware
- Misc: Various documentation improvements
- IIDX: Turntable multiplier (can also be used as inverted) for iidxhook9
- IIDX: iidxhook9, add force screen resolution option to fix sometimes wrong auto res detection by
iidx27 causing inaccurate/wrong refresh rates on monitor check
- IIDX: iidxio BIO2 implementation -> Use BIO2 hardware with any iidxhook or other software
supporting BT5's iidxio interface
- IIDX: BIO2 exit hook, exit the game pressing Start P1 + Start P2, Effect and VEFX
- launcher: Allow overriding service URL from command line
- IIDX: vigem-iidxio, tool to allow using iidxio (ezusb, ezusb2 or bio2) to emulate XBOX controllers
to play other non arcade games that support xinput, e.g. Lunatic Rave (note: Infinitas does not
work with this since it only supports direct input)
## 5.33
- iidxhook9: Support for IIDX27
- sdvxio-bio2: Driver for real sdvx5 cabinet IO hardware
- vigem-sdvxio: Tool to allow using sdvxio (kfca or bio2) to emulate an xbox controller
- Various bugfixes and refactoring for inject and launcher
## 5.32
- Various bugfixes
## 5.31
- DDR: Fix p3io and extio lights not working / being swapped when using geninput
- DDR: Add HDXS light support
- DDR: Add 64 bit support
- DDR: Add option to use COM4 as the p3io rs232 port instead of emulating (for use with acrealio
etc.)
- Jubeat: Add network adapter hook
- Misc: Fix aciodrv sometimes hanging on boot (eamio-icca and sdvxio-kfca)
## 5.30
- SDVX: sdvxhook2 headphone force and cursor confining config options
- DDR: Add light support for SMX gen 4 pads
## 5.29
- SDVX: Add option for monitor rotation
- SDVX: Add option to allow overriding network adapter IP
- IIDX: Add force display adapter and refresh rate configuration
- SDVX: Allow specifying display adapter to open for d3d9ex hook
- IIDX/SDVX camerahooks bugfix: Camera sometimes not detected on some older machines
## 5.28
* Improve documentation in various places
* Automatic code formatting in build pipeline
* Bugfix: Recursive config.bat script
* Enable automatic building on pushes to master
* Bugfix: Stop SDVX hanging on thankyou for playing
* sdvx2: Support for Vivid Wave using sdvxhook2
* sdvxio-kfca: Driver for real sdvx cabinet IO hardware
- Improve documentation in various places
- Automatic code formatting in build pipeline
- Bugfix: Recursive config.bat script
- Enable automatic building on pushes to master
- Bugfix: Stop SDVX hanging on thankyou for playing
- sdvx2: Support for Vivid Wave using sdvxhook2
- sdvxio-kfca: Driver for real sdvx cabinet IO hardware
## 5.27
* Various documentation updates regarding development and how to contribute
* KFCA emulation accuracy fixes
* Fix passthrough of serial calls when using real hardware (e.g. card reader passthrough IIDX25+/SDVX5+)
* Add sdvxio-kfca driver to talk to real SDVX hardware
* Refactor d3d9 hook module to improve maintainability. Also fixes upscaling not working on IIDX20+.
* Remove d3d8 hook module to improve maintainability. Make old d3d8 based games, e.g. iidxhook1/2, use d3d9 instead.
Requires usage of d3d8to9 wrapper library to use gfx patching features.
* Add dev doc about IIDX rendering loops
* Add an initial draft of an architecture document (will be worked on in iterations)
* Refactor BIO2 emulation to make it re-usable by other games
- Various documentation updates regarding development and how to contribute
- KFCA emulation accuracy fixes
- Fix passthrough of serial calls when using real hardware (e.g. card reader passthrough
IIDX25+/SDVX5+)
- Add sdvxio-kfca driver to talk to real SDVX hardware
- Refactor d3d9 hook module to improve maintainability. Also fixes upscaling not working on IIDX20+.
- Remove d3d8 hook module to improve maintainability. Make old d3d8 based games, e.g. iidxhook1/2,
use d3d9 instead. Requires usage of d3d8to9 wrapper library to use gfx patching features.
- Add dev doc about IIDX rendering loops
- Add an initial draft of an architecture document (will be worked on in iterations)
- Refactor BIO2 emulation to make it re-usable by other games
## 5.26
* iidxio-ezusb: Reduce sleep time to Sleep(1) to avoid framerate issues on some versions of iidx.
* Bugfix: iidx d3d9 games, mainly the newer ones iidx 20-25, freezing. Happened on boot, during song selection or during the song.
* Bugfix: log_server_init deadlock on iidxhook4-7. This caused games like iidx24 to hang before even showing a render window.
* iidxhook: Add feature to allow GPU based up-/downscaling of rendered frame. This gives
you the possibility to upscale the resolution of old SD (640x480) games to your monitor's/TV's
native resolution which can have a few advantages: better image quality if the monitor's upscaler
is not doing a good job, especially on resolutions that are not a multiple of its native resolution;
Reduce display latency if the upscaler is slow, avoid over-/underscan which cannot always be fixed
entirely or at all (depending on your GPU and monitor model). See the iidxhook configuration file
for the new parameters available.
* Major readme cleanup. Add development documentation like style guide, guidelines, development setup.
- iidxio-ezusb: Reduce sleep time to Sleep(1) to avoid framerate issues on some versions of iidx.
- Bugfix: iidx d3d9 games, mainly the newer ones iidx 20-25, freezing. Happened on boot, during song
selection or during the song.
- Bugfix: log_server_init deadlock on iidxhook4-7. This caused games like iidx24 to hang before even
showing a render window.
- iidxhook: Add feature to allow GPU based up-/downscaling of rendered frame. This gives you the
possibility to upscale the resolution of old SD (640x480) games to your monitor's/TV's native
resolution which can have a few advantages: better image quality if the monitor's upscaler is not
doing a good job, especially on resolutions that are not a multiple of its native resolution;
Reduce display latency if the upscaler is slow, avoid over-/underscan which cannot always be fixed
entirely or at all (depending on your GPU and monitor model). See the iidxhook configuration file
for the new parameters available.
- Major readme cleanup. Add development documentation like style guide, guidelines, development
setup.
## 5.25
* Bugfix: iidx14 and 15 crashing on Windows 10
* Bugfix: IO2 driver not using correct package sizes on reads/write -> iidxio-ezusb2.dll now working
* Improve ezusb2-boot.bat script to handle flashing of IO2 firmware
* Remove broken x64 builds of ezusb1/2 tools -> Just use the x86 tool versions instead
(use the x64 versions of iidxio-ezusb.dll and iidxio-ezusb2.dll with iidx25)
* iidxhook1-8: Allow floating point values for frame rate limiting, e.g. 59.95 (hz).
* Improve timing with ezusb (C02) driver
- Bugfix: iidx14 and 15 crashing on Windows 10
- Bugfix: IO2 driver not using correct package sizes on reads/write -> iidxio-ezusb2.dll now working
- Improve ezusb2-boot.bat script to handle flashing of IO2 firmware
- Remove broken x64 builds of ezusb1/2 tools -> Just use the x86 tool versions instead (use the x64
versions of iidxio-ezusb.dll and iidxio-ezusb2.dll with iidx25)
- iidxhook1-8: Allow floating point values for frame rate limiting, e.g. 59.95 (hz).
- Improve timing with ezusb (C02) driver
## v5.24
* Bugfix: iidxhook8 hangs very early on startup (race condition in log-server module)
- Bugfix: iidxhook8 hangs very early on startup (race condition in log-server module)
## v5.23
* Refactored configurion (file) handling for iidxhooks, RE-READ THE DOCUMENTATION.
This gets rid of the "short cmd parameters", e.g. -w for windowed mode, and replaces
them with full name parameters, e.g. -p gfx.windowed=true, which improves handling
of configuration files/values.
* Add a lot of unit tests to the codebase
* Refactored round plug security infrastructure, shared with IIDX and jubeat (1)
* Move shared utility modules between iidxhook modules to a separate utilty module 'iidxhook-util'
* Add experimental jubeat (1) support (buggy IO emulation)
* Various fixes to improve all iidxhooks when running on Windows 10
* Bugfix: iidxio-ezusb getting stuck on newer Windows platforms
* Update iidxhook docs, e.g. how to get old IIDX versions sync on Windows 10
* Various documentation updates
* Various code cleanup
* Various other minor bugfixes
- Refactored configurion (file) handling for iidxhooks, RE-READ THE DOCUMENTATION. This gets rid of
the "short cmd parameters", e.g. -w for windowed mode, and replaces them with full name
parameters, e.g. -p gfx.windowed=true, which improves handling of configuration files/values.
- Add a lot of unit tests to the codebase
- Refactored round plug security infrastructure, shared with IIDX and jubeat (1)
- Move shared utility modules between iidxhook modules to a separate utilty module 'iidxhook-util'
- Add experimental jubeat (1) support (buggy IO emulation)
- Various fixes to improve all iidxhooks when running on Windows 10
- Bugfix: iidxio-ezusb getting stuck on newer Windows platforms
- Update iidxhook docs, e.g. how to get old IIDX versions sync on Windows 10
- Various documentation updates
- Various code cleanup
- Various other minor bugfixes
## v5.22
* Added a lot of documentation and readme stuff (READ IT!!11)
* Re-numbering iidxhook implementations to make room for missing games
* Support for IIDX 18 -> iidxhook4
* Support for IIDX 19 -> iidxhook5
* Support for IIDX 20 -> iidxhook6
* A lot of code refactoring and cleanup
* Refactor p3io emulation
* Remove obsolete BT4 DDR stuff
* iidxhook: Refactored software monitor check and bugfixes. You can use the
auto monitor check to determine your machine's refresh rate or (new) set the
refresh rate yourself in the configuration file, e.g. when you already have
determined it using one of the newer IIDX games and want to skip that monitor
check or if BT5's software monitor check doesn't work properly (e.g. on Win 7).
* iidxhook1-3: Check if eamuse server is reachable and log a warning otherwise.
This should make debugging invalid URLs or connection issues easier.
* iidxhook: Revised ezusb and ezusb2 emulation layer. Translucent support
removed, all IO emulation goes through BT5's iidxio interface.
* iidxio: Add implementations for ezusb (C02 IO) and ezusb2 (IO2) hardware. This
allows you to run _ANY_ IIDX game supported by BT5 either with real C02 or IO2
hardware.
* iidxhook: Remove translucent card reader feature. Again, to create a unified
interface for _ALL_ versions, use the eamio-icca.dll if you want to run on
real ICCA (slotted or wavepass) readers.
* Various other bugfixes
Again, read the various markdown (.md) readme files. We tried to document
everything to the best of our knowledge. If you are missing something, please
contribute by adding that information and submitting a patch to us.
- Added a lot of documentation and readme stuff (READ IT!!11)
- Re-numbering iidxhook implementations to make room for missing games
- Support for IIDX 18 -> iidxhook4
- Support for IIDX 19 -> iidxhook5
- Support for IIDX 20 -> iidxhook6
- A lot of code refactoring and cleanup
- Refactor p3io emulation
- Remove obsolete BT4 DDR stuff
- iidxhook: Refactored software monitor check and bugfixes. You can use the auto monitor check to
determine your machine's refresh rate or (new) set the refresh rate yourself in the configuration
file, e.g. when you already have determined it using one of the newer IIDX games and want to skip
that monitor check or if BT5's software monitor check doesn't work properly (e.g. on Win 7).
- iidxhook1-3: Check if eamuse server is reachable and log a warning otherwise. This should make
debugging invalid URLs or connection issues easier.
- iidxhook: Revised ezusb and ezusb2 emulation layer. Translucent support removed, all IO emulation
goes through BT5's iidxio interface.
- iidxio: Add implementations for ezusb (C02 IO) and ezusb2 (IO2) hardware. This allows you to run
_ANY_ IIDX game supported by BT5 either with real C02 or IO2 hardware.
- iidxhook: Remove translucent card reader feature. Again, to create a unified interface for _ALL_
versions, use the eamio-icca.dll if you want to run on real ICCA (slotted or wavepass) readers.
- Various other bugfixes
Again, read the various markdown (.md) readme files. We tried to document everything to the best of
our knowledge. If you are missing something, please contribute by adding that information and
submitting a patch to us.
## v5.21
* Camera hook for IIDX 25 (use any UVC webcam in-game), by Xyen
* *deep breath* Source code release
- Camera hook for IIDX 25 (use any UVC webcam in-game), by Xyen
- *deep breath* Source code release
## v5.20
* Support for the new IIDX 25 IO board (xyen)
* New IO hook system with better multi-threading behavior
* Add a replaceable "vefxio" backend dll for IIDX (xyen)
* Card reader emulation can now be disabled in iidxhook (xyen)
* Add jbhook (xyen, mon)
* Add ddrhook (ported from Bemanitools 4 by mon)
* Various ICCA emulation improvements (xyen, mon)
* QoL improvements to config.exe (xyen, mon)
* Other bug fixes (various contributors)
- Support for the new IIDX 25 IO board (xyen)
- New IO hook system with better multi-threading behavior
- Add a replaceable "vefxio" backend dll for IIDX (xyen)
- Card reader emulation can now be disabled in iidxhook (xyen)
- Add jbhook (xyen, mon)
- Add ddrhook (ported from Bemanitools 4 by mon)
- Various ICCA emulation improvements (xyen, mon)
- QoL improvements to config.exe (xyen, mon)
- Other bug fixes (various contributors)
## a19
* iidx 17 support
* Bugfix: forums.php?action=viewthread&threadid=51257&postid=1425861#post1425861
* iidx 14-17: Improved monitor check and new monitor check screen which shows
the current frame rate instead of just a white screen
* iidx 09-13: Improved monitor check (but still white screen when in progress.
d3d8 doesn't offer any text render out of the box)
* iidxfx(2)-exit-hook: Switch off lights on shutdown
* Various other bugfixes
- iidx 17 support
- Bugfix: forums.php?action=viewthread&threadid=51257&postid=1425861#post1425861
- iidx 14-17: Improved monitor check and new monitor check screen which shows the current frame rate
instead of just a white screen
- iidx 09-13: Improved monitor check (but still white screen when in progress. d3d8 doesn't offer
any text render out of the box)
- iidxfx(2)-exit-hook: Switch off lights on shutdown
- Various other bugfixes
## a18
* Bugfix: forums.php?action=viewthread&threadid=51063
* Various other bugfixes
- Bugfix: forums.php?action=viewthread&threadid=51063
- Various other bugfixes
## a17
* IIDX 16 support
* Fix broken debug output to file (for iidxhook1-3 and all games using launcher)
* Improve debug output
* Various minor bugfixes
- IIDX 16 support
- Fix broken debug output to file (for iidxhook1-3 and all games using launcher)
- Improve debug output
- Various minor bugfixes
## a16
* Add tools.zip which contains various tools for development: ezusb IO related,
bemanitools API testing, acio related
* Add documentation (.md files) for tools
* Add iidxfx(2)-exit-hook.dll: Hook this using either inject or launcher
(depending on the game version) and exit the game by pressing Start P1 + Start
P2 + VEFX + Effect simultaneously
* Bugfix iidxio API: 16seg not working on IIDX games with FX2 emulation
* Bugfix iidxio API: return value of init call not getting checked in hook
libraries
* SDVX input emulation fixes
* Various other bugfixes
- Add tools.zip which contains various tools for development: ezusb IO related, bemanitools API
testing, acio related
- Add documentation (.md files) for tools
- Add iidxfx(2)-exit-hook.dll: Hook this using either inject or launcher (depending on the game
version) and exit the game by pressing Start P1 + Start P2 + VEFX + Effect simultaneously
- Bugfix iidxio API: 16seg not working on IIDX games with FX2 emulation
- Bugfix iidxio API: return value of init call not getting checked in hook libraries
- SDVX input emulation fixes
- Various other bugfixes
## a15
* Select best network adapter if having multiple
* Add Felica card detection
* Fix SDVX HID lighting
* Fix IIDX FX2 deck lighting
- Select best network adapter if having multiple
- Add Felica card detection
- Fix SDVX HID lighting
- Fix IIDX FX2 deck lighting
## a13
* iidx 15 (DJ Troopers) support
* Fix BG video triangle seam on old games
* New options handling: cmd args and options file
- iidx 15 (DJ Troopers) support
- Fix BG video triangle seam on old games
- New options handling: cmd args and options file
## a11
* Fix nVidia crash on GOLD
- Fix nVidia crash on GOLD
## a10
* Adds IO2 emulation for Gold
* Add IO2 translucent mode for Gold ONLY atm (untested due to lack of hardware)
* Random input bug resolved (also kinda untested, so maybe?)
- Adds IO2 emulation for Gold
- Add IO2 translucent mode for Gold ONLY atm (untested due to lack of hardware)
- Random input bug resolved (also kinda untested, so maybe?)
## a09
* Add IIDX 14 support
- Add IIDX 14 support
## a08
* Add experimental KFCA (SDVX PCB) support
* Add Sound Voltex and BeatStream builds
- Add experimental KFCA (SDVX PCB) support
- Add Sound Voltex and BeatStream builds
## a07
* Add IIDX 13 DistorteD support
* Add option to use real card readers with IIDX 13
- Add IIDX 13 DistorteD support
- Add option to use real card readers with IIDX 13
## a06
* Fixes bug in chart data loader interception code
- Fixes bug in chart data loader interception code
## a05
* Fix broken card reader emulation on Copula
* Add monitor check/auto timebase for old IIDX games (9-12) -> refer to the
readme file on how to use it
- Fix broken card reader emulation on Copula
- Add monitor check/auto timebase for old IIDX games (9-12) -> refer to the readme file on how to
use it
## a04
* Add software frame rate limiter for all D3D8 based games (-g option).
- Add software frame rate limiter for all D3D8 based games (-g option).
## a03
* Add support for IIDX 9-12
* Translucent mode: Use real C02 EZUSB IO hardware
* eamio-real.dll: Use real slotted or wave pass card readers
* Setup guide, advanced features and FAQ: see readme file iidxhook1.md
- Add support for IIDX 9-12
- Translucent mode: Use real C02 EZUSB IO hardware
- eamio-real.dll: Use real slotted or wave pass card readers
- Setup guide, advanced features and FAQ: see readme file iidxhook1.md
## a02
* Fonts are always correct irrespective of system locale! (Make sure you
install East Asian fonts tho)
* No longer crashes shitty gaming mice that don't follow the USB spec! (will
backport this to bt4)
* launcher.exe now has a UAC manifest! (because 2006 called and told me to get
with the fucking program)
- Fonts are always correct irrespective of system locale! (Make sure you install East Asian fonts
tho)
- No longer crashes shitty gaming mice that don't follow the USB spec! (will backport this to bt4)
- launcher.exe now has a UAC manifest! (because 2006 called and told me to get with the fucking
program)
## a01
* Initial Alpha, only supports IIDX 21 and 22 for now.
- Initial Alpha, only supports IIDX 21 and 22 for now.

View File

@@ -1,30 +1,88 @@
# Contributing
Please have a look at the issue board about what's currently going on. If you see an issue that is not assigned yet and
that you can and want to work on, please leave a comment to reach out to one of our developers. You can also ask
questions and discuss the issue.
# Bug reports
Please check if the bug was already reported by searching the existing issues. If it does, feel free to leave a comment
that you also have this issue. Add additional information, screenshots, log files etc. The more information and details
we have, the easier it might get to solve the issue.
This document outlines different types of contributions and how YOU can help us to improve the
project. Read it, as it provides guidelines that are there to help you and the maintainers.
When creating new issues, use our template for reporting bugs. It tells you what kind of information we need.
## Reporting and discussions: Issues section on gitlab
# Pull requests: bugfixes, new features or other code contributions
Pull requests are welcome! May it be a PR to an already known issue or a new feature that you consider as a valuable
contribution, please open a PR. If you want to start working on a new feature that was proposed in an issue, yet, it
is recommended to reach out to the developers about this, first, to discuss if this contribution is valuable to the
project. Otherwise, you might waste your time on implementing something that won't make it into master.
In order to avoid having to manage ongoing discussions and bug reports on different communication
channels, e.g. forums, messangers or other closed groups, we ask everyone to treat the issue section
on gitlab as the place to open their relevant discussions and bug reports regarding the project.
Please read our [development guidelines](doc/development.md) as they contain valuable information that your contribution
meets our standards.
The maintainers of the project do not have the time nor motivation to micromanage on the various
channels and enter all data here to have it collected. This is a simple task that *ANYONE* can do
allowing the maintainers and developers to spend their time on the codebase.
Fork the upstream repository and start developing on your personal fork. Make sure to test your changes with games that
are affected by them. Pay attention to the target platform/hardware you are testing on! This is valuable information
that should be included in the PR.
## Bug reports
Once you completed your implementation, open a pull request on the upstream repository to propose your changes. We will review your contribution and get back to you about any changes or when we merge them to our upstream repository. Your changes, once approved, will be included in the next release.
Follow these steps when reporting bugs to ensure you provide all information we *always* need and
make your report valuable and actionable.
# Roadmap
No concrete roadmap or timeline exists. We want to continue adding support for new games as well as old games (some of
the old games supported by BT4 are not supported, yet).
1. On the bemanitools repository, go `Issues` on the left-hand sidebar.
1. Use the search function to check if there is an already open issue regarding what you want to
report
1. If that applies, read the open issue to check what's already covered regarding the bug
1. Provide additional information or things that are missing. Upload your log files, screenshots,
videos etc. Be careful to remove sensitive information like PCBIDs
1. Give a thumbs up to the issue to show you are interested/affected as well
1. If no existing issue avilable, create a new one
1. Come up with a descriptive title
1. **USE OUR BUG REPORTING TEMPLATE**: Pick it by selecting `Bug` on the `Description` section
1. Follow the sections and their instructions provided by the template and fill them in. All fields
are mandatory to provide a comprehensive report if not stated otherwise
1. When finished, submit the issue
## Pull requests: bugfixes, new features or other code contributions
Pull requests are welcome! May it be a merge request to an already known issue or a new feature that
you consider as a valuable contribution, please open a MR.
**!!! Maintaining documentation by adding new or improving existing documentation is as important as
code !!!**
If you want to start working on a new feature that was proposed in an issue, yet, it is recommended
to reach out to the active developers about this, first, to discuss if this contribution is valuable
to the project. Otherwise, you might waste your time on implementing something that won't make it
into master.
Please read our [development guidelines](doc/development.md) as they contain valuable information
that your contribution meets our standards. This is not meant to annoy people but ensures
consistency that the project stays maintainable for everyone.
Steps for contributing to the repository using a merge request:
1. If you are new to git, take a bit of time to learn the basics which are very simple, e.g. Google
for "git tutorial for non-programmers"
1. Fork the upstream repository (Fork button on the top right on the main page of the repository)
1. You can start editing files like documentation easily inside gitlab which might be the prefered
option for many non-coders
1. Clone your fork to your local machine and start working on stuff
1. Ensure you push your changes to your fork on gitlab
1. When done, go to the `Merge Requests` section on the left sidebar of the upstream repository
1. Hit the `New merge request` button
1. Select the `master` branch as the source branch
1. Select whatever branch you worked, likely `master` if you didn't change that, as the target
branch
1. Hit `Compare branches and continue`
1. Provide a descriptive title of what your change is about
1. **USE OUR MR TEMPLATES**
1. If you submit a bugfix, use the `Bugfix` tempalte and fill in the sections
1. If you submit a new feature, use the `Feature` template and fill in the sections
1. If you submit some minor fixes or documentation improvements, there is no template for that.
Please provide a expressive description what you did and *why* you did that
1. If any of your changes are tied to one or multiple issues, link them in the description
1. When done, hit `Submit merge request`
The maintainers will take a look at your submission and provide their feedback. The intention of
this process is to ensure the contribution meets the quality standards. Please also see this is a
learning opportunity, especially with your first contribution, if a lot of comments and change
requests are being made. The maintainers are open to discuss their suggestions/feedback if
reasonable feedback is given back to them.
Once all discussion is resolved and the involved maintainers approved your submission, it will be
merged into master and also included in the next release.
## Roadmap
No concrete roadmap or timeline exists. We want to continue adding support for new games as well as
old games (some of the old games supported by BT4 are not supported, yet).

21
Dockerfile.build Normal file
View File

@@ -0,0 +1,21 @@
FROM --platform=amd64 debian:11.6-slim@sha256:f7d141c1ec6af549958a7a2543365a7829c2cdc4476308ec2e182f8a7c59b519
LABEL description="Build environment for bemanitools"
# mingw-w64-gcc has 32-bit and 64-bit toolchains
RUN apt-get update && apt-get install -y --no-install-recommends \
mingw-w64 \
mingw-w64-common \
make \
zip \
git \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir /bemanitools
WORKDIR /bemanitools
ENTRYPOINT [ \
"/bin/sh", \
"-c" , \
"cd /bemanitools && \
make" ]

21
Dockerfile.dev Normal file
View File

@@ -0,0 +1,21 @@
FROM --platform=amd64 debian:11.6-slim@sha256:f7d141c1ec6af549958a7a2543365a7829c2cdc4476308ec2e182f8a7c59b519
LABEL description="Development environment for bemanitools"
# mingw-w64-gcc has 32-bit and 64-bit toolchains
RUN apt-get update && apt-get install -y --no-install-recommends \
mingw-w64 \
mingw-w64-common \
make \
zip \
git \
clang-format \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install mdformat
RUN mkdir /bemanitools
WORKDIR /bemanitools
ENV SHELL /bin/bash

View File

@@ -11,19 +11,26 @@ BUILDDIR ?= build
# Internal variables
#
depdir := $(BUILDDIR)/dep
objdir := $(BUILDDIR)/obj
bindir := $(BUILDDIR)/bin
builddir_docker := $(BUILDDIR)/docker
toolchain_32 := i686-w64-mingw32-
toolchain_64 := x86_64-w64-mingw32-
docker_build_container_name := "bemanitools-build"
docker_build_image_name := "bemanitools-build:latest"
docker_dev_container_name := "bemanitools-dev"
docker_dev_image_name := "bemanitools-dev:latest"
gitrev := $(shell git rev-parse HEAD)
cppflags := -I src -I src/main -I src/test -DGITREV=$(gitrev)
cflags := -O2 -pipe -ffunction-sections -fdata-sections \
-Wall -std=c99
cflags_release := -Werror
ldflags := -Wl,--gc-sections -static-libgcc
depdir := $(BUILDDIR)/dep
objdir := $(BUILDDIR)/obj
bindir := $(BUILDDIR)/bin
toolchain_32 := i686-w64-mingw32-
toolchain_64 := x86_64-w64-mingw32-
gitrev := $(shell git rev-parse HEAD)
cppflags := -I src -I src/main -I src/test -DGITREV=$(gitrev)
cflags := -g -O2 -pipe -ffunction-sections -fdata-sections \
-Wall -std=c99 -DPSAPI_VERSION=1
cflags_release := -Werror
ldflags := -Wl,--gc-sections -static-libgcc
#
# The first target that GNU Make encounters becomes the default target.
@@ -32,18 +39,25 @@ ldflags := -Wl,--gc-sections -static-libgcc
all: build
FORCE:
.PHONY: \
build-docker \
dev-docker \
clean \
code-format \
doc-format \
print-building \
print-release \
run-tests \
version
version \
FORCE
release: \
print-release \
clean \
code-format \
doc-format \
all \
run-tests
@@ -52,27 +66,65 @@ print-building \
version
print-building:
@echo "Build gitrev "$(gitrev)"..."
$(V)echo "Build gitrev "$(gitrev)"..."
print-release:
@echo "Starting release build..."
$(V)echo "Starting release build..."
clean:
@echo "Cleaning up..."
$(V)echo "Cleaning up..."
$(V)rm -rf $(BUILDDIR)
code-format:
@echo "Applying clang-format..."
# -style=file enables reading .clang-format
@find src/ -iname *.h -o -iname *.c | xargs clang-format -i -style=file
$(V)echo "Applying clang-format..."
$(V)find src/main src/test -name '*.c' -o -name '*.h' | xargs clang-format -i -style=file
doc-format:
$(V)echo "Applying mdformat on all docs..."
$(V)find . -name '*.md' | xargs mdformat --wrap 100
run-tests:
@echo "Running tests..."
@./run-tests-wine.sh
$(V)echo "Running tests..."
$(V)./run-tests-wine.sh
# Generate a version file to identify the build
version:
@echo "$(gitrev)" > version
$(V)echo "$(gitrev)" > version
build-docker:
$(V)docker rm -f $(docker_build_container_name) 2> /dev/null || true
$(V)docker \
build \
-t $(docker_build_image_name) \
-f Dockerfile.build \
.
$(V)docker \
run \
--volume $(shell pwd):/bemanitools \
--name $(docker_build_container_name) \
$(docker_build_image_name)
dev-docker:
$(V)docker rm -f $(docker_dev_container_name) 2> /dev/null || true
$(V)docker \
build \
-t $(docker_dev_image_name) \
-f Dockerfile.dev \
.
$(V)docker \
run \
--interactive \
--tty \
--volume $(shell pwd):/bemanitools \
--name $(docker_dev_container_name) \
$(docker_dev_image_name)
clean-docker:
$(V)docker rm -f $(docker_dev_container_name) || true
$(V)docker image rm -f $(docker_dev_image_name) || true
$(V)docker rm -f $(docker_build_container_name) || true
$(V)docker image rm -f $(docker_build_image_name) || true
$(V)rm -rf $(BUILDDIR)
#
# Pull in module definitions
@@ -87,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
@@ -148,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
@@ -157,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) \
@@ -170,6 +225,8 @@ $$(depdir_$1_$2_$3):
$$(objdir_$1_$2_$3):
$(V)mkdir -p $$@
$$(volatile_$3:%.c=$$(objdir_$1_$2_$3)/%.o): FORCE
$$(objdir_$1_$2_$3)/%.o: $$(srcdir_$3)/%.c \
| $$(depdir_$1_$2_$3) $$(objdir_$1_$2_$3)
$(V)echo ... $$@
@@ -206,13 +263,13 @@ 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)
$(V)$$(toolchain_$1)gcc -shared \
-o $$(dll_$1_$2_$3) -Wl,--out-implib,$$(implib_$1_$2_$3) \
$$^ $$(ldflags_$3)
$(V)$$(toolchain_$1)strip $$(dll_$1_$2_$3)
-Wl,--start-group $$^ -Wl,--end-group $$(ldflags_$3)
$(V)$$(toolchain_$1)ranlib $$(implib_$1_$2_$3)
endef
@@ -225,11 +282,10 @@ $(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)
$(V)$$(toolchain_$1)strip $$@
endef
@@ -241,7 +297,7 @@ impdef_$1_$2_$3 ?= src/imports/import_$1_$2_$3.def
$$(bindir_$1_$2)/lib$3.a: $$(impdef_$1_$2_$3) | $$(bindir_$1_$2)
$(V)echo ... $$@ [dlltool]
$(V)$$(toolchain_$1)dlltool -l $$@ -d $$<
$(V)$$(toolchain_$1)dlltool --kill-at -l $$@ -d $$<
endef

576
Module.mk
View File

@@ -21,12 +21,20 @@
#
# 4: Patch 2: beatmania IIDX 14 GOLD
#
# 4: Patch 3: pop'n music 15 ADVENTURE
#
# 6: Patch 5: beatmania IIDX 15 DJ Troopers
#
# 7: Patch 1: pop'n music 16 PARTY
#
# 8: Patch 3: beatmania IIDX 16 Empress
# jubeat
#
# 10: Patch 4: DanceDanceRevolution X2
# 9: Patch 0: pop'n music 17 THE MOVIE
#
# 10: Patch 1: pop'n music 18 Sengoku Retsuden
# Patch 2: jubeat Knit
# Patch 4: DanceDanceRevolution X2
#
# 11: Patch 1: beatmania IIDX 18 Resort Anthem
# pop'n music 19 Tune Street
@@ -49,14 +57,17 @@
# beatmania IIDX 22 PENDUAL
# beatmania IIDX 23 copula
# beatmania IIDX 24 SINOBUZ
# Patch 3: DanceDanceRevoluion A20+ (64-bit)
# "Patch" 3: Silent Scope Bone Eater (compatible with p7)
# "Patch" 7: Steel Chronicle VicTroopers (not a Bemani, w/e)
#
# 17: Patch 0: beatmania IIDX 25 CANNON BALLERS
# beatmania IIDX 26 Rootage
# beatmania IIDX 27 HEROIC VERSE
#
# Patch 3: SOUND VOLTEX VIVID WAVE
#
#
cflags += \
-DWIN32_LEAN_AND_MEAN \
@@ -69,87 +80,138 @@ cflags += \
# Each AVS-dependent project should consume the earliest AVS import definition
# that is still ABI-compatible with the real build its target links against.
avsvers_32 := 1700 1603 1601 1508 1403 1304 1101 803 0
avsvers_64 := 1700 1603 1601 1508
avsvers_32 := 1700 1603 1601 1508 1403 1306 1304 1101 1002 803 0
avsvers_64 := 1700 1603 1601 1509 1508
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/acio-mgr/Module.mk
include src/main/aciotest/Module.mk
include src/main/asio/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
include src/main/bsthook/Module.mk
include src/main/bstio/Module.mk
include src/main/camhook/Module.mk
include src/main/cconfig/Module.mk
include src/main/config/Module.mk
include src/main/core/Module.mk
include src/main/d3d9-util/Module.mk
include src/main/d3d9exhook/Module.mk
include src/main/ddrhook/Module.mk
include src/main/ddrio/Module.mk
include src/main/ddrio-smx/Module.mk
include src/main/ddrhook-util/Module.mk
include src/main/ddrhook1/Module.mk
include src/main/ddrhook2/Module.mk
include src/main/ddrio-async/Module.mk
include src/main/ddrio-p3io/Module.mk
include src/main/ddrio-mm/Module.mk
include src/main/eamio/Module.mk
include src/main/ddrio-smx/Module.mk
include src/main/ddriotest/Module.mk
include src/main/ddrio/Module.mk
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/ezusb/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
include src/main/ezusb-emu/Module.mk
include src/main/ezusb-iidx/Module.mk
include src/main/ezusb-iidx-16seg-emu/Module.mk
include src/main/ezusb-iidx-emu/Module.mk
include src/main/ezusb-iidx-fpga-flash/Module.mk
include src/main/ezusb-iidx-sram-flash/Module.mk
include src/main/ezusb-iidx/Module.mk
include src/main/ezusb-tool/Module.mk
include src/main/ezusb2/Module.mk
include src/main/ezusb/Module.mk
include src/main/ezusb2-dbg-hook/Module.mk
include src/main/ezusb2-emu/Module.mk
include src/main/ezusb2-iidx/Module.mk
include src/main/ezusb2-iidx-emu/Module.mk
include src/main/ezusb2-iidx/Module.mk
include src/main/ezusb2-popn-emu/Module.mk
include src/main/ezusb2-popn-shim/Module.mk
include src/main/ezusb2-tool/Module.mk
include src/main/ezusb-iidx-emu/Module.mk
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
include src/main/iidx-irbeat-patch/Module.mk
include src/main/iidxhook-d3d9/Module.mk
include src/main/iidxhook-util/Module.mk
include src/main/iidxhook1/Module.mk
include src/main/iidxhook2/Module.mk
include src/main/iidxhook3/Module.mk
include src/main/iidxhook4/Module.mk
include src/main/iidxhook4-cn/Module.mk
include src/main/iidxhook5/Module.mk
include src/main/iidxhook5-cn/Module.mk
include src/main/iidxhook6/Module.mk
include src/main/iidxhook7/Module.mk
include src/main/iidxhook8/Module.mk
include src/main/iidxio/Module.mk
include src/main/iidxhook9/Module.mk
include src/main/iidxio-bio2/Module.mk
include src/main/iidxio-ezusb/Module.mk
include src/main/iidxio-ezusb2/Module.mk
include src/main/iidxio/Module.mk
include src/main/iidxiotest/Module.mk
include src/main/inject/Module.mk
include src/main/jbio-magicbox/Module.mk
include src/main/jbio-p4io/Module.mk
include src/main/jbio/Module.mk
include src/main/jbhook/Module.mk
include src/main/jbiotest/Module.mk
include src/main/jbhook-util/Module.mk
include src/main/jbhook-util-p3io/Module.mk
include src/main/jbhook1/Module.mk
include src/main/jbhook2/Module.mk
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
include src/main/p3io-ddr-tool/Module.mk
include src/main/p4iodrv/Module.mk
include src/main/p4ioemu/Module.mk
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/pcbidgen/Module.mk
include src/main/sdvxhook/Module.mk
include src/main/sdvxhook2-cn/Module.mk
include src/main/sdvxhook2/Module.mk
include src/main/sdvxio/Module.mk
include src/main/sdvxio-bio2/Module.mk
include src/main/sdvxio-kfca/Module.mk
include src/main/sdvxio/Module.mk
include src/main/security/Module.mk
include src/main/unicorntail/Module.mk
include src/main/util/Module.mk
include src/main/vefxio/Module.mk
include src/main/vigem-iidxio/Module.mk
include src/main/vigem-sdvxio/Module.mk
include src/main/vigem-ddrio/Module.mk
include src/main/vigemstub/Module.mk
include src/test/cconfig/Module.mk
include src/test/d3d9hook/Module.mk
include src/test/iidxhook-util/Module.mk
include src/test/iidxhook8/Module.mk
include src/test/security/Module.mk
include src/test/test/Module.mk
include src/test/util/Module.mk
include src/test/iidxhook8/Module.mk
#
# Distribution build rules
@@ -162,12 +224,15 @@ $(zipdir)/:
$(zipdir)/tools.zip: \
build/bin/indep-32/aciotest.exe \
build/bin/indep-32/ddriotest.exe \
build/bin/indep-32/eamiotest.exe \
build/bin/indep-32/ezusb-iidx-fpga-flash.exe \
build/bin/indep-32/ezusb-iidx-sram-flash.exe \
build/bin/indep-32/iidxiotest.exe \
build/bin/indep-32/iidx-bio2-exit-hook.dll \
build/bin/indep-32/iidx-ezusb-exit-hook.dll \
build/bin/indep-32/iidx-ezusb2-exit-hook.dll \
build/bin/indep-32/jbiotest.exe \
build/bin/indep-32/pcbidgen.exe \
dist/iidx/ezusb-boot.bat \
dist/iidx/ezusb2-boot.bat \
@@ -175,34 +240,35 @@ $(zipdir)/tools.zip: \
build/bin/indep-32/ezusb2-dbg-hook.dll \
build/bin/indep-32/ezusb2-tool.exe \
build/bin/indep-32/ezusb-tool.exe \
build/bin/indep-32/procmon.dll \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/tools-x64.zip: \
build/bin/indep-64/aciotest.exe \
build/bin/indep-64/ddriotest.exe \
build/bin/indep-64/eamiotest.exe \
build/bin/indep-64/iidxiotest.exe \
build/bin/indep-64/iidx-bio2-exit-hook.dll \
build/bin/indep-64/iidx-ezusb-exit-hook.dll \
build/bin/indep-64/iidx-ezusb2-exit-hook.dll \
build/bin/indep-64/jbiotest.exe \
build/bin/indep-64/mempatch-hook.dll \
build/bin/indep-64/procmon.dll \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/src.zip: .git/HEAD $(zipdir)/
$(V)echo ... $@
$(V)git archive -o $@ HEAD
$(zipdir)/iidx-09-to-12.zip: \
build/bin/indep-32/iidxhook1.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/iidxio-ezusb.dll \
build/bin/indep-32/iidxio-ezusb2.dll \
build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \
dist/dwarfstack/32/dwarfstack.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-09.bat \
dist/iidx/gamestart-10.bat \
@@ -224,13 +290,11 @@ $(zipdir)/iidx-13.zip: \
build/bin/avs2_0-32/iidxhook2.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/iidxio-ezusb.dll \
build/bin/indep-32/iidxio-ezusb2.dll \
build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \
dist/dwarfstack/32/dwarfstack.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-13.bat \
dist/iidx/iidxhook-13.conf \
@@ -243,13 +307,11 @@ $(zipdir)/iidx-14-to-17.zip: \
build/bin/avs2_0-32/iidxhook3.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/iidxio-ezusb.dll \
build/bin/indep-32/iidxio-ezusb2.dll \
build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \
dist/dwarfstack/32/dwarfstack.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-14.bat \
dist/iidx/gamestart-15.bat \
@@ -269,15 +331,31 @@ $(zipdir)/iidx-18.zip: \
build/bin/avs2_1101-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/iidxio-ezusb.dll \
build/bin/indep-32/iidxio-ezusb2.dll \
build/bin/indep-32/vefxio.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-18.bat \
dist/iidx/iidxhook-18.conf \
dist/iidx/launcher-18.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/iidx-18-cn.zip: \
build/bin/avs2_1101-32/iidxhook4-cn.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \
dist/iidx/config.bat \
dist/iidx/gamestart-18-cn.bat \
dist/iidx/iidxhook-18-cn.conf \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
@@ -288,15 +366,16 @@ $(zipdir)/iidx-19.zip: \
build/bin/avs2_1304-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/iidxio-ezusb.dll \
build/bin/indep-32/iidxio-ezusb2.dll \
build/bin/indep-32/vefxio.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-19.bat \
dist/iidx/iidxhook-19.conf \
dist/iidx/launcher-19.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
@@ -307,15 +386,31 @@ $(zipdir)/iidx-20.zip: \
build/bin/avs2_1508-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/iidxio-ezusb.dll \
build/bin/indep-32/iidxio-ezusb2.dll \
build/bin/indep-32/vefxio.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-20.bat \
dist/iidx/iidxhook-20.conf \
dist/iidx/launcher-20.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/iidx-20-cn.zip: \
build/bin/avs2_1304-32/iidxhook5-cn.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/vefxio.dll \
build/bin/indep-32/inject.exe \
dist/iidx/config.bat \
dist/iidx/gamestart-20-cn.bat \
dist/iidx/iidxhook-20-cn.conf \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
@@ -326,11 +421,8 @@ $(zipdir)/iidx-21-to-24.zip: \
build/bin/avs2_1601-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/eamio-icca.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/iidxio.dll \
build/bin/indep-32/iidxio-ezusb.dll \
build/bin/indep-32/iidxio-ezusb2.dll \
build/bin/indep-32/vefxio.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-21.bat \
@@ -341,6 +433,13 @@ $(zipdir)/iidx-21-to-24.zip: \
dist/iidx/iidxhook-22.conf \
dist/iidx/iidxhook-23.conf \
dist/iidx/iidxhook-24.conf \
dist/iidx/launcher-21.xml \
dist/iidx/launcher-22.xml \
dist/iidx/launcher-23.xml \
dist/iidx/launcher-24.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
@@ -351,22 +450,79 @@ $(zipdir)/iidx-25-to-26.zip: \
build/bin/avs2_1700-64/launcher.exe \
build/bin/indep-64/config.exe \
build/bin/indep-64/eamio.dll \
build/bin/indep-64/eamio-icca.dll \
build/bin/indep-64/geninput.dll \
build/bin/indep-64/iidxio.dll \
build/bin/indep-64/iidxio-ezusb.dll \
build/bin/indep-64/iidxio-ezusb2.dll \
build/bin/indep-64/vefxio.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-25.bat \
dist/iidx/gamestart-26.bat \
dist/iidx/iidxhook-25.conf \
dist/iidx/iidxhook-26.conf \
dist/iidx/launcher-25.xml \
dist/iidx/launcher-26.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/iidx-27-to-30.zip: \
build/bin/avs2_1700-64/iidxhook9.dll \
build/bin/avs2_1700-64/launcher.exe \
build/bin/indep-64/config.exe \
build/bin/indep-64/eamio.dll \
build/bin/indep-64/geninput.dll \
build/bin/indep-64/iidxio.dll \
build/bin/indep-64/vefxio.dll \
dist/iidx/config.bat \
dist/iidx/gamestart-27.bat \
dist/iidx/gamestart-28.bat \
dist/iidx/gamestart-29.bat \
dist/iidx/gamestart-30.bat \
dist/iidx/iidxhook-27.conf \
dist/iidx/iidxhook-28.conf \
dist/iidx/iidxhook-29.conf \
dist/iidx/iidxhook-30.conf \
dist/iidx/launcher-27.xml \
dist/iidx/launcher-28.xml \
dist/iidx/launcher-29.xml \
dist/iidx/launcher-30.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
dist/iidx/vefx.txt \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/iidx-hwio-x86.zip: \
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 \
build/bin/indep-32/iidxio-ezusb2.dll \
dist/iidx/iidxio-bio2.conf \
build/bin/indep-32/vigem-iidxio.exe \
dist/iidx/vigem-iidxio.conf \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/iidx-hwio-x64.zip: \
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 \
build/bin/indep-64/iidxio-ezusb2.dll \
dist/iidx/iidxio-bio2.conf \
build/bin/indep-64/vigem-iidxio.exe \
dist/iidx/vigem-iidxio.conf \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/jb-01.zip: \
build/bin/avs2_803-32/jbhook1.dll \
build/bin/indep-32/inject.exe \
@@ -374,6 +530,7 @@ $(zipdir)/jb-01.zip: \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/jb/config.bat \
dist/jb/gamestart-01.bat \
dist/jb/jbhook-01.conf \
@@ -381,65 +538,216 @@ $(zipdir)/jb-01.zip: \
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/jb-02.zip: \
build/bin/avs2_1002-32/jbhook1.dll \
build/bin/indep-32/inject.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/jb/config.bat \
dist/jb/gamestart-02.bat \
dist/jb/jbhook-02.conf \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/jb-03.zip: \
build/bin/avs2_1101-32/jbhook2.dll \
build/bin/avs2_1101-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \
dist/jb/config.bat \
dist/jb/gamestart-03.bat \
dist/jb/launcher-03.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/jb-04.zip: \
build/bin/avs2_1304-32/jbhook2.dll \
build/bin/avs2_1304-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \
dist/jb/config.bat \
dist/jb/gamestart-03.bat \
dist/jb/launcher-03.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/jb-05-to-07.zip: \
build/bin/avs2_1508-32/jbhook.dll \
build/bin/avs2_1508-32/jbhook3.dll \
build/bin/avs2_1508-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \
dist/jb/config.bat \
dist/jb/gamestart.bat \
dist/jb/gamestart-04.bat \
dist/jb/launcher-04.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/jb-08.zip: \
build/bin/avs2_1700-32/jbhook.dll \
build/bin/avs2_1700-32/jbhook3.dll \
build/bin/avs2_1700-32/launcher.exe \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/jbio.dll \
dist/jb/config.bat \
dist/jb/gamestart.bat \
dist/jb/gamestart-04.bat \
dist/jb/launcher-04.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/sdvx.zip: \
$(zipdir)/jb-hwio.zip: \
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 \
dist/jb/jbio-h44b.conf \
dist/jb/eamio-icc.conf \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/sdvx-01-to-04.zip: \
build/bin/avs2_1508-32/launcher.exe \
build/bin/avs2_1508-32/sdvxhook.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/sdvxio.dll \
build/bin/indep-32/sdvxio-kfca.dll \
dist/sdvx/config.bat \
dist/sdvx/gamestart.bat \
dist/sdvx/launcher.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/sdvx5.zip: \
$(zipdir)/sdvx-05-to-06.zip: \
build/bin/avs2_1700-64/launcher.exe \
build/bin/avs2_1700-64/sdvxhook2.dll \
build/bin/indep-64/config.exe \
build/bin/indep-64/eamio.dll \
build/bin/indep-64/geninput.dll \
build/bin/indep-64/sdvxio.dll \
build/bin/indep-64/sdvxio-kfca.dll \
dist/sdvx5/config.bat \
dist/sdvx5/gamestart.bat \
dist/sdvx5/sdvxhook2.conf \
dist/sdvx5/launcher.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-12-to-16.zip: \
build/bin/avs2_1508-32/launcher.exe \
build/bin/avs2_1508-32/ddrhook.dll \
build/bin/avs2_1508-32/unicorntail.dll \
$(zipdir)/sdvx-05-cn.zip: \
build/bin/avs2_1700-64/launcher.exe \
build/bin/avs2_1700-64/sdvxhook2-cn.dll \
build/bin/indep-64/config.exe \
build/bin/indep-64/eamio.dll \
build/bin/indep-64/geninput.dll \
build/bin/indep-64/sdvxio.dll \
dist/sdvx5/config.bat \
dist/sdvx5/gamestart-cn.bat \
dist/sdvx5/sdvxhook2-cn.conf \
dist/sdvx5/launcher-cn.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/sdvx-hwio-x86.zip: \
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 \
build/bin/indep-32/vigem-sdvxio.exe \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/sdvx-hwio-x64.zip: \
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 \
build/bin/indep-64/vigem-sdvxio.exe \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-11.zip: \
build/bin/indep-32/inject.exe \
build/bin/avs2_803-32/ddrhook1.dll \
build/bin/avs2_803-32/unicorntail.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/ddrio.dll \
build/bin/indep-32/ddrio-mm.dll \
build/bin/indep-32/ddrio-smx.dll \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
dist/ddr/config.bat \
dist/ddr/gamestart-11.bat \
dist/ddr/gamestart-11-us.bat \
dist/ddr/ddr-11.conf \
dist/ddr/ddr-11-us.conf \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-12-us.zip: \
build/bin/indep-32/inject.exe \
build/bin/avs2_1002-32/ddrhook1.dll \
build/bin/avs2_1002-32/unicorntail.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/ddrio.dll \
build/bin/indep-32/ddrio-mm.dll \
build/bin/indep-32/ddrio-smx.dll \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/ddr/config.bat \
dist/ddr/gamestart-12-us.bat \
dist/ddr/gamestart-12-eu.bat \
dist/ddr/ddr-12-us.conf \
dist/ddr/ddr-12-eu.conf \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-12.zip: \
build/bin/avs2_1002-32/launcher.exe \
build/bin/avs2_1002-32/ddrhook2.dll \
build/bin/avs2_1002-32/unicorntail.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/ddrio.dll \
build/bin/indep-32/ddrio-mm.dll \
@@ -448,10 +756,106 @@ $(zipdir)/ddr-12-to-16.zip: \
build/bin/indep-32/geninput.dll \
dist/ddr/config.bat \
dist/ddr/gamestart-12.bat \
dist/ddr/launcher-12.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-13.zip: \
build/bin/avs2_1306-32/launcher.exe \
build/bin/avs2_1306-32/ddrhook2.dll \
build/bin/avs2_1306-32/unicorntail.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/ddrio.dll \
build/bin/indep-32/ddrio-mm.dll \
build/bin/indep-32/ddrio-smx.dll \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
dist/ddr/config.bat \
dist/ddr/gamestart-13.bat \
dist/ddr/launcher-13.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-14-to-18.zip: \
build/bin/avs2_1508-32/launcher.exe \
build/bin/avs2_1508-32/ddrhook2.dll \
build/bin/avs2_1508-32/unicorntail.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/ddrio.dll \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/geninput.dll \
dist/ddr/config.bat \
dist/ddr/gamestart-17.bat \
dist/ddr/gamestart-18.bat \
dist/ddr/gamestart-14.bat \
dist/ddr/gamestart-15.bat \
dist/ddr/gamestart-16.bat \
dist/ddr/gamestart-17.bat \
dist/ddr/gamestart-18.bat \
dist/ddr/launcher-14.xml \
dist/ddr/launcher-15.xml \
dist/ddr/launcher-16.xml \
dist/ddr/launcher-17.xml \
dist/ddr/launcher-18.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-16-to-18-x64.zip: \
build/bin/avs2_1603-64/launcher.exe \
build/bin/avs2_1603-64/ddrhook2.dll \
build/bin/avs2_1603-64/unicorntail.dll \
build/bin/indep-64/config.exe \
build/bin/indep-64/ddrio.dll \
build/bin/indep-64/eamio.dll \
build/bin/indep-64/geninput.dll \
dist/ddr/config.bat \
dist/ddr/gamestart-17.bat \
dist/ddr/gamestart-18.bat \
dist/ddr/gamestart-16.bat \
dist/ddr/gamestart-17.bat \
dist/ddr/gamestart-18.bat \
dist/ddr/launcher-16.xml \
dist/ddr/launcher-17.xml \
dist/ddr/launcher-18.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-hwio-x86.zip: \
build/bin/indep-32/ddrio-async.dll \
build/bin/indep-32/ddrio-p3io.dll \
build/bin/indep-32/ddrio-mm.dll \
build/bin/indep-32/ddrio-smx.dll \
build/bin/indep-32/extiotest.exe \
build/bin/indep-32/p3io-ddr-tool.exe \
build/bin/indep-32/vigem-ddrio.exe \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/ddr-hwio-x64.zip: \
build/bin/indep-64/ddrio-async.dll \
build/bin/indep-64/ddrio-p3io.dll \
build/bin/indep-64/ddrio-mm.dll \
build/bin/indep-64/ddrio-smx.dll \
build/bin/indep-64/extiotest.exe \
build/bin/indep-64/p3io-ddr-tool.exe \
build/bin/indep-64/vigem-ddrio.exe \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
@@ -466,15 +870,39 @@ $(zipdir)/bst.zip: \
dist/bst/config.bat \
dist/bst/gamestart1.bat \
dist/bst/gamestart2.bat \
dist/bst/launcher-01.xml \
dist/bst/launcher-02.xml \
dist/shared/ea3-ident.xml \
dist/shared/ea3-license.xml \
dist/shared/ea3-service.xml \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/popn-15-to-18.zip: \
build/bin/avs2_803-32/popnhook1.dll \
build/bin/indep-32/config.exe \
build/bin/indep-32/inject.exe \
build/bin/indep-32/geninput.dll \
build/bin/indep-32/eamio.dll \
build/bin/indep-32/popnio.dll \
build/bin/indep-32/ezusb2-popn-shim.dll \
dist/dwarfstack/32/dwarfstack.dll \
dist/popn/config.bat \
dist/popn/gamestart-15.bat \
dist/popn/gamestart-16.bat \
dist/popn/gamestart-17.bat \
dist/popn/gamestart-18.bat \
dist/popn/popnhook-15.conf \
dist/popn/popnhook-16.conf \
dist/popn/popnhook-17.conf \
dist/popn/popnhook-18.conf \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
$(zipdir)/doc.zip: \
doc/iidxhook \
doc/sdvxhook \
doc/jbhook \
doc/tools \
doc/ \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -r $@ $^
@@ -491,6 +919,7 @@ $(BUILDDIR)/tests.zip: \
build/bin/indep-32/iidxhook-util-config-gfx-test.exe \
build/bin/indep-32/iidxhook-util-config-misc-test.exe \
build/bin/indep-32/iidxhook-util-config-sec-test.exe \
dist/dwarfstack/32/dwarfstack.dll \
build/bin/indep-32/inject.exe \
build/bin/indep-32/security-id-test.exe \
build/bin/indep-32/security-mcode-test.exe \
@@ -507,22 +936,41 @@ $(BUILDDIR)/tests.zip: \
$(BUILDDIR)/bemanitools.zip: \
$(zipdir)/bst.zip \
$(zipdir)/ddr-12-to-16.zip \
$(zipdir)/ddr-11.zip \
$(zipdir)/ddr-12.zip \
$(zipdir)/ddr-12-us.zip \
$(zipdir)/ddr-13.zip \
$(zipdir)/ddr-14-to-18.zip \
$(zipdir)/ddr-16-to-18-x64.zip \
$(zipdir)/ddr-hwio-x86.zip \
$(zipdir)/ddr-hwio-x64.zip \
$(zipdir)/doc.zip \
$(zipdir)/iidx-09-to-12.zip \
$(zipdir)/iidx-13.zip \
$(zipdir)/iidx-14-to-17.zip \
$(zipdir)/iidx-18.zip \
$(zipdir)/iidx-18-cn.zip \
$(zipdir)/iidx-19.zip \
$(zipdir)/iidx-20.zip \
$(zipdir)/iidx-20-cn.zip \
$(zipdir)/iidx-21-to-24.zip \
$(zipdir)/iidx-25-to-26.zip \
$(zipdir)/iidx-27-to-30.zip \
$(zipdir)/iidx-hwio-x86.zip \
$(zipdir)/iidx-hwio-x64.zip \
$(zipdir)/jb-01.zip \
$(zipdir)/jb-02.zip \
$(zipdir)/jb-03.zip \
$(zipdir)/jb-04.zip \
$(zipdir)/jb-05-to-07.zip \
$(zipdir)/jb-08.zip \
$(zipdir)/src.zip \
$(zipdir)/sdvx.zip \
$(zipdir)/sdvx5.zip \
$(zipdir)/jb-hwio.zip \
$(zipdir)/popn-15-to-18.zip \
$(zipdir)/sdvx-01-to-04.zip \
$(zipdir)/sdvx-05-to-06.zip \
$(zipdir)/sdvx-05-cn.zip \
$(zipdir)/sdvx-hwio-x86.zip \
$(zipdir)/sdvx-hwio-x64.zip \
$(zipdir)/tools.zip \
$(zipdir)/tools-x64.zip \
CHANGELOG.md \

265
README.md
View File

@@ -1,93 +1,204 @@
# Bemanitools 5
[![pipeline status](https://dev.s-ul.eu/djhackers/bemanitools/badges/master/pipeline.svg)](https://dev.s-ul.eu/djhackers/bemanitools/commits/master)
Version: 5.28</br>
[Release history](CHANGELOG.md)
Version: `5.49`
A collection of tools to run [various Bemani arcade games](#list-of-supported-games).
[Changelog](CHANGELOG.md)
Bemanitools 5 (BT5) is the successor to Bemanitools 4 which introduces a big code cleanup and support for newer games.
BT5 uses a cleaner approach than BT4 did; specifically, all input and lighting is handled by emulating the protocols
spoken by the real IO PCBs, instead of replacing chunks of game code like BT4. The benefits of this approach are a more
authentic gameplay experience, and easier support for a broader range of releases from each game series.
A collection of tools to run [various Bemani arcade games](#supported-games).
# List of supported games
* BeatStream
* BeatStream (bst.zip) using bsthook
* BeatStream アニムトライヴ (bst.zip) using bsthook
* Dance Dance Revolution
* Dance Dance Revolution X2 (ddr-12-to-16.zip) using ddrhook
* Dance Dance Revolution X3 vs. 2ndMIX (ddr-12-to-16.zip) using ddrhook
* Dance Dance Revolution 2013 (ddr-12-to-16.zip) using ddrhook
* Dance Dance Revolution 2014 (ddr-12-to-16.zip) using ddrhook
* Dance Dance Revolution A (ddr-12-to-16.zip) using ddrhook
* Beatmania IIDX
* Beatmania IIDX 9th Style (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
* Beatmania IIDX 10th Style (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
* Beatmania IIDX 11 IIDX RED (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
* Beatmania IIDX 12 HAPPY SKY (iidx-09-to-12.zip) using [iidxhook1](doc/iidxhook/iidxhook1.md)
* Beatmania IIDX 13 DistorteD (iidx-13.zip) using [iidxhook2](doc/iidxhook/iidxhook2.md)
* Beatmania IIDX 14 GOLD (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
* Beatmania IIDX 15 DJ TROOPERS (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
* Beatmania IIDX 16 EMPRESS (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
* Beatmania IIDX 17 SIRIUS (iidx-14-to-17.zip) using [iidxhook3](doc/iidxhook/iidxhook3.md)
* Beatmania IIDX 18 Resort Anthem (iidx-18.zip) using [iidxhook4](doc/iidxhook/iidxhook4.md)
* Beatmania IIDX 19 Lincle (iidx-19.zip) using [iidxhook5](doc/iidxhook/iidxhook5.md)
* Beatmania IIDX 20 Tricoro (iidx-20.zip) using [iidxhook6](doc/iidxhook/iidxhook6.md)
* Beatmania IIDX 21 SPADA (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
* Beatmania IIDX 22 PENDUAL (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
* Beatmania IIDX 23 copula (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
* Beatmania IIDX 24 SINOBUZ (iidx-21-to-24.zip) using [iidxhook7](doc/iidxhook/iidxhook7.md)
* Beatmania IIDX 25 CANNON BALLERS (iidx-25-to-26.zip) using [iidxhook8](doc/iidxhook/iidxhook8.md)
* Beatmania IIDX 26 Rootage (iidx-25-to-26.zip) using [iidxhook8](doc/iidxhook/iidxhook8.md)
* jubeat
* jubeat (experimental/buggy) (jb-01.zip) using [jbhook1](doc/jbhook1/jbhook1.md)
* jubeat saucer (fulfill) (jb-05-to-07.zip) using jbhook
* jubeat prop (jb-05-to-07.zip) using jbhook
* jubeat Qubell (jb-05-to-07.zip) using jbhook
* jubeat clan (jb-08.zip) using jbhook
* SOUND VOLTEX
* SOUND VOLTEX BOOTH (sdvx.zip) using sdvxhook
* SOUND VOLTEX II -infinite infection- (sdvx.zip) using sdvxhook
* SOUND VOLTEX III GRAVITY WARS (sdvx.zip) using sdvxhook
* SOUND VOLTEX IV HEAVENLY HAVEN (sdvx.zip) using sdvxhook
* SOUND VOLTEX Vivid Wave (sdvx2.zip) using sdvxhook2
Bemanitools 5 (BT5) is the successor to Bemanitools 4 which introduces a big code cleanup and
support for newer games. BT5 uses a cleaner approach than BT4 did; specifically, all input and
lighting is handled by emulating the protocols spoken by the real IO PCBs, instead of replacing
chunks of game code like BT4. The benefits of this approach are a more authentic gameplay
experience, and easier support for a broader range of releases from each game series.
# Supported platforms
Our main platforms are currently Windows XP and Windows 7 which are also the target platforms on the original hardware
of those games. However, as it gets more difficult to get and maintain hardware comptible with Windows XP, this might
change in the future. Many games also run on very recent Windows 10 builds but bear with us that it's hard to keep up
with Windows updates breaking legacy software.
## Documentation
# Distribution contents
Check the [list of supported games](#list-of-supported-games) to grab the right files for your game. BT5 also includes
a *tools* subpackage (tools.zip) as well as the full source code (src.zip).
Browse our [documentation](doc/README.md) as it might already cover various questions and concerns
you are looking for or about to ask.
You will find *.md files in various sub-packages that give you further instructions for setup, usage, error information
or FAQ. We advice you to read them as your questions and concerns might already be answered by them. If not, let us
know if there is any information that you consider helpful or important to know and should be added.
## Contributions and bug reporting
# Contributions
Please refer to the [dedicated documentation](CONTRIBUTING.md).
[Read the dedicated CONTRIBUTING.md documentation](CONTRIBUTING.md).
# Development
## Architecture
A dedicate [architecture document](doc/architecture.md) outlines the architecture of Bemanitools and points out the most
important aspects you should know before you get started with development.
The tl;dr version and golden rules of the sections in the document:
- **EVERYONE** can contribute, this is **NOT** limited to people coding
- [Open an issue on gitlab for discussions, feature requests and bug reports](CONTRIBUTING.md#reporting-and-discussions-issues-section-on-github)
- [ALWAYS report bugs as issues and ALWAYS use the available bug template](CONTRIBUTING.md#bug-reports)
- [Everyone is allowed to submit changes which are not just limited to code by opening merge requests](CONTRIBUTING.md#pull-requests-bugfixes-new-features-or-other-code-contributions)
- [Documentation improvements can and even should be contributed by non developers](CONTRIBUTING.md#pull-requests-bugfixes-new-features-or-other-code-contributions)
## Supported games
The following games are supported with their corresponding hook-libraries.
- BeatStream
- BeatStream (`bst.zip`): bsthook
- BeatStream アニムトライヴ (`bst.zip`): bsthook
- [Dance Dance Revolution](doc/ddrhook/README.md)
- Dance Dance Revolution X (`ddr-11.zip`): [ddrhook1](doc/ddrhook/ddrhook1.md)
- Dance Dance Revolution X2 (US/EU regions) (`ddr-12-us.zip`): [ddrhook1](doc/ddrhook/ddrhook1.md)
- Dance Dance Revolution X2 (JP region) (`ddr-12.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
- Dance Dance Revolution X3 vs. 2ndMIX (`ddr-13.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
- Dance Dance Revolution 2013 (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
- Dance Dance Revolution 2014 (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
- Dance Dance Revolution A (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
- Dance Dance Revolution A20 (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
- Dance Dance Revolution A20+ (`ddr-14-to-18.zip`): [ddrhook2](doc/ddrhook/ddrhook2.md)
- [Beatmania IIDX](doc/iidxhook/README.md)
- Beatmania IIDX 9th Style (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
- Beatmania IIDX 10th Style (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
- Beatmania IIDX 11 IIDX RED (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
- Beatmania IIDX 12 HAPPY SKY (`iidx-09-to-12.zip`): [iidxhook1](doc/iidxhook/iidxhook1.md)
- Beatmania IIDX 13 DistorteD (`iidx-13.zip`): [iidxhook2](doc/iidxhook/iidxhook2.md)
- Beatmania IIDX 14 GOLD (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
- Beatmania IIDX 15 DJ TROOPERS (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
- Beatmania IIDX 16 EMPRESS (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
- Beatmania IIDX 17 SIRIUS (`iidx-14-to-17.zip`): [iidxhook3](doc/iidxhook/iidxhook3.md)
- Beatmania IIDX 18 Resort Anthem (`iidx-18.zip`): [iidxhook4](doc/iidxhook/iidxhook4.md)
- Beatmania IIDX 19 Lincle (`iidx-19.zip`): [iidxhook5](doc/iidxhook/iidxhook5.md)
- Beatmania IIDX tricoro CN (狂热节拍 IIDX 2) (`iidx-20-cn.zip`):
[iidxhook5-cn](doc/iidxhook/iidxhook5-cn.md)
- Beatmania IIDX 20 Tricoro (`iidx-20.zip`): [iidxhook6](doc/iidxhook/iidxhook6.md)
- Beatmania IIDX 21 SPADA (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
- Beatmania IIDX 22 PENDUAL (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
- Beatmania IIDX 23 copula (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
- Beatmania IIDX 24 SINOBUZ (`iidx-21-to-24.zip`): [iidxhook7](doc/iidxhook/iidxhook7.md)
- Beatmania IIDX 25 CANNON BALLERS (`iidx-25-to-26.zip`): [iidxhook8](doc/iidxhook/iidxhook8.md)
- Beatmania IIDX 26 Rootage (`iidx-25-to-26.zip`): [iidxhook8](doc/iidxhook/iidxhook8.md)
- Beatmania IIDX 27 Heroic Verse (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
- Beatmania IIDX 28 BISTROVER (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
- Beatmania IIDX 29 CASTHOUR (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
- Beatmania IIDX 30 RESIDENT (`iidx-27-to-30.zip`): [iidxhook9](doc/iidxhook/iidxhook9.md)
- [jubeat](doc/jbhook/README.md)
- jubeat (`jb-01.zip`): [jbhook1](doc/jbhook/jbhook1.md)
- jubeat ripples (`jb-02.zip`): [jbhook1](doc/jbhook/jbhook1.md)
- jubeat knit (`jb-03.zip`): [jbhook2](doc/jbhook/jbhook2.md)
- jubeat copious (`jb-04.zip`): [jbhook2](doc/jbhook/jbhook2.md)
- jubeat saucer (fulfill) (`jb-05-to-07.zip`): [jbhook3](doc/jbhook/jbhook3.md)
- jubeat prop (`jb-05-to-07.zip`): [jbhook3](doc/jbhook/jbhook3.md)
- jubeat qubell (`jb-05-to-07.zip`): [jbhook3](doc/jbhook/jbhook3.md)
- jubeat clan (`jb-08.zip`): [jbhook3](doc/jbhook/jbhook3.md)
- jubeat festo (`jb-08.zip`): [jbhook3](doc/jbhook/jbhook3.md)
- [pop'n music](doc/popnhook/README.md)
- pop'n music 15 ADVENTURE (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
- pop'n music 16 PARTY♪ (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
- pop'n music 17 THE MOVIE (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
- pop'n music 18 せんごく列伝 (`popn-15-to-18.zip`) using [popnhook1](doc/popnhook/popnhook1.md)
- SOUND VOLTEX
- SOUND VOLTEX BOOTH (`sdvx-01-to-04.zip`): sdvxhook
- SOUND VOLTEX II -infinite infection- (`sdvx-01-to-04.zip`): sdvxhook
- SOUND VOLTEX III GRAVITY WARS (`sdvx-01-to-04.zip`): sdvxhook
- SOUND VOLTEX IV HEAVENLY HAVEN (`sdvx-01-to-04.zip`): sdvxhook
- SOUND VOLTEX Vivid Wave (`sdvx-05-to-06`): sdvxhook2
- SOUND VOLTEX EXCEED GEAR (`sdvx-05-to-06`): sdvxhook2
## Auxiliary tooling
- Bootstrapping
- [inject](doc/inject.md): Inject arbitrary hooking libraries into a target application process.
- [launcher](doc/launcher.md): Bootstrap Konami's AVS environment and launch a target application
with arbitrary injected hooking libraries.
- Beatmnia IIDX Ezusb IO board
- [ezusb-iidx-fpga-flash](doc/tools/ezusb-iidx-fpga-flash.md): Flash a binary blob with FPGA
firmware to a target ezusb FX IO board
- [ezusb-iidx-sram-flash](doc/tools/ezusb-iidx-sram-flash.md): Flash a binary blob with SRAM
contents to a target ezusb FX2 IO board
- Exit hooks: Exit the game with a button combination using native cabinet inputs
- [iidx-ezusb-exit-hook](doc/tools/iidx-ezusb-exit-hook.md): For IIDX with ezusb IO
- [iidx-bio2-exit-hook](doc/tools/iidx-bio2-exit-hook.md): For IIDX with BIO2 IO
- [iidx-ezusb2-exit-hook](doc/tools/iidx-ezusb-exit-hook.md): For IIDX with ezusb FX2 IO
- Bemanitools API testing: Tools for testing bemanitools API implementations
- [ddriotest](doc/tools/ddriotest.md): For [ddrio API](doc/api.md#io-boards)
- [eamiotest](doc/tools/eamiotest.md): For [eamio API](doc/api.md#eamuse-readers)
- [iidxiotest](doc/tools/iidxiotest.md): For [iidxio API](doc/api.md#io-boards)
- [jbiotest](doc/tools/jbiotest.md): For [jbio API](doc/api.md#io-boards)
- DDR IO testing: Tools for testing hardware of a real DDR cabinet
- [p3io-ddr-tool](doc/tools/p3io-ddr-tool.md)
- [extiotest](doc/tools/extiotest.md)
- [aciotest](doc/tools/aciotest.md): Command line tool to quickly test ACIO devices
- config: UI input/output configuration tool when using the default bemanitools API (geninput)
- ir-beat-patch-9/10: Patch the IR beat phase on IIDX 9 and 10
- [mempatch-hook](doc/tools/mempatch-hook.md): Patch raw memory locations in the target process
based on the provided configuration
- [pcbidgen](doc/tools/pcbidgen.md): Konami PCBID generator tool
- [ViGEm clients](doc/vigem/README.md): Expose BT5 APIs as XBOX game controllers to play any games
with real cabinet hardware.
## Pre-requisites
### Supported platforms
Our main platforms are currently Windows XP and Windows 7 which are also the target platforms on the
original hardware of those games. However, as it gets more difficult to get and maintain hardware
comptible with Windows XP, this might change in the future. Many games also run on very recent
Windows 10 builds but bear with us that it's hard to keep up with Windows updates breaking legacy
software.
### Distribution contents
Check the [list of supported games](#supported-games) to grab the right files for your game. BT5
also includes a *tools* subpackage (tools.zip) as well as the full source code (src.zip).
You will find \*.md files in various sub-packages that give you further instructions for setup,
usage, error information or FAQ. We advice you to read them as your questions and concerns might
already be answered by them. If not, let us know if there is any information that you consider
helpful or important to know and should be added.
### Setup and dependencies
The games bemanitools support span several generations of (embedded) Windows versions: XP, 7 and 10
(IoT). With these come different generations of dependencies as requirements.
Simplified, this boils down to the following list of C++ Redistributable (vcredist) packages that
are recommended to be installed without going into detail which game needs exactly which version.
Keep in mind the "bitness" (32-bit vs. 64-bit) of each specific game and download the right ones
accordingly.
You can use a tool like [dependencywalker](https://www.dependencywalker.com/) to figure that out if
it is relevant to you.
Links/files are also provided by
[bemanitools-supplement](https://github.com/djhackersdev/bemanitools-supplement/tree/master/misc/win-runtime#windows-runtimes-and-libraries)
#### Visual C++ Redistributable Packages
- 2010
- [32-bit (x86)](http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe)
- [64-bit (x64)](http://download.microsoft.com/download/d/2/4/d242c3fb-da5a-4542-ad66-f9661d0a8d19/vcredist_x64.exe)
- 2013
- [32-bit (x86)](http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe)
- [64-bit (x64)](http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe)
- 2015
- [32-bit (x86)](https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe)
- [64-bit (x64)](https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe)
#### DirectX 9
Most/nearly all games support to this day use the DirectX 9(ex) API. Make sure to install the
[DirectX 9 End-User Runtimes (June 2010)](https://www.microsoft.com/en-us/download/details.aspx?id=8109)
## Development
### Building
See the [development document](doc/development.md).
### Architecture
A dedicate [architecture document](doc/architecture.md) outlines the architecture of Bemanitools and
points out the most important aspects you should know before you get started with development.
### API
## API
Please refer to the [API documentation](doc/api.md).
## Source Code
The source code is included with this distribution package (src.zip). Please refer to the
[development document](doc/development.md) for further details.
# License
Source code license is the Unlicense; you are permitted to do with this as thou wilt. For details, please refer to the
[LICENSE file](LICENSE) included with the source code.
## Release process
Please refer to the [dedicated documentation](doc/release-process.md).
## License
Source code license is the Unlicense; you are permitted to do with this as thou wilt. For details,
please refer to the [LICENSE file](LICENSE) included with the source code.

View File

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

View File

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

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

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

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

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

32
dist/ddr/ddr-11-us.conf vendored Normal file
View File

@@ -0,0 +1,32 @@
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
eamuse.server=localhost:80
# PCBID
eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Mcode of the game to run.
security.mcode=GQHDXUAA
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
ddrhook1.use_com4_emu=true
# SD cabinet mode
ddrhook1.standard_def=false
# Use 15 kHz monitor mode
ddrhook1.use_15khz=false
# Enable USB memory data emulation
ddrhook1.usbmem_enabled=false
# Specify path for P1 USB memory data
ddrhook1.usbmem_path_p1=usbmem_p1
# Specify path for P2 USB memory data
ddrhook1.usbmem_path_p2=usbmem_p2
# Run the game windowed
gfx.windowed=false

32
dist/ddr/ddr-11.conf vendored Normal file
View File

@@ -0,0 +1,32 @@
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
eamuse.server=localhost:80
# PCBID
eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Mcode of the game to run.
security.mcode=GQHDXJAA
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
ddrhook1.use_com4_emu=true
# SD cabinet mode
ddrhook1.standard_def=false
# Use 15 kHz monitor mode
ddrhook1.use_15khz=false
# Enable USB memory data emulation
ddrhook1.usbmem_enabled=false
# Specify path for P1 USB memory data
ddrhook1.usbmem_path_p1=usbmem_p1
# Specify path for P2 USB memory data
ddrhook1.usbmem_path_p2=usbmem_p2
# Run the game windowed
gfx.windowed=false

32
dist/ddr/ddr-12-eu.conf vendored Normal file
View File

@@ -0,0 +1,32 @@
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
eamuse.server=localhost:80
# PCBID
eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Mcode of the game to run.
security.mcode=GQJDXEAA
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
ddrhook1.use_com4_emu=true
# SD cabinet mode
ddrhook1.standard_def=false
# Use 15 kHz monitor mode
ddrhook1.use_15khz=false
# Enable USB memory data emulation
ddrhook1.usbmem_enabled=false
# Specify path for P1 USB memory data
ddrhook1.usbmem_path_p1=usbmem_p1
# Specify path for P2 USB memory data
ddrhook1.usbmem_path_p2=usbmem_p2
# Run the game windowed
gfx.windowed=false

32
dist/ddr/ddr-12-us.conf vendored Normal file
View File

@@ -0,0 +1,32 @@
# URL (e.g. http://my.eamuse.server:80/whatever) or IPV4 (e.g. 127.0.0.1:80) of the target eamuse server. The port is optional but defaults to 80.
eamuse.server=localhost:80
# PCBID
eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Mcode of the game to run.
security.mcode=GQJDXUAA
# Emulate P3IO COM4 and its downstream devices. Uses the Windows COM4 port when disabled.
ddrhook1.use_com4_emu=true
# SD cabinet mode
ddrhook1.standard_def=false
# Use 15 kHz monitor mode
ddrhook1.use_15khz=false
# Enable USB memory data emulation
ddrhook1.usbmem_enabled=false
# Specify path for P1 USB memory data
ddrhook1.usbmem_path_p1=usbmem_p1
# Specify path for P2 USB memory data
ddrhook1.usbmem_path_p2=usbmem_p2
# Run the game windowed
gfx.windowed=false

11
dist/ddr/gamestart-11-us.bat vendored Normal file
View File

@@ -0,0 +1,11 @@
@echo off
cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram
if not exist conf\raw mkdir conf\raw
regsvr32 /s com\CLVsd.ax
regsvr32 /s com\xactengine2_10.dll
inject ddrhook1.dll DDR.exe --config ddr-11-us.conf %*

11
dist/ddr/gamestart-11.bat vendored Normal file
View File

@@ -0,0 +1,11 @@
@echo off
cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram
if not exist conf\raw mkdir conf\raw
regsvr32 /s com\CLVsd.ax
regsvr32 /s com\xactengine2_10.dll
inject ddrhook1.dll DDR.exe --config ddr-11.conf %*

11
dist/ddr/gamestart-12-eu.bat vendored Normal file
View File

@@ -0,0 +1,11 @@
@echo off
cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram
if not exist conf\raw mkdir conf\raw
regsvr32 /s com\CLVsd.ax
regsvr32 /s com\xactengine2_10.dll
inject ddrhook1.dll DDR.exe --config ddr-12-eu.conf %*

11
dist/ddr/gamestart-12-us.bat vendored Normal file
View File

@@ -0,0 +1,11 @@
@echo off
cd /d %~dp0
if not exist conf\nvram mkdir conf\nvram
if not exist conf\raw mkdir conf\raw
regsvr32 /s com\CLVsd.ax
regsvr32 /s com\xactengine2_10.dll
inject ddrhook1.dll DDR.exe --config ddr-12-us.conf %*

View File

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

View File

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

View File

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

View File

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

View File

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

44
dist/ddr/gamestart-17.bat vendored Normal file
View File

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

44
dist/ddr/gamestart-18.bat vendored Normal file
View File

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Binary file not shown.

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

Binary file not shown.

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

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

View File

@@ -1,6 +1,52 @@
@echo off
:: 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^
%*

View File

@@ -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^
%*

View File

@@ -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^
%*

View File

@@ -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^
%*

View File

@@ -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^
%*

View File

@@ -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^
%*

View File

@@ -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^
%*

View File

@@ -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^
%*

View File

@@ -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^
%*

64
dist/iidx/gamestart-18-cn.bat vendored Normal file
View File

@@ -0,0 +1,64 @@
@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
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
if not exist dev\nvram mkdir dev\nvram
if not exist dev\raw mkdir dev\raw
%BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook4-cn.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-18-cn.conf^
%*

View File

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

View File

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

64
dist/iidx/gamestart-20-cn.bat vendored Normal file
View File

@@ -0,0 +1,64 @@
@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
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
if not exist dev\nvram mkdir dev\nvram
if not exist dev\raw mkdir dev\raw
%BEMANITOOLS_DIR%\inject.exe^
%BEMANITOOLS_DIR%\iidxhook5-cn.dll^
%REVISION_DIR%\bm2dx.exe^
-D^
--config %BEMANITOOLS_DIR%\iidxhook-20-cn.conf^
%*

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

52
dist/iidx/gamestart-27.bat vendored Normal file
View File

@@ -0,0 +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
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-27.xml^
--config %BEMANITOOLS_DIR%\iidxhook-27.conf^
%*

52
dist/iidx/gamestart-28.bat vendored Normal file
View File

@@ -0,0 +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
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-28.xml^
--config %BEMANITOOLS_DIR%\iidxhook-28.conf^
%*

52
dist/iidx/gamestart-29.bat vendored Normal file
View File

@@ -0,0 +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
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-29.xml^
--config %BEMANITOOLS_DIR%\iidxhook-29.conf^
%*

52
dist/iidx/gamestart-30.bat vendored Normal file
View File

@@ -0,0 +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
:: (contents/) next to the folders modules, data etc.
cd /d %~dp0
:: Script expects to be located in the root folder (contents/) next to the
:: folders modules, data etc.
set CONTENT_DIR=%CD%\..
set BEMANITOOLS_DIR=%CONTENT_DIR%\bemanitools
set MODULES_DIR=%CONTENT_DIR%\modules
if not exist "%BEMANITOOLS_DIR%" (
echo The bemanitools directory "%BEMANITOOLS_DIR%" does not exist.
pause
exit 1
)
if not exist "%MODULES_DIR%" (
echo The game modules directory "%MODULES_DIR%" does not exist.
pause
exit 1
)
:: Keep that data vanilla, no need to copy these around anymore
:: Just add them to the env PATH so launcher can find the libs and game executable
:: Remark: This also requires admin privileges to propage correctly to launcher
set PATH=^
%MODULES_DIR%;^
%BEMANITOOLS_DIR%;^
%PATH%
:: Current working dir is the game's root folder
cd /d %CONTENT_DIR%
%BEMANITOOLS_DIR%\launcher.exe^
%BEMANITOOLS_DIR%\launcher-30.xml^
--config %BEMANITOOLS_DIR%\iidxhook-30.conf^
%*

View File

@@ -1,12 +1,45 @@
@echo off
cd /d %~dp0
IF "%1"=="" GOTO USAGE
REM Open menu if no arguments specified
if "%~1" == "" goto menu
iidx-irbeat-patch.exe 9 %1 e\\settings.bin.0
iidx-irbeat-patch.exe 9 %1 f\\settings.bin.1
GOTO END
if "%~1" gtr "3" goto badbeat
if "%~1" == "0" goto badbeat
:USAGE
ECHO "Usage: iidx-irbeat-patch.bat <beat phase>"
set beat = "%~1" - 1
iidx-irbeat-patch.exe 9 %beat% e\\settings.bin.0
iidx-irbeat-patch.exe 9 %beat% f\\settings.bin.1
if not errorlevel 0 goto error
echo Beat phase patched sucessfully
exit /b
:menu
echo Select beat phase:
echo 1 - beat#1
echo 2 - beat#2
echo 3 - beat#3
choice /n /c:123
set /a beat = %errorlevel% - 1
echo.
iidx-irbeat-patch.exe 9 %beat% e\\settings.bin.0
iidx-irbeat-patch.exe 9 %beat% f\\settings.bin.1
echo.
if not errorlevel 0 goto error
echo Beat phase patched sucessfully
timeout 5
exit /b
:error
echo Something has gone wrong with the patching process, have you run the game at least once?
pause
exit /b
:badbeat
echo Invalid beat phase specified, values are 1 to 3.
exit /b
:END

View File

@@ -1,12 +1,45 @@
@echo off
cd /d %~dp0
IF "%1"=="" GOTO USAGE
REM Open menu if no arguments specified
if "%~1" == "" goto menu
iidx-irbeat-patch.exe 10 %1 e\\settings.bin.0
iidx-irbeat-patch.exe 10 %1 f\\settings.bin.1
GOTO END
if %~1 gtr 3 goto badbeat
if %~1 == 0 goto badbeat
:USAGE
ECHO "Usage: iidx-irbeat-patch.bat <beat phase>"
set /a beat = %~1 - 1
iidx-irbeat-patch.exe 9 %beat% e\\settings.bin.0
iidx-irbeat-patch.exe 9 %beat% f\\settings.bin.1
if not errorlevel 0 goto error
echo Beat phase patched sucessfully
exit /b
:menu
echo Select beat phase:
echo 1 - beat#1
echo 2 - beat#2
echo 3 - beat#3
choice /n /c:123
set /a beat = %errorlevel% - 1
echo.
iidx-irbeat-patch.exe 10 %beat% e\\settings.bin.0
iidx-irbeat-patch.exe 10 %beat% f\\settings.bin.1
echo.
if not errorlevel 0 goto error
echo Beat phase patched sucessfully
timeout 5
exit /b
:error
echo Something has gone wrong with the patching process, have you run the game at least once?
pause
exit /b
:badbeat
echo Invalid beat phase specified, values are 1 to 3.
exit /b
:END

View File

@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -40,17 +40,32 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
ezusb.api_call_monitoring=false
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
ezusb.io_board_type=0
# Disable operator clock setting system clock time
misc.disable_clock_set=false
# Stub calls to rteffect.dll (10th to DistorteD)
misc.rteffect_stub=false
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\
# Security boot version (e.g. GEC02).
sec.boot_version=GEC02
# Security boot seeds for ezusb, format: X:X:X where X is a number of 0-9 (e.g. 0:0:0).
sec.boot_seeds=0:0:0
# Security black plug mcode id string (e.g. GQC02JAA).
sec.black_plug_mcode=GQC02JAA
# Security black plug mcode id string (e.g. GEC02JAA).
sec.black_plug_mcode=GEC02JAA

View File

@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -40,11 +40,26 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
ezusb.api_call_monitoring=false
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
ezusb.io_board_type=1
# Disable operator clock setting system clock time
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=.\
# Security boot version (e.g. GEC02).
sec.boot_version=GEC02

View File

@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -40,11 +40,26 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
ezusb.api_call_monitoring=false
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
ezusb.io_board_type=1
# Disable operator clock setting system clock time
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=.\
# Security boot version (e.g. GEC02).
sec.boot_version=GEC02

View File

@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -40,6 +40,18 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
ezusb.api_call_monitoring=false
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
ezusb.io_board_type=1
# Fix broken 3D background on Happy Sky's music select (if appearing completely white)
misc.happy_sky_ms_bg_fix=false
@@ -47,7 +59,10 @@ 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=.\
# Security boot version (e.g. GEC02).
sec.boot_version=GEC02

View File

@@ -10,7 +10,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -40,6 +40,18 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Enable monitoring of ezusb.dll calls by logging call traces. Only works on 9th and 10th style!
ezusb.api_call_monitoring=false
# Set the type of ezusb IO board. 0 = C02, 1 = D01. Note: Impacts security settings!
ezusb.io_board_type=1
# Fix broken 3D background on DistorteD's music select (if appearing completely black)
misc.distorted_ms_bg_fix=false
@@ -47,7 +59,10 @@ 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=.\
# Security boot version (e.g. GEC02).
sec.boot_version=GEC02

View File

@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -37,11 +37,17 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable operator clock setting system clock time
misc.disable_clock_set=false
# Security boot version (e.g. GEC02).
sec.boot_version=GQGLDJAA
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\
# Security black plug mcode id string (e.g. GQC02JAA).
sec.black_plug_mcode=GQGLDJA
sec.black_plug_mcode=GQGLDJAA

View File

@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -37,11 +37,17 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable operator clock setting system clock time
misc.disable_clock_set=false
# Security boot version (e.g. GEC02).
sec.boot_version=GQHDDJAA
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\
# Security black plug mcode id string (e.g. GQC02JAA).
sec.black_plug_mcode=GQHDDJA
sec.black_plug_mcode=GQHDDJAA

View File

@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -40,11 +40,17 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable operator clock setting system clock time
misc.disable_clock_set=false
# Security boot version (e.g. GEC02).
sec.boot_version=GQI00JAA
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\
# Security black plug mcode id string (e.g. GQC02JAA).
sec.black_plug_mcode=GQI00JA
sec.black_plug_mcode=GQI00JAA

View File

@@ -7,7 +7,7 @@ eamuse.pcbid=0101020304050607086F
# EAMID
eamuse.eamid=0101020304050607086F
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
# Fix stretched BG videos on newer GPUs. Might appear on SIRIUS and older. On 9th and 10th style this issue may only affect older BGAs (from 1st-3rd style)
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
@@ -40,11 +40,17 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable operator clock setting system clock time
misc.disable_clock_set=false
# Security boot version (e.g. GEC02).
sec.boot_version=GCJDJJAA
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\
# Security black plug mcode id string (e.g. GQC02JAA).
sec.black_plug_mcode=GCJDJJA
sec.black_plug_mcode=GCJDJJAA

50
dist/iidx/iidxhook-18-cn.conf vendored Normal file
View File

@@ -0,0 +1,50 @@
# PCBID
eamuse.pcbid=0101020304050607086F
# Run the game in a framed window (requires windowed option)
gfx.framed=false
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
gfx.frame_rate_limit=0.0
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
gfx.monitor_check=-1.000000
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
gfx.pci_id=1002:7146
# Run the game windowed
gfx.windowed=false
# Windowed width, 0 for default size
gfx.window_width=0
# Windowed height, 0 for default size
gfx.window_height=0
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
gfx.scale_back_buffer_width=0
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
gfx.diagonal_tearing_fix=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\
# Security black plug mcode id string (e.g. GQC02JAA).
sec.black_plug_mcode=GKJDZCAA

View File

@@ -1,6 +1,3 @@
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
gfx.framed=false
@@ -30,3 +27,21 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
gfx.diagonal_tearing_fix=false
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
io.disable_card_reader_emu=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\

View File

@@ -1,12 +1,12 @@
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
gfx.framed=false
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
gfx.frame_rate_limit=0.0
# Enable/disable software monitor check/auto timebase or set a pre-determined refresh value. -1 disables this feature. 0 enables auto detecting the current refresh rate on startup. Setting any positive value > 0 allows you to set a pre-determined refresh rate (e.g. retrieved from the monitor check on newer IIDX games). Either the auto detected value or pre-determined value is used to patch any chart files in-memory to fix song synchronization issues. Requires constant refresh rate!!!
gfx.monitor_check=-1.000000
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
gfx.pci_id=1002:7146
@@ -27,3 +27,21 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
gfx.diagonal_tearing_fix=false
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
io.disable_card_reader_emu=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\

47
dist/iidx/iidxhook-20-cn.conf vendored Normal file
View File

@@ -0,0 +1,47 @@
# PCBID
eamuse.pcbid=0101020304050607086F
# Run the game in a framed window (requires windowed option)
gfx.framed=false
# Software limit the frame rate of the rendering loop in hz, e.g. 60 or 59.95 (0.0 = no software limit)
gfx.frame_rate_limit=0.0
# Patch the GPU device ID detection (leave empty to disable), format XXXX:YYYY, two 4 digit hex numbers (vid:pid). Examples: 1002:7146 (RV515, Radeon X1300), 1002:95C5 (RV620 LE, Radeon HD3450)
gfx.pci_id=1002:7146
# Run the game windowed
gfx.windowed=false
# Windowed width, 0 for default size
gfx.window_width=0
# Windowed height, 0 for default size
gfx.window_height=0
# Up-/downscale the back buffer's width. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding height parameter.
gfx.scale_back_buffer_width=0
# Up-/downscale the back buffer's height. This does not change the game's rendering resolution but scales the final frame. Use this to target the native resolution of your monitor/TV, e.g. to avoid over-/underscan, bad image quality or latency caused by the monitors internal upscaler. 0 to disable this feature. Must be set in combination with the corresponding width parameter.
gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Fix diagonal tearing with video cards other than Radeon X1300 and HD3450
gfx.diagonal_tearing_fix=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false
# Path to store the settings, e.g. bookkeeping, operator settings. d:, e: and f: drive configuration/settings data
misc.settings_path=.\
# Security black plug mcode id string (e.g. GQC02JAA).
sec.black_plug_mcode=GKJDZCAA

View File

@@ -1,6 +1,3 @@
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
gfx.framed=false
@@ -27,3 +24,15 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
io.disable_card_reader_emu=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false

View File

@@ -1,6 +1,3 @@
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
gfx.framed=false
@@ -27,3 +24,15 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
io.disable_card_reader_emu=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false

View File

@@ -1,6 +1,3 @@
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
gfx.framed=false
@@ -27,3 +24,15 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
io.disable_card_reader_emu=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false

View File

@@ -1,6 +1,3 @@
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
gfx.framed=false
@@ -27,3 +24,15 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
io.disable_card_reader_emu=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false

View File

@@ -1,6 +1,3 @@
# Fix stretched BG videos on newer GPUs. Might appear on Red and newer
gfx.bgvideo_uv_fix=false
# Run the game in a framed window (requires windowed option)
gfx.framed=false
@@ -27,3 +24,15 @@ gfx.scale_back_buffer_height=0
# Filter type to use for up-/downscaling the back buffer. Only used if scaling feature was enabled by setting the scaling width and height parameters. Available types: none, linear, point (refer to D3DTEXTUREFILTERTYPE for explanation).
gfx.scale_back_buffer_filter=none
# Forced refresh rate, -1 to not force any (try 59 or 60 if monitor check fails to lock on high refresh rate monitors)
gfx.forced_refresh_rate=-1
# D3D9 device adapter (monitor), -1 to use default, 0, 1, 2 etc. to use specified adapter
gfx.device_adapter=-1
# Disable card reader emulation and enable usage of real card reader hardware on COM1 (for games supporting slotted/wavepass readers)
io.disable_card_reader_emu=false
# Disable ezusb IO emulation and enable usage of real ezusb1/2 IO hardware
io.disable_io_emu=false

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