Add primary MultiPCM support

Partially revert previous commit
Add notifyInsAddition in dispatch for instrument addition
Refresh sample memory when instrument type changed
Fix naming for consistency
Also, this commit fixes a some possible issue in MultiPCM on openMSX core.
Chip ID: Already determined
This commit is contained in:
cam900 2025-08-29 16:24:32 +09:00
parent bd8d9a56a0
commit 957b57f3d9
19 changed files with 1085 additions and 55 deletions

View file

@ -57,6 +57,7 @@
#include "../engine/platform/k053260.h"
#include "../engine/platform/c140.h"
#include "../engine/platform/msm6295.h"
#include "../engine/platform/multipcm.h"
#include "../engine/platform/dummy.h"
#define COMMON_CHIP_DEBUG \
@ -550,6 +551,16 @@ void putDispatchChip(void* data, int type) {
COMMON_CHIP_DEBUG_BOOL;
break;
}
case DIV_SYSTEM_MULTIPCM: {
DivPlatformMultiPCM* ch=(DivPlatformMultiPCM*)data;
ImGui::Text("> MultiPCM");
COMMON_CHIP_DEBUG;
ImGui::Text("- delay: %d",ch->delay);
ImGui::Text("- curChan: %.2x",ch->curChan);
ImGui::Text("- curAddr: %.2x",ch->curAddr);
COMMON_CHIP_DEBUG_BOOL;
break;
}
default: {
DivDispatch* ch=(DivDispatch*)data;
COMMON_CHIP_DEBUG;
@ -1097,6 +1108,22 @@ void putDispatchChan(void* data, int chanNum, int type) {
ImGui::TextColored(ch->setPos?colorOn:colorOff,">> SetPos");
break;
}
case DIV_SYSTEM_MULTIPCM: {
DivPlatformMultiPCM::Channel* ch=(DivPlatformMultiPCM::Channel*)data;
ImGui::Text("> MultiPCM");
COMMON_CHAN_DEBUG;
ImGui::Text("- Sample: %d",ch->sample);
ImGui::Text("- freqHL: %.2x%.2x",ch->freqH,ch->freqL);
ImGui::Text("- lfo: %.2x",ch->lfo);
ImGui::Text("- vib: %.2x",ch->vib);
ImGui::Text("- am: %.2x",ch->am);
ImGui::Text("- pan: %.2x",ch->pan);
ImGui::Text("- macroVolMul: %.2x",ch->macroVolMul);
COMMON_CHAN_DEBUG_BOOL;
ImGui::TextColored(ch->writeCtrl?colorOn:colorOff,">> WriteCtrl");
ImGui::TextColored(ch->levelDirect?colorOn:colorOff,">> LevelDirect");
break;
}
default:
ImGui::Text("Unimplemented chip! Help!");
break;