Mercurial > repos > blastem
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 |