annotate system.h @ 2688:b42f00a3a937 default tip

Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
author Michael Pavone <pavone@retrodev.com>
date Mon, 31 Mar 2025 21:06:18 -0700
parents c768bbd912f1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1111
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #ifndef SYSTEM_H_
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #define SYSTEM_H_
1690
319d90025d50 Implement serialization/deserialization in libretro build
Mike Pavone <pavone@retrodev.com>
parents: 1643
diff changeset
3 #include <stddef.h>
1111
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 #include <stdint.h>
2059
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
5 #include <stdio.h>
2298
9d68799f945b Added basic FLAC seek implementation and added support for FLAC tracks in CUE sheets
Michael Pavone <pavone@retrodev.com>
parents: 2289
diff changeset
6 #include "flac.h"
2438
bed4d3db8a3f More flexible loading of Pico storyware assets
Michael Pavone <pavone@retrodev.com>
parents: 2428
diff changeset
7 #include "zip.h"
1111
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 typedef struct system_header system_header;
1140
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
10 typedef struct system_media system_media;
1111
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 typedef enum {
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 SYSTEM_UNKNOWN,
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 SYSTEM_GENESIS,
1946
c3c62dbf1ceb WIP netplay support
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
15 SYSTEM_GENESIS_PLAYER,
1472
d2d637dbacfb Change load_rom into load_media with some interface changes in preparation for CD support
Michael Pavone <pavone@retrodev.com>
parents: 1438
diff changeset
16 SYSTEM_SEGACD,
1111
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 SYSTEM_SMS,
1946
c3c62dbf1ceb WIP netplay support
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
18 SYSTEM_SMS_PLAYER,
2604
c768bbd912f1 Give sega 8-bit consoles separate system_type enum values and allow selecting them from the command line
Michael Pavone <pavone@retrodev.com>
parents: 2546
diff changeset
19 SYSTEM_GAME_GEAR,
c768bbd912f1 Give sega 8-bit consoles separate system_type enum values and allow selecting them from the command line
Michael Pavone <pavone@retrodev.com>
parents: 2546
diff changeset
20 SYSTEM_SG1000,
c768bbd912f1 Give sega 8-bit consoles separate system_type enum values and allow selecting them from the command line
Michael Pavone <pavone@retrodev.com>
parents: 2546
diff changeset
21 SYSTEM_SC3000,
1946
c3c62dbf1ceb WIP netplay support
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
22 SYSTEM_JAGUAR,
2413
64cf80e683aa Initial support for Colecovision emulation
Michael Pavone <pavone@retrodev.com>
parents: 2404
diff changeset
23 SYSTEM_MEDIA_PLAYER,
2428
65c2e4d990cc WIP Pico emulation
Michael Pavone <pavone@retrodev.com>
parents: 2413
diff changeset
24 SYSTEM_COLECOVISION,
2459
cb62730d5c99 Initial work on Copera emulation
Michael Pavone <pavone@retrodev.com>
parents: 2438
diff changeset
25 SYSTEM_PICO,
cb62730d5c99 Initial work on Copera emulation
Michael Pavone <pavone@retrodev.com>
parents: 2438
diff changeset
26 SYSTEM_COPERA
1111
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27 } system_type;
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 typedef enum {
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 DEBUGGER_NATIVE,
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 DEBUGGER_GDB
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 } debugger_type;
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33
2243
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
34 enum {
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
35 DEBUG_PLANE,
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
36 DEBUG_VRAM,
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
37 DEBUG_CRAM,
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
38 DEBUG_COMPOSITE,
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
39 DEBUG_OSCILLOSCOPE,
2271
3ef80963c2a7 Fix stamp address mask and add WIP CD graphics debug view
Michael Pavone <pavone@retrodev.com>
parents: 2243
diff changeset
40 DEBUG_CD_GRAPHICS,
2243
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
41 NUM_DEBUG_TYPES
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
42 };
0d1d5dccdd28 Initial implementation of oscilloscope debug view
Michael Pavone <pavone@retrodev.com>
parents: 2215
diff changeset
43
2528
90a40be940f7 Implement read-only SC-3000 cassette support
Michael Pavone <pavone@retrodev.com>
parents: 2459
diff changeset
44 enum {
90a40be940f7 Implement read-only SC-3000 cassette support
Michael Pavone <pavone@retrodev.com>
parents: 2459
diff changeset
45 CASSETTE_PLAY,
90a40be940f7 Implement read-only SC-3000 cassette support
Michael Pavone <pavone@retrodev.com>
parents: 2459
diff changeset
46 CASSETTE_RECORD,
90a40be940f7 Implement read-only SC-3000 cassette support
Michael Pavone <pavone@retrodev.com>
parents: 2459
diff changeset
47 CASSETTE_STOP,
90a40be940f7 Implement read-only SC-3000 cassette support
Michael Pavone <pavone@retrodev.com>
parents: 2459
diff changeset
48 CASSETTE_REWIND
90a40be940f7 Implement read-only SC-3000 cassette support
Michael Pavone <pavone@retrodev.com>
parents: 2459
diff changeset
49 };
90a40be940f7 Implement read-only SC-3000 cassette support
Michael Pavone <pavone@retrodev.com>
parents: 2459
diff changeset
50
1472
d2d637dbacfb Change load_rom into load_media with some interface changes in preparation for CD support
Michael Pavone <pavone@retrodev.com>
parents: 1438
diff changeset
51 typedef enum {
d2d637dbacfb Change load_rom into load_media with some interface changes in preparation for CD support
Michael Pavone <pavone@retrodev.com>
parents: 1438
diff changeset
52 MEDIA_CART,
d2d637dbacfb Change load_rom into load_media with some interface changes in preparation for CD support
Michael Pavone <pavone@retrodev.com>
parents: 1438
diff changeset
53 MEDIA_CDROM
d2d637dbacfb Change load_rom into load_media with some interface changes in preparation for CD support
Michael Pavone <pavone@retrodev.com>
parents: 1438
diff changeset
54 } media_type;
d2d637dbacfb Change load_rom into load_media with some interface changes in preparation for CD support
Michael Pavone <pavone@retrodev.com>
parents: 1438
diff changeset
55
2059
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
56 typedef enum {
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
57 TRACK_AUDIO,
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
58 TRACK_DATA
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
59 } track_type;
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
60
2116
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
61 enum {
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
62 SUBCODES_NONE,
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
63 SUBCODES_RAW,
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
64 SUBCODES_COOKED
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
65 };
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
66
2059
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
67 typedef struct {
2114
2449c88cea36 Enhance support for CUE files and add initial support for cdrdao TOC files
Michael Pavone <pavone@retrodev.com>
parents: 2089
diff changeset
68 FILE *f;
2298
9d68799f945b Added basic FLAC seek implementation and added support for FLAC tracks in CUE sheets
Michael Pavone <pavone@retrodev.com>
parents: 2289
diff changeset
69 flac_file *flac;
2114
2449c88cea36 Enhance support for CUE files and add initial support for cdrdao TOC files
Michael Pavone <pavone@retrodev.com>
parents: 2089
diff changeset
70 uint32_t file_offset;
2059
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
71 uint32_t fake_pregap;
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
72 uint32_t pregap_lba;
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
73 uint32_t start_lba;
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
74 uint32_t end_lba;
2114
2449c88cea36 Enhance support for CUE files and add initial support for cdrdao TOC files
Michael Pavone <pavone@retrodev.com>
parents: 2089
diff changeset
75 uint16_t sector_bytes;
2089
0db3af42dd72 Fix some byte order stuff for audio tracks
Michael Pavone <pavone@retrodev.com>
parents: 2080
diff changeset
76 uint8_t need_swap;
2116
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
77 uint8_t has_subcodes;
2059
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
78 track_type type;
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
79 } track_info;
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
80
2080
bafb757e1cd2 Implement CD audio
Michael Pavone <pavone@retrodev.com>
parents: 2076
diff changeset
81 typedef uint8_t (*seek_fun)(system_media *media, uint32_t sector);
2076
3f29e2726522 Added basic support for ISO images for games that only have a data track
Michael Pavone <pavone@retrodev.com>
parents: 2059
diff changeset
82 typedef uint8_t (*read_fun)(system_media *media, uint32_t offset);
3f29e2726522 Added basic support for ISO images for games that only have a data track
Michael Pavone <pavone@retrodev.com>
parents: 2059
diff changeset
83
1140
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
84 struct system_media {
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
85 void *buffer;
1438
e2bd03ed3190 Allow reloading current ROM with a hotkey (default F5) and allow locking on a cartridge via menu
Michael Pavone <pavone@retrodev.com>
parents: 1433
diff changeset
86 char *dir;
1201
aee2177a1630 Use filename for game title in SMS mode
Michael Pavone <pavone@retrodev.com>
parents: 1149
diff changeset
87 char *name;
1140
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
88 char *extension;
2404
6f8400ce7a0f Fix reload of zipped and gzipped ROMS
Michael Pavone <pavone@retrodev.com>
parents: 2342
diff changeset
89 char *orig_path; //Full path before splitting and any extension manipulation
1140
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
90 system_media *chain;
2059
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
91 track_info *tracks;
2116
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
92 uint8_t *tmp_buffer;
2438
bed4d3db8a3f More flexible loading of Pico storyware assets
Michael Pavone <pavone@retrodev.com>
parents: 2428
diff changeset
93 zip_file *zip;
2076
3f29e2726522 Added basic support for ISO images for games that only have a data track
Michael Pavone <pavone@retrodev.com>
parents: 2059
diff changeset
94 seek_fun seek;
3f29e2726522 Added basic support for ISO images for games that only have a data track
Michael Pavone <pavone@retrodev.com>
parents: 2059
diff changeset
95 read_fun read;
2116
cd057d6fe030 Initial stab at subcode emulation
Michael Pavone <pavone@retrodev.com>
parents: 2114
diff changeset
96 read_fun read_subcodes;
2059
6399a776e981 Add basic support for BIN/CUE images
Michael Pavone <pavone@retrodev.com>
parents: 2053
diff changeset
97 uint32_t num_tracks;
2089
0db3af42dd72 Fix some byte order stuff for audio tracks
Michael Pavone <pavone@retrodev.com>
parents: 2080
diff changeset
98 uint32_t cur_track;
1140
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
99 uint32_t size;
2076
3f29e2726522 Added basic support for ISO images for games that only have a data track
Michael Pavone <pavone@retrodev.com>
parents: 2059
diff changeset
100 uint32_t cur_sector;
2342
9f0c67e5c50a Implement CD-ROM data sector scrambling/descrambling
Michael Pavone <pavone@retrodev.com>
parents: 2298
diff changeset
101 uint16_t cdrom_scramble_lsfr;
1472
d2d637dbacfb Change load_rom into load_media with some interface changes in preparation for CD support
Michael Pavone <pavone@retrodev.com>
parents: 1438
diff changeset
102 media_type type;
2076
3f29e2726522 Added basic support for ISO images for games that only have a data track
Michael Pavone <pavone@retrodev.com>
parents: 2059
diff changeset
103 uint8_t in_fake_pregap;
2298
9d68799f945b Added basic FLAC seek implementation and added support for FLAC tracks in CUE sheets
Michael Pavone <pavone@retrodev.com>
parents: 2289
diff changeset
104 uint8_t byte_storage[3];
1140
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
105 };
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
106
2544
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
107 typedef void (*system_fun)(system_header *);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
108 typedef uint16_t (*system_fun_r16)(system_header *);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
109 typedef void (*system_str_fun)(system_header *, char *);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
110 typedef uint8_t (*system_str_fun_r8)(system_header *, char *);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
111 typedef void (*system_u32_fun)(system_header *, uint32_t);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
112 typedef void (*system_u8_fun)(system_header *, uint8_t);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
113 typedef uint8_t (*system_u8_fun_r8)(system_header *, uint8_t);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
114 typedef void (*system_u8_u8_fun)(system_header *, uint8_t, uint8_t);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
115 typedef void (*system_mabs_fun)(system_header *, uint8_t, uint16_t, uint16_t);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
116 typedef void (*system_mrel_fun)(system_header *, uint8_t, int32_t, int32_t);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
117 typedef uint8_t *(*system_ptrszt_fun_rptr8)(system_header *, size_t *);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
118 typedef void (*system_ptr8_sizet_fun)(system_header *, uint8_t *, size_t);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
119 typedef void (*system_media_fun)(system_header *, system_media *);
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
120
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
121 #include "arena.h"
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
122 #include "romdb.h"
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
123 typedef struct event_reader event_reader;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
124
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
125 struct system_header {
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
126 system_header *next_context;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
127 system_str_fun start_context;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
128 system_fun resume_context;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
129 system_fun load_save;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
130 system_fun persist_save;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
131 system_u8_fun_r8 load_state;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
132 system_fun request_exit;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
133 system_fun soft_reset;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
134 system_fun free_context;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
135 system_fun_r16 get_open_bus_value;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
136 system_u32_fun set_speed_percent;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
137 system_fun inc_debug_mode;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
138 system_u8_u8_fun gamepad_down;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
139 system_u8_u8_fun gamepad_up;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
140 system_u8_u8_fun mouse_down;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
141 system_u8_u8_fun mouse_up;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
142 system_mabs_fun mouse_motion_absolute;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
143 system_mrel_fun mouse_motion_relative;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
144 system_u8_fun keyboard_down;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
145 system_u8_fun keyboard_up;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
146 system_fun config_updated;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
147 system_ptrszt_fun_rptr8 serialize;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
148 system_ptr8_sizet_fun deserialize;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
149 system_str_fun start_vgm_log;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
150 system_fun stop_vgm_log;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
151 system_u8_fun toggle_debug_view;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
152 system_u8_fun cassette_action;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
153 system_media_fun lockon_change;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
154 rom_info info;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
155 arena *arena;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
156 char *next_rom;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
157 char *save_dir;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
158 char *paste_buffer;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
159 uint32_t paste_cur_char;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
160 int enter_debugger_frames;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
161 uint8_t enter_debugger;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
162 uint8_t should_exit;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
163 uint8_t save_state;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
164 uint8_t delayed_load_slot;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
165 uint8_t has_keyboard;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
166 uint8_t vgm_logging;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
167 uint8_t force_release;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
168 debugger_type debugger_type;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
169 system_type type;
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
170 };
99e59fdddbc3 Better cassette tape UX
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
171
1113
45db303fc705 Restore 68K address logging functionality
Michael Pavone <pavone@retrodev.com>
parents: 1111
diff changeset
172 #define OPT_ADDRESS_LOG (1U << 31U)
45db303fc705 Restore 68K address logging functionality
Michael Pavone <pavone@retrodev.com>
parents: 1111
diff changeset
173
1140
4490c9c12272 Detect system type from filename if header based methods fail. Allow overriding system type from command line.
Michael Pavone <pavone@retrodev.com>
parents: 1117
diff changeset
174 system_type detect_system_type(system_media *media);
1595
360d5bab199f Update controller config when changed in UI without restart
Michael Pavone <pavone@retrodev.com>
parents: 1583
diff changeset
175 system_header *alloc_config_system(system_type stype, system_media *media, uint32_t opts, uint8_t force_region);
1946
c3c62dbf1ceb WIP netplay support
Michael Pavone <pavone@retrodev.com>
parents: 1909
diff changeset
176 system_header *alloc_config_player(system_type stype, event_reader *reader);
1980
81df9aa2de9b Less hacky run on audio thread mode
Michael Pavone <pavone@retrodev.com>
parents: 1946
diff changeset
177 void system_request_exit(system_header *system, uint8_t force_release);
2545
c076a96f1668 Get CD titles sort of working in libretro target
Michael Pavone <pavone@retrodev.com>
parents: 2532
diff changeset
178 uint32_t load_media(char * filename, system_media *dst, system_type *stype);
2438
bed4d3db8a3f More flexible loading of Pico storyware assets
Michael Pavone <pavone@retrodev.com>
parents: 2428
diff changeset
179 void* load_media_subfile(const system_media *media, char *path, uint32_t *sizeout);
1111
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
180
2eb54e24914e Mostly working changes to allow support for multiple emulated system types in main blastem program
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
181 #endif //SYSTEM_H_