notaz.gp2x.de
/
fceu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
merge x6502 code FCEUX
[fceu.git]
/
sound.c
diff --git
a/sound.c
b/sound.c
index
f6e6a34
..
f0eeaf8
100644
(file)
--- a/
sound.c
+++ b/
sound.c
@@
-40,6
+40,7
@@
#include "sound.h"
uint32 Wave[2048+512];
#include "sound.h"
uint32 Wave[2048+512];
+int32 WaveHi[40000]; // unused
int16 WaveFinalMono[2048+512];
EXPSOUND GameExpSound={0,0,0,0,0,0};
int16 WaveFinalMono[2048+512];
EXPSOUND GameExpSound={0,0,0,0,0,0};
@@
-554,6
+555,31
@@
static void FASTAPASS(1) CalcRectAmp(int P)
*b=V;
}
*b=V;
}
+void FCEU_SoundCPUHook(int cycles48)
+{
+ fhcnt-=cycles48;
+ if(fhcnt<=0)
+ {
+ FrameSoundUpdate();
+ fhcnt+=fhinc;
+ }
+
+ if(PCMIRQCount>0)
+ {
+ PCMIRQCount-=cycles48;
+ if(PCMIRQCount<=0)
+ {
+ vdis=1;
+ if((PSG[0x10]&0x80) && !(PSG[0x10]&0x40))
+ {
+ extern uint8 SIRQStat;
+ SIRQStat|=0x80;
+ X6502_IRQBegin(FCEU_IQDPCM);
+ }
+ }
+ }
+}
+
static void RDoPCM(int32 end)
{
int32 V;
static void RDoPCM(int32 end)
{
int32 V;
@@
-877,6
+903,8
@@
static int32 flt_acc=0, flt_acc2=0;
static void FilterSound(uint32 *in, int16 *outMono, int count)
{
// static int min=0, max=0;
static void FilterSound(uint32 *in, int16 *outMono, int count)
{
// static int min=0, max=0;
+ int sh=2;
+ if (soundvol < 5) sh += 5 - soundvol;
for(;count;count--,in++,outMono++)
{
for(;count;count--,in++,outMono++)
{
@@
-888,7
+916,7
@@
static void FilterSound(uint32 *in, int16 *outMono, int count)
flt_acc2+= (int32) (((int64)((diff-flt_acc2)*lowp))>>16);
*in=0;
flt_acc2+= (int32) (((int64)((diff-flt_acc2)*lowp))>>16);
*in=0;
- *outMono = flt_acc2*7 >>
2; //
* 1.75
+ *outMono = flt_acc2*7 >>
sh; // * 7 >> 2 =
* 1.75
// if (acc2 < min) { printf("min: %i %04x\n", acc2, acc2); min = acc2; }
// if (acc2 > max) { printf("max: %i %04x\n", acc2, acc2); max = acc2; }
}
// if (acc2 < min) { printf("min: %i %04x\n", acc2, acc2); min = acc2; }
// if (acc2 > max) { printf("max: %i %04x\n", acc2, acc2); max = acc2; }
}