FDS preparation work DOES NOT COMPILE

This commit is contained in:
tildearrow 2022-04-03 16:02:25 -05:00
parent 1a7074d0e5
commit d63ddda402
4 changed files with 16 additions and 16 deletions

View file

@ -254,8 +254,10 @@ class DivEngine {
// MIDI stuff // MIDI stuff
std::function<int(const TAMidiMessage&)> midiCallback=[](const TAMidiMessage&) -> int {return -2;}; std::function<int(const TAMidiMessage&)> midiCallback=[](const TAMidiMessage&) -> int {return -2;};
DivSystem systemFromFile(unsigned char val); DivSystem systemFromFileFur(unsigned char val);
unsigned char systemToFile(DivSystem val); unsigned char systemToFileFur(DivSystem val);
DivSystem systemFromFileDMF(unsigned char val);
unsigned char systemToFileDMF(DivSystem val);
int dispatchCmd(DivCommand c); int dispatchCmd(DivCommand c);
void processRow(int i, bool afterDelay); void processRow(int i, bool afterDelay);
void nextOrder(); void nextOrder();

View file

@ -83,7 +83,7 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
ds.system[0]=DIV_SYSTEM_YMU759; ds.system[0]=DIV_SYSTEM_YMU759;
} else { } else {
sys=reader.readC(); sys=reader.readC();
ds.system[0]=systemFromFile(sys); ds.system[0]=systemFromFileDMF(sys);
} }
if (ds.system[0]==DIV_SYSTEM_NULL) { if (ds.system[0]==DIV_SYSTEM_NULL) {
logE("invalid system 0x%.2x!",sys); logE("invalid system 0x%.2x!",sys);
@ -876,7 +876,7 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
int numberOfPats=reader.readI(); int numberOfPats=reader.readI();
for (int i=0; i<32; i++) { for (int i=0; i<32; i++) {
ds.system[i]=systemFromFile(reader.readC()); ds.system[i]=systemFromFileFur(reader.readC());
if (ds.system[i]!=DIV_SYSTEM_NULL) ds.systemLen=i+1; if (ds.system[i]!=DIV_SYSTEM_NULL) ds.systemLen=i+1;
} }
int tchans=0; int tchans=0;
@ -1855,7 +1855,7 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) {
if (i>=song.systemLen) { if (i>=song.systemLen) {
w->writeC(0); w->writeC(0);
} else { } else {
w->writeC(systemToFile(song.system[i])); w->writeC(systemToFileFur(song.system[i]));
} }
} }
@ -2095,7 +2095,7 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) {
return NULL; return NULL;
} }
// fail if the system is Furnace-exclusive // fail if the system is Furnace-exclusive
if (!isFlat && systemToFile(song.system[0])&0x80) { if (!isFlat && systemToFileDMF(song.system[0])==0) {
logE("cannot save Furnace-exclusive system song!\n"); logE("cannot save Furnace-exclusive system song!\n");
lastError="this system is not possible on .dmf"; lastError="this system is not possible on .dmf";
return NULL; return NULL;
@ -2113,22 +2113,22 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) {
w->writeC(version); w->writeC(version);
DivSystem sys=DIV_SYSTEM_NULL; DivSystem sys=DIV_SYSTEM_NULL;
if (song.system[0]==DIV_SYSTEM_YM2612 && song.system[1]==DIV_SYSTEM_SMS) { if (song.system[0]==DIV_SYSTEM_YM2612 && song.system[1]==DIV_SYSTEM_SMS) {
w->writeC(systemToFile(DIV_SYSTEM_GENESIS)); w->writeC(systemToFileDMF(DIV_SYSTEM_GENESIS));
sys=DIV_SYSTEM_GENESIS; sys=DIV_SYSTEM_GENESIS;
} else if (song.system[0]==DIV_SYSTEM_YM2612_EXT && song.system[1]==DIV_SYSTEM_SMS) { } else if (song.system[0]==DIV_SYSTEM_YM2612_EXT && song.system[1]==DIV_SYSTEM_SMS) {
w->writeC(systemToFile(DIV_SYSTEM_GENESIS_EXT)); w->writeC(systemToFileDMF(DIV_SYSTEM_GENESIS_EXT));
sys=DIV_SYSTEM_GENESIS_EXT; sys=DIV_SYSTEM_GENESIS_EXT;
} else if (song.system[0]==DIV_SYSTEM_YM2151 && song.system[1]==DIV_SYSTEM_SEGAPCM_COMPAT) { } else if (song.system[0]==DIV_SYSTEM_YM2151 && song.system[1]==DIV_SYSTEM_SEGAPCM_COMPAT) {
w->writeC(systemToFile(DIV_SYSTEM_ARCADE)); w->writeC(systemToFileDMF(DIV_SYSTEM_ARCADE));
sys=DIV_SYSTEM_ARCADE; sys=DIV_SYSTEM_ARCADE;
} else if (song.system[0]==DIV_SYSTEM_SMS && song.system[1]==DIV_SYSTEM_OPLL) { } else if (song.system[0]==DIV_SYSTEM_SMS && song.system[1]==DIV_SYSTEM_OPLL) {
w->writeC(systemToFile(DIV_SYSTEM_SMS_OPLL)); w->writeC(systemToFileDMF(DIV_SYSTEM_SMS_OPLL));
sys=DIV_SYSTEM_SMS_OPLL; sys=DIV_SYSTEM_SMS_OPLL;
} else if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_VRC7) { } else if (song.system[0]==DIV_SYSTEM_NES && song.system[1]==DIV_SYSTEM_VRC7) {
w->writeC(systemToFile(DIV_SYSTEM_NES_VRC7)); w->writeC(systemToFileDMF(DIV_SYSTEM_NES_VRC7));
sys=DIV_SYSTEM_NES_VRC7; sys=DIV_SYSTEM_NES_VRC7;
} else { } else {
w->writeC(systemToFile(song.system[0])); w->writeC(systemToFileDMF(song.system[0]));
sys=song.system[0]; sys=song.system[0];
} }

View file

@ -641,7 +641,6 @@ void DivEngine::loadOPM(SafeReader& reader, std::vector<DivInstrument*>& ret, St
} catch (EndOfFileException& e) { } catch (EndOfFileException& e) {
lastError="premature end of file"; lastError="premature end of file";
logE("premature end of file!\n"); logE("premature end of file!\n");
delete ins;
return; return;
} }
} }

