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