Merge branch 'master' of github.com:tildearrow/furnace

This commit is contained in:
tildearrow 2022-07-24 01:57:21 -05:00
commit 1dbdf8558c
2 changed files with 76 additions and 10 deletions

View File

@ -50,12 +50,10 @@ void DivPlatformPCMDAC::acquire(short* bufL, short* bufR, size_t start, size_t l
} else {
DivSample* s=parent->getSample(chan.sample);
if (s->samples>0) {
if (chan.audPos>=s->samples) {
if (s->loopStart>=0 && s->loopStart<(int)s->samples) {
chan.audPos=s->loopStart;
} else {
chan.sample=-1;
}
if (s->isLoopable() && chan.audPos>=s->getEndPosition()) {
chan.audPos=s->loopStart;
} else if (chan.audPos>=s->samples) {
chan.sample=-1;
}
if (chan.audPos<s->samples) {
output=s->data16[chan.audPos];

View File

@ -1241,6 +1241,15 @@ void FurnaceGUI::initSystemPresets() {
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Williams/Midway Y/T unit w/ADPCM sound board", {
// ADPCM sound board
DIV_SYSTEM_YM2151, 64, 0, 0,
DIV_SYSTEM_PCM_DAC, 64, 0, 15624|(7<<16), // variable via OPM timer?
DIV_SYSTEM_MSM6295, 64, 0, 0,
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Konami Gyruss", {
DIV_SYSTEM_AY8910, 64, 0, 0,
@ -1261,6 +1270,34 @@ void FurnaceGUI::initSystemPresets() {
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Konami Battlantis", {
DIV_SYSTEM_OPL2, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPL2, 64, 0, 3, // ""
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Konami Battlantis (drums mode on first OPL2)", {
DIV_SYSTEM_OPL2_DRUMS, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPL2, 64, 0, 3, // ""
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Konami Battlantis (drums mode on second OPL2)", {
DIV_SYSTEM_OPL2, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPL2_DRUMS, 64, 0, 3, // ""
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Konami Battlantis (drums mode on both OPL2s)", {
DIV_SYSTEM_OPL2_DRUMS, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPL2_DRUMS, 64, 0, 3, // ""
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Konami Hexion", {
DIV_SYSTEM_SCC, 64, 0, 2, // 1.5MHz (3MHz input)
@ -1326,6 +1363,13 @@ void FurnaceGUI::initSystemPresets() {
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Sega System 24", {
DIV_SYSTEM_YM2151, 64, 0, 2, // 4MHz
DIV_SYSTEM_PCM_DAC, 64, 0, 61499|(7<<16), // software controlled, variable rate via configurable timers
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Sega System 18", {
DIV_SYSTEM_YM2612, 64, 0, 2, // discrete 8MHz YM3438
@ -1863,7 +1907,7 @@ void FurnaceGUI::initSystemPresets() {
"Alpha denshi Alpha-68K", {
DIV_SYSTEM_OPN, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPLL, 64, 0, 0, // 3.58MHz
// software controlled 8 bit DAC
DIV_SYSTEM_PCM_DAC, 64, 0, 7613|(7<<16), // software controlled 8 bit DAC
0
}
));
@ -1871,7 +1915,7 @@ void FurnaceGUI::initSystemPresets() {
"Alpha denshi Alpha-68K (extended channel 3)", {
DIV_SYSTEM_OPN_EXT, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPLL, 64, 0, 0, // 3.58MHz
// software controlled 8 bit DAC
DIV_SYSTEM_PCM_DAC, 64, 0, 7613|(7<<16), // software controlled 8 bit DAC
0
}
));
@ -1879,7 +1923,7 @@ void FurnaceGUI::initSystemPresets() {
"Alpha denshi Alpha-68K (drums mode)", {
DIV_SYSTEM_OPN, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPLL_DRUMS, 64, 0, 0, // 3.58MHz
// software controlled 8 bit DAC
DIV_SYSTEM_PCM_DAC, 64, 0, 7613|(7<<16), // software controlled 8 bit DAC
0
}
));
@ -1887,7 +1931,7 @@ void FurnaceGUI::initSystemPresets() {
"Alpha denshi Alpha-68K (extended channel 3; drums mode)", {
DIV_SYSTEM_OPN_EXT, 64, 0, 3, // 3MHz
DIV_SYSTEM_OPLL_DRUMS, 64, 0, 0, // 3.58MHz
// software controlled 8 bit DAC
DIV_SYSTEM_PCM_DAC, 64, 0, 7613|(7<<16), // software controlled 8 bit DAC
0
}
));
@ -1929,10 +1973,27 @@ void FurnaceGUI::initSystemPresets() {
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Namco System 86", { // without expansion board case; Hopping Mappy, etc
DIV_SYSTEM_YM2151, 64, 0, 0,
DIV_SYSTEM_NAMCO_CUS30, 64, 0, 0
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Namco Thunder Ceptor", {
DIV_SYSTEM_YM2151, 64, 0, 0,
DIV_SYSTEM_NAMCO_CUS30, 64, 0, 0,
DIV_SYSTEM_PCM_DAC, 64, 0, 7999|(7<<16), // M65C02 software driven, correct sample rate?
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Namco System 1", {
DIV_SYSTEM_YM2151, 64, 0, 0,
DIV_SYSTEM_NAMCO_CUS30, 64, 0, 0,
DIV_SYSTEM_PCM_DAC, 64, 0, 5999|(7<<16), // sample rate verified from https://github.com/mamedev/mame/blob/master/src/devices/sound/n63701x.cpp
DIV_SYSTEM_PCM_DAC, 64, 0, 5999|(7<<16), // ""
0
}
));
@ -2045,6 +2106,13 @@ void FurnaceGUI::initSystemPresets() {
0
}
));
cat.systems.push_back(FurnaceGUISysDef(
"Irem M72", {
DIV_SYSTEM_YM2151, 64, 0, 0,
DIV_SYSTEM_PCM_DAC, 64, 0, 7811|(7<<16),
0
}
));
sysCategories.push_back(cat);
cat=FurnaceGUISysCategory("DefleMask-compatible","these configurations are compatible with DefleMask.\nselect this if you need to save as .dmf or work with that program.");