summaryrefslogtreecommitdiff
path: root/psg.h
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2013-10-01 23:51:16 -0700
committerMike Pavone <pavone@retrodev.com>2013-10-01 23:51:16 -0700
commitc4e2e0114cdc1871e959c67d0f15be99bef3459c (patch)
tree7d6216b4bba7c28c73d762f011c28239caa21253 /psg.h
parent5830e5828c4680aafe27210935dd3fed9ece0448 (diff)
Implement turbo/slow motion feature that overclocks or underclocks the entire system at the push of a button
Diffstat (limited to 'psg.h')
-rw-r--r--psg.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/psg.h b/psg.h
index 503bac2..4cd4552 100644
--- a/psg.h
+++ b/psg.h
@@ -1,6 +1,6 @@
/*
Copyright 2013 Michael Pavone
- This file is part of BlastEm.
+ This file is part of BlastEm.
BlastEm is free software distributed under the terms of the GNU General Public License version 3 or greater. See COPYING for full license text.
*/
#ifndef PSG_CONTEXT_H_
@@ -11,11 +11,12 @@
typedef struct {
int16_t *audio_buffer;
int16_t *back_buffer;
- double buffer_fraction;
- double buffer_inc;
+ uint64_t buffer_fraction;
+ uint64_t buffer_inc;
uint32_t buffer_pos;
uint32_t clock_inc;
uint32_t cycles;
+ uint32_t sample_rate;
uint32_t samples_frame;
uint16_t lsfr;
uint16_t counter_load[4];
@@ -30,6 +31,7 @@ typedef struct {
void psg_init(psg_context * context, uint32_t sample_rate, uint32_t master_clock, uint32_t clock_div, uint32_t samples_frame);
+void psg_adjust_master_clock(psg_context * context, uint32_t master_clock);
void psg_write(psg_context * context, uint8_t value);
void psg_run(psg_context * context, uint32_t cycles);