deduplicate block/f-hi register writes

This commit is contained in:
wbcbz7 2025-08-13 19:50:28 +07:00
parent c41dca4325
commit 9753b8b95e

View file

@ -472,11 +472,11 @@ int opm_group_control_stream(opm_convert_context_t* ctx, opm_channel_t* chctx, i
// ext ch3 frequencies
case 0xA9: defrec.extch3.freq[0][0] = data; defrec.flags |= OPM_REC_EXTCH3_OP1_LOW; break;
case 0xAD: defrec.extch3.freq[1][0] = data; defrec.flags |= OPM_REC_EXTCH3_OP1_HIGH; break;
case 0xAD: if (defrec.extch3.freq[1][0] != data) { defrec.extch3.freq[1][0] = data; defrec.flags |= OPM_REC_EXTCH3_OP1_HIGH; } break;
case 0xA8: defrec.extch3.freq[0][1] = data; defrec.flags |= OPM_REC_EXTCH3_OP2_LOW; break;
case 0xAC: defrec.extch3.freq[1][1] = data; defrec.flags |= OPM_REC_EXTCH3_OP2_HIGH; break;
case 0xAC: if (defrec.extch3.freq[1][1] != data) { defrec.extch3.freq[1][1] = data; defrec.flags |= OPM_REC_EXTCH3_OP2_HIGH; } break;
case 0xAA: defrec.extch3.freq[0][2] = data; defrec.flags |= OPM_REC_EXTCH3_OP3_LOW; break;
case 0xAE: defrec.extch3.freq[1][2] = data; defrec.flags |= OPM_REC_EXTCH3_OP3_HIGH; break;
case 0xAE: if (defrec.extch3.freq[1][2] != data) { defrec.extch3.freq[1][2] = data; defrec.flags |= OPM_REC_EXTCH3_OP3_HIGH; } break;
default: break;
}
}
@ -569,8 +569,10 @@ int opm_group_fm_stream(opm_convert_context_t* ctx, opm_channel_t* chctx, int ch
defrec.fnum = data;
break;
case 0xA4:
defrec.flags |= OPM_REC_REGA4;
defrec.block = data;
if (defrec.block != data) {
defrec.flags |= OPM_REC_REGA4;
defrec.block = data;
}
break;
case 0xB0:
defrec.flags |= OPM_REC_REGB0;