comparison genesis.h @ 2053:3414a4423de1 segacd

Merge from default
author Michael Pavone <pavone@retrodev.com>
date Sat, 15 Jan 2022 13:15:21 -0800
parents 5dacaef602a7 3748a2a8a4b7
children 8ee7ecbf3f21
comparison
equal deleted inserted replaced
1692:5dacaef602a7 2053:3414a4423de1
7 #define GENESIS_H_ 7 #define GENESIS_H_
8 8
9 #include <stdint.h> 9 #include <stdint.h>
10 #include "system.h" 10 #include "system.h"
11 #include "m68k_core.h" 11 #include "m68k_core.h"
12 #ifdef NEW_CORE
13 #include "z80.h"
14 #else
12 #include "z80_to_x86.h" 15 #include "z80_to_x86.h"
16 #endif
13 #include "ym2612.h" 17 #include "ym2612.h"
14 #include "vdp.h" 18 #include "vdp.h"
15 #include "psg.h" 19 #include "psg.h"
16 #include "io.h" 20 #include "io.h"
17 #include "romdb.h" 21 #include "romdb.h"
34 void *expansion; 38 void *expansion;
35 void *extra; 39 void *extra;
36 uint8_t *save_storage; 40 uint8_t *save_storage;
37 void *mapper_temp; 41 void *mapper_temp;
38 eeprom_map *eeprom_map; 42 eeprom_map *eeprom_map;
43 write_16_fun tmss_write_16;
44 write_8_fun tmss_write_8;
45 read_16_fun tmss_read_16;
46 read_8_fun tmss_read_8;
47 uint16_t *tmss_pointers[NUM_MEM_AREAS];
48 uint8_t *tmss_buffer;
49 uint8_t *serialize_tmp;
50 size_t serialize_size;
39 uint32_t num_eeprom; 51 uint32_t num_eeprom;
40 uint32_t save_size; 52 uint32_t save_size;
41 uint32_t save_ram_mask; 53 uint32_t save_ram_mask;
42 uint32_t master_clock; //Current master clock value 54 uint32_t master_clock; //Current master clock value
43 uint32_t normal_clock; //Normal master clock (used to restore master clock after turbo mode) 55 uint32_t normal_clock; //Normal master clock (used to restore master clock after turbo mode)
44 uint32_t frame_end; 56 uint32_t frame_end;
45 uint32_t max_cycles; 57 uint32_t max_cycles;
46 uint32_t int_latency_prev1; 58 uint32_t int_latency_prev1;
47 uint32_t int_latency_prev2; 59 uint32_t int_latency_prev2;
48 uint32_t reset_cycle; 60 uint32_t reset_cycle;
49 uint8_t bank_regs[8]; 61 uint32_t last_frame;
62 uint32_t last_flush_cycle;
63 uint32_t soft_flush_cycles;
64 uint32_t tmss_write_offset;
65 uint16_t z80_bank_reg;
66 uint16_t tmss_lock[2];
50 uint16_t mapper_start_index; 67 uint16_t mapper_start_index;
51 uint8_t mapper_type; 68 uint8_t mapper_type;
69 uint8_t bank_regs[9];
52 uint8_t save_type; 70 uint8_t save_type;
53 sega_io io; 71 sega_io io;
54 uint8_t version_reg; 72 uint8_t version_reg;
55 uint8_t bus_busy; 73 uint8_t bus_busy;
56 uint8_t reset_requested; 74 uint8_t reset_requested;
75 uint8_t tmss;
76 uint8_t vdp_unlocked;
57 eeprom_state eeprom; 77 eeprom_state eeprom;
58 nor_state nor; 78 nor_state nor;
59 }; 79 };
60 80
61 #define RAM_WORDS 32 * 1024 81 #define RAM_WORDS 32 * 1024
62 #define Z80_RAM_BYTES 8 * 1024 82 #define Z80_RAM_BYTES 8 * 1024
63 83
64 m68k_context * sync_components(m68k_context *context, uint32_t address); 84 m68k_context * sync_components(m68k_context *context, uint32_t address);
65 genesis_context *alloc_config_genesis(void *rom, uint32_t rom_size, void *lock_on, uint32_t lock_on_size, uint32_t system_opts, uint8_t force_region); 85 genesis_context *alloc_config_genesis(void *rom, uint32_t rom_size, void *lock_on, uint32_t lock_on_size, uint32_t system_opts, uint8_t force_region);
66 genesis_context *alloc_config_genesis_cdboot(system_media *media, uint32_t system_opts, uint8_t force_region); 86 genesis_context *alloc_config_genesis_cdboot(system_media *media, uint32_t system_opts, uint8_t force_region);
67 void genesis_serialize(genesis_context *gen, serialize_buffer *buf, uint32_t m68k_pc); 87 void genesis_serialize(genesis_context *gen, serialize_buffer *buf, uint32_t m68k_pc, uint8_t all);
68 void genesis_deserialize(deserialize_buffer *buf, genesis_context *gen); 88 void genesis_deserialize(deserialize_buffer *buf, genesis_context *gen);
69 89
70 #endif //GENESIS_H_ 90 #endif //GENESIS_H_
71 91