Mercurial > repos > blastem
comparison blastem.h @ 803:236a184bf6f0
Merge
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 26 Jul 2015 16:51:03 -0700 |
parents | 092524bb2e8f |
children | 69a6ec208111 |
comparison
equal
deleted
inserted
replaced
802:6811f601008f | 803:236a184bf6f0 |
---|---|
12 #include "ym2612.h" | 12 #include "ym2612.h" |
13 #include "vdp.h" | 13 #include "vdp.h" |
14 #include "psg.h" | 14 #include "psg.h" |
15 #include "io.h" | 15 #include "io.h" |
16 #include "config.h" | 16 #include "config.h" |
17 | 17 #include "romdb.h" |
18 #define RAM_FLAG_ODD 0x1800 | |
19 #define RAM_FLAG_EVEN 0x1000 | |
20 #define RAM_FLAG_BOTH 0x0000 | |
21 | |
22 #define CYCLE_NEVER 0xFFFFFFFF | |
23 | 18 |
24 typedef struct { | 19 typedef struct { |
25 m68k_context *m68k; | 20 m68k_context *m68k; |
26 z80_context *z80; | 21 z80_context *z80; |
27 vdp_context *vdp; | 22 vdp_context *vdp; |
28 ym2612_context *ym; | 23 ym2612_context *ym; |
29 psg_context *psg; | 24 psg_context *psg; |
30 uint8_t *save_ram; | 25 uint16_t *work_ram; |
26 uint8_t *zram; | |
27 uint8_t *save_storage; | |
28 eeprom_map *eeprom_map; | |
29 uint32_t num_eeprom; | |
30 uint32_t save_size; | |
31 uint32_t save_ram_mask; | 31 uint32_t save_ram_mask; |
32 uint32_t save_flags; | |
33 uint32_t master_clock; //Current master clock value | 32 uint32_t master_clock; //Current master clock value |
34 uint32_t normal_clock; //Normal master clock (used to restore master clock after turbo mode) | 33 uint32_t normal_clock; //Normal master clock (used to restore master clock after turbo mode) |
34 uint32_t frame_end; | |
35 uint32_t max_cycles; | |
35 uint8_t bank_regs[8]; | 36 uint8_t bank_regs[8]; |
37 uint16_t mapper_start_index; | |
38 uint8_t save_type; | |
36 io_port ports[3]; | 39 io_port ports[3]; |
37 uint8_t bus_busy; | 40 uint8_t bus_busy; |
41 eeprom_state eeprom; | |
38 } genesis_context; | 42 } genesis_context; |
39 | 43 |
40 extern genesis_context * genesis; | 44 extern genesis_context * genesis; |
41 extern int headless; | 45 extern int headless; |
42 extern int break_on_sync; | 46 extern int break_on_sync; |
43 extern int save_state; | 47 extern int save_state; |
44 extern tern_node * config; | 48 extern tern_node * config; |
45 extern uint8_t busreq; | |
46 extern uint8_t reset; | |
47 | 49 |
48 #define CARTRIDGE_WORDS 0x200000 | |
49 #define RAM_WORDS 32 * 1024 | 50 #define RAM_WORDS 32 * 1024 |
50 #define Z80_RAM_BYTES 8 * 1024 | 51 #define Z80_RAM_BYTES 8 * 1024 |
51 | 52 |
52 extern uint16_t cart[CARTRIDGE_WORDS]; | 53 extern uint16_t *cart; |
53 extern uint16_t ram[RAM_WORDS]; | 54 extern uint16_t ram[RAM_WORDS]; |
54 extern uint8_t z80_ram[Z80_RAM_BYTES]; | 55 extern uint8_t z80_ram[Z80_RAM_BYTES]; |
55 | 56 |
56 uint16_t read_dma_value(uint32_t address); | 57 uint16_t read_dma_value(uint32_t address); |
58 m68k_context * sync_components(m68k_context *context, uint32_t address); | |
57 m68k_context * debugger(m68k_context * context, uint32_t address); | 59 m68k_context * debugger(m68k_context * context, uint32_t address); |
58 void set_speed_percent(genesis_context * context, uint32_t percent); | 60 void set_speed_percent(genesis_context * context, uint32_t percent); |
59 | 61 |
60 #endif //BLASTEM_H_ | 62 #endif //BLASTEM_H_ |
61 | 63 |