comparison psg.h @ 354:15dd6418fe67

Initial PSG support. Mostly works, noise channel is borked though.
author Mike Pavone <pavone@retrodev.com>
date Thu, 23 May 2013 23:42:42 -0700
parents
children 62177cc39049
comparison
equal deleted inserted replaced
353:a60e527cd21f 354:15dd6418fe67
1 #ifndef PSG_CONTEXT_H_
2 #define PSG_CONTEXT_H_
3
4 #include <stdint.h>
5
6 typedef struct {
7 int16_t *audio_buffer;
8 int16_t *back_buffer;
9 double buffer_fraction;
10 double buffer_inc;
11 uint32_t buffer_pos;
12 uint32_t back_pos;
13 uint32_t cycles;
14 uint32_t samples_frame;
15 uint16_t lsfr;
16 uint16_t counter_load[4];
17 uint16_t counters[4];
18 uint8_t volume[4];
19 uint8_t output_state[4];
20 uint8_t noise_out;
21 uint8_t noise_use_tone;
22 uint8_t noise_type;
23 uint8_t latch;
24 } psg_context;
25
26
27 void psg_init(psg_context * context, uint32_t sample_rate, uint32_t clock_rate, uint32_t samples_frame);
28 void psg_write(psg_context * context, uint8_t value);
29 void psg_run(psg_context * context, uint32_t cycles);
30
31 #endif //PSG_CONTEXT_H_
32