release r2, update credits
[fceu.git] / sound.h
diff --git a/sound.h b/sound.h
index 53c397b..7a21d41 100644 (file)
--- a/sound.h
+++ b/sound.h
@@ -27,18 +27,21 @@ typedef struct {
           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;
@@ -47,10 +50,6 @@ extern uint16 nreg;
 
 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];
@@ -62,12 +61,26 @@ extern uint8 fcnt;
 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 uint32 Wave[2048+512];
+extern int16 WaveFinalMono[2048+512];
+extern int32 WaveHi[];
 extern uint32 soundtsinc;
 
+extern uint32 soundtsoffs;
+#define SOUNDTS (timestamp + soundtsoffs)
+
 void SetNESSoundMap(void);
 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);