summaryrefslogtreecommitdiff
path: root/io.h
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-05-08 22:31:28 -0700
committerMichael Pavone <pavone@retrodev.com>2017-05-08 22:31:28 -0700
commit0d21fde651a775c1dd86e9ce916d0f63814d8176 (patch)
treefdd5c41b0da45cec0b764ac22972488d74cd9ec1 /io.h
parent20db9d95de69c67e745b7f84d61853b027ec409b (diff)
Implemented slow rise time of IO pins set as inputs, but not driven by device. Fixes input in Decap Attack and possibly other games with buggy controller code
Diffstat (limited to 'io.h')
-rw-r--r--io.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/io.h b/io.h
index 958ffc8..5814c7a 100644
--- a/io.h
+++ b/io.h
@@ -60,6 +60,7 @@ typedef struct {
uint8_t output;
uint8_t control;
uint8_t input[3];
+ uint32_t slow_rise_start[8];
uint8_t serial_out;
uint8_t serial_in;
uint8_t serial_ctrl;
@@ -95,6 +96,7 @@ void set_keybindings(sega_io *io);
void map_all_bindings(sega_io *io);
void setup_io_devices(tern_node * config, rom_info *rom, sega_io *io);
void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction);
+void io_control_write(io_port *port, uint8_t value, uint32_t current_cycle);
void io_data_write(io_port * pad, uint8_t value, uint32_t current_cycle);
uint8_t io_data_read(io_port * pad, uint32_t current_cycle);
void handle_keydown(int keycode, uint8_t scancode);