VGM export: write resets and GD3 tag

may be non-standard compliant (yet)
also it crashes foobar2000 for some reason but this will be fixed
This commit is contained in:
tildearrow 2022-01-25 18:46:27 -05:00
parent c7ee0ce642
commit 8bcab6e139
17 changed files with 388 additions and 6 deletions

View file

@ -556,6 +556,9 @@ void DivPlatformArcade::reset() {
memset(&fm,0,sizeof(opm_t));
OPM_Reset(&fm);
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
for (int i=0; i<13; i++) {
chan[i]=DivPlatformArcade::Channel();
chan[i].vol=0x7f;

View file

@ -297,6 +297,9 @@ void DivPlatformAY8910::reset() {
chan[i]=DivPlatformAY8910::Channel();
chan[i].vol=0x0f;
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
for (int i=0; i<16; i++) {
oldWrites[i]=-1;

View file

@ -339,6 +339,9 @@ void DivPlatformAY8930::reset() {
ayEnvSlide[i]=0;
ayEnvSlideLow[i]=0;
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
for (int i=0; i<32; i++) {
oldWrites[i]=-1;

View file

@ -305,6 +305,9 @@ void DivPlatformGB::reset() {
for (int i=0; i<4; i++) {
chan[i]=DivPlatformGB::Channel();
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
memset(gb,0,sizeof(GB_gameboy_t));
gb->model=GB_MODEL_DMG_B;
GB_apu_init(gb);

View file

@ -538,6 +538,7 @@ void DivPlatformGenesis::forceIns() {
rWrite(0x2b,0x80);
}
immWrite(0x22,lfoValue);
psg.forceIns();
}
void DivPlatformGenesis::toggleRegisterDump(bool enable) {
@ -548,6 +549,9 @@ void DivPlatformGenesis::toggleRegisterDump(bool enable) {
void DivPlatformGenesis::reset() {
while (!writes.empty()) writes.pop();
OPN2_Reset(&fm);
if (dumpWrites) {
addWrite(0xffffffff,0);
}
for (int i=0; i<10; i++) {
chan[i]=DivPlatformGenesis::Channel();
chan[i].vol=0x7f;
@ -576,6 +580,7 @@ void DivPlatformGenesis::reset() {
// PSG
psg.reset();
psg.getRegisterWrites().clear();
psgClocks=0;
psgOut=0;
}

View file

@ -348,6 +348,9 @@ void DivPlatformNES::reset() {
for (int i=0; i<5; i++) {
chan[i]=DivPlatformNES::Channel();
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
dacPeriod=0;
dacPos=0;

View file

@ -345,6 +345,9 @@ void DivPlatformPCE::reset() {
for (int i=0; i<6; i++) {
chan[i]=DivPlatformPCE::Channel();
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
pce->Power(0);
lastPan=0xff;
memset(tempL,0,32*sizeof(int));

View file

@ -262,6 +262,9 @@ void DivPlatformSAA1099::reset() {
chan[i]=DivPlatformSAA1099::Channel();
chan[i].vol=0x0f;
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
lastBusy=60;
dacMode=0;

View file

@ -191,6 +191,9 @@ void DivPlatformSMS::reset() {
for (int i=0; i<4; i++) {
chan[i]=DivPlatformSMS::Channel();
}
if (dumpWrites) {
addWrite(0xffffffff,0);
}
sn->device_start();
snNoiseMode=3;
updateSNMode=false;

View file

@ -572,6 +572,9 @@ void DivPlatformYM2610::forceIns() {
void DivPlatformYM2610::reset() {
while (!writes.empty()) writes.pop();
if (dumpWrites) {
addWrite(0xffffffff,0);
}
fm->reset();
for (int i=0; i<13; i++) {
chan[i]=DivPlatformYM2610::Channel();