dev239 - Merge branch 'noLegacySample'

This commit is contained in:
tildearrow 2025-11-10 04:44:00 -05:00
commit b8db5b4a1a
78 changed files with 1367 additions and 2422 deletions

View file

@ -103,7 +103,6 @@
#define OPNB_CHIP_DEBUG \
FM_OPN_CHIP_DEBUG; \
ImGui::Text("- sampleBank: %d",ch->sampleBank); \
ImGui::Text("- writeADPCMAOff: %d",ch->writeADPCMAOff); \
ImGui::Text("- writeADPCMAOn: %d",ch->writeADPCMAOn); \
ImGui::Text("- globalADPCMAVolume: %d",ch->globalADPCMAVolume); \
@ -164,9 +163,7 @@
ImGui::Text(" - output: %d",ch->dacOutput); \
ImGui::Text("- pan: %x",ch->pan); \
ImGui::Text("- opMask: %x",ch->opMask); \
ImGui::Text("- sampleBank: %d",ch->sampleBank); \
COMMON_CHAN_DEBUG_BOOL; \
ImGui::TextColored(ch->furnaceDac?colorOn:colorOff,">> FurnaceDAC"); \
ImGui::TextColored(ch->hardReset?colorOn:colorOff,">> hardReset"); \
ImGui::TextColored(ch->opMaskChanged?colorOn:colorOff,">> opMaskChanged"); \
ImGui::TextColored(ch->dacMode?colorOn:colorOff,">> DACMode"); \
@ -203,7 +200,6 @@
COMMON_CHAN_DEBUG_BOOL; \
ImGui::TextColored(ch->hardReset?colorOn:colorOff,">> hardReset"); \
ImGui::TextColored(ch->opMaskChanged?colorOn:colorOff,">> opMaskChanged"); \
ImGui::TextColored(ch->furnacePCM?colorOn:colorOff,">> FurnacePCM");
#define OPN_OPCHAN_DEBUG \
DivPlatformOPN::OPNOpChannel* ch=(DivPlatformOPN::OPNOpChannel*)data; \
@ -229,7 +225,6 @@
COMMON_CHAN_DEBUG_BOOL; \
ImGui::TextColored(ch->hardReset?colorOn:colorOff,">> hardReset"); \
ImGui::TextColored(ch->opMaskChanged?colorOn:colorOff,">> opMaskChanged"); \
ImGui::TextColored(ch->furnacePCM?colorOn:colorOff,">> FurnacePCM");
#define OPNB_OPCHAN_DEBUG \
ImGui::Text("- freqHL: %.2x%.2x",ch->freqH,ch->freqL); \
@ -265,7 +260,6 @@ void putDispatchChip(void* data, int type) {
DivPlatformYM2203* ch=(DivPlatformYM2203*)data;
ImGui::Text("> YM2203");
FM_OPN_CHIP_DEBUG;
ImGui::Text("- sampleBank: %d",ch->sampleBank);
ImGui::Text("- prescale: %d",ch->prescale);
FM_OPN_CHIP_DEBUG_BOOL;
ImGui::TextColored(ch->extMode?colorOn:colorOff,">> ExtMode");
@ -276,7 +270,6 @@ void putDispatchChip(void* data, int type) {
DivPlatformYM2608* ch=(DivPlatformYM2608*)data;
ImGui::Text("> YM2608");
FM_OPN_CHIP_DEBUG;
ImGui::Text("- sampleBank: %d",ch->sampleBank);
ImGui::Text("- writeRSSOff: %d",ch->writeRSSOff);
ImGui::Text("- writeRSSOn: %d",ch->writeRSSOn);
ImGui::Text("- globalRSSVolume: %d",ch->globalRSSVolume);
@ -318,7 +311,6 @@ void putDispatchChip(void* data, int type) {
COMMON_CHIP_DEBUG;
ImGui::Text("- lastPan: %d",ch->lastPan);
ImGui::Text("- curChan: %d",ch->curChan);
ImGui::Text("- sampleBank: %d",ch->sampleBank);
ImGui::Text("- lfoMode: %d",ch->lfoMode);
ImGui::Text("- lfoSpeed: %d",ch->lfoSpeed);
COMMON_CHIP_DEBUG_BOOL;
@ -336,7 +328,6 @@ void putDispatchChip(void* data, int type) {
ImGui::Text(" - AntiClick: %d",ch->dacAntiClick);
ImGui::Text(" - Sample: %d",ch->dacSample);
ImGui::Text("- dpcmBank: %d",ch->dpcmBank);
ImGui::Text("- sampleBank: %d",ch->sampleBank);
ImGui::Text("- writeOscBuf: %d",ch->writeOscBuf);
ImGui::Text("- apuType: %d",ch->apuType);
COMMON_CHIP_DEBUG_BOOL;
@ -380,7 +371,6 @@ void putDispatchChip(void* data, int type) {
ImGui::Text("- pcmL: %d",ch->pcmL);
ImGui::Text("- pcmR: %d",ch->pcmR);
ImGui::Text("- pcmCycles: %d",ch->pcmCycles);
ImGui::Text("- sampleBank: %d",ch->sampleBank);
COMMON_CHIP_DEBUG_BOOL;
break;
}
@ -388,7 +378,6 @@ void putDispatchChip(void* data, int type) {
DivPlatformAY8910* ch=(DivPlatformAY8910*)data;
ImGui::Text("> AY-3-8910");
COMMON_CHIP_DEBUG;
ImGui::Text("- sampleBank: %d",ch->sampleBank);
ImGui::Text("- stereoSep: %d",ch->stereoSep);
ImGui::Text("- delay: %d",ch->delay);
ImGui::Text("- extClock: %d",ch->extClock);
@ -417,7 +406,6 @@ void putDispatchChip(void* data, int type) {
ImGui::Text("* noise:");
ImGui::Text(" - and: %d",ch->ayNoiseAnd);
ImGui::Text(" - or: %d",ch->ayNoiseOr);
ImGui::Text("- sampleBank: %d",ch->sampleBank);
ImGui::Text("- stereoSep: %d",ch->stereoSep);
ImGui::Text("- delay: %d",ch->delay);
ImGui::Text("- portAVal: %d",ch->portAVal);
@ -445,7 +433,6 @@ void putDispatchChip(void* data, int type) {
DivPlatformX1_010* ch=(DivPlatformX1_010*)data;
ImGui::Text("> X1-010");
COMMON_CHIP_DEBUG;
ImGui::Text("- sampleBank: %d",ch->sampleBank);
ImGui::Text("- bankSlot: [%d,%d,%d,%d,%d,%d,%d,%d]",ch->bankSlot[0],ch->bankSlot[1],ch->bankSlot[2],ch->bankSlot[3],ch->bankSlot[4],ch->bankSlot[5],ch->bankSlot[6],ch->bankSlot[7]);
COMMON_CHIP_DEBUG_BOOL;
ImGui::TextColored(ch->stereo?colorOn:colorOff,">> Stereo");
@ -468,7 +455,6 @@ void putDispatchChip(void* data, int type) {
DivPlatformVRC6* ch=(DivPlatformVRC6*)data;
ImGui::Text("> VRC6");
COMMON_CHIP_DEBUG;
ImGui::Text("- sampleBank: %.2x",ch->sampleBank);
COMMON_CHIP_DEBUG_BOOL;
break;
}
@ -708,7 +694,6 @@ void putDispatchChan(void* data, int chanNum, int type) {
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->noise?colorOn:colorOff,">> Noise");
ImGui::TextColored(ch->pcm?colorOn:colorOff,">> DAC");
ImGui::TextColored(ch->furnaceDac?colorOn:colorOff,">> FurnaceDAC");
break;
}
case DIV_SYSTEM_NES: {
@ -720,7 +705,6 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::Text("- sweep: %.2x",ch->sweep);
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->sweepChanged?colorOn:colorOff,">> SweepChanged");
ImGui::TextColored(ch->furnaceDac?colorOn:colorOff,">> FurnaceDAC");
break;
}
case DIV_SYSTEM_C64_6581: case DIV_SYSTEM_C64_8580: {
@ -771,7 +755,6 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::Text("- chPanR: %.2x",ch->chPanR);
ImGui::Text("- macroVolMul: %.2x",ch->macroVolMul);
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->furnacePCM?colorOn:colorOff,">> FurnacePCM");
ImGui::TextColored(ch->isNewSegaPCM?colorOn:colorOff,">> IsNewSegaPCM");
break;
}
@ -788,7 +771,6 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::Text("- autoEnvNum: %.2x",ch->autoEnvNum);
ImGui::Text("- autoEnvDen: %.2x",ch->autoEnvDen);
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->dac.furnaceDAC?colorOn:colorOff,">> furnaceDAC");
break;
}
case DIV_SYSTEM_AY8930: {
@ -805,7 +787,6 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::Text("- autoEnvNum: %.2x",ch->autoEnvNum);
ImGui::Text("- autoEnvDen: %.2x",ch->autoEnvDen);
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->dac.furnaceDAC?colorOn:colorOff,">> furnaceDAC");
break;
}
case DIV_SYSTEM_QSOUND: {
@ -842,7 +823,6 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::Text("- Rvol: %.2x",ch->rvol);
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->envChanged?colorOn:colorOff,">> EnvChanged");
ImGui::TextColored(ch->furnacePCM?colorOn:colorOff,">> FurnacePCM");
ImGui::TextColored(ch->pcm?colorOn:colorOff,">> PCM");
ImGui::TextColored(ch->env.flag.envEnable?colorOn:colorOff,">> EnvEnable");
ImGui::TextColored(ch->env.flag.envOneshot?colorOn:colorOff,">> EnvOneshot");
@ -881,7 +861,6 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::Text("- duty: %d",ch->duty);
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->pcm?colorOn:colorOff,">> DAC");
ImGui::TextColored(ch->furnaceDac?colorOn:colorOff,">> FurnaceDAC");
break;
}
case DIV_SYSTEM_ES5506: {

View file

@ -243,7 +243,6 @@ void FurnaceGUI::drawDebug() {
continue;
}
if (ImGui::TreeNode(fmt::sprintf("%d: %s",i,sample->name).c_str())) {
ImGui::Text("rate: %d",sample->rate);
ImGui::Text("centerRate: %d",sample->centerRate);
ImGui::Text("loopStart: %d",sample->loopStart);
ImGui::Text("loopEnd: %d", sample->loopEnd);

View file

@ -956,7 +956,6 @@ void FurnaceGUI::doAction(int what) {
if (sample!=NULL) {
DivWavetable* wave=e->song.wave[curWave];
unsigned int waveLen=wave->len;
sample->rate=(int)round(261.625565301*waveLen); // c3
sample->centerRate=(int)round(261.625565301*waveLen); // c3
sample->loopStart=0;
sample->loopEnd=waveLen;
@ -1045,7 +1044,6 @@ void FurnaceGUI::doAction(int what) {
e->lockEngine([this,prevSample]() {
DivSample* sample=e->getSample(curSample);
if (sample!=NULL) {
sample->rate=prevSample->rate;
sample->centerRate=prevSample->centerRate;
sample->name=prevSample->name;
sample->loopStart=prevSample->loopStart;

View file

@ -9134,7 +9134,6 @@ FurnaceGUI::FurnaceGUI():
sampleSelStart(-1),
sampleSelEnd(-1),
sampleInfo(true),
sampleCompatRate(false),
sampleDragActive(false),
sampleDragMode(false),
sampleDrag16(false),

View file

@ -2657,7 +2657,7 @@ class FurnaceGUI {
int resampleStrat;
float amplifyVol, amplifyOff;
int sampleSelStart, sampleSelEnd;
bool sampleInfo, sampleCompatRate;
bool sampleInfo;
bool sampleDragActive, sampleDragMode, sampleDrag16, sampleZoomAuto;
bool sampleCheckLoopStart, sampleCheckLoopEnd;
// 0: start

View file

@ -611,7 +611,7 @@ void FurnaceGUI::drawSampleEdit() {
if (isChipVisible[i]) selColumns++;
}
int targetRate=sampleCompatRate?sample->rate:sample->centerRate;
int targetRate=sample->centerRate;
if (ImGui::BeginTable("SampleProps",(selColumns>1)?4:3,ImGuiTableFlags_SizingStretchSame|ImGuiTableFlags_BordersV|ImGuiTableFlags_BordersOuterH)) {
ImGui::TableNextRow(ImGuiTableRowFlags_Headers);
@ -622,20 +622,7 @@ void FurnaceGUI::drawSampleEdit() {
ImGui::SameLine();
ImGui::Text(_("Info"));
ImGui::TableNextColumn();
pushToggleColors(!sampleCompatRate);
if (ImGui::Button(_("Rate"))) {
sampleCompatRate=false;
}
popToggleColors();
ImGui::SameLine();
pushToggleColors(sampleCompatRate);
if (ImGui::Button(_("Compat Rate"))) {
sampleCompatRate=true;
}
if (ImGui::IsItemHovered()) {
ImGui::SetTooltip(_("used in DefleMask-compatible sample mode (17xx), in where samples are mapped to an octave."));
}
popToggleColors();
ImGui::Text(_("Rate"));
ImGui::TableNextColumn();
bool doLoop=(sample->loop);
pushWarningColor(!warnLoop.empty());
@ -774,11 +761,7 @@ void FurnaceGUI::drawSampleEdit() {
if (targetRate<100) targetRate=100;
if (targetRate>384000) targetRate=384000;
if (sampleCompatRate) {
sample->rate=targetRate;
} else {
sample->centerRate=targetRate;
}
sample->centerRate=targetRate;
}
ImGui::AlignTextToFramePadding();
@ -818,11 +801,7 @@ void FurnaceGUI::drawSampleEdit() {
if (targetRate<100) targetRate=100;
if (targetRate>384000) targetRate=384000;
if (sampleCompatRate) {
sample->rate=targetRate;
} else {
sample->centerRate=targetRate;
}
sample->centerRate=targetRate;
}
ImGui::AlignTextToFramePadding();
@ -852,11 +831,7 @@ void FurnaceGUI::drawSampleEdit() {
if (targetRate<100) targetRate=100;
if (targetRate>384000) targetRate=384000;
if (sampleCompatRate) {
sample->rate=targetRate;
} else {
sample->centerRate=targetRate;
}
sample->centerRate=targetRate;
}
ImGui::TableNextColumn();
@ -1662,7 +1637,7 @@ void FurnaceGUI::drawSampleEdit() {
ImGui::ItemSize(size,style.FramePadding.y);
if (ImGui::ItemAdd(rect,ImGui::GetID("SETime"))) {
int targetRate=sampleCompatRate?sample->rate:sample->centerRate;
int targetRate=sample->centerRate;
int curDivisorSel=0;
int curMultiplierSel=0;
double divisor=1000.0;

View file

@ -180,6 +180,9 @@ struct FurnaceCV {
// this offset is applied to sprites.
int viewX, viewY;
// other
char hiScoreText[512];
// input
unsigned char joyInputPrev;
unsigned char joyPressed;
@ -666,7 +669,11 @@ static const char* cvText[]={
_N("GAME OVER"),
_N("High Score!"),
_N(" CONGREGURATION\n\n\n"
"YOU ARE GOOD PLAY AT GAME\n"
"PRESS ESCAPE TO RESET GAME\n\n"
"AND PLAY AGAIN AT ELEVATED DIFFICULTY\n\n\n"
"%d SCORES THIS GAME"),
_N("Welcome to Combat Vehicle!\n\n"
"Controls:\n"
@ -1695,7 +1702,8 @@ void FurnaceCV::render(unsigned char joyIn) {
}
memset(tile0,0,80*56*sizeof(short));
memset(tile1,0,80*56*sizeof(short));
startTyping(_(cvText[3]),2,3);
snprintf(hiScoreText,511,_(cvText[3]),hiScore);
startTyping(hiScoreText,2,3);
e->setConf("cvHiScore",hiScore);
e->saveConf();
curText=4;