Mercurial > repos > blastem
diff ym2612.h @ 288:a8ee7934a1f8
Add a YM2612 stub implementation with just timers and status registers so that games that depend on it can run.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 05 May 2013 22:56:42 -0700 |
parents | |
children | cc39629e8d06 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ym2612.h Sun May 05 22:56:42 2013 -0700 @@ -0,0 +1,29 @@ +#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_ +