asm cpu works, added sync()s
[fceu.git] / sound.h
1 /* FCE Ultra - NES/Famicom Emulator
2  *
3  * Copyright notice for this file:
4  *  Copyright (C) 2002 Ben Parnell
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #define OVERSAMPLESHIFT 4
22 #define OVERSAMPLE *16
23 #define SND_BUFSIZE 256
24
25
26 typedef struct {
27            void (*Fill)(int Count);
28            void (*RChange)(void);
29            void (*Kill)(void);
30 } EXPSOUND;
31
32 extern EXPSOUND GameExpSound;
33
34 extern int64 nesincsizeLL;
35 extern uint8 PSG[];
36 extern uint32 PSG_base;
37 extern int32 PCMIRQCount;
38
39 void SetSoundVariables(void);
40 void PowerSound(void);
41 void ResetSound(void);
42 extern uint8 decvolume[];
43
44 extern int vdis;
45 extern uint8 sqnon;
46 extern uint16 nreg;
47
48 extern uint8 trimode;
49 extern uint8 tricoop;
50 extern uint8 PCMBitIndex;
51 extern uint32 PCMAddressIndex;
52 extern int32 PCMSizeIndex;
53 extern uint8 PCMBuffer;
54
55 extern uint8 sweepon[2];
56 extern int32 curfreq[2];
57
58 extern uint8 SweepCount[2];
59 extern uint8 DecCountTo1[3];
60
61 extern uint8 fcnt;
62 extern int32 fhcnt;
63 extern int32 fhinc;
64
65 void GetSoundBuffer(int32 **W);
66 int FlushEmulateSound(void);
67 extern uint32 Wave[2048];
68 extern int32 WaveFinal[2048];
69 extern int16 WaveFinalMono[2048];
70 extern uint32 soundtsinc;
71
72 void SetNESSoundMap(void);
73 void FrameSoundUpdate(void);
74 void FixOldSaveStateSFreq(void);