VGM export: fix noise in Neo Geo
This commit is contained in:
parent
066f0f074f
commit
ea796c2d6b
|
@ -70,7 +70,8 @@ void DivPlatformYM2610::tick() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (chan[i].std.hadDuty) {
|
if (chan[i].std.hadDuty) {
|
||||||
rWrite(0x06,31-chan[i].std.duty);
|
ayNoiseFreq=31-chan[i].std.duty;
|
||||||
|
rWrite(0x06,ayNoiseFreq);
|
||||||
}
|
}
|
||||||
if (chan[i].std.hadWave) {
|
if (chan[i].std.hadWave) {
|
||||||
chan[i].psgMode=(chan[i].std.wave+1)&7;
|
chan[i].psgMode=(chan[i].std.wave+1)&7;
|
||||||
|
@ -477,7 +478,8 @@ int DivPlatformYM2610::dispatch(DivCommand c) {
|
||||||
break;
|
break;
|
||||||
case DIV_CMD_STD_NOISE_FREQ:
|
case DIV_CMD_STD_NOISE_FREQ:
|
||||||
if (c.chan<4 || c.chan>6) break;
|
if (c.chan<4 || c.chan>6) break;
|
||||||
rWrite(0x06,31-c.value);
|
ayNoiseFreq=31-c.value;
|
||||||
|
rWrite(0x06,ayNoiseFreq);
|
||||||
break;
|
break;
|
||||||
case DIV_CMD_AY_ENVELOPE_SET:
|
case DIV_CMD_AY_ENVELOPE_SET:
|
||||||
if (c.chan<4 || c.chan>6) break;
|
if (c.chan<4 || c.chan>6) break;
|
||||||
|
@ -600,11 +602,15 @@ void DivPlatformYM2610::reset() {
|
||||||
ayEnvMode=0;
|
ayEnvMode=0;
|
||||||
ayEnvSlide=0;
|
ayEnvSlide=0;
|
||||||
ayEnvSlideLow=0;
|
ayEnvSlideLow=0;
|
||||||
|
ayNoiseFreq=0;
|
||||||
|
|
||||||
delay=0;
|
delay=0;
|
||||||
|
|
||||||
extMode=false;
|
extMode=false;
|
||||||
|
|
||||||
|
// AY noise
|
||||||
|
immWrite(0x06,ayNoiseFreq);
|
||||||
|
|
||||||
// LFO
|
// LFO
|
||||||
immWrite(0x22,0x08);
|
immWrite(0x22,0x08);
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ class DivPlatformYM2610: public DivDispatch {
|
||||||
int dacRate;
|
int dacRate;
|
||||||
int dacPos;
|
int dacPos;
|
||||||
int dacSample;
|
int dacSample;
|
||||||
|
int ayNoiseFreq;
|
||||||
unsigned char sampleBank;
|
unsigned char sampleBank;
|
||||||
|
|
||||||
int delay;
|
int delay;
|
||||||
|
|
Loading…
Reference in a new issue