diff --git a/src/engine/legacySample.cpp b/src/engine/legacySample.cpp index dbaab38c5..21734c903 100644 --- a/src/engine/legacySample.cpp +++ b/src/engine/legacySample.cpp @@ -133,6 +133,7 @@ bool DivEngine::convertLegacySampleMode() { continue; } sampleMode=1; + preferredInsType=DIV_INS_NES; break; case DIV_SYSTEM_MMC5: // MMC5 PCM channel @@ -186,6 +187,22 @@ bool DivEngine::convertLegacySampleMode() { preferredInsType=DIV_INS_ADPCMA; preferredInsType2=DIV_INS_ADPCMB; break; + case DIV_SYSTEM_YM2612_DUALPCM: + // DualPCM DAC + if (dispatchChanOfChan[i]<5) { + continue; + } + sampleMode=1; + hasLegacyToggle=true; + break; + case DIV_SYSTEM_YM2612_DUALPCM_EXT: + // DualPCM DAC + if (dispatchChanOfChan[i]<8 || dispatchChanOfChan[i]>9) { + continue; + } + sampleMode=1; + hasLegacyToggle=true; + break; case DIV_SYSTEM_YM2610_CSM: // Neo Geo CD ADPCM channels if (dispatchChanOfChan[i]<11) { diff --git a/src/engine/platform/nes.cpp b/src/engine/platform/nes.cpp index 0fcb9fa80..d56b57288 100644 --- a/src/engine/platform/nes.cpp +++ b/src/engine/platform/nes.cpp @@ -424,7 +424,7 @@ void DivPlatformNES::tick(bool sysTick) { DivSample* s=parent->getSample(dacSample); off=(double)s->centerRate/parent->getCenterRate(); } - dacRate=MIN(chan[4].freq*off,32000); + dacRate=MIN(chan[4].freq*off,48000); if (chan[4].keyOn) { if (dpcmMode && !skipRegisterWrites && dacSample>=0 && dacSamplesong.sampleLen) { unsigned int dpcmAddr=sampleOffDPCM[dacSample]+(dacPos>>3); diff --git a/src/gui/tutorial.cpp b/src/gui/tutorial.cpp index 50812fbd2..d1d5901a4 100644 --- a/src/gui/tutorial.cpp +++ b/src/gui/tutorial.cpp @@ -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; diff --git a/test/furnace-test.sh b/test/furnace-test.sh index c6e0f8f40..1bf5525f5 100755 --- a/test/furnace-test.sh +++ b/test/furnace-test.sh @@ -41,7 +41,7 @@ else echo "OK" else echo "FAIL FAIL FAIL" - ffmpeg -loglevel quiet -i "test/delta/$testDir/$i" -lavfi showspectrumpic "test/delta/$testDir/$i.png" + ffmpeg -loglevel quiet -i "test/delta/$testDir/$i" -lavfi showspectrumpic -y "test/delta/$testDir/$i.png" fi done fi diff --git a/test/last-stage.sh b/test/last-stage.sh new file mode 100755 index 000000000..cff8aab90 --- /dev/null +++ b/test/last-stage.sh @@ -0,0 +1,11 @@ +#!/bin/bash +testDir=20251109215858 +if ./assert_delta "delta/$testDir/$1"; then + true + #echo "OK" +else +echo -n "$1... " + echo "FAIL FAIL FAIL" + mpv "delta/$testDir/$1" + #ffmpeg -loglevel quiet -i "test/delta/$testDir/$1" -lavfi showspectrumpic -y "test/delta/$testDir/$1.png" +fi