release 0.6pre0
This commit is contained in:
parent
4b436ef1fc
commit
f7566455c2
36 changed files with 366 additions and 142 deletions
|
|
@ -55,7 +55,7 @@ bool DivEngine::loadConf() {
|
|||
logI("creating default config.\n");
|
||||
return saveConf();
|
||||
}
|
||||
logI("loading config.\n");
|
||||
logI("peepoHappy\n");
|
||||
while (!feof(f)) {
|
||||
String key="";
|
||||
String value="";
|
||||
|
|
|
|||
|
|
@ -114,6 +114,8 @@ const char* DivEngine::getEffectDesc(unsigned char effect, int chan) {
|
|||
return "F9xx: Single tick volume slide down";
|
||||
case 0xfa:
|
||||
return "FAxx: Fast volume slide (0y: down; x0: up)";
|
||||
case 0xfe:
|
||||
return "FExx: Quit Furnace";
|
||||
case 0xff:
|
||||
return "FFxx: Stop song";
|
||||
default:
|
||||
|
|
@ -656,6 +658,10 @@ bool DivEngine::addSystem(DivSystem which) {
|
|||
renderSamples();
|
||||
reset();
|
||||
BUSY_END;
|
||||
if (which==DIV_SYSTEM_KONTAKT_5) {
|
||||
lastError="Kontakt not installed or detected!\nPlease use the \"Set plugin path\" option in the Configure System menu first.";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -3006,7 +3012,7 @@ bool DivEngine::init() {
|
|||
bool DivEngine::quit() {
|
||||
deinitAudioBackend();
|
||||
quitDispatch();
|
||||
logI("saving config.\n");
|
||||
logI("peepoLeave\n");
|
||||
saveConf();
|
||||
active=false;
|
||||
delete[] oscBuf[0];
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@
|
|||
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
|
||||
#define BUSY_END isBusy.unlock(); softLocked=false;
|
||||
|
||||
#define DIV_VERSION "dev74"
|
||||
#define DIV_ENGINE_VERSION 74
|
||||
#define DIV_VERSION "0.6pre0"
|
||||
#define DIV_ENGINE_VERSION 75
|
||||
|
||||
// for imports
|
||||
#define DIV_VERSION_MOD 0xff01
|
||||
|
|
|
|||
|
|
@ -1788,6 +1788,16 @@ bool DivEngine::load(unsigned char* f, size_t slen) {
|
|||
}
|
||||
|
||||
SafeWriter* DivEngine::saveFur(bool notPrimary) {
|
||||
if (!notPrimary) {
|
||||
for (int i=0; i<song.systemLen; i++) {
|
||||
if (song.system[i]==DIV_SYSTEM_HDA || song.system[i]==DIV_SYSTEM_KONTAKT_5) {
|
||||
logE("you're funny!\n");
|
||||
lastError="The save option lets you down, runs around and deserts you.";
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
saveLock.lock();
|
||||
int insPtr[256];
|
||||
int wavePtr[256];
|
||||
|
|
|
|||
|
|
@ -1060,10 +1060,11 @@ void DivEngine::processRow(int i, bool afterDelay) {
|
|||
}
|
||||
break;
|
||||
case 0x00: // arpeggio
|
||||
/*
|
||||
chan[i].arp=effectVal;
|
||||
if (chan[i].arp==0 && song.arp0Reset) {
|
||||
chan[i].resetArp=true;
|
||||
}
|
||||
}*/
|
||||
break;
|
||||
case 0x0c: // retrigger
|
||||
if (effectVal!=0) {
|
||||
|
|
@ -1206,6 +1207,9 @@ void DivEngine::processRow(int i, bool afterDelay) {
|
|||
chan[i].volSpeed=0;
|
||||
}
|
||||
break;
|
||||
case 0xfe: // quit program
|
||||
abort();
|
||||
break;
|
||||
|
||||
case 0xff: // stop song
|
||||
freelance=false;
|
||||
|
|
|
|||
|
|
@ -94,7 +94,9 @@ enum DivSystem {
|
|||
DIV_SYSTEM_YM2610B_EXT,
|
||||
DIV_SYSTEM_SEGAPCM_COMPAT,
|
||||
DIV_SYSTEM_X1_010,
|
||||
DIV_SYSTEM_BUBSYS_WSG
|
||||
DIV_SYSTEM_BUBSYS_WSG,
|
||||
DIV_SYSTEM_HDA,
|
||||
DIV_SYSTEM_KONTAKT_5
|
||||
};
|
||||
|
||||
struct DivSong {
|
||||
|
|
|
|||
|
|
@ -145,6 +145,10 @@ DivSystem DivEngine::systemFromFile(unsigned char val) {
|
|||
return DIV_SYSTEM_YM2610B_EXT;
|
||||
case 0xe0:
|
||||
return DIV_SYSTEM_QSOUND;
|
||||
case 0xfe:
|
||||
return DIV_SYSTEM_HDA;
|
||||
case 0xff:
|
||||
return DIV_SYSTEM_KONTAKT_5;
|
||||
}
|
||||
return DIV_SYSTEM_NULL;
|
||||
}
|
||||
|
|
@ -274,6 +278,10 @@ unsigned char DivEngine::systemToFile(DivSystem val) {
|
|||
return 0xde;
|
||||
case DIV_SYSTEM_QSOUND:
|
||||
return 0xe0;
|
||||
case DIV_SYSTEM_HDA:
|
||||
return 0xfe;
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return 0xff;
|
||||
|
||||
case DIV_SYSTEM_NULL:
|
||||
return 0;
|
||||
|
|
@ -400,6 +408,10 @@ int DivEngine::getChannelCount(DivSystem sys) {
|
|||
return 17;
|
||||
case DIV_SYSTEM_BUBSYS_WSG:
|
||||
return 2;
|
||||
case DIV_SYSTEM_HDA:
|
||||
return 1;
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return 16;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -683,6 +695,10 @@ const char* DivEngine::getSystemName(DivSystem sys) {
|
|||
return "Seta/Allumer X1-010";
|
||||
case DIV_SYSTEM_BUBSYS_WSG:
|
||||
return "Konami Bubble System WSG";
|
||||
case DIV_SYSTEM_HDA:
|
||||
return "Realtek HD Audio";
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return "Kontakt 5";
|
||||
}
|
||||
return "Unknown";
|
||||
}
|
||||
|
|
@ -814,6 +830,10 @@ const char* DivEngine::getSystemChips(DivSystem sys) {
|
|||
return "Seta/Allumer X1-010";
|
||||
case DIV_SYSTEM_BUBSYS_WSG:
|
||||
return "Konami Bubble System WSG";
|
||||
case DIV_SYSTEM_HDA:
|
||||
return "Realtek HD Audio";
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return "Chip? What chip?";
|
||||
}
|
||||
return "Unknown";
|
||||
}
|
||||
|
|
@ -1180,6 +1200,8 @@ const char* DivEngine::getChannelName(int chan) {
|
|||
case DIV_SYSTEM_SEGAPCM:
|
||||
case DIV_SYSTEM_SEGAPCM_COMPAT:
|
||||
case DIV_SYSTEM_X1_010:
|
||||
case DIV_SYSTEM_HDA:
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return chanNames[28][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_PCSPKR:
|
||||
|
|
@ -1324,6 +1346,8 @@ const char* DivEngine::getChannelShortName(int chan) {
|
|||
case DIV_SYSTEM_SEGAPCM:
|
||||
case DIV_SYSTEM_SEGAPCM_COMPAT:
|
||||
case DIV_SYSTEM_X1_010:
|
||||
case DIV_SYSTEM_HDA:
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return chanShortNames[28][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_PCSPKR:
|
||||
|
|
@ -1464,6 +1488,8 @@ int DivEngine::getChannelType(int chan) {
|
|||
case DIV_SYSTEM_SEGAPCM:
|
||||
case DIV_SYSTEM_SEGAPCM_COMPAT:
|
||||
case DIV_SYSTEM_QSOUND:
|
||||
case DIV_SYSTEM_HDA:
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return chanTypes[28][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_PCSPKR:
|
||||
|
|
@ -1605,6 +1631,8 @@ DivInstrumentType DivEngine::getPreferInsType(int chan) {
|
|||
case DIV_SYSTEM_SEGAPCM:
|
||||
case DIV_SYSTEM_SEGAPCM_COMPAT:
|
||||
case DIV_SYSTEM_QSOUND:
|
||||
case DIV_SYSTEM_HDA:
|
||||
case DIV_SYSTEM_KONTAKT_5:
|
||||
return chanPrefType[28][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_PCSPKR:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue