Mercurial > repos > blastem
comparison io.h @ 1111:2eb54e24914e
Mostly working changes to allow support for multiple emulated system types in main blastem program
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 19 Dec 2016 13:28:18 -0800 |
parents | 56b1748a8473 |
children | fe8c79f82c22 |
comparison
equal
deleted
inserted
replaced
1110:d1eed3b1121c | 1111:2eb54e24914e |
---|---|
57 uint8_t control; | 57 uint8_t control; |
58 uint8_t input[3]; | 58 uint8_t input[3]; |
59 uint8_t device_type; | 59 uint8_t device_type; |
60 } io_port; | 60 } io_port; |
61 | 61 |
62 typedef struct { | |
63 io_port ports[3]; | |
64 uint8_t mouse_mode; | |
65 uint8_t mouse_captured; | |
66 } sega_io; | |
67 | |
62 #define GAMEPAD_TH0 0 | 68 #define GAMEPAD_TH0 0 |
63 #define GAMEPAD_TH1 1 | 69 #define GAMEPAD_TH1 1 |
64 #define GAMEPAD_EXTRA 2 | 70 #define GAMEPAD_EXTRA 2 |
65 #define GAMEPAD_NONE 0xF | 71 #define GAMEPAD_NONE 0xF |
66 | 72 |
75 IO_READ | 81 IO_READ |
76 }; | 82 }; |
77 | 83 |
78 typedef struct genesis_context genesis_context; | 84 typedef struct genesis_context genesis_context; |
79 | 85 |
80 void set_keybindings(io_port *ports); | 86 void set_keybindings(sega_io *io); |
81 void map_all_bindings(io_port *ports); | 87 void map_all_bindings(sega_io *io); |
82 void setup_io_devices(tern_node * config, rom_info *rom, genesis_context * gen); | 88 void setup_io_devices(tern_node * config, rom_info *rom, genesis_context * gen); |
83 void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction); | 89 void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction); |
84 void io_data_write(io_port * pad, uint8_t value, uint32_t current_cycle); | 90 void io_data_write(io_port * pad, uint8_t value, uint32_t current_cycle); |
85 uint8_t io_data_read(io_port * pad, uint32_t current_cycle); | 91 uint8_t io_data_read(io_port * pad, uint32_t current_cycle); |
86 void handle_keydown(int keycode, uint8_t scancode); | 92 void handle_keydown(int keycode, uint8_t scancode); |