add ins type for Pokémon Mini and GA20

This commit is contained in:
tildearrow 2022-12-15 00:47:46 -05:00
parent dafa0189a8
commit b619580b4b
9 changed files with 43 additions and 3 deletions

View File

@ -915,7 +915,13 @@ void DivInstrument::putInsData2(SafeWriter* w, bool fui, const DivSong* song) {
featureSM=true;
featureSL=true;
break;
case DIV_INS_GA20:
featureSM=true;
featureSL=true;
break;
case DIV_INS_POKEMINI:
break;
case DIV_INS_MAX:
break;
case DIV_INS_NULL:

View File

@ -76,6 +76,8 @@ enum DivInstrumentType: unsigned short {
DIV_INS_MSM5232=43,
DIV_INS_T6W28=44,
DIV_INS_K007232=45,
DIV_INS_GA20=46,
DIV_INS_POKEMINI=47,
DIV_INS_MAX,
DIV_INS_NULL
};

View File

@ -116,6 +116,7 @@ enum DivSystem {
DIV_SYSTEM_MSM5232,
DIV_SYSTEM_T6W28,
DIV_SYSTEM_K007232,
DIV_SYSTEM_GA20,
DIV_SYSTEM_PCM_DAC,
DIV_SYSTEM_PONG,
DIV_SYSTEM_DUMMY

View File

@ -1174,7 +1174,7 @@ void DivEngine::registerSystems() {
{"Square"},
{"SQ"},
{DIV_CH_PULSE},
{DIV_INS_BEEPER}
{DIV_INS_POKEMINI}
);
sysDefs[DIV_SYSTEM_SEGAPCM]=new DivSysDef(
@ -1703,6 +1703,16 @@ void DivEngine::registerSystems() {
{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(
"Dummy System", NULL, 0xfd, 0, 8, false, true, 0, false, 0,
"this is a system designed for testing purposes.",

View File

@ -422,6 +422,14 @@ void FurnaceGUI::drawInsList(bool asChild) {
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_K007232]);
name=fmt::sprintf(ICON_FA_BAR_CHART "##_INS%d",i);
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:
ImGui::PushStyleColor(ImGuiCol_Text,uiColors[GUI_COLOR_INSTR_UNKNOWN]);
name=fmt::sprintf(ICON_FA_QUESTION "##_INS%d",i);

View File

@ -186,6 +186,8 @@ enum FurnaceGUIColors {
GUI_COLOR_INSTR_MSM5232,
GUI_COLOR_INSTR_T6W28,
GUI_COLOR_INSTR_K007232,
GUI_COLOR_INSTR_GA20,
GUI_COLOR_INSTR_POKEMINI,
GUI_COLOR_INSTR_UNKNOWN,
GUI_COLOR_CHANNEL_BG,

View File

@ -126,6 +126,8 @@ const char* insTypes[DIV_INS_MAX+1]={
"MSM5232",
"T6W28",
"K007232",
"GA20",
"Pokémon Mini",
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_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_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_CHANNEL_BG,"",ImVec4(0.4f,0.6f,0.8f,1.0f)),

View File

@ -4949,6 +4949,9 @@ void FurnaceGUI::drawInsEdit() {
if (ins->type==DIV_INS_QSOUND) {
volMax=16383;
}
if (ins->type==DIV_INS_POKEMINI) {
volMax=2;
}
const char* dutyLabel="Duty/Noise";
int dutyMin=0;
@ -4982,7 +4985,7 @@ void FurnaceGUI::drawInsEdit() {
dutyLabel="Group Ctrl";
dutyMax=5;
}
if (ins->type==DIV_INS_BEEPER) {
if (ins->type==DIV_INS_BEEPER || ins->type==DIV_INS_POKEMINI) {
dutyLabel="Pulse Width";
dutyMax=255;
}
@ -5079,6 +5082,7 @@ void FurnaceGUI::drawInsEdit() {
if (ins->type==DIV_INS_MSM6295) waveMax=0;
if (ins->type==DIV_INS_SEGAPCM) 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_PET) {
waveMax=8;

View File

@ -1787,7 +1787,10 @@ void FurnaceGUI::drawSettings() {
UI_COLOR_CONFIG(GUI_COLOR_INSTR_QSOUND,"QSound");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_YMZ280B,"YMZ280B");
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_GA20,"GA20");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_POKEMINI,"Pokémon Mini");
UI_COLOR_CONFIG(GUI_COLOR_INSTR_UNKNOWN,"Other/Unknown");
ImGui::TreePop();
}