Mercurial > repos > blastem
annotate blastem.h @ 351:2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 21 May 2013 22:08:59 -0700 |
parents | a8ee7934a1f8 |
children | 15dd6418fe67 |
rev | line source |
---|---|
66 | 1 #ifndef BLASTEM_H_ |
2 #define BLASTEM_H_ | |
3 | |
75 | 4 #include <stdint.h> |
198
209a37eed3e7
Add support for breaking into the debugger while game is running
Mike Pavone <pavone@retrodev.com>
parents:
75
diff
changeset
|
5 #include "m68k_to_x86.h" |
288
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
6 #include "z80_to_x86.h" |
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
7 #include "ym2612.h" |
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
8 #include "vdp.h" |
75 | 9 |
66 | 10 typedef struct { |
11 uint32_t th_counter; | |
12 uint32_t timeout_cycle; | |
13 uint8_t output; | |
14 uint8_t control; | |
15 uint8_t input[3]; | |
16 } io_port; | |
17 | |
351
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
18 #define RAM_FLAG_ODD 0x1800 |
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
19 #define RAM_FLAG_EVEN 0x1000 |
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
20 #define RAM_FLAG_BOTH 0x0000 |
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
21 |
288
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
22 typedef struct { |
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
23 m68k_context *m68k; |
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
24 z80_context *z80; |
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
25 vdp_context *vdp; |
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
26 ym2612_context *ym; |
351
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
27 uint8_t *save_ram; |
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
28 uint32_t save_ram_mask; |
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
29 uint32_t save_flags; |
2f264d2a60c2
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
Mike Pavone <pavone@retrodev.com>
parents:
288
diff
changeset
|
30 uint8_t bank_regs[8]; |
288
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
31 } genesis_context; |
a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
Mike Pavone <pavone@retrodev.com>
parents:
198
diff
changeset
|
32 |
66 | 33 #define GAMEPAD_TH0 0 |
34 #define GAMEPAD_TH1 1 | |
35 #define GAMEPAD_EXTRA 2 | |
36 | |
37 extern io_port gamepad_1; | |
38 extern io_port gamepad_2; | |
39 | |
40 void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction); | |
75 | 41 uint16_t read_dma_value(uint32_t address); |
198
209a37eed3e7
Add support for breaking into the debugger while game is running
Mike Pavone <pavone@retrodev.com>
parents:
75
diff
changeset
|
42 m68k_context * debugger(m68k_context * context, uint32_t address); |
66 | 43 |
44 #endif //BLASTEM_H_ | |
45 |