Mercurial > repos > blastem
comparison io.h @ 2235:93918a6a8ab7
Initial support for Sega multi-tap
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 13 Sep 2022 20:08:26 -0700 |
parents | 0f54a898db03 |
children | 1978bd770023 |
comparison
equal
deleted
inserted
replaced
2234:b6fdedd3b070 | 2235:93918a6a8ab7 |
---|---|
27 IO_GENERIC, | 27 IO_GENERIC, |
28 IO_GENERIC_SERIAL, | 28 IO_GENERIC_SERIAL, |
29 IO_HEARTBEAT_TRAINER | 29 IO_HEARTBEAT_TRAINER |
30 }; | 30 }; |
31 | 31 |
32 typedef struct { | 32 typedef struct io_port io_port; |
33 struct io_port { | |
33 union { | 34 union { |
34 struct { | 35 struct { |
35 uint32_t timeout_cycle; | 36 uint32_t timeout_cycle; |
36 uint16_t th_counter; | 37 uint16_t th_counter; |
37 uint16_t gamepad_num; | 38 uint16_t gamepad_num; |
74 uint8_t status; | 75 uint8_t status; |
75 uint8_t device_num; | 76 uint8_t device_num; |
76 uint8_t cmd; | 77 uint8_t cmd; |
77 uint8_t remaining_bytes; | 78 uint8_t remaining_bytes; |
78 } heartbeat_trainer; | 79 } heartbeat_trainer; |
80 struct { | |
81 io_port *ports; | |
82 uint32_t ready_cycle; | |
83 uint8_t tr_counter; | |
84 uint8_t tap_num; | |
85 uint8_t device_ids[4]; | |
86 uint8_t data[4]; | |
87 uint8_t cur_port; | |
88 uint8_t port_start; | |
89 uint8_t reset_state; | |
90 } multitap; | |
79 } device; | 91 } device; |
80 uint8_t output; | 92 uint8_t output; |
81 uint8_t control; | 93 uint8_t control; |
82 uint8_t input[3]; | 94 uint8_t input[3]; |
83 uint32_t slow_rise_start[8]; | 95 uint32_t slow_rise_start[8]; |
90 uint8_t serial_transmitting; | 102 uint8_t serial_transmitting; |
91 uint8_t serial_in; | 103 uint8_t serial_in; |
92 uint8_t serial_receiving; | 104 uint8_t serial_receiving; |
93 uint8_t serial_ctrl; | 105 uint8_t serial_ctrl; |
94 uint8_t device_type; | 106 uint8_t device_type; |
95 } io_port; | 107 }; |
96 | 108 |
97 typedef struct { | 109 typedef struct { |
98 io_port ports[3]; | 110 io_port ports[3]; |
99 } sega_io; | 111 } sega_io; |
100 | 112 |