2008-08-07 14:26:07 +02:00
|
|
|
/*
|
|
|
|
SN76489 emulation
|
|
|
|
by Maxim in 2001 and 2002
|
|
|
|
converted from my original Delphi implementation
|
|
|
|
|
|
|
|
I'm a C newbie so I'm sure there are loads of stupid things
|
|
|
|
in here which I'll come back to some day and redo
|
|
|
|
|
|
|
|
Includes:
|
|
|
|
- Super-high quality tone channel "oversampling" by calculating fractional positions on transitions
|
|
|
|
- Noise output pattern reverse engineered from actual SMS output
|
|
|
|
- Volume levels taken from actual SMS output
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _SN76489_H_
|
|
|
|
#define _SN76489_H_
|
|
|
|
|
|
|
|
/* Function prototypes */
|
2009-05-27 16:07:14 +02:00
|
|
|
extern void SN76489_Init(int PSGClockValue, int SamplingRate);
|
|
|
|
extern void SN76489_Reset(void);
|
|
|
|
extern void SN76489_Shutdown(void);
|
|
|
|
extern void SN76489_SetContext(uint8 *data);
|
|
|
|
extern void SN76489_GetContext(uint8 *data);
|
|
|
|
extern uint8 *SN76489_GetContextPtr(void);
|
2008-08-07 14:26:07 +02:00
|
|
|
extern int SN76489_GetContextSize(void);
|
2009-05-27 16:07:14 +02:00
|
|
|
extern void SN76489_Write(int data);
|
|
|
|
extern void SN76489_Update(INT16 *buffer, int length);
|
|
|
|
extern void SN76489_BoostNoise(int boost);
|
2009-08-05 09:02:09 +02:00
|
|
|
extern void SN76489_Config(int mute, int volume, int feedback, int sr_width, int boost_noise);
|
2008-08-07 14:26:07 +02:00
|
|
|
|
|
|
|
#endif /* _SN76489_H_ */
|
|
|
|
|