dev128 - prepare for SN noise and hard fix fp b
file picker bug...
This commit is contained in:
parent
7841c3d0b6
commit
7709a9c3f6
|
@ -47,8 +47,8 @@
|
||||||
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
|
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
|
||||||
#define BUSY_END isBusy.unlock(); softLocked=false;
|
#define BUSY_END isBusy.unlock(); softLocked=false;
|
||||||
|
|
||||||
#define DIV_VERSION "dev127"
|
#define DIV_VERSION "dev128"
|
||||||
#define DIV_ENGINE_VERSION 127
|
#define DIV_ENGINE_VERSION 128
|
||||||
// for imports
|
// for imports
|
||||||
#define DIV_VERSION_MOD 0xff01
|
#define DIV_VERSION_MOD 0xff01
|
||||||
#define DIV_VERSION_FC 0xff02
|
#define DIV_VERSION_FC 0xff02
|
||||||
|
|
|
@ -208,7 +208,9 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Game Boy arp+soundLen screwery
|
// Game Boy arp+soundLen screwery
|
||||||
ds.systemFlags[0].set("enoughAlready",true);
|
if (ds.system[0]==DIV_SYSTEM_GB) {
|
||||||
|
ds.systemFlags[0].set("enoughAlready",true);
|
||||||
|
}
|
||||||
|
|
||||||
logI("reading module data...");
|
logI("reading module data...");
|
||||||
if (ds.version>0x0c) {
|
if (ds.version>0x0c) {
|
||||||
|
@ -966,6 +968,11 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
||||||
ds.system[1]=DIV_SYSTEM_FDS;
|
ds.system[1]=DIV_SYSTEM_FDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SMS noise freq
|
||||||
|
if (ds.system[0]==DIV_SYSTEM_SMS) {
|
||||||
|
ds.systemFlags[0].set("noEasyNoise",true);
|
||||||
|
}
|
||||||
|
|
||||||
ds.systemName=getSongSystemLegacyName(ds,!getConfInt("noMultiSystem",0));
|
ds.systemName=getSongSystemLegacyName(ds,!getConfInt("noMultiSystem",0));
|
||||||
|
|
||||||
if (active) quitDispatch();
|
if (active) quitDispatch();
|
||||||
|
@ -2513,6 +2520,16 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SN noise compat
|
||||||
|
if (ds.version<128) {
|
||||||
|
for (int i=0; i<ds.systemLen; i++) {
|
||||||
|
if (ds.system[i]==DIV_SYSTEM_SMS ||
|
||||||
|
ds.system[i]==DIV_SYSTEM_T6W28) {
|
||||||
|
ds.systemFlags[i].set("noEasyNoise",true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (active) quitDispatch();
|
if (active) quitDispatch();
|
||||||
BUSY_BEGIN_SOFT;
|
BUSY_BEGIN_SOFT;
|
||||||
saveLock.lock();
|
saveLock.lock();
|
||||||
|
|
|
@ -467,6 +467,7 @@ void DivPlatformSMS::setFlags(const DivConfig& flags) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
resetPhase=!flags.getBool("noPhaseReset",false);
|
resetPhase=!flags.getBool("noPhaseReset",false);
|
||||||
|
easyNoise=!flags.getBool("noEasyNoise",false);
|
||||||
divider=16;
|
divider=16;
|
||||||
toneDivider=64.0;
|
toneDivider=64.0;
|
||||||
noiseDivider=64.0;
|
noiseDivider=64.0;
|
||||||
|
|
|
@ -70,6 +70,7 @@ class DivPlatformSMS: public DivDispatch {
|
||||||
bool isRealSN;
|
bool isRealSN;
|
||||||
bool stereo;
|
bool stereo;
|
||||||
bool nuked;
|
bool nuked;
|
||||||
|
bool easyNoise;
|
||||||
sn76496_base_device* sn;
|
sn76496_base_device* sn;
|
||||||
ympsg_t sn_nuked;
|
ympsg_t sn_nuked;
|
||||||
struct QueuedWrite {
|
struct QueuedWrite {
|
||||||
|
|
|
@ -330,6 +330,7 @@ void DivPlatformT6W28::setFlags(const DivConfig& flags) {
|
||||||
for (int i=0; i<4; i++) {
|
for (int i=0; i<4; i++) {
|
||||||
oscBuf[i]->rate=rate;
|
oscBuf[i]->rate=rate;
|
||||||
}
|
}
|
||||||
|
easyNoise=!flags.getBool("noEasyNoise",false);
|
||||||
|
|
||||||
if (t6w!=NULL) {
|
if (t6w!=NULL) {
|
||||||
delete t6w;
|
delete t6w;
|
||||||
|
|
|
@ -60,6 +60,7 @@ class DivPlatformT6W28: public DivDispatch {
|
||||||
DivDispatchOscBuffer* oscBuf[4];
|
DivDispatchOscBuffer* oscBuf[4];
|
||||||
bool isMuted[4];
|
bool isMuted[4];
|
||||||
bool antiClickEnabled;
|
bool antiClickEnabled;
|
||||||
|
bool easyNoise;
|
||||||
struct QueuedWrite {
|
struct QueuedWrite {
|
||||||
unsigned char addr;
|
unsigned char addr;
|
||||||
unsigned char val;
|
unsigned char val;
|
||||||
|
|
|
@ -80,6 +80,14 @@ bool FurnaceGUIFileDialog::openLoad(String header, std::vector<String> filter, c
|
||||||
if (opened) return false;
|
if (opened) return false;
|
||||||
saving=false;
|
saving=false;
|
||||||
curPath=path;
|
curPath=path;
|
||||||
|
|
||||||
|
// strip excess directory separators
|
||||||
|
while (!curPath.empty()) {
|
||||||
|
if (curPath[curPath.size()-1]!=DIR_SEPARATOR) break;
|
||||||
|
curPath.erase(curPath.size()-1);
|
||||||
|
}
|
||||||
|
curPath+=DIR_SEPARATOR;
|
||||||
|
|
||||||
logD("opening load file dialog with curPath %s",curPath.c_str());
|
logD("opening load file dialog with curPath %s",curPath.c_str());
|
||||||
if (sysDialog) {
|
if (sysDialog) {
|
||||||
#ifdef USE_NFD
|
#ifdef USE_NFD
|
||||||
|
@ -145,6 +153,14 @@ bool FurnaceGUIFileDialog::openSave(String header, std::vector<String> filter, c
|
||||||
if (opened) return false;
|
if (opened) return false;
|
||||||
saving=true;
|
saving=true;
|
||||||
curPath=path;
|
curPath=path;
|
||||||
|
|
||||||
|
// strip excess directory separators
|
||||||
|
while (!curPath.empty()) {
|
||||||
|
if (curPath[curPath.size()-1]!=DIR_SEPARATOR) break;
|
||||||
|
curPath.erase(curPath.size()-1);
|
||||||
|
}
|
||||||
|
curPath+=DIR_SEPARATOR;
|
||||||
|
|
||||||
logD("opening save file dialog with curPath %s",curPath.c_str());
|
logD("opening save file dialog with curPath %s",curPath.c_str());
|
||||||
if (sysDialog) {
|
if (sysDialog) {
|
||||||
#ifdef USE_NFD
|
#ifdef USE_NFD
|
||||||
|
|
Loading…
Reference in New Issue