Mercurial > repos > blastem
view blastem.h @ 380:1c8d74f2ab0b
Make the PSG and YM2612 use the master clock internal with an increment based on clock divider so that they stay perflectly in sync. Run both the PSG and YM2612 whenver one of them needs to be run.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 03 Jun 2013 21:43:38 -0700 |
parents | 15dd6418fe67 |
children | c26e48a93fa3 |
line wrap: on
line source
#ifndef BLASTEM_H_ #define BLASTEM_H_ #include <stdint.h> #include "m68k_to_x86.h" #include "z80_to_x86.h" #include "ym2612.h" #include "vdp.h" #include "psg.h" typedef struct { uint32_t th_counter; uint32_t timeout_cycle; uint8_t output; uint8_t control; uint8_t input[3]; } io_port; #define RAM_FLAG_ODD 0x1800 #define RAM_FLAG_EVEN 0x1000 #define RAM_FLAG_BOTH 0x0000 typedef struct { m68k_context *m68k; z80_context *z80; vdp_context *vdp; ym2612_context *ym; psg_context *psg; uint8_t *save_ram; uint32_t save_ram_mask; uint32_t save_flags; uint8_t bank_regs[8]; } genesis_context; #define GAMEPAD_TH0 0 #define GAMEPAD_TH1 1 #define GAMEPAD_EXTRA 2 extern io_port gamepad_1; extern io_port gamepad_2; void io_adjust_cycles(io_port * pad, uint32_t current_cycle, uint32_t deduction); uint16_t read_dma_value(uint32_t address); m68k_context * debugger(m68k_context * context, uint32_t address); #endif //BLASTEM_H_