From 3396c09fbf661ffb425486aeb6dc6fa18c2b1447 Mon Sep 17 00:00:00 2001 From: icex2 Date: Tue, 11 Aug 2020 23:11:23 +0200 Subject: [PATCH] ezusb-iidx: Add macro to enable D01 board emulation Used for dumping firmware, only. C02 and D01 boards only differ in the FPGA firmware written to the board on boot up. This doesn't matter for emulation, but when using a real IO board with iidxio-ezusb.dll, a different FPGA firmware is required to be flashed in order to get working turntables, top unit lights etc --- src/main/ezusb-iidx-emu/msg.c | 4 ++++ src/main/ezusb-iidx/msg.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/ezusb-iidx-emu/msg.c b/src/main/ezusb-iidx-emu/msg.c index c7dafcb..c651042 100644 --- a/src/main/ezusb-iidx-emu/msg.c +++ b/src/main/ezusb-iidx-emu/msg.c @@ -160,6 +160,10 @@ static HRESULT ezusb_iidx_emu_msg_interrupt_read(struct iobuf *read) otherwise the game's fpga check will fail */ msg_resp->fpga2_check_flag_unkn = 2; +#ifdef EZUSB_IIDX_EMU_D01_BOARD + msg_resp->inverted_pad &= ~(1 << 4); +#endif + read->pos = sizeof(*msg_resp); return S_OK; diff --git a/src/main/ezusb-iidx/msg.h b/src/main/ezusb-iidx/msg.h index 718f149..5f81f8d 100644 --- a/src/main/ezusb-iidx/msg.h +++ b/src/main/ezusb-iidx/msg.h @@ -59,7 +59,9 @@ struct ezusb_iidx_msg_interrupt_read_packet { 1: Not used 2: Not used 3: Not used - 4: Not used + 4: C02/D01 board identifier, 1 = C02, 0 = D01 (on active low). This defines how the game has + to flash the FPGA board since D01 needs a different firmware (see result of FPGA CHECK on + game bootup) 5: Not used 6: usb mute? 7: Not used