add ins type for Pokémon Mini and GA20
This commit is contained in:
parent
dafa0189a8
commit
b619580b4b
|
@ -915,7 +915,13 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song) {
|
||||||
featureSM=true;
|
featureSM=true;
|
||||||
featureSL=true;
|
featureSL=true;
|
||||||
break;
|
break;
|
||||||
|
case DIV_INS_GA20:
|
||||||
|
featureSM=true;
|
||||||
|
featureSL=true;
|
||||||
|
break;
|
||||||
|
case DIV_INS_POKEMINI:
|
||||||
|
break;
|
||||||
|
|
||||||
case DIV_INS_MAX:
|
case DIV_INS_MAX:
|
||||||
break;
|
break;
|
||||||
case DIV_INS_NULL:
|
case DIV_INS_NULL:
|
||||||
|
|
|
@ -76,6 +76,8 @@ enum DivInstrumentType: unsigned short {
|
||||||
DIV_INS_MSM5232=43,
|
DIV_INS_MSM5232=43,
|
||||||
DIV_INS_T6W28=44,
|
DIV_INS_T6W28=44,
|
||||||
DIV_INS_K007232=45,
|
DIV_INS_K007232=45,
|
||||||
|
DIV_INS_GA20=46,
|
||||||
|
DIV_INS_POKEMINI=47,
|
||||||
DIV_INS_MAX,
|
DIV_INS_MAX,
|
||||||
DIV_INS_NULL
|
DIV_INS_NULL
|
||||||
};
|
};
|
||||||
|
|
|
@ -116,6 +116,7 @@ enum DivSystem {
|
||||||
DIV_SYSTEM_MSM5232,
|
DIV_SYSTEM_MSM5232,
|
||||||
DIV_SYSTEM_T6W28,
|
DIV_SYSTEM_T6W28,
|
||||||
DIV_SYSTEM_K007232,
|
DIV_SYSTEM_K007232,
|
||||||
|
DIV_SYSTEM_GA20,
|
||||||
DIV_SYSTEM_PCM_DAC,
|
DIV_SYSTEM_PCM_DAC,
|
||||||
DIV_SYSTEM_PONG,
|
DIV_SYSTEM_PONG,
|
||||||
DIV_SYSTEM_DUMMY
|
DIV_SYSTEM_DUMMY
|
||||||
|
|
|
@ -1174,7 +1174,7 @@ void DivEngine::registerSystems() {
|
||||||
{"Square"},
|
{"Square"},
|
||||||
{"SQ"},
|
{"SQ"},
|
||||||
{DIV_CH_PULSE},
|
{DIV_CH_PULSE},
|
||||||
{DIV_INS_BEEPER}
|
{DIV_INS_POKEMINI}
|
||||||
);
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_SEGAPCM]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_SEGAPCM]=new DivSysDef(
|
||||||
|
@ -1703,6 +1703,16 @@ void DivEngine::registerSystems() {
|
||||||
{DIV_INS_AMIGA, DIV_INS_AMIGA}
|
{DIV_INS_AMIGA, DIV_INS_AMIGA}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
sysDefs[DIV_SYSTEM_GA20]=new DivSysDef(
|
||||||
|
"Irem GA20", NULL, 0xc7, 0, 4, false, true, 0x171, false, 1U<<DIV_SAMPLE_DEPTH_8BIT,
|
||||||
|
"yet another PCM chip from Irem.",
|
||||||
|
{"Channel 1", "Channel 2", "Channel 3", "Channel 4"},
|
||||||
|
{"CH1", "CH2", "CH3", "CH4"},
|
||||||
|
{DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM},
|
||||||
|
{DIV_INS_GA20, DIV_INS_GA20, DIV_INS_GA20, DIV_INS_GA20},
|
||||||
|
{DIV_INS_AMIGA, DIV_INS_AMIGA}
|
||||||
|
);
|
||||||
|
|
||||||
sysDefs[DIV_SYSTEM_DUMMY]=new DivSysDef(
|
sysDefs[DIV_SYSTEM_DUMMY]=new DivSysDef(
|
||||||
"Dummy System", NULL, 0xfd, 0, 8, false, true, 0, false, 0,
|
"Dummy System", NULL, 0xfd, 0, 8, false, true, 0, false, 0,
|
||||||
"this is a system designed for testing purposes.",
|
"this is a system designed for testing purposes.",
|
||||||
|
|
|
@ -422,6 +422,14 @@ void FurnaceGUI::drawInsList(bool asChild) {
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_K007232]);
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_K007232]);
|
||||||
name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i);
|
name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i);
|
||||||
break;
|
break;
|
||||||
|
case DIV_INS_GA20:
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_GA20]);
|
||||||
|
name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i);
|
||||||
|
break;
|
||||||
|
case DIV_INS_POKEMINI:
|
||||||
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_POKEMINI]);
|
||||||
|
name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_UNKNOWN]);
|
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_UNKNOWN]);
|
||||||
name=fmt::sprintf(ICON_FA_QUESTION "##_INS%d",i);
|
name=fmt::sprintf(ICON_FA_QUESTION "##_INS%d",i);
|
||||||
|
|
|
@ -186,6 +186,8 @@ enum FurnaceGUIColors {
|
||||||
GUI_COLOR_INSTR_MSM5232,
|
GUI_COLOR_INSTR_MSM5232,
|
||||||
GUI_COLOR_INSTR_T6W28,
|
GUI_COLOR_INSTR_T6W28,
|
||||||
GUI_COLOR_INSTR_K007232,
|
GUI_COLOR_INSTR_K007232,
|
||||||
|
GUI_COLOR_INSTR_GA20,
|
||||||
|
GUI_COLOR_INSTR_POKEMINI,
|
||||||
GUI_COLOR_INSTR_UNKNOWN,
|
GUI_COLOR_INSTR_UNKNOWN,
|
||||||
|
|
||||||
GUI_COLOR_CHANNEL_BG,
|
GUI_COLOR_CHANNEL_BG,
|
||||||
|
|
|
@ -126,6 +126,8 @@ const char* insTypes[DIV_INS_MAX+1]={
|
||||||
"MSM5232",
|
"MSM5232",
|
||||||
"T6W28",
|
"T6W28",
|
||||||
"K007232",
|
"K007232",
|
||||||
|
"GA20",
|
||||||
|
"Pokémon Mini",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -810,6 +812,8 @@ const FurnaceGUIColorDef guiColors[GUI_COLOR_MAX]={
|
||||||
D(GUI_COLOR_INSTR_MSM5232,"",ImVec4(0.5f,0.9f,1.0f,1.0f)),
|
D(GUI_COLOR_INSTR_MSM5232,"",ImVec4(0.5f,0.9f,1.0f,1.0f)),
|
||||||
D(GUI_COLOR_INSTR_T6W28,"",ImVec4(1.0f,0.8f,0.1f,1.0f)),
|
D(GUI_COLOR_INSTR_T6W28,"",ImVec4(1.0f,0.8f,0.1f,1.0f)),
|
||||||
D(GUI_COLOR_INSTR_K007232,"",ImVec4(1.0f,0.8f,0.1f,1.0f)),
|
D(GUI_COLOR_INSTR_K007232,"",ImVec4(1.0f,0.8f,0.1f,1.0f)),
|
||||||
|
D(GUI_COLOR_INSTR_GA20,"",ImVec4(0.1f,1.0f,0.4f,1.0f)),
|
||||||
|
D(GUI_COLOR_INSTR_POKEMINI,"",ImVec4(1.0f,1.0f,0.3f,1.0f)),
|
||||||
D(GUI_COLOR_INSTR_UNKNOWN,"",ImVec4(0.3f,0.3f,0.3f,1.0f)),
|
D(GUI_COLOR_INSTR_UNKNOWN,"",ImVec4(0.3f,0.3f,0.3f,1.0f)),
|
||||||
|
|
||||||
D(GUI_COLOR_CHANNEL_BG,"",ImVec4(0.4f,0.6f,0.8f,1.0f)),
|
D(GUI_COLOR_CHANNEL_BG,"",ImVec4(0.4f,0.6f,0.8f,1.0f)),
|
||||||
|
|
|
@ -4949,6 +4949,9 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
if (ins->type==DIV_INS_QSOUND) {
|
if (ins->type==DIV_INS_QSOUND) {
|
||||||
volMax=16383;
|
volMax=16383;
|
||||||
}
|
}
|
||||||
|
if (ins->type==DIV_INS_POKEMINI) {
|
||||||
|
volMax=2;
|
||||||
|
}
|
||||||
|
|
||||||
const char* dutyLabel="Duty/Noise";
|
const char* dutyLabel="Duty/Noise";
|
||||||
int dutyMin=0;
|
int dutyMin=0;
|
||||||
|
@ -4982,7 +4985,7 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
dutyLabel="Group Ctrl";
|
dutyLabel="Group Ctrl";
|
||||||
dutyMax=5;
|
dutyMax=5;
|
||||||
}
|
}
|
||||||
if (ins->type==DIV_INS_BEEPER) {
|
if (ins->type==DIV_INS_BEEPER || ins->type==DIV_INS_POKEMINI) {
|
||||||
dutyLabel="Pulse Width";
|
dutyLabel="Pulse Width";
|
||||||
dutyMax=255;
|
dutyMax=255;
|
||||||
}
|
}
|
||||||
|
@ -5079,6 +5082,7 @@ void FurnaceGUI::drawInsEdit() {
|
||||||
if (ins->type==DIV_INS_MSM6295) waveMax=0;
|
if (ins->type==DIV_INS_MSM6295) waveMax=0;
|
||||||
if (ins->type==DIV_INS_SEGAPCM) waveMax=0;
|
if (ins->type==DIV_INS_SEGAPCM) waveMax=0;
|
||||||
if (ins->type==DIV_INS_K007232) waveMax=0;
|
if (ins->type==DIV_INS_K007232) waveMax=0;
|
||||||
|
if (ins->type==DIV_INS_POKEMINI) waveMax=0;
|
||||||
if (ins->type==DIV_INS_SU) waveMax=7;
|
if (ins->type==DIV_INS_SU) waveMax=7;
|
||||||
if (ins->type==DIV_INS_PET) {
|
if (ins->type==DIV_INS_PET) {
|
||||||
waveMax=8;
|
waveMax=8;
|
||||||
|
|
|
@ -1787,7 +1787,10 @@ void FurnaceGUI::drawSettings() {
|
||||||
UI_COLOR_CONFIG(GUI_COLOR_INSTR_QSOUND,"QSound");
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_QSOUND,"QSound");
|
||||||
UI_COLOR_CONFIG(GUI_COLOR_INSTR_YMZ280B,"YMZ280B");
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_YMZ280B,"YMZ280B");
|
||||||
UI_COLOR_CONFIG(GUI_COLOR_INSTR_RF5C68,"RF5C68");
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_RF5C68,"RF5C68");
|
||||||
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_MSM5232,"MSM5232");
|
||||||
UI_COLOR_CONFIG(GUI_COLOR_INSTR_K007232,"K007232");
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_K007232,"K007232");
|
||||||
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_GA20,"GA20");
|
||||||
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_POKEMINI,"Pokémon Mini");
|
||||||
UI_COLOR_CONFIG(GUI_COLOR_INSTR_UNKNOWN,"Other/Unknown");
|
UI_COLOR_CONFIG(GUI_COLOR_INSTR_UNKNOWN,"Other/Unknown");
|
||||||
ImGui::TreePop();
|
ImGui::TreePop();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue