mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2025-01-15 04:39:07 +01:00
reverted back to signed long (32-bits) FM samples [fixed]
This commit is contained in:
parent
2dc6874e33
commit
2917f63aa2
@ -10,7 +10,7 @@
|
|||||||
#define WRITE_OFFSET (WIDTH * STEREO) - STEREO
|
#define WRITE_OFFSET (WIDTH * STEREO) - STEREO
|
||||||
#define GAIN 1.0
|
#define GAIN 1.0
|
||||||
|
|
||||||
typedef short int sample_t;
|
typedef signed long int sample_t;
|
||||||
|
|
||||||
extern int Fir_Resampler_initialize( int new_size );
|
extern int Fir_Resampler_initialize( int new_size );
|
||||||
extern void Fir_Resampler_shutdown( void );
|
extern void Fir_Resampler_shutdown( void );
|
||||||
|
@ -54,7 +54,7 @@ static inline void fm_update(unsigned int cycles)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* select input sample buffer */
|
/* select input sample buffer */
|
||||||
int16 *buffer = Fir_Resampler_buffer();
|
int32 *buffer = Fir_Resampler_buffer();
|
||||||
if (buffer)
|
if (buffer)
|
||||||
{
|
{
|
||||||
Fir_Resampler_write(cnt << 1);
|
Fir_Resampler_write(cnt << 1);
|
||||||
|
@ -2028,7 +2028,7 @@ unsigned int YM2612Read(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Generate 16 bits samples for ym2612 */
|
/* Generate 16 bits samples for ym2612 */
|
||||||
void YM2612Update(short int *buffer, int length)
|
void YM2612Update(INT32 *buffer, int length)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
long int lt,rt;
|
long int lt,rt;
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
extern int YM2612Init(float clock, int rate);
|
extern int YM2612Init(float clock, int rate);
|
||||||
extern int YM2612ResetChip(void);
|
extern int YM2612ResetChip(void);
|
||||||
extern void YM2612Update(short int *buffer, int length);
|
extern void YM2612Update(INT32 *buffer, int length);
|
||||||
extern void YM2612Write(unsigned int a, unsigned int v);
|
extern void YM2612Write(unsigned int a, unsigned int v);
|
||||||
extern unsigned int YM2612Read(void);
|
extern unsigned int YM2612Read(void);
|
||||||
extern unsigned char *YM2612GetContextPtr(void);
|
extern unsigned char *YM2612GetContextPtr(void);
|
||||||
|
@ -64,7 +64,7 @@ int audio_update (void)
|
|||||||
uint32 factora = (config.lp_range << 16) / 100;
|
uint32 factora = (config.lp_range << 16) / 100;
|
||||||
uint32 factorb = 0x10000 - factora;
|
uint32 factorb = 0x10000 - factora;
|
||||||
|
|
||||||
int16 *fm = snd.fm.buffer;
|
int32 *fm = snd.fm.buffer;
|
||||||
int16 *psg = snd.psg.buffer;
|
int16 *psg = snd.psg.buffer;
|
||||||
|
|
||||||
#ifdef NGC
|
#ifdef NGC
|
||||||
@ -154,7 +154,7 @@ int audio_update (void)
|
|||||||
rrp = rr;
|
rrp = rr;
|
||||||
|
|
||||||
/* keep remaining samples for next frame */
|
/* keep remaining samples for next frame */
|
||||||
memcpy(snd.fm.buffer, fm, (snd.fm.pos - snd.fm.buffer) << 1);
|
memcpy(snd.fm.buffer, fm, (snd.fm.pos - snd.fm.buffer) << 2);
|
||||||
memcpy(snd.psg.buffer, psg, (snd.psg.pos - snd.psg.buffer) << 1);
|
memcpy(snd.psg.buffer, psg, (snd.psg.pos - snd.psg.buffer) << 1);
|
||||||
|
|
||||||
#ifdef LOGSOUND
|
#ifdef LOGSOUND
|
||||||
@ -191,12 +191,20 @@ int audio_init (int samplerate, float framerate)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* SN76489 stream buffers */
|
/* SN76489 stream buffers */
|
||||||
|
#ifndef NGC
|
||||||
snd.psg.buffer = (int16 *) malloc(snd.buffer_size * sizeof(int16));
|
snd.psg.buffer = (int16 *) malloc(snd.buffer_size * sizeof(int16));
|
||||||
|
#else
|
||||||
|
snd.psg.buffer = (int16 *) memalign(32, snd.buffer_size * sizeof(int16));
|
||||||
|
#endif
|
||||||
if (!snd.psg.buffer)
|
if (!snd.psg.buffer)
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
/* YM2612 stream buffers */
|
/* YM2612 stream buffers */
|
||||||
snd.fm.buffer = (int32 *) malloc(snd.buffer_size * sizeof(int16) * 2);
|
#ifndef NGC
|
||||||
|
snd.fm.buffer = (int32 *) malloc(snd.buffer_size * sizeof(int32) * 2);
|
||||||
|
#else
|
||||||
|
snd.fm.buffer = (int32 *) memalign(32,snd.buffer_size * sizeof(int32) * 2);
|
||||||
|
#endif
|
||||||
if (!snd.fm.buffer)
|
if (!snd.fm.buffer)
|
||||||
return (-1);
|
return (-1);
|
||||||
|
|
||||||
@ -241,7 +249,7 @@ void audio_reset(void)
|
|||||||
if (snd.psg.buffer)
|
if (snd.psg.buffer)
|
||||||
memset (snd.psg.buffer, 0, snd.buffer_size * sizeof(int16));
|
memset (snd.psg.buffer, 0, snd.buffer_size * sizeof(int16));
|
||||||
if (snd.fm.buffer)
|
if (snd.fm.buffer)
|
||||||
memset (snd.fm.buffer, 0, snd.buffer_size * sizeof(int16) * 2);
|
memset (snd.fm.buffer, 0, snd.buffer_size * sizeof(int32) * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************
|
/****************************************************************
|
||||||
|
@ -61,8 +61,8 @@ typedef struct
|
|||||||
int16 *buffer[2]; /* Signed 16-bit stereo sound data */
|
int16 *buffer[2]; /* Signed 16-bit stereo sound data */
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int16 *pos;
|
int32 *pos;
|
||||||
int16 *buffer;
|
int32 *buffer;
|
||||||
} fm;
|
} fm;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user