2019-09-27 22:36:50 +02:00
|
|
|
# Bemanitools API
|
2022-10-19 00:43:43 +02:00
|
|
|
|
2024-01-29 23:18:21 +01:00
|
|
|
Bemanitools introduces interfaces abstracting the IO hardware of many games. This is used to
|
|
|
|
implement support for non-intended IO devices from simple keyboard support, standard gamecontrollers
|
|
|
|
to custom IO boards or using real hardware with the games (e.g. support for real legacy hardware).
|
2019-09-27 22:36:50 +02:00
|
|
|
|
|
|
|
For a list of already supported and included hardware by game, see the next section.
|
|
|
|
|
2024-01-29 23:18:21 +01:00
|
|
|
The BT5 API separates main game IO hardware like buttons, turn tables, spinners, lights etc. (bstio,
|
|
|
|
iidxio, ...) from eamuse hardware like 10-key pads and card readers (eamio).
|
2019-09-27 22:36:50 +02:00
|
|
|
|
2024-01-29 23:18:21 +01:00
|
|
|
If you want to write an implementation for your own custom piece of hardware, check out the SDK
|
|
|
|
(*bemanitools* sub-folder) in the source code (src.zip).
|
2019-09-27 22:36:50 +02:00
|
|
|
|
|
|
|
## Implementations
|
2022-10-19 00:43:43 +02:00
|
|
|
|
|
|
|
### IO boards
|
|
|
|
|
2022-06-11 00:46:59 +02:00
|
|
|
The following implementations are already shipped with BT5.
|
2019-09-27 22:36:50 +02:00
|
|
|
|
2024-01-29 23:18:21 +01:00
|
|
|
- BeatStream
|
|
|
|
- bstio.dll (default): Keyboard, joystick and mouse input
|
|
|
|
- Dance Dance Revolution
|
|
|
|
- ddrio.dll (default): Keyboard, joystick and mouse input
|
|
|
|
- [ddrio-p3io.dll](ddrhook/ddrio-p3io.md): DDR P3IO (Dragon PCB) + EXTIO hardware
|
|
|
|
- ddrio-mm.dll: Minimaid hardware
|
|
|
|
- [ddrio-smx.dll](ddrhook/ddrio-smx.md): StepManiaX platforms
|
|
|
|
- [ddrio-async](ddrhook/ddrio-async.md): Wrapper/shim library to drive another ddrio in a
|
|
|
|
dedicated IO thread
|
|
|
|
- Beatmania IIDX
|
|
|
|
- iidxio.dll (default): Keyboard, joystick and mouse input
|
|
|
|
- [iidxio-bio2.dll](iidxhook/iidxio-bio2.md): BIO2 driver
|
|
|
|
- [iidxio-ezusb.dll](iidxhook/iidxio-ezusb.md): Ezusb (C02 IO) driver
|
|
|
|
- [iidxio-ezusb2.dll](iidxhook/iidxio-ezusb2.md): Ezusb FX2 (IO2) driver
|
|
|
|
- jubeat
|
|
|
|
- jbio.dll (default): Keyboard, joystick and mouse input
|
|
|
|
- pop'n music
|
|
|
|
- popnio.dll (default): Keyboard, joystick and mouse input
|
|
|
|
- SOUND VOLTEX
|
|
|
|
- sdvxio.dll (default): Keyboard, joystick and mouse input
|
|
|
|
- [sdvxio-bio2.dll](sdvxhook/sdvxio-bio2.md): BIO2 driver
|
|
|
|
- [sdvxio-kfca.dll](sdvxhook/sdvxio-kfca.md): KFCA IO board driver
|
2019-09-27 22:36:50 +02:00
|
|
|
|
2022-10-19 00:43:43 +02:00
|
|
|
### Eamuse readers
|
|
|
|
|
2019-09-27 22:36:50 +02:00
|
|
|
Eamuse hardware support is implemented separately:
|
2022-10-19 00:43:43 +02:00
|
|
|
|
2024-01-29 23:18:21 +01:00
|
|
|
- eamio.dll (default): Keyboard and joystick input
|
|
|
|
- eamio-icca.dll: Slotted/wave pass readers, required for old games with magnetic stripe cards
|
2022-10-19 00:43:43 +02:00
|
|
|
|
|
|
|
#### ICCA readers for IIDX and port config in device manager
|
|
|
|
|
|
|
|
The COM port for the card readers needs to be configured correctly in device manager. Otherwise,
|
|
|
|
communication with the readers will fail if the settings do not align with how the game or
|
|
|
|
bemanitools wants to operate them.
|
|
|
|
|
|
|
|
Use built-in ports on your mainboard if available but an external USB to serial port dongle also
|
2024-01-29 23:18:21 +01:00
|
|
|
works.
|
2022-10-19 00:43:43 +02:00
|
|
|
|
2024-01-29 23:18:21 +01:00
|
|
|
- Assign `COM1` to the COM port the card readers are connected to.
|
|
|
|
- Ensure that the following settings for the COM port you are going to use are set
|
|
|
|
- BAUD rate 57600
|
|
|
|
- Data bits 8
|
|
|
|
- Parity None
|
|
|
|
- Stop bits 1
|
|
|
|
- Flow control None.
|
2019-09-27 22:36:50 +02:00
|
|
|
|
|
|
|
## Development notes
|
2022-10-19 00:43:43 +02:00
|
|
|
|
2024-01-29 23:18:21 +01:00
|
|
|
A DEF file for geninput.dll is included. To convert the DEF into an import library suitable for use
|
|
|
|
with Visual C++, run
|
|
|
|
|
2019-09-27 22:36:50 +02:00
|
|
|
```
|
|
|
|
lib /machine:i386 /def:geninput.def
|
|
|
|
```
|
2024-01-29 23:18:21 +01:00
|
|
|
|
2019-09-27 22:36:50 +02:00
|
|
|
from the Visual C++ command line. If you're using mingw then use dlltool:
|
2024-01-29 23:18:21 +01:00
|
|
|
|
2019-09-27 22:36:50 +02:00
|
|
|
```
|
|
|
|
dlltool -d geninput.def -l geninput.a
|
2024-01-29 23:18:21 +01:00
|
|
|
```
|