parent
4546df5636
commit
8dcb2d02ad
|
@ -3271,7 +3271,6 @@ void DivPlatformOPL::renderSamples(int sysID) {
|
||||||
|
|
||||||
int length;
|
int length;
|
||||||
switch (s->depth) {
|
switch (s->depth) {
|
||||||
default:
|
|
||||||
case DIV_SAMPLE_DEPTH_8BIT:
|
case DIV_SAMPLE_DEPTH_8BIT:
|
||||||
length=MIN(65535,s->getLoopEndPosition(DIV_SAMPLE_DEPTH_8BIT));
|
length=MIN(65535,s->getLoopEndPosition(DIV_SAMPLE_DEPTH_8BIT));
|
||||||
break;
|
break;
|
||||||
|
@ -3281,6 +3280,9 @@ void DivPlatformOPL::renderSamples(int sysID) {
|
||||||
case DIV_SAMPLE_DEPTH_16BIT:
|
case DIV_SAMPLE_DEPTH_16BIT:
|
||||||
length=MIN(131070,s->getLoopEndPosition(DIV_SAMPLE_DEPTH_16BIT));
|
length=MIN(131070,s->getLoopEndPosition(DIV_SAMPLE_DEPTH_16BIT));
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
length=MIN(65535,s->getLoopEndPosition(DIV_SAMPLE_DEPTH_8BIT));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
unsigned char* src=(unsigned char*)s->getCurBuf();
|
unsigned char* src=(unsigned char*)s->getCurBuf();
|
||||||
int actualLength=MIN((int)(getSampleMemCapacity(0)-memPos),length);
|
int actualLength=MIN((int)(getSampleMemCapacity(0)-memPos),length);
|
||||||
|
@ -3313,10 +3315,9 @@ void DivPlatformOPL::renderSamples(int sysID) {
|
||||||
DivSample* s=parent->song.sample[i];
|
DivSample* s=parent->song.sample[i];
|
||||||
unsigned int insAddr=(i*12)+((ramSize<=0x200000)?0x200000:0);
|
unsigned int insAddr=(i*12)+((ramSize<=0x200000)?0x200000:0);
|
||||||
unsigned char bitDepth;
|
unsigned char bitDepth;
|
||||||
int endPos=CLAMP(s->loopEnd,1,0x10000);
|
int endPos=CLAMP(s->isLoopable()?s->loopEnd:s->samples,1,0x10000);
|
||||||
int loop=s->isLoopable()?CLAMP(s->loopStart,0,endPos-1):(endPos-1);
|
int loop=s->isLoopable()?CLAMP(s->loopStart,0,endPos-2):(endPos-2);
|
||||||
switch (s->depth) {
|
switch (s->depth) {
|
||||||
default:
|
|
||||||
case DIV_SAMPLE_DEPTH_8BIT:
|
case DIV_SAMPLE_DEPTH_8BIT:
|
||||||
bitDepth=0;
|
bitDepth=0;
|
||||||
break;
|
break;
|
||||||
|
@ -3326,6 +3327,9 @@ void DivPlatformOPL::renderSamples(int sysID) {
|
||||||
case DIV_SAMPLE_DEPTH_16BIT:
|
case DIV_SAMPLE_DEPTH_16BIT:
|
||||||
bitDepth=2;
|
bitDepth=2;
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
bitDepth=0;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
pcmMem[insAddr]=(bitDepth<<6)|((sampleOffPCM[i]>>16)&0x3f);
|
pcmMem[insAddr]=(bitDepth<<6)|((sampleOffPCM[i]>>16)&0x3f);
|
||||||
pcmMem[1+insAddr]=(sampleOffPCM[i]>>8)&0xff;
|
pcmMem[1+insAddr]=(sampleOffPCM[i]>>8)&0xff;
|
||||||
|
@ -3334,7 +3338,7 @@ void DivPlatformOPL::renderSamples(int sysID) {
|
||||||
pcmMem[4+insAddr]=(loop)&0xff;
|
pcmMem[4+insAddr]=(loop)&0xff;
|
||||||
pcmMem[5+insAddr]=((~(endPos-1))>>8)&0xff;
|
pcmMem[5+insAddr]=((~(endPos-1))>>8)&0xff;
|
||||||
pcmMem[6+insAddr]=(~(endPos-1))&0xff;
|
pcmMem[6+insAddr]=(~(endPos-1))&0xff;
|
||||||
// TODO: how to fill in rest of instrument table?
|
// on MultiPCM this consists of instrument params, but on OPL4 this is not used
|
||||||
pcmMem[7+insAddr]=0; // LFO, VIB
|
pcmMem[7+insAddr]=0; // LFO, VIB
|
||||||
pcmMem[8+insAddr]=(0xf << 4) | (0xf << 0); // AR, D1R
|
pcmMem[8+insAddr]=(0xf << 4) | (0xf << 0); // AR, D1R
|
||||||
pcmMem[9+insAddr]=0; // DL, D2R
|
pcmMem[9+insAddr]=0; // DL, D2R
|
||||||
|
|
|
@ -2603,30 +2603,37 @@ bool FurnaceGUI::drawSysConf(int chan, int sysPos, DivSystem type, DivConfig& fl
|
||||||
if (ImGui::RadioButton(_("4MB"),ramSize==0)) {
|
if (ImGui::RadioButton(_("4MB"),ramSize==0)) {
|
||||||
ramSize=0;
|
ramSize=0;
|
||||||
altered=true;
|
altered=true;
|
||||||
|
mustRender=true;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton(_("2MB"),ramSize==1)) {
|
if (ImGui::RadioButton(_("2MB"),ramSize==1)) {
|
||||||
ramSize=1;
|
ramSize=1;
|
||||||
altered=true;
|
altered=true;
|
||||||
|
mustRender=true;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton(_("1MB"),ramSize==2)) {
|
if (ImGui::RadioButton(_("1MB"),ramSize==2)) {
|
||||||
ramSize=2;
|
ramSize=2;
|
||||||
altered=true;
|
altered=true;
|
||||||
|
mustRender=true;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton(_("640KB"),ramSize==3)) {
|
if (ImGui::RadioButton(_("640KB"),ramSize==3)) {
|
||||||
ramSize=3;
|
ramSize=3;
|
||||||
altered=true;
|
altered=true;
|
||||||
|
mustRender=true;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton(_("512KB"),ramSize==4)) {
|
if (ImGui::RadioButton(_("512KB"),ramSize==4)) {
|
||||||
ramSize=4;
|
ramSize=4;
|
||||||
altered=true;
|
altered=true;
|
||||||
|
mustRender=true;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton(_("256KB"),ramSize==5)) {
|
if (ImGui::RadioButton(_("256KB"),ramSize==5)) {
|
||||||
ramSize=5;
|
ramSize=5;
|
||||||
altered=true;
|
altered=true;
|
||||||
|
mustRender=true;
|
||||||
}
|
}
|
||||||
if (ImGui::RadioButton(_("128KB"),ramSize==6)) {
|
if (ImGui::RadioButton(_("128KB"),ramSize==6)) {
|
||||||
ramSize=6;
|
ramSize=6;
|
||||||
altered=true;
|
altered=true;
|
||||||
|
mustRender=true;
|
||||||
}
|
}
|
||||||
ImGui::Unindent();
|
ImGui::Unindent();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue