From d63ddda40225ddd52891b462abc6de167ed028fc Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 3 Apr 2022 16:02:25 -0500 Subject: [PATCH] FDS preparation work DOES NOT COMPILE --- src/engine/engine.h | 6 ++++-- src/engine/fileOps.cpp | 20 ++++++++++---------- src/engine/fileOpsIns.cpp | 1 - src/engine/sysDef.cpp | 5 ++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/engine/engine.h b/src/engine/engine.h index e2db8e09..f4a3db83 100644 --- a/src/engine/engine.h +++ b/src/engine/engine.h @@ -254,8 +254,10 @@ class DivEngine { // MIDI stuff std::function midiCallback=[](const TAMidiMessage&) -> int {return -2;}; - DivSystem systemFromFile(unsigned char val); - unsigned char systemToFile(DivSystem val); + DivSystem systemFromFileFur(unsigned char val); + unsigned char systemToFileFur(DivSystem val); + DivSystem systemFromFileDMF(unsigned char val); + unsigned char systemToFileDMF(DivSystem val); int dispatchCmd(DivCommand c); void processRow(int i, bool afterDelay); void nextOrder(); diff --git a/src/engine/fileOps.cpp b/src/engine/fileOps.cpp index 0e82b6b7..86c97194 100644 --- a/src/engine/fileOps.cpp +++ b/src/engine/fileOps.cpp @@ -83,7 +83,7 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) { ds.system[0]=DIV_SYSTEM_YMU759; } else { sys=reader.readC(); - ds.system[0]=systemFromFile(sys); + ds.system[0]=systemFromFileDMF(sys); } if (ds.system[0]==DIV_SYSTEM_NULL) { logE("invalid system 0x%.2x!",sys); @@ -876,7 +876,7 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) { int numberOfPats=reader.readI(); 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; } int tchans=0; @@ -1855,7 +1855,7 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) { if (i>=song.systemLen) { w->writeC(0); } 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; } // 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"); lastError="this system is not possible on .dmf"; return NULL; @@ -2113,22 +2113,22 @@ SafeWriter* DivEngine::saveDMF(unsigned char version) { w->writeC(version); DivSystem sys=DIV_SYSTEM_NULL; 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; } 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; } 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; } 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; } 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; } else { - w->writeC(systemToFile(song.system[0])); + w->writeC(systemToFileDMF(song.system[0])); sys=song.system[0]; } diff --git a/src/engine/fileOpsIns.cpp b/src/engine/fileOpsIns.cpp index 201ace6a..a92e52c6 100644 --- a/src/engine/fileOpsIns.cpp +++ b/src/engine/fileOpsIns.cpp @@ -641,7 +641,6 @@ void DivEngine::loadOPM(SafeReader& reader, std::vector& ret, St } catch (EndOfFileException& e) { lastError="premature end of file"; logE("premature end of file!\n"); - delete ins; return; } } diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index 58a93260..2b935b1a 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -20,7 +20,7 @@ #include "engine.h" #include "song.h" -DivSystem DivEngine::systemFromFile(unsigned char val) { +DivSystem DivEngine::systemFromFileFur(unsigned char val) { switch (val) { case 0x01: return DIV_SYSTEM_YMU759; @@ -50,7 +50,6 @@ DivSystem DivEngine::systemFromFile(unsigned char val) { return DIV_SYSTEM_C64_6581; case 0x49: return DIV_SYSTEM_YM2610_EXT; - // Furnace-specific systems case 0x80: return DIV_SYSTEM_AY8910; case 0x81: @@ -149,7 +148,7 @@ DivSystem DivEngine::systemFromFile(unsigned char val) { return DIV_SYSTEM_NULL; } -unsigned char DivEngine::systemToFile(DivSystem val) { +unsigned char DivEngine::systemToFileFur(DivSystem val) { switch (val) { case DIV_SYSTEM_YMU759: return 0x01;