comparison system.h @ 1690:319d90025d50

Implement serialization/deserialization in libretro build
author Mike Pavone <pavone@retrodev.com>
date Sun, 20 Jan 2019 22:19:58 -0800
parents 6909c5d0bbb5
children 508522f08e4d
comparison
equal deleted inserted replaced
1689:7f42a93f18a4 1690:319d90025d50
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
25 typedef void (*system_u8_fun)(system_header *, uint8_t); 26 typedef void (*system_u8_fun)(system_header *, uint8_t);
26 typedef uint8_t (*system_u8_fun_r8)(system_header *, uint8_t); 27 typedef uint8_t (*system_u8_fun_r8)(system_header *, uint8_t);
27 typedef void (*system_u8_u8_fun)(system_header *, uint8_t, uint8_t); 28 typedef void (*system_u8_u8_fun)(system_header *, uint8_t, uint8_t);
28 typedef void (*system_mabs_fun)(system_header *, uint8_t, uint16_t, uint16_t); 29 typedef void (*system_mabs_fun)(system_header *, uint8_t, uint16_t, uint16_t);
29 typedef void (*system_mrel_fun)(system_header *, uint8_t, int32_t, int32_t); 30 typedef void (*system_mrel_fun)(system_header *, uint8_t, int32_t, int32_t);
31 typedef uint8_t *(*system_ptrszt_fun_rptr8)(system_header *, size_t *);
32 typedef void (*system_ptr8_sizet_fun)(system_header *, uint8_t *, size_t);
30 33
31 #include "arena.h" 34 #include "arena.h"
32 #include "romdb.h" 35 #include "romdb.h"
33 36
34 struct system_header { 37 struct system_header {
35 system_header *next_context; 38 system_header *next_context;
36 system_str_fun start_context; 39 system_str_fun start_context;
37 system_fun resume_context; 40 system_fun resume_context;
38 system_fun load_save; 41 system_fun load_save;
39 system_fun persist_save; 42 system_fun persist_save;
40 system_u8_fun_r8 load_state; 43 system_u8_fun_r8 load_state;
41 system_fun request_exit; 44 system_fun request_exit;
42 system_fun soft_reset; 45 system_fun soft_reset;
43 system_fun free_context; 46 system_fun free_context;
44 system_fun_r16 get_open_bus_value; 47 system_fun_r16 get_open_bus_value;
45 system_u32_fun set_speed_percent; 48 system_u32_fun set_speed_percent;
46 system_fun inc_debug_mode; 49 system_fun inc_debug_mode;
47 system_u8_u8_fun gamepad_down; 50 system_u8_u8_fun gamepad_down;
48 system_u8_u8_fun gamepad_up; 51 system_u8_u8_fun gamepad_up;
49 system_u8_u8_fun mouse_down; 52 system_u8_u8_fun mouse_down;
50 system_u8_u8_fun mouse_up; 53 system_u8_u8_fun mouse_up;
51 system_mabs_fun mouse_motion_absolute; 54 system_mabs_fun mouse_motion_absolute;
52 system_mrel_fun mouse_motion_relative; 55 system_mrel_fun mouse_motion_relative;
53 system_u8_fun keyboard_down; 56 system_u8_fun keyboard_down;
54 system_u8_fun keyboard_up; 57 system_u8_fun keyboard_up;
55 system_fun config_updated; 58 system_fun config_updated;
56 rom_info info; 59 system_ptrszt_fun_rptr8 serialize;
57 arena *arena; 60 system_ptr8_sizet_fun deserialize;
58 char *next_rom; 61 rom_info info;
59 char *save_dir; 62 arena *arena;
60 uint8_t enter_debugger; 63 char *next_rom;
61 uint8_t should_exit; 64 char *save_dir;
62 uint8_t save_state; 65 uint8_t enter_debugger;
63 uint8_t delayed_load_slot; 66 uint8_t should_exit;
64 uint8_t has_keyboard; 67 uint8_t save_state;
65 debugger_type debugger_type; 68 uint8_t delayed_load_slot;
66 system_type type; 69 uint8_t has_keyboard;
70 debugger_type debugger_type;
71 system_type type;
67 }; 72 };
68 73
69 struct system_media { 74 struct system_media {
70 void *buffer; 75 void *buffer;
71 char *dir; 76 char *dir;