From cf38680072fc18a6a216abf9e8fff495f6c34e17 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 26 Nov 2022 23:50:20 -0500 Subject: [PATCH] chip sample selection, part 4 partially works --- src/engine/dispatch.h | 3 ++- src/engine/engine.cpp | 2 +- src/engine/platform/abstract.cpp | 2 +- src/engine/platform/msm6258.cpp | 4 +++- src/engine/platform/msm6258.h | 2 +- src/engine/platform/msm6295.cpp | 7 ++++++- src/engine/platform/msm6295.h | 2 +- src/engine/platform/nes.cpp | 7 ++++++- src/engine/platform/nes.h | 2 +- src/engine/platform/opl.cpp | 7 ++++++- src/engine/platform/opl.h | 2 +- src/engine/platform/qsound.cpp | 7 ++++++- src/engine/platform/qsound.h | 2 +- src/engine/platform/rf5c68.cpp | 7 ++++++- src/engine/platform/rf5c68.h | 2 +- src/engine/platform/segapcm.cpp | 2 +- src/engine/platform/segapcm.h | 2 +- src/engine/platform/snes.cpp | 7 ++++++- src/engine/platform/snes.h | 2 +- src/engine/platform/su.cpp | 11 ++++++++--- src/engine/platform/su.h | 4 ++-- src/engine/platform/x1_010.cpp | 7 ++++++- src/engine/platform/x1_010.h | 2 +- src/engine/platform/ym2608.cpp | 7 ++++++- src/engine/platform/ym2608.h | 2 +- src/engine/platform/ym2610shared.h | 12 +++++++++++- src/engine/platform/ymz280b.cpp | 7 ++++++- src/engine/platform/ymz280b.h | 2 +- 28 files changed, 94 insertions(+), 31 deletions(-) diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index 83c3f7ba..4ea92e10 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -557,8 +557,9 @@ class DivDispatch { /** * Render samples into sample memory. + * @param sysID the chip's index in the chip list. */ - virtual void renderSamples(); + virtual void renderSamples(int sysID); /** * initialize this DivDispatch. diff --git a/src/engine/engine.cpp b/src/engine/engine.cpp index d9e23601..da571eaa 100644 --- a/src/engine/engine.cpp +++ b/src/engine/engine.cpp @@ -1315,7 +1315,7 @@ void DivEngine::renderSamples() { // step 2: render samples to dispatch for (int i=0; irenderSamples(); + disCont[i].dispatch->renderSamples(i); } } } diff --git a/src/engine/platform/abstract.cpp b/src/engine/platform/abstract.cpp index cc7663b8..33dd3c17 100644 --- a/src/engine/platform/abstract.cpp +++ b/src/engine/platform/abstract.cpp @@ -165,7 +165,7 @@ bool DivDispatch::isSampleLoaded(int index, int sample) { return false; } -void DivDispatch::renderSamples() { +void DivDispatch::renderSamples(int sysID) { } diff --git a/src/engine/platform/msm6258.cpp b/src/engine/platform/msm6258.cpp index 0a84a2d0..7111c84c 100644 --- a/src/engine/platform/msm6258.cpp +++ b/src/engine/platform/msm6258.cpp @@ -368,7 +368,7 @@ bool DivPlatformMSM6258::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformMSM6258::renderSamples() { +void DivPlatformMSM6258::renderSamples(int sysID) { memset(adpcmMem,0,getSampleMemCapacity(0)); memset(sampleLoaded,0,256*sizeof(bool)); @@ -378,6 +378,8 @@ void DivPlatformMSM6258::renderSamples() { if (sampleCount>128) sampleCount=128; for (int i=0; isong.sample[i]; + if (!s->renderOn[0][sysID]) continue; + int paddedLen=s->lengthVOX; if (memPos>=getSampleMemCapacity(0)) { logW("out of ADPCM memory for sample %d!",i); diff --git a/src/engine/platform/msm6258.h b/src/engine/platform/msm6258.h index d4d10cf0..9a5cd7d7 100644 --- a/src/engine/platform/msm6258.h +++ b/src/engine/platform/msm6258.h @@ -115,7 +115,7 @@ class DivPlatformMSM6258: public DivDispatch { size_t getSampleMemCapacity(int index); size_t getSampleMemUsage(int index); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); diff --git a/src/engine/platform/msm6295.cpp b/src/engine/platform/msm6295.cpp index 67bf8dc5..71b8d7cf 100644 --- a/src/engine/platform/msm6295.cpp +++ b/src/engine/platform/msm6295.cpp @@ -341,7 +341,7 @@ bool DivPlatformMSM6295::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformMSM6295::renderSamples() { +void DivPlatformMSM6295::renderSamples(int sysID) { unsigned int sampleOffVOX[256]; memset(adpcmMem,0,getSampleMemCapacity(0)); @@ -354,6 +354,11 @@ void DivPlatformMSM6295::renderSamples() { if (sampleCount>128) sampleCount=128; for (int i=0; isong.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOffVOX[i]=0; + continue; + } + int paddedLen=s->lengthVOX; if (memPos>=getSampleMemCapacity(0)) { logW("out of ADPCM memory for sample %d!",i); diff --git a/src/engine/platform/msm6295.h b/src/engine/platform/msm6295.h index c9aecbb2..9d47824a 100644 --- a/src/engine/platform/msm6295.h +++ b/src/engine/platform/msm6295.h @@ -103,7 +103,7 @@ class DivPlatformMSM6295: public DivDispatch, public vgsound_emu_mem_intf { virtual size_t getSampleMemCapacity(int index) override; virtual size_t getSampleMemUsage(int index) override; virtual bool isSampleLoaded(int index, int sample) override; - virtual void renderSamples() override; + virtual void renderSamples(int chipID) override; virtual int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags) override; virtual void quit() override; diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index cafc16d8..c971d4bf 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -727,13 +727,18 @@ bool DivPlatformNES::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformNES::renderSamples() { +void DivPlatformNES::renderSamples(int sysID) { memset(dpcmMem,0,getSampleMemCapacity(0));\ memset(sampleLoaded,0,256*sizeof(bool)); size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOffDPCM[i]=0; + continue; + } + unsigned int paddedLen=(s->lengthDPCM+63)&(~0x3f); logV("%d padded length: %d",i,paddedLen); if ((memPos&(~0x3fff))!=((memPos+paddedLen)&(~0x3fff))) { diff --git a/src/engine/platform/nes.h b/src/engine/platform/nes.h index d3965a1e..4dbfcec3 100644 --- a/src/engine/platform/nes.h +++ b/src/engine/platform/nes.h @@ -117,7 +117,7 @@ class DivPlatformNES: public DivDispatch { size_t getSampleMemCapacity(int index); size_t getSampleMemUsage(int index); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); ~DivPlatformNES(); diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index 01cadfa7..5353fa6c 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -1763,7 +1763,7 @@ bool DivPlatformOPL::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformOPL::renderSamples() { +void DivPlatformOPL::renderSamples(int sysID) { if (adpcmChan<0) return; memset(adpcmBMem,0,getSampleMemCapacity(0)); memset(sampleOffB,0,256*sizeof(unsigned int)); @@ -1772,6 +1772,11 @@ void DivPlatformOPL::renderSamples() { size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOffB[i]=0; + continue; + } + int paddedLen=(s->lengthB+255)&(~0xff); if ((memPos&0xf00000)!=((memPos+paddedLen)&0xf00000)) { memPos=(memPos+0xfffff)&0xf00000; diff --git a/src/engine/platform/opl.h b/src/engine/platform/opl.h index 3eb1da77..b8dee394 100644 --- a/src/engine/platform/opl.h +++ b/src/engine/platform/opl.h @@ -154,7 +154,7 @@ class DivPlatformOPL: public DivDispatch { size_t getSampleMemCapacity(int index); size_t getSampleMemUsage(int index); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); ~DivPlatformOPL(); diff --git a/src/engine/platform/qsound.cpp b/src/engine/platform/qsound.cpp index afede642..fce9f783 100644 --- a/src/engine/platform/qsound.cpp +++ b/src/engine/platform/qsound.cpp @@ -651,13 +651,18 @@ bool DivPlatformQSound::isSampleLoaded(int index, int sample) { } // TODO: ADPCM... come on... -void DivPlatformQSound::renderSamples() { +void DivPlatformQSound::renderSamples(int sysID) { memset(sampleMem,0,getSampleMemCapacity()); memset(sampleLoaded,0,256*sizeof(bool)); size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + offPCM[i]=0; + continue; + } + int length=s->length8; if (length>65536-16) { length=65536-16; diff --git a/src/engine/platform/qsound.h b/src/engine/platform/qsound.h index d092d4d9..1f911a83 100644 --- a/src/engine/platform/qsound.h +++ b/src/engine/platform/qsound.h @@ -105,7 +105,7 @@ class DivPlatformQSound: public DivDispatch { size_t getSampleMemCapacity(int index = 0); size_t getSampleMemUsage(int index = 0); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); }; diff --git a/src/engine/platform/rf5c68.cpp b/src/engine/platform/rf5c68.cpp index cde6127d..e33cfbf3 100644 --- a/src/engine/platform/rf5c68.cpp +++ b/src/engine/platform/rf5c68.cpp @@ -391,7 +391,7 @@ bool DivPlatformRF5C68::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformRF5C68::renderSamples() { +void DivPlatformRF5C68::renderSamples(int sysID) { memset(sampleMem,0,getSampleMemCapacity()); memset(sampleOffRFC,0,256*sizeof(unsigned int)); memset(sampleLoaded,0,256*sizeof(bool)); @@ -399,6 +399,11 @@ void DivPlatformRF5C68::renderSamples() { size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOffRFC[i]=0; + continue; + } + int length=s->getLoopEndPosition(DIV_SAMPLE_DEPTH_8BIT); int actualLength=MIN((int)(getSampleMemCapacity()-memPos)-31,length); if (actualLength>0) { diff --git a/src/engine/platform/rf5c68.h b/src/engine/platform/rf5c68.h index 84cb6867..5af36c03 100644 --- a/src/engine/platform/rf5c68.h +++ b/src/engine/platform/rf5c68.h @@ -101,7 +101,7 @@ class DivPlatformRF5C68: public DivDispatch { size_t getSampleMemCapacity(int index = 0); size_t getSampleMemUsage(int index = 0); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); private: diff --git a/src/engine/platform/segapcm.cpp b/src/engine/platform/segapcm.cpp index fc389a81..860f9926 100644 --- a/src/engine/platform/segapcm.cpp +++ b/src/engine/platform/segapcm.cpp @@ -451,7 +451,7 @@ void DivPlatformSegaPCM::reset() { } } - void DivPlatformSegaPCM::renderSamples() { + void DivPlatformSegaPCM::renderSamples(int sysID) { size_t memPos=0; for (int i=0; isong.sampleLen; i++) { diff --git a/src/engine/platform/segapcm.h b/src/engine/platform/segapcm.h index 222f4bd9..2ed15eae 100644 --- a/src/engine/platform/segapcm.h +++ b/src/engine/platform/segapcm.h @@ -110,7 +110,7 @@ class DivPlatformSegaPCM: public DivDispatch { void tick(bool sysTick=true); void muteChannel(int ch, bool mute); void notifyInsChange(int ins); - void renderSamples(); + void renderSamples(int chipID); void setFlags(const DivConfig& flags); bool isStereo(); void poke(unsigned int addr, unsigned short val); diff --git a/src/engine/platform/snes.cpp b/src/engine/platform/snes.cpp index cc37dfc5..2dd64de3 100644 --- a/src/engine/platform/snes.cpp +++ b/src/engine/platform/snes.cpp @@ -803,7 +803,7 @@ bool DivPlatformSNES::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformSNES::renderSamples() { +void DivPlatformSNES::renderSamples(int sysID) { memset(copyOfSampleMem,0,getSampleMemCapacity()); memset(sampleOff,0,256*sizeof(unsigned int)); memset(sampleLoaded,0,256*sizeof(bool)); @@ -812,6 +812,11 @@ void DivPlatformSNES::renderSamples() { size_t memPos=sampleTableBase+8*4+8*9*16; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOff[i]=0; + continue; + } + int length=s->lengthBRR; int actualLength=MIN((int)(getSampleMemCapacity()-memPos)/9*9,length); if (actualLength>0) { diff --git a/src/engine/platform/snes.h b/src/engine/platform/snes.h index ad3b0ab2..ed8bfbf3 100644 --- a/src/engine/platform/snes.h +++ b/src/engine/platform/snes.h @@ -138,7 +138,7 @@ class DivPlatformSNES: public DivDispatch { size_t getSampleMemCapacity(int index = 0); size_t getSampleMemUsage(int index = 0); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); private: diff --git a/src/engine/platform/su.cpp b/src/engine/platform/su.cpp index c1330cd2..116e0cde 100644 --- a/src/engine/platform/su.cpp +++ b/src/engine/platform/su.cpp @@ -524,7 +524,7 @@ void DivPlatformSoundUnit::setFlags(const DivConfig& flags) { sampleMemSize=flags.getInt("sampleMemSize",0); su->Init(sampleMemSize?65536:8192,flags.getBool("pdm",false)); - renderSamples(); + renderSamples(sysIDCache); } void DivPlatformSoundUnit::poke(unsigned int addr, unsigned short val) { @@ -553,7 +553,7 @@ bool DivPlatformSoundUnit::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformSoundUnit::renderSamples() { +void DivPlatformSoundUnit::renderSamples(int sysID) { memset(su->pcm,0,getSampleMemCapacity(0)); memset(sampleOffSU,0,256*sizeof(unsigned int)); memset(sampleLoaded,0,256*sizeof(bool)); @@ -562,6 +562,11 @@ void DivPlatformSoundUnit::renderSamples() { for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; if (s->data8==NULL) continue; + if (!s->renderOn[0][sysID]) { + sampleOffSU[i]=0; + continue; + } + int paddedLen=s->length8; if (memPos>=getSampleMemCapacity(0)) { logW("out of PCM memory for sample %d!",i); @@ -578,7 +583,7 @@ void DivPlatformSoundUnit::renderSamples() { memPos+=paddedLen; } sampleMemLen=memPos; - + sysIDCache=sysID; } int DivPlatformSoundUnit::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) { diff --git a/src/engine/platform/su.h b/src/engine/platform/su.h index e7eff8d4..bacdbc01 100644 --- a/src/engine/platform/su.h +++ b/src/engine/platform/su.h @@ -104,7 +104,7 @@ class DivPlatformSoundUnit: public DivDispatch { unsigned int sampleOffSU[256]; bool sampleLoaded[256]; - int cycles, curChan, delay; + int cycles, curChan, delay, sysIDCache; short tempL; short tempR; unsigned char sampleBank, lfoMode, lfoSpeed; @@ -140,7 +140,7 @@ class DivPlatformSoundUnit: public DivDispatch { size_t getSampleMemCapacity(int index); size_t getSampleMemUsage(int index); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); ~DivPlatformSoundUnit(); diff --git a/src/engine/platform/x1_010.cpp b/src/engine/platform/x1_010.cpp index ea4177a9..683b36a6 100644 --- a/src/engine/platform/x1_010.cpp +++ b/src/engine/platform/x1_010.cpp @@ -955,7 +955,7 @@ bool DivPlatformX1_010::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformX1_010::renderSamples() { +void DivPlatformX1_010::renderSamples(int sysID) { memset(sampleMem,0,getSampleMemCapacity()); memset(sampleOffX1,0,256*sizeof(unsigned int)); memset(sampleLoaded,0,256*sizeof(bool)); @@ -963,6 +963,11 @@ void DivPlatformX1_010::renderSamples() { size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOffX1[i]=0; + continue; + } + int paddedLen=(s->length8+4095)&(~0xfff); if (isBanked) { // fit sample bank size to 128KB for Seta 2 external bankswitching logic (not emulated yet!) diff --git a/src/engine/platform/x1_010.h b/src/engine/platform/x1_010.h index e54a3e89..d588d944 100644 --- a/src/engine/platform/x1_010.h +++ b/src/engine/platform/x1_010.h @@ -148,7 +148,7 @@ class DivPlatformX1_010: public DivDispatch, public vgsound_emu_mem_intf { size_t getSampleMemCapacity(int index = 0); size_t getSampleMemUsage(int index = 0); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); const char** getRegisterSheet(); void setBanked(bool banked); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); diff --git a/src/engine/platform/ym2608.cpp b/src/engine/platform/ym2608.cpp index 09eb8ac3..63c84ad5 100644 --- a/src/engine/platform/ym2608.cpp +++ b/src/engine/platform/ym2608.cpp @@ -1342,7 +1342,7 @@ bool DivPlatformYM2608::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformYM2608::renderSamples() { +void DivPlatformYM2608::renderSamples(int sysID) { memset(adpcmBMem,0,getSampleMemCapacity(0)); memset(sampleOffB,0,256*sizeof(unsigned int)); memset(sampleLoaded,0,256*sizeof(bool)); @@ -1350,6 +1350,11 @@ void DivPlatformYM2608::renderSamples() { size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOffB[i]=0; + continue; + } + int paddedLen=(s->lengthB+255)&(~0xff); if ((memPos&0xf00000)!=((memPos+paddedLen)&0xf00000)) { memPos=(memPos+0xfffff)&0xf00000; diff --git a/src/engine/platform/ym2608.h b/src/engine/platform/ym2608.h index 81a6844d..ef63fe63 100644 --- a/src/engine/platform/ym2608.h +++ b/src/engine/platform/ym2608.h @@ -139,7 +139,7 @@ class DivPlatformYM2608: public DivPlatformOPN { size_t getSampleMemCapacity(int index); size_t getSampleMemUsage(int index); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); void setFlags(const DivConfig& flags); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit(); diff --git a/src/engine/platform/ym2610shared.h b/src/engine/platform/ym2610shared.h index b9f939b4..065eb5f3 100644 --- a/src/engine/platform/ym2610shared.h +++ b/src/engine/platform/ym2610shared.h @@ -220,7 +220,7 @@ template class DivPlatformYM2610Base: public DivPlatformOPN { return sampleLoaded[index][sample]; } - void renderSamples() { + void renderSamples(int sysID) { memset(adpcmAMem,0,getSampleMemCapacity(0)); memset(sampleOffA,0,256*sizeof(unsigned int)); memset(sampleOffB,0,256*sizeof(unsigned int)); @@ -229,6 +229,11 @@ template class DivPlatformYM2610Base: public DivPlatformOPN { size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOffA[i]=0; + continue; + } + int paddedLen=(s->lengthA+255)&(~0xff); if ((memPos&0xf00000)!=((memPos+paddedLen)&0xf00000)) { memPos=(memPos+0xfffff)&0xf00000; @@ -254,6 +259,11 @@ template class DivPlatformYM2610Base: public DivPlatformOPN { memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[1][sysID]) { + sampleOffB[i]=0; + continue; + } + int paddedLen=(s->lengthB+255)&(~0xff); if ((memPos&0xf00000)!=((memPos+paddedLen)&0xf00000)) { memPos=(memPos+0xfffff)&0xf00000; diff --git a/src/engine/platform/ymz280b.cpp b/src/engine/platform/ymz280b.cpp index c91512b5..8a903ef0 100644 --- a/src/engine/platform/ymz280b.cpp +++ b/src/engine/platform/ymz280b.cpp @@ -426,7 +426,7 @@ bool DivPlatformYMZ280B::isSampleLoaded(int index, int sample) { return sampleLoaded[sample]; } -void DivPlatformYMZ280B::renderSamples() { +void DivPlatformYMZ280B::renderSamples(int sysID) { memset(sampleMem,0,getSampleMemCapacity()); memset(sampleOff,0,256*sizeof(unsigned int)); memset(sampleLoaded,0,256*sizeof(bool)); @@ -434,6 +434,11 @@ void DivPlatformYMZ280B::renderSamples() { size_t memPos=0; for (int i=0; isong.sampleLen; i++) { DivSample* s=parent->song.sample[i]; + if (!s->renderOn[0][sysID]) { + sampleOff[i]=0; + continue; + } + int length=s->getCurBufLen(); unsigned char* src=(unsigned char*)s->getCurBuf(); int actualLength=MIN((int)(getSampleMemCapacity()-memPos),length); diff --git a/src/engine/platform/ymz280b.h b/src/engine/platform/ymz280b.h index 7e8ceb67..9477d003 100644 --- a/src/engine/platform/ymz280b.h +++ b/src/engine/platform/ymz280b.h @@ -101,7 +101,7 @@ class DivPlatformYMZ280B: public DivDispatch { size_t getSampleMemCapacity(int index = 0); size_t getSampleMemUsage(int index = 0); bool isSampleLoaded(int index, int sample); - void renderSamples(); + void renderSamples(int chipID); void setFlags(const DivConfig& flags); int init(DivEngine* parent, int channels, int sugRate, const DivConfig& flags); void quit();