1
0
mirror of https://github.com/djhackersdev/bemanitools.git synced 2024-11-24 06:40:11 +01:00
Runs recent Konami arcade games and emulates various arcade hardware.
Go to file
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
.gitlab Update Bug.md, fix comment not closing 2021-05-02 10:54:45 +00:00
dist Support pop'n music 15-18 2022-06-10 22:46:59 +00:00
doc Support pop'n music 15-18 2022-06-10 22:46:59 +00:00
scripts/ci Output to stderr instead of stdout in release message script 2021-12-28 23:40:21 +01:00
src Support pop'n music 15-18 2022-06-10 22:46:59 +00:00
.clang-format Some clang-format tweaks to optimize code style 2019-10-20 00:50:37 +02:00
.gitignore Bemanitools v5.26 release 2019-09-27 22:36:50 +02:00
.gitlab-ci.yml Improve debugability for inline scripts in ci pipeline 2021-12-28 23:41:37 +01:00
CHANGELOG.md Bump version to 5.41 for next development cycle 2022-06-07 20:20:30 +02:00
CONTRIBUTING.md Improve contributing documentation 2020-11-08 13:05:13 +01:00
Dockerfile Support pop'n music 15-18 2022-06-10 22:46:59 +00:00
GNUmakefile jubeat: support p3io games 2021-12-31 20:23:31 +10:00
LICENSE Bemanitools v5.26 release 2019-09-27 22:36:50 +02:00
Module.mk Support pop'n music 15-18 2022-06-10 22:46:59 +00:00
README.md Support pop'n music 15-18 2022-06-10 22:46:59 +00:00
run-tests-wine.sh Bemanitools v5.26 release 2019-09-27 22:36:50 +02:00

Bemanitools 5

pipeline status

Version: 5.41

Release history

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 2013 (ddr-14-to-16.zip): ddrhook2
    • Dance Dance Revolution 2014 (ddr-14-to-16.zip): ddrhook2
    • Dance Dance Revolution A (ddr-14-to-16.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 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-28.zip): iidxhook9
    • Beatmania IIDX 28 BISTROVER (iidx-27-to-28.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

ViGEm clients: Expose BT5 APIs as XBOX game controllers

Play your favorite non-bemani arcade games with any hardware, e.g. real cabinet hardware, that implements BT5 APIs.

See the dedicated readme for details.

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:

  • DirectX 9 runtime
  • Microsoft Visual C++ Redistributables 2010 and 2013: Depends on the game and age but both should cover most if not all of the games so far

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

Steps for the release process:

  1. Update the corresponding section in the changelog with bullet points reflecting major features merged into master since the previous release

  2. Make sure you have the latest master state pulled to your local copy

  3. Tag the release with the next release number which also be found at the top of the readme as it always reflects the current version beinged worked on on the master branch , e.g. 5.35: git tag 5.35

  4. Push the tag to upstream: git push origin 5.35

  5. The build pipeline should start automatically once the tag is pushed including the steps build and upload-release

  6. Once completed successfully, the release is uploaded

  7. Take the changelog of the published version and notify the pigs in the stall about it:

    1. New post in thread
      <insert version here> released: <direct link to published version>
      
      Changelog:
      <paste changelog here>
      
    2. Update the OP title by bumping the version number in it
    3. Update the OP post by extending it accordingly (see previous entries)
  8. Bump the version number at the top of this readme and add a new empty section in the changelog with the new version number as title. Commit changes and push to master branch

  9. Continue developing and merging MRs until you decide its time for another release

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.