void (*Fill)(int Count);
void (*RChange)(void);
void (*Kill)(void);
+
+ // from 0.98.15, currently unused
+ void (*NeoFill)(int32 *Wave, int Count);
+ void (*HiFill)(void);
+ void (*HiSync)(int32 ts);
} EXPSOUND;
extern EXPSOUND GameExpSound;
-extern int64 nesincsizeLL;
-extern uint8 PSG[];
+//extern int64 nesincsizeLL;
+extern int32 nesincsize;
+extern uint8 PSG[0x18];
extern uint32 PSG_base;
-extern int32 PCMIRQCount;
void SetSoundVariables(void);
-void PowerSound(void);
-void ResetSound(void);
extern uint8 decvolume[];
extern int vdis;
extern uint8 trimode;
extern uint8 tricoop;
-extern uint8 PCMBitIndex;
-extern uint32 PCMAddressIndex;
-extern int32 PCMSizeIndex;
-extern uint8 PCMBuffer;
extern uint8 sweepon[2];
extern int32 curfreq[2];
extern int32 fhcnt;
extern int32 fhinc;
-void GetSoundBuffer(int32 **W);
+uint8 FCEU_GetJoyJoy(void);
+
+int GetSoundBuffer(int16 **W);
int FlushEmulateSound(void);
-extern uint32 Wave[2048];
-extern int32 WaveFinal[2048];
-extern int16 WaveFinalMono[2048];
+extern uint32 Wave[2048+512];
+extern int16 WaveFinalMono[2048+512];
+extern int32 WaveHi[];
extern uint32 soundtsinc;
extern uint32 soundtsoffs;
void FrameSoundUpdate(void);
void FixOldSaveStateSFreq(void);
+void FCEUSND_Power(void);
+void FCEUSND_Reset(void);
+void FCEUSND_SaveState(void);
+void FCEUSND_LoadState(int version);
+
+void FCEU_SoundCPUHook(int cycles48);
+DECLFW(Write_IRQFM);