Mercurial > repos > blastem
comparison system.h @ 2053:3414a4423de1 segacd
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 15 Jan 2022 13:15:21 -0800 |
parents | 5dacaef602a7 81df9aa2de9b |
children | 6399a776e981 |
comparison
equal
deleted
inserted
replaced
1692:5dacaef602a7 | 2053:3414a4423de1 |
---|---|
1 #ifndef SYSTEM_H_ | 1 #ifndef SYSTEM_H_ |
2 #define SYSTEM_H_ | 2 #define SYSTEM_H_ |
3 #include <stddef.h> | |
3 #include <stdint.h> | 4 #include <stdint.h> |
4 | 5 |
5 typedef struct system_header system_header; | 6 typedef struct system_header system_header; |
6 typedef struct system_media system_media; | 7 typedef struct system_media system_media; |
7 | 8 |
8 typedef enum { | 9 typedef enum { |
9 SYSTEM_UNKNOWN, | 10 SYSTEM_UNKNOWN, |
10 SYSTEM_GENESIS, | 11 SYSTEM_GENESIS, |
12 SYSTEM_GENESIS_PLAYER, | |
11 SYSTEM_SEGACD, | 13 SYSTEM_SEGACD, |
12 SYSTEM_SMS, | 14 SYSTEM_SMS, |
13 SYSTEM_JAGUAR | 15 SYSTEM_SMS_PLAYER, |
16 SYSTEM_JAGUAR, | |
14 } system_type; | 17 } system_type; |
15 | 18 |
16 typedef enum { | 19 typedef enum { |
17 DEBUGGER_NATIVE, | 20 DEBUGGER_NATIVE, |
18 DEBUGGER_GDB | 21 DEBUGGER_GDB |
26 typedef void (*system_u8_fun)(system_header *, uint8_t); | 29 typedef void (*system_u8_fun)(system_header *, uint8_t); |
27 typedef uint8_t (*system_u8_fun_r8)(system_header *, uint8_t); | 30 typedef uint8_t (*system_u8_fun_r8)(system_header *, uint8_t); |
28 typedef void (*system_u8_u8_fun)(system_header *, uint8_t, uint8_t); | 31 typedef void (*system_u8_u8_fun)(system_header *, uint8_t, uint8_t); |
29 typedef void (*system_mabs_fun)(system_header *, uint8_t, uint16_t, uint16_t); | 32 typedef void (*system_mabs_fun)(system_header *, uint8_t, uint16_t, uint16_t); |
30 typedef void (*system_mrel_fun)(system_header *, uint8_t, int32_t, int32_t); | 33 typedef void (*system_mrel_fun)(system_header *, uint8_t, int32_t, int32_t); |
34 typedef uint8_t *(*system_ptrszt_fun_rptr8)(system_header *, size_t *); | |
35 typedef void (*system_ptr8_sizet_fun)(system_header *, uint8_t *, size_t); | |
31 | 36 |
32 #include "arena.h" | 37 #include "arena.h" |
33 #include "romdb.h" | 38 #include "romdb.h" |
39 #include "event_log.h" | |
34 | 40 |
35 struct system_header { | 41 struct system_header { |
36 system_header *next_context; | 42 system_header *next_context; |
37 system_str_fun start_context; | 43 system_str_fun start_context; |
38 system_fun resume_context; | 44 system_fun resume_context; |
52 system_mabs_fun mouse_motion_absolute; | 58 system_mabs_fun mouse_motion_absolute; |
53 system_mrel_fun mouse_motion_relative; | 59 system_mrel_fun mouse_motion_relative; |
54 system_u8_fun keyboard_down; | 60 system_u8_fun keyboard_down; |
55 system_u8_fun keyboard_up; | 61 system_u8_fun keyboard_up; |
56 system_fun config_updated; | 62 system_fun config_updated; |
63 system_ptrszt_fun_rptr8 serialize; | |
64 system_ptr8_sizet_fun deserialize; | |
65 system_str_fun start_vgm_log; | |
66 system_fun stop_vgm_log; | |
57 rom_info info; | 67 rom_info info; |
58 arena *arena; | 68 arena *arena; |
59 char *next_rom; | 69 char *next_rom; |
60 char *save_dir; | 70 char *save_dir; |
61 uint8_t enter_debugger; | 71 uint8_t enter_debugger; |
62 uint8_t should_exit; | 72 uint8_t should_exit; |
63 uint8_t save_state; | 73 uint8_t save_state; |
64 uint8_t delayed_load_slot; | 74 uint8_t delayed_load_slot; |
65 uint8_t has_keyboard; | 75 uint8_t has_keyboard; |
76 uint8_t vgm_logging; | |
77 uint8_t force_release; | |
66 debugger_type debugger_type; | 78 debugger_type debugger_type; |
67 system_type type; | 79 system_type type; |
68 }; | 80 }; |
69 | 81 |
70 typedef enum { | 82 typedef enum { |
84 | 96 |
85 #define OPT_ADDRESS_LOG (1U << 31U) | 97 #define OPT_ADDRESS_LOG (1U << 31U) |
86 | 98 |
87 system_type detect_system_type(system_media *media); | 99 system_type detect_system_type(system_media *media); |
88 system_header *alloc_config_system(system_type stype, system_media *media, uint32_t opts, uint8_t force_region); | 100 system_header *alloc_config_system(system_type stype, system_media *media, uint32_t opts, uint8_t force_region); |
101 system_header *alloc_config_player(system_type stype, event_reader *reader); | |
102 void system_request_exit(system_header *system, uint8_t force_release); | |
89 | 103 |
90 #endif //SYSTEM_H_ | 104 #endif //SYSTEM_H_ |