1
0
mirror of https://github.com/djhackersdev/bemanitools.git synced 2024-11-27 16:00:52 +01:00
Runs recent Konami arcade games and emulates various arcade hardware.
Go to file
icex2 04310f49fd 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:30:53 +01:00
.github chore: Apply formatting to all markdown docs 2024-01-31 22:20:51 +01:00
dist fix(ddr): Add missing distribution files for 17 and 18 2024-02-03 10:29:10 +01:00
doc fix(doc): Update list of supported ddr versions 2024-01-31 22:47:14 +01:00
scripts/ci Output to stderr instead of stdout in release message script 2021-12-28 23:40:21 +01:00
src refactor(launcher): Major re-work of launcher 2024-02-25 09:30:53 +01:00
.clang-format Some clang-format tweaks to optimize code style 2019-10-20 00:50:37 +02:00
.gitignore Add .DS_Store to .gitignore 2023-03-06 00:08:06 +01:00
CHANGELOG.md chore: Apply formatting to all markdown docs 2024-01-31 22:20:51 +01:00
CONTRIBUTING.md chore: Apply formatting to all markdown docs 2024-01-31 22:20:51 +01:00
Dockerfile.build feat(dev): Add a separate docker dev container 2024-02-25 09:14:42 +01:00
Dockerfile.dev feat(dev): Add a separate docker dev container 2024-02-25 09:14:42 +01:00
GNUmakefile feat(dev): Add a separate docker dev container 2024-02-25 09:14:42 +01:00
LICENSE Bemanitools v5.26 release 2019-09-27 22:36:50 +02:00
Module.mk feat: Add core module 2024-02-25 09:30:53 +01:00
README.md fix(dist): Incorrect versioning for ddr distribution packages 2024-01-31 22:47:14 +01:00
run-tests-wine.sh Bemanitools v5.26 release 2019-09-27 22:36:50 +02:00

Bemanitools 5

Version: 5.49

Changelog

A collection of tools to run various Bemani arcade games.

Bemanitools 5 (BT5) is the successor to Bemanitools 4 which introduces a big code cleanup and support for newer games. BT5 uses a cleaner approach than BT4 did; specifically, all input and lighting is handled by emulating the protocols spoken by the real IO PCBs, instead of replacing chunks of game code like BT4. The benefits of this approach are a more authentic gameplay experience, and easier support for a broader range of releases from each game series.

Documentation

Browse our documentation as it might already cover various questions and concerns you are looking for or about to ask.

Contributions and bug reporting

Read the dedicated CONTRIBUTING.md documentation.

The tl;dr version and golden rules of the sections in the document:

Supported games

