Mercurial > repos > blastem
comparison system.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 | |
children | 45db303fc705 |
comparison
equal
deleted
inserted
replaced
1110:d1eed3b1121c | 1111:2eb54e24914e |
---|---|
1 #ifndef SYSTEM_H_ | |
2 #define SYSTEM_H_ | |
3 #include <stdint.h> | |
4 #include "arena.h" | |
5 #include "romdb.h" | |
6 | |
7 typedef struct system_header system_header; | |
8 | |
9 typedef enum { | |
10 SYSTEM_UNKNOWN, | |
11 SYSTEM_GENESIS, | |
12 SYSTEM_SMS, | |
13 SYSTEM_JAGUAR | |
14 } system_type; | |
15 | |
16 typedef enum { | |
17 DEBUGGER_NATIVE, | |
18 DEBUGGER_GDB | |
19 } debugger_type; | |
20 | |
21 typedef void (*system_fun)(system_header *); | |
22 typedef void (*start_system_fun)(system_header *, char *); | |
23 typedef void (*speed_system_fun)(system_header *, uint32_t); | |
24 | |
25 struct system_header { | |
26 system_header *next_context; | |
27 start_system_fun start_context; | |
28 system_fun resume_context; | |
29 system_fun load_save; | |
30 system_fun persist_save; | |
31 system_fun request_exit; | |
32 system_fun free_context; | |
33 speed_system_fun set_speed_percent; | |
34 system_fun inc_debug_mode; | |
35 system_fun inc_debug_pal; | |
36 arena *arena; | |
37 char *next_rom; | |
38 char *save_dir; | |
39 uint8_t enter_debugger; | |
40 uint8_t should_exit; | |
41 uint8_t save_state; | |
42 debugger_type debugger_type; | |
43 system_type type; | |
44 }; | |
45 | |
46 system_type detect_system_type(uint8_t *rom, long filesize); | |
47 system_header *alloc_config_system(system_type stype, void *rom, uint32_t rom_size, void *lock_on, uint32_t lock_on_size, uint32_t opts, uint8_t force_region, rom_info *info_out); | |
48 | |
49 #endif //SYSTEM_H_ |