View file

@ -20,7 +20,7 @@
#include "engine.h" #include "engine.h"
#include "song.h" #include "song.h"
DivSystem DivEngine::systemFromFile(unsigned char val) { DivSystem DivEngine::systemFromFileFur(unsigned char val) {
switch (val) { switch (val) {
case 0x01: case 0x01:
return DIV_SYSTEM_YMU759; return DIV_SYSTEM_YMU759;
@ -50,7 +50,6 @@ DivSystem DivEngine::systemFromFile(unsigned char val) {
return DIV_SYSTEM_C64_6581; return DIV_SYSTEM_C64_6581;
case 0x49: case 0x49:
return DIV_SYSTEM_YM2610_EXT; return DIV_SYSTEM_YM2610_EXT;
// Furnace-specific systems
case 0x80: case 0x80:
return DIV_SYSTEM_AY8910; return DIV_SYSTEM_AY8910;
case 0x81: case 0x81:
@ -149,7 +148,7 @@ DivSystem DivEngine::systemFromFile(unsigned char val) {
return DIV_SYSTEM_NULL; return DIV_SYSTEM_NULL;
} }
unsigned char DivEngine::systemToFile(DivSystem val) { unsigned char DivEngine::systemToFileFur(DivSystem val) {
switch (val) { switch (val) {
case DIV_SYSTEM_YMU759: case DIV_SYSTEM_YMU759:
return 0x01; return 0x01;