diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index 7469f903a..c19e7d955 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -284,6 +284,8 @@ struct DivRegWrite { * - xx is the instance ID * - 0xffffxx03: set sample playback direction * - x is the instance ID + * - 0xffffxx04: switch sample bank + * - for use in VGM export * - 0xffffffff: reset */ unsigned int addr; diff --git a/src/engine/vgmOps.cpp b/src/engine/vgmOps.cpp index eb10521a7..bc94415b9 100644 --- a/src/engine/vgmOps.cpp +++ b/src/engine/vgmOps.cpp @@ -1094,6 +1094,7 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p DivDispatch* writeRF5C68[2]={NULL,NULL}; DivDispatch* writeMSM6295[2]={NULL,NULL}; DivDispatch* writeGA20[2]={NULL,NULL}; + DivDispatch* writeNES[2]={NULL,NULL}; for (int i=0; iwriteI(0); w->write(writeGA20[i]->getSampleMem(),writeGA20[i]->getSampleMemUsage()); } + // TODO + if (writeNES[i]!=NULL && writeNES[i]->getSampleMemUsage()>0) { + w->writeC(0x67); + w->writeC(0x66); + w->writeC(0x07); + w->writeI((writeNES[i]->getSampleMemUsage()+8)|(i*0x80000000)); + w->writeI(writeNES[i]->getSampleMemCapacity()); + w->writeI(0); + w->write(writeNES[i]->getSampleMem(),writeNES[i]->getSampleMemUsage()); + } } // TODO