Mercurial > repos > blastem
diff ymz263b.h @ 2466:b5640ac9aea9
Initial stab at PCM/ADPCM support in YMZ263B emulation
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 24 Feb 2024 20:41:02 -0800 |
parents | a4f8fa24764b |
children | 2f4c17b4fe10 |
line wrap: on
line diff
--- a/ymz263b.h Sat Feb 24 11:53:44 2024 -0800 +++ b/ymz263b.h Sat Feb 24 20:41:02 2024 -0800 @@ -6,11 +6,16 @@ #include "oscilloscope.h" typedef struct { - uint8_t fifo[128]; - uint8_t fifo_read; - uint8_t fifo_write; + uint16_t output; + uint8_t fifo[128]; + uint8_t fifo_read; + uint8_t fifo_write; - uint8_t regs[4]; + uint8_t regs[4]; + uint8_t counter; + uint8_t nibble; + uint8_t nibble_write; + uint8_t adpcm_mul_index; } ymz263b_pcm; typedef struct { @@ -37,9 +42,10 @@ uint8_t midi_regs[2]; uint8_t address; uint8_t midi_transmit; + uint8_t pcm_counter; } ymz263b; -void ymz263b_init(ymz263b *ymz, uint32_t clock_divider); +void ymz263b_init(ymz263b *ymz, uint32_t master_clock, uint32_t clock_divider); void ymz263b_run(ymz263b *ymz, uint32_t target_cycle); uint32_t ymz263b_next_int(ymz263b *ymz); void ymz263b_address_write(ymz263b *ymz, uint8_t value);