djhackersdev / bemanitools

Runs recent Konami arcade games and emulates various arcade hardware.
The Unlicense
84 stars 16 forks source link

IO2 gets flashed but not detected by game or iidxiotest #59

Open icex2 opened 4 years ago

icex2 commented 4 years ago

In GitLab by @renardiidx on Aug 9, 2020, 22:47

Summary

Long story short, I flashed the board after having the driver installed with Cypress FXL2, everything succeded, the ezusb2-tool also scanned for the device and found the ID, although after all of this, the iidxiotest and the game itself, they didn't recognize any input at all, neither see the device HID on the test app. Furthermore, after two reboots, the device on Device Manager had a warning sign spitting Code 10 error (The device couldn't start) although it had the proper name.

Expected behavior

After the device has been flashed, it should have had the led blink or light up as far as if I read, and then it should've been detected by IIDXIOTEST or game.

Current behavior

The device got flashed, nothing lighted up when it succeded, the device was still being detected by the flash executable, but the game didn't detect any IO, couldn't skip errors, and the iidxiotest app didn't list the device when it listed all the devices available to input (keyboard, mouse, etc). After the pc got rebooted twice, the driver was spitting Code 10 on device manager.

Detailed Description

Time for the long ass description. I flashed this board with ezusb2-tool.exe, I scanned for available devices, took the dev_path, flashed the bin and went to test. iidxiotest didn't list me the proper HID device connected, it only showed in the product id section my mouse, my keyboard and a few other things, but there was no sign of the controller board. Matter of fact it didn't work. I tried ingame, no success. What I don't know, what I am not sure at all is why the driver started spitting me Code 10 after the second boot. I tried, three, four, five times reinstalling the driver, uninstalling it, moving usb, there was nothing to do to get it to work properly, at that point I started wondering if it ever got installed properly. Regardless, I booted into the old bemanipc, and everything started working again, controller included etc etc.

Possible solution

I genuinely thought that the USB IO check was being WAY TOO QUICK honestly, the boot sequence took like, what? 300 units in terms of ingame-check ? compared to the previous games that took at least 2500-3000? the USBIO felt like it was being emulated rather than being checked on. I tried to put iidxio-ezusb2.dll as the main DLL, although what happened was that the iidxiotest detected a device, but it kept all of my buttons pressed at the same time, and no lights on.

Context (Environment)

Bemanitools version(s) affected

Latest Btools (5.31 iirc)

Game(s) and version(s) affected

IIDX 26

Command line arguments

Can't recall the command lines but I tried the normal ones, didn't edit much, everything with iidxhook8 of course, otherwise it would check fior BIO2 board.

OS version

W7 Embedded x64

Hardware specs

icex2 commented 4 years ago

Hey, thanks for the detailed report.

I just tested my IO2 with the 40 pin harness connected on Win10 64-bit and the buttons and lights work when using iidxiotest.exe with iidxio-ezusb2.dll renamed to iidxio.dll in the same folder. I can't test the top unit lights and other inputs as I don't have a cabinet wired up to interface with the IO2 board.

When you flashed the firmware, are some of the LEDs on the side of the board blinking rapidly?

The game's don't have a passthrough mode anymore but provide and entire backend. The iidxio-ezusb2.dll implements the iidxio interface to provide a driver to talk to a ezusb2 board instead.

Why the driver is giving you a code 10, idk. Do you have the IO connected to a USB 2.0 port and NOT to a USB 3.0 port?

icex2 commented 3 years ago

In GitLab by @renardiidx on Nov 23, 2020, 14:54

Why the driver is giving you a code 10, idk. Do you have the IO connected to a USB 2.0 port and NOT to a USB 3.0 port?

IIRC I connected it to a 2.0 port, in any case I tried both if I'm not wrong, most surely. What's the requirement on that?

When you flashed the firmware, are some of the LEDs on the side of the board blinking rapidly?

Do you mean button leds? if yes, no, if on the board I didn't check.

This will probably get fixed when @dartdragoonxp will have to do the same stuff on his CO2 board maybe.

icex2 commented 3 years ago

IIRC I connected it to a 2.0 port, in any case I tried both if I'm not wrong, most surely. What's the requirement on that?

There are known issues with USB 3.0 ports when using the original driver (also the re-compiled ones for Win7/10) by Cypress at least with the ezusb FX (1) board. Since USB 3.0 wasn't a thing either when the FX2 board came out, I would not expect this to work out of the box either.

Do you mean button leds? if yes, no, if on the board I didn't check.

No, as mentioned, "the LEDs on the side of the board". The DIP switches should be next to them.

This will probably get fixed when @DartDragoonXP will have to do the same stuff on his CO2 board maybe.

To make this clear: The IO2 is a ezusb FX2 board while the C02 is a ezusb FX (1) board. They are different in regards of drivers and protocol. Assuming one of them works does not give you any guarantees the other one works as well.

I just noticed the following when re-reading your OP:

After the pc got rebooted twice, the driver was spitting Code 10 on device manager.

Apparently, error 10 means driver outdated or "broken" however that is defined.

Which driver are you using? If you haven't, I suggest using the one from bemanitools-supplement since that one is verified to work.