dev229 - VERA: emulated noise freq was double that of real hardware (#2488)
* VERA: emulated noise freq was double that of real hardware * fulfill req changes: version/engine version, revert SDL submodule
This commit is contained in:
parent
35fe3679f2
commit
b1814a8337
|
@ -52,10 +52,10 @@ class DivWorkPool;
|
||||||
#define EXTERN_BUSY_BEGIN_SOFT e->softLocked=true; e->isBusy.lock();
|
#define EXTERN_BUSY_BEGIN_SOFT e->softLocked=true; e->isBusy.lock();
|
||||||
#define EXTERN_BUSY_END e->isBusy.unlock(); e->softLocked=false;
|
#define EXTERN_BUSY_END e->isBusy.unlock(); e->softLocked=false;
|
||||||
|
|
||||||
//#define DIV_UNSTABLE
|
#define DIV_UNSTABLE
|
||||||
|
|
||||||
#define DIV_VERSION "0.6.8.1"
|
#define DIV_VERSION "dev229"
|
||||||
#define DIV_ENGINE_VERSION 228
|
#define DIV_ENGINE_VERSION 229
|
||||||
// for imports
|
// for imports
|
||||||
#define DIV_VERSION_MOD 0xff01
|
#define DIV_VERSION_MOD 0xff01
|
||||||
#define DIV_VERSION_FC 0xff02
|
#define DIV_VERSION_FC 0xff02
|
||||||
|
|
|
@ -2100,6 +2100,12 @@ bool DivEngine::loadFur(unsigned char* file, size_t len, int variantID) {
|
||||||
ds.systemFlags[i].set("chipType",1);
|
ds.systemFlags[i].set("chipType",1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (ds.version<229) {
|
||||||
|
for (int i=0; i<ds.systemLen; i++) {
|
||||||
|
if (ds.system[i]==DIV_SYSTEM_VERA) {
|
||||||
|
ds.systemFlags[i].set("chipType",2);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SNES no anti-click
|
// SNES no anti-click
|
||||||
|
|
|
@ -81,7 +81,7 @@ render(struct VERA_PSG* psg, int16_t *left, int16_t *right)
|
||||||
if ((psg->chipType >= 1) && (!ch->left && !ch->right)) {
|
if ((psg->chipType >= 1) && (!ch->left && !ch->right)) {
|
||||||
new_phase = 0;
|
new_phase = 0;
|
||||||
}
|
}
|
||||||
if ((ch->phase & 0x10000) != (new_phase & 0x10000)) {
|
if ((psg->chipType < 3) ? (ch->phase & 0x10000) != (new_phase & 0x10000) : (ch->phase & 0x10000) && !(new_phase & 0x10000)) {
|
||||||
ch->noiseval = (psg->chipType < 1) ? psg->noiseOut : (psg->noiseState >> 1) & 0x3f;
|
ch->noiseval = (psg->chipType < 1) ? psg->noiseOut : (psg->noiseState >> 1) & 0x3f;
|
||||||
}
|
}
|
||||||
ch->phase = new_phase;
|
ch->phase = new_phase;
|
||||||
|
|
|
@ -543,7 +543,7 @@ void DivPlatformVERA::poke(std::vector<DivRegWrite>& wlist) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivPlatformVERA::setFlags(const DivConfig& flags) {
|
void DivPlatformVERA::setFlags(const DivConfig& flags) {
|
||||||
psg->chipType=flags.getInt("chipType",2);
|
psg->chipType=flags.getInt("chipType",3);
|
||||||
chipClock=25000000;
|
chipClock=25000000;
|
||||||
CHECK_CUSTOM_CLOCK;
|
CHECK_CUSTOM_CLOCK;
|
||||||
rate=chipClock/512;
|
rate=chipClock/512;
|
||||||
|
|
|
@ -2552,7 +2552,7 @@ bool FurnaceGUI::drawSysConf(int chan, int sysPos, DivSystem type, DivConfig& fl
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DIV_SYSTEM_VERA: {
|
case DIV_SYSTEM_VERA: {
|
||||||
int chipType=flags.getInt("chipType",2);
|
int chipType=flags.getInt("chipType",3);
|
||||||
|
|
||||||
ImGui::Text(_("Chip revision:"));
|
ImGui::Text(_("Chip revision:"));
|
||||||
ImGui::Indent();
|
ImGui::Indent();
|
||||||
|
@ -2568,6 +2568,10 @@ bool FurnaceGUI::drawSysConf(int chan, int sysPos, DivSystem type, DivConfig& fl
|
||||||
chipType=2;
|
chipType=2;
|
||||||
altered=true;
|
altered=true;
|
||||||
}
|
}
|
||||||
|
if (ImGui::RadioButton(_("X16 Emu R49 (Noise freq fix)"),chipType==3)) {
|
||||||
|
chipType=3;
|
||||||
|
altered=true;
|
||||||
|
}
|
||||||
ImGui::Unindent();
|
ImGui::Unindent();
|
||||||
|
|
||||||
if (altered) {
|
if (altered) {
|
||||||
|
|
Loading…
Reference in a new issue