Does anyone has picture of its JVS interface? What I know about that is it uses Direct3D 9 and XAudio, has an USB to serial convertor known to its XPE OS as COM3 and COM4. Its dongle is just a standard USB flash drive without any special drivers.
With a Renesas USB to serial chip if my analysis was correct. I've heard that it does run with a Type X JVS board however the game program has extra JVS verifications that aren't used in Type X games.
It's 7 bytes in fact. Someone with a Type X system already tried this but the game hangs with a JVS error 4003. Cave must used some custom protocol in their JVS board, and as no save files are found anywhere in CF card and USB key it might even store hi-score data within IO board.
here is it on logic level it is "JVS Host": as COM3 it have custom commands input, and output standard JVS commands to (standard) JVS board. if you REd cave's custom protocol and want to make JVS emulator - https://github.com/zxmarcos/ttx_monitor can be useful to you.
The game sends packet 40 2A 2A 2A and 26 2A 2A 2A to COM3 (38400 bps) on cvgame.exe start. If no response there will be a JVS error 4003.
The response to the first packet is "@***", The second response should be "&[8 digit number]" and the number was used in the calculation about USB Key CVKEY files, so it might be a unique ID for each IO board and USB key pair. A JVS emulator won't be that easy to make, since the protocol might use data from USB key as encryption key. An in-memory hook for its input routines might be a better solution. In-game JVS errors 4001 Serial port not found, or wrong data read from serial port 4003 Initial handshake with serial port failed 4004 ??? 4006 ??? EDIT: The serial input packages are of at least 5 types, starting with ASCII 'P', 'S', 'Q', 'R' and '!'. Command "!!!" should be a heartbeat signal and is detected by the game every 6 seconds. Command 'S' inserts coin. 1p 51 00 no key 51 80 start 51 01 button 1 51 02 button 2 51 04 right 51 08 left 51 10 down 51 20 up 51 40 service 2p 52 00 no key 52 80 start 52 01 button 1 52 02 button 2 52 04 right 52 08 left 52 10 down 52 20 up 52 40 service 50 00 test switch up 50 FF test switch down
Maybe soyandroid would be of some help with this? He seems to be quite familiar with Windows-based hardware
I already made a loader by forking Romhack's EX-board xb_loader. However it's not allowed to discuss such things here I think.