# Bemanitools API 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). For a list of already supported and included hardware by game, see the next section. 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). 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). ## Implementations The following implementations are already shipped with BT5. * BeatStream * bstio.dll (default): Keyboard, joystick and mouse input * Dance Dance Revolution * ddrio.dll (default): Keyboard, joystick and mouse input * ddrio-mm.dll: Minimaid hardware * ddrio-smx.dll: StepManiaX platforms * Beatmania IIDX * iidxio.dll (default): Keyboard, joystick and mouse input * iidxio-ezusb.dll: Ezusb (C02 IO) driver * iidxio-ezusb2.dll: Ezusb FX2 (IO2) driver * jubeat * jbio.dll (default): Keyboard, joystick and mouse input * SOUND VOLTEX * sdvxio.dll (default): Keyboard, joystick and mouse input Eamuse hardware support is implemented separately: * eamio.dll (default): Keyboard and joystick input ## Development notes A DEF file for geninput.dll is included. To convert the DEF into an import library suitable for use with Visual C++, run ``` lib /machine:i386 /def:geninput.def ``` from the Visual C++ command line. If you're using mingw then use dlltool: ``` dlltool -d geninput.def -l geninput.a ```