From cac09f8f87ec6384c094ce0b3c4b04930fc64b79 Mon Sep 17 00:00:00 2001 From: Will Xyen Date: Sun, 12 Sep 2021 19:17:18 -0700 Subject: [PATCH] bio2: add definitions for 20th anniversary model --- src/main/bio2/bi2a-ddr.h | 56 ++++++++++++++++++++++++++++++++++++++++ src/main/bio2/bio2.h | 5 ++++ 2 files changed, 61 insertions(+) create mode 100644 src/main/bio2/bi2a-ddr.h diff --git a/src/main/bio2/bi2a-ddr.h b/src/main/bio2/bi2a-ddr.h new file mode 100644 index 0000000..1b66d6a --- /dev/null +++ b/src/main/bio2/bi2a-ddr.h @@ -0,0 +1,56 @@ +#ifndef BIO2_BI2A_DDR +#define BIO2_BI2A_DDR + +#include "bio2/bio2.h" + +#pragma pack(push, 1) + +struct bi2a_ddr_system_panel { + uint8_t b_unk1 : 1; + uint8_t b_coin : 1; + uint8_t b_service : 1; + uint8_t b_test : 1; + uint8_t b_un2 : 4; +}; + +struct bi2a_ddr_player_1_panel { + uint8_t b_unk : 3; + uint8_t b_right : 1; + uint8_t b_left : 1; + uint8_t b_down : 1; + uint8_t b_up : 1; + uint8_t b_start : 1; +}; + +struct bi2a_ddr_player_2_panel { + uint8_t b_unk1 : 1; + uint8_t b_right : 1; + uint8_t b_left : 1; + uint8_t b_down : 1; + uint8_t b_up : 1; + uint8_t b_start : 1; + uint8_t b_unk2 : 2; +}; + +struct bi2a_ddr_state_in { + uint8_t unk1; + struct bi2a_ddr_system_panel system; + uint8_t unk2[7]; + struct bi2a_ddr_player_1_panel player_1; + struct bi2a_ddr_player_2_panel player_2; + uint8_t unk3[5]; +}; + +struct bi2a_ddr_state_out { + uint8_t unk1[40]; +}; + +_Static_assert( + sizeof(struct bi2a_ddr_state_in) == 16, + "bi2a_ddr_state_in is the wrong size"); +_Static_assert( + sizeof(struct bi2a_ddr_state_out) == 40, + "bi2a_ddr_state_out is the wrong size"); +#pragma pack(pop) + +#endif diff --git a/src/main/bio2/bio2.h b/src/main/bio2/bio2.h index 162239a..5a95f7a 100644 --- a/src/main/bio2/bio2.h +++ b/src/main/bio2/bio2.h @@ -11,6 +11,11 @@ enum bio2_bi2a_cmd { BIO2_BI2A_CMD_INIT = 0x0100, BIO2_BI2A_CMD_WATCHDOG = 0x0120, BIO2_BI2A_CMD_POLL = 0x0152, // For IIDX + // For games using libacio for BIO2 communication + BIO2_BI2A_CMD_ACIO_POLL_NOWD = 0x0112, + BIO2_BI2A_CMD_ACIO_POLL_WD = 0x0113, + BIO2_BI2A_CMD_TAPELED_INIT = 0x0140, + BIO2_BI2A_CMD_TAPELED_SEND = 0x0141, }; #endif \ No newline at end of file