view ym2612.h @ 345:29d2ca563499

Don't sync the 68K clock to the VDP clock unless the 68K had to wait for the VDP. This unfortunately breaks the direct color DMA demos, but should be more correct overall.
author Mike Pavone <pavone@retrodev.com>
date Sun, 19 May 2013 13:47:47 -0700
parents a8ee7934a1f8
children cc39629e8d06
line wrap: on
line source

#ifndef YM2612_H_
#define YM2612_H_

#include <stdint.h>

#define NUM_SHARED_REGS (0x30-0x21)
#define NUM_PART_REGS (0xB7-0x30)

typedef struct {
	uint32_t current_cycle;
	uint32_t write_cycle;
	uint8_t  *selected_reg;
	uint16_t timer_a;
	uint8_t  timer_b;
	uint8_t  reg_num;
	uint8_t  status;
	uint8_t  part1_regs[NUM_SHARED_REGS+NUM_PART_REGS];
	uint8_t  part2_regs[NUM_PART_REGS];
} ym2612_context;

void ym_init(ym2612_context * context);
void ym_run(ym2612_context * context, uint32_t to_cycle);
void ym_address_write_part1(ym2612_context * context, uint8_t address);
void ym_address_write_part2(ym2612_context * context, uint8_t address);
void ym_data_write(ym2612_context * context, uint8_t value);
uint8_t ym_read_status(ym2612_context * context);

#endif //YM2612_H_