Mercurial > repos > blastem
comparison psg.h @ 1692:5dacaef602a7 segacd
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 05 Jan 2019 00:58:08 -0800 |
parents | 6ce36c3f250b |
children | 4c322abd9fa5 |
comparison
equal
deleted
inserted
replaced
1504:95b3a1a8b26c | 1692:5dacaef602a7 |
---|---|
6 #ifndef PSG_CONTEXT_H_ | 6 #ifndef PSG_CONTEXT_H_ |
7 #define PSG_CONTEXT_H_ | 7 #define PSG_CONTEXT_H_ |
8 | 8 |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include "serialize.h" | 10 #include "serialize.h" |
11 #include "render.h" | |
11 | 12 |
12 typedef struct { | 13 typedef struct { |
13 int16_t *audio_buffer; | 14 audio_source *audio; |
14 int16_t *back_buffer; | |
15 uint64_t buffer_fraction; | |
16 uint64_t buffer_inc; | |
17 uint32_t buffer_pos; | |
18 uint32_t clock_inc; | 15 uint32_t clock_inc; |
19 uint32_t cycles; | 16 uint32_t cycles; |
20 uint32_t sample_rate; | |
21 uint32_t samples_frame; | |
22 int32_t lowpass_alpha; | |
23 uint16_t lsfr; | 17 uint16_t lsfr; |
24 uint16_t counter_load[4]; | 18 uint16_t counter_load[4]; |
25 uint16_t counters[4]; | 19 uint16_t counters[4]; |
26 int16_t accum; | |
27 int16_t last_sample; | |
28 uint8_t volume[4]; | 20 uint8_t volume[4]; |
29 uint8_t output_state[4]; | 21 uint8_t output_state[4]; |
30 uint8_t noise_out; | 22 uint8_t noise_out; |
31 uint8_t noise_use_tone; | 23 uint8_t noise_use_tone; |
32 uint8_t noise_type; | 24 uint8_t noise_type; |
33 uint8_t latch; | 25 uint8_t latch; |
34 } psg_context; | 26 } psg_context; |
35 | 27 |
36 | 28 |
37 void psg_init(psg_context * context, uint32_t sample_rate, uint32_t master_clock, uint32_t clock_div, uint32_t samples_frame, uint32_t lowpass_cutoff); | 29 void psg_init(psg_context * context, uint32_t master_clock, uint32_t clock_div); |
38 void psg_free(psg_context *context); | 30 void psg_free(psg_context *context); |
39 void psg_adjust_master_clock(psg_context * context, uint32_t master_clock); | 31 void psg_adjust_master_clock(psg_context * context, uint32_t master_clock); |
40 void psg_write(psg_context * context, uint8_t value); | 32 void psg_write(psg_context * context, uint8_t value); |
41 void psg_run(psg_context * context, uint32_t cycles); | 33 void psg_run(psg_context * context, uint32_t cycles); |
42 void psg_serialize(psg_context *context, serialize_buffer *buf); | 34 void psg_serialize(psg_context *context, serialize_buffer *buf); |