The following games are supported with their corresponding hook-libraries.

  • BeatStream
    • BeatStream (bst.zip): bsthook
    • BeatStream アニムトライヴ (bst.zip): bsthook
  • Dance Dance Revolution
    • Dance Dance Revolution X (ddr-11.zip): ddrhook1
    • Dance Dance Revolution X2 (US/EU regions) (ddr-12-us.zip): ddrhook1
    • Dance Dance Revolution X2 (JP region) (ddr-12.zip): ddrhook2
    • Dance Dance Revolution X3 vs. 2ndMIX (ddr-13.zip): ddrhook2
    • Dance Dance Revolution 2013 (ddr-14-to-18.zip): ddrhook2
    • Dance Dance Revolution 2014 (ddr-14-to-18.zip): ddrhook2
    • Dance Dance Revolution A (ddr-14-to-18.zip): ddrhook2
    • Dance Dance Revolution A20 (ddr-14-to-18.zip): ddrhook2
    • Dance Dance Revolution A20+ (ddr-14-to-18.zip): ddrhook2
  • Beatmania IIDX
    • Beatmania IIDX 9th Style (iidx-09-to-12.zip): iidxhook1
    • Beatmania IIDX 10th Style (iidx-09-to-12.zip): iidxhook1
    • Beatmania IIDX 11 IIDX RED (iidx-09-to-12.zip): iidxhook1
    • Beatmania IIDX 12 HAPPY SKY (iidx-09-to-12.zip): iidxhook1
    • Beatmania IIDX 13 DistorteD (iidx-13.zip): iidxhook2
    • Beatmania IIDX 14 GOLD (iidx-14-to-17.zip): iidxhook3
    • Beatmania IIDX 15 DJ TROOPERS (iidx-14-to-17.zip): iidxhook3
    • Beatmania IIDX 16 EMPRESS (iidx-14-to-17.zip): iidxhook3
    • Beatmania IIDX 17 SIRIUS (iidx-14-to-17.zip): iidxhook3
    • Beatmania IIDX 18 Resort Anthem (iidx-18.zip): iidxhook4
    • Beatmania IIDX 19 Lincle (iidx-19.zip): iidxhook5
    • Beatmania IIDX tricoro CN (狂热节拍 IIDX 2) (iidx-20-cn.zip): iidxhook5-cn
    • Beatmania IIDX 20 Tricoro (iidx-20.zip): iidxhook6
    • Beatmania IIDX 21 SPADA (iidx-21-to-24.zip): iidxhook7
    • Beatmania IIDX 22 PENDUAL (iidx-21-to-24.zip): iidxhook7
    • Beatmania IIDX 23 copula (iidx-21-to-24.zip): iidxhook7
    • Beatmania IIDX 24 SINOBUZ (iidx-21-to-24.zip): iidxhook7
    • Beatmania IIDX 25 CANNON BALLERS (iidx-25-to-26.zip): iidxhook8
    • Beatmania IIDX 26 Rootage (iidx-25-to-26.zip): iidxhook8
    • Beatmania IIDX 27 Heroic Verse (iidx-27-to-30.zip): iidxhook9
    • Beatmania IIDX 28 BISTROVER (iidx-27-to-30.zip): iidxhook9
    • Beatmania IIDX 29 CASTHOUR (iidx-27-to-30.zip): iidxhook9
    • Beatmania IIDX 30 RESIDENT (iidx-27-to-30.zip): iidxhook9
  • jubeat
    • jubeat (jb-01.zip): jbhook1
    • jubeat ripples (jb-02.zip): jbhook1
    • jubeat knit (jb-03.zip): jbhook2
    • jubeat copious (jb-04.zip): jbhook2
    • jubeat saucer (fulfill) (jb-05-to-07.zip): jbhook3
    • jubeat prop (jb-05-to-07.zip): jbhook3
    • jubeat qubell (jb-05-to-07.zip): jbhook3
    • jubeat clan (jb-08.zip): jbhook3
    • jubeat festo (jb-08.zip): jbhook3
  • pop'n music
    • pop'n music 15 ADVENTURE (popn-15-to-18.zip) using popnhook1
    • pop'n music 16 PARTY♪ (popn-15-to-18.zip) using popnhook1
    • pop'n music 17 THE MOVIE (popn-15-to-18.zip) using popnhook1
    • pop'n music 18 せんごく列伝 (popn-15-to-18.zip) using popnhook1
  • 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: Inject arbitrary hooking libraries into a target application process.
    • launcher: Bootstrap Konami's AVS environment and launch a target application with arbitrary injected hooking libraries.
  • Beatmnia IIDX Ezusb IO board
  • Exit hooks: Exit the game with a button combination using native cabinet inputs
  • Bemanitools API testing: Tools for testing bemanitools API implementations
  • DDR IO testing: Tools for testing hardware of a real DDR cabinet
  • aciotest: 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: Patch raw memory locations in the target process based on the provided configuration
  • pcbidgen: Konami PCBID generator tool
  • ViGEm clients: 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 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

Most (older generation) games were developed for Windows XP Embedded but should run fine on any consumer version of Windows XP. Newer versions of Windows, e.g. Windows 7, 8 and 10, should be fine as well. Some hooks also include fixes required to run the games on a more recent version.

Depending on the game, you also need the following dependencies installed:

See also bemanitools-supplement for files.

Development

Building

See the development document.

Architecture

A dedicate architecture document outlines the architecture of Bemanitools and points out the most important aspects you should know before you get started with development.

API

Please refer to the API documentation.

Release process

Please refer to the dedicated documentation.

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 included with the source code.