comparison io.h @ 1348:040c5600e2d9

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
author Michael Pavone <pavone@retrodev.com>
date Mon, 08 May 2017 22:31:28 -0700
parents d966298442d4
children 4e5797b3935a
comparison
equal deleted inserted replaced
1347:4c4beb22b042 1348:040c5600e2d9
58 } keyboard; 58 } keyboard;
59 } device; 59 } device;
60 uint8_t output; 60 uint8_t output;
61 uint8_t control; 61 uint8_t control;
62 uint8_t input[3]; 62 uint8_t input[3];
63 uint32_t slow_rise_start[8];
63 uint8_t serial_out; 64 uint8_t serial_out;
64 uint8_t serial_in; 65 uint8_t serial_in;
65 uint8_t serial_ctrl; 66 uint8_t serial_ctrl;
66 uint8_t device_type; 67 uint8_t device_type;
67 } io_port; 68 } io_port;
93 94
94 void set_keybindings(sega_io *io); 95 void set_keybindings(sega_io *io);
95 void map_all_bindings(sega_io *io); 96 void map_all_bindings(sega_io *io);
96 void setup_io_devices(tern_node * config, rom_info *rom, sega_io *io); 97 void setup_io_devices(tern_node * config, rom_info *rom, sega_io *io);
97 void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction); 98 void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction);
99 void io_control_write(io_port *port, uint8_t value, uint32_t current_cycle);
98 void io_data_write(io_port * pad, uint8_t value, uint32_t current_cycle); 100 void io_data_write(io_port * pad, uint8_t value, uint32_t current_cycle);
99 uint8_t io_data_read(io_port * pad, uint32_t current_cycle); 101 uint8_t io_data_read(io_port * pad, uint32_t current_cycle);
100 void handle_keydown(int keycode, uint8_t scancode); 102 void handle_keydown(int keycode, uint8_t scancode);
101 void handle_keyup(int keycode, uint8_t scancode); 103 void handle_keyup(int keycode, uint8_t scancode);
102 void handle_joydown(int joystick, int button); 104 void handle_joydown(int joystick, int button);