fix .dmp saving for OPM and NES

to-do: which system is PCE, NES and OPM?
This commit is contained in:
tildearrow 2024-02-05 13:07:38 -05:00
parent 395a346cb4
commit 05a8b65ec6

View file

@ -3678,15 +3678,18 @@ bool DivInstrument::saveDMP(const char* path) {
// guess the system
switch (type) {
case DIV_INS_FM:
// we can't tell between Genesis, Neo Geo and Arcade ins type yet
// we can't tell Genesis and Neo Geo apart
w->writeC(0x02);
w->writeC(1);
break;
case DIV_INS_STD:
// we can't tell between SMS and NES ins type yet
w->writeC(0x03);
w->writeC(0);
break;
case DIV_INS_NES:
w->writeC(0x06);
w->writeC(0);
break;
case DIV_INS_GB:
w->writeC(0x04);
w->writeC(0);
@ -3696,7 +3699,7 @@ bool DivInstrument::saveDMP(const char* path) {
w->writeC(0);
break;
case DIV_INS_PCE:
w->writeC(0x06);
w->writeC(0x05);
w->writeC(0);
break;
case DIV_INS_OPLL:
@ -3704,6 +3707,10 @@ bool DivInstrument::saveDMP(const char* path) {
w->writeC(0x13);
w->writeC(1);
break;
case DIV_INS_OPM:
w->writeC(0x08);
w->writeC(1);
break;
case DIV_INS_OPZ:
// data will be lost
w->writeC(0x08);
@ -3720,7 +3727,7 @@ bool DivInstrument::saveDMP(const char* path) {
return false;
}
if (type==DIV_INS_FM || type==DIV_INS_OPLL || type==DIV_INS_OPZ) {
if (type==DIV_INS_FM || type==DIV_INS_OPM || type==DIV_INS_OPLL || type==DIV_INS_OPZ) {
w->writeC(fm.fms);
w->writeC(fm.fb);
w->writeC(fm.alg);