Mercurial > repos > blastem
diff 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 |
line wrap: on
line diff
--- a/system.h Sat Jan 05 00:58:08 2019 -0800 +++ b/system.h Sat Jan 15 13:15:21 2022 -0800 @@ -1,5 +1,6 @@ #ifndef SYSTEM_H_ #define SYSTEM_H_ +#include <stddef.h> #include <stdint.h> typedef struct system_header system_header; @@ -8,9 +9,11 @@ typedef enum { SYSTEM_UNKNOWN, SYSTEM_GENESIS, + SYSTEM_GENESIS_PLAYER, SYSTEM_SEGACD, SYSTEM_SMS, - SYSTEM_JAGUAR + SYSTEM_SMS_PLAYER, + SYSTEM_JAGUAR, } system_type; typedef enum { @@ -28,9 +31,12 @@ typedef void (*system_u8_u8_fun)(system_header *, uint8_t, uint8_t); typedef void (*system_mabs_fun)(system_header *, uint8_t, uint16_t, uint16_t); typedef void (*system_mrel_fun)(system_header *, uint8_t, int32_t, int32_t); +typedef uint8_t *(*system_ptrszt_fun_rptr8)(system_header *, size_t *); +typedef void (*system_ptr8_sizet_fun)(system_header *, uint8_t *, size_t); #include "arena.h" #include "romdb.h" +#include "event_log.h" struct system_header { system_header *next_context; @@ -54,6 +60,10 @@ system_u8_fun keyboard_down; system_u8_fun keyboard_up; system_fun config_updated; + system_ptrszt_fun_rptr8 serialize; + system_ptr8_sizet_fun deserialize; + system_str_fun start_vgm_log; + system_fun stop_vgm_log; rom_info info; arena *arena; char *next_rom; @@ -63,6 +73,8 @@ uint8_t save_state; uint8_t delayed_load_slot; uint8_t has_keyboard; + uint8_t vgm_logging; + uint8_t force_release; debugger_type debugger_type; system_type type; }; @@ -86,5 +98,7 @@ system_type detect_system_type(system_media *media); system_header *alloc_config_system(system_type stype, system_media *media, uint32_t opts, uint8_t force_region); +system_header *alloc_config_player(system_type stype, event_reader *reader); +void system_request_exit(system_header *system, uint8_t force_release); #endif //SYSTEM_H_