YM2608-LLE, part 19

fix YM2610 crash
fix chan osc
This commit is contained in:
tildearrow 2024-04-29 01:03:52 -05:00
parent 54d831ee9b
commit b04ed91297
5 changed files with 14 additions and 44 deletions

View file

@ -399,20 +399,12 @@ void DivPlatformYM2203::acquire_lle(short** buf, size_t len) {
}
if (!fm_lle.o_s && lastS) {
if (!fm_lle.o_sh1 && lastSH) {
dacVal2=dacVal;
}
if (!fm_lle.o_sh2 && lastSH2) {
dacVal2=dacVal;
}
if (fm_lle.o_sh1 && !lastSH) {
dacOut[0]=dacVal2^0x8000;
dacOut[0]=dacVal^0x8000;
have0=true;
}
if (fm_lle.o_sh2 && !lastSH2) {
dacOut[1]=dacVal2^0x8000;
if (!fm_lle.o_sh2 && lastSH2) {
dacOut[1]=dacVal^0x8000;
have1=true;
}

View file

@ -603,20 +603,12 @@ void DivPlatformYM2608::acquire_lle(short** buf, size_t len) {
}
if (!fm_lle.o_s && lastS) {
if (!fm_lle.o_sh1 && lastSH) {
dacVal2=dacVal;
}
if (!fm_lle.o_sh2 && lastSH2) {
dacVal2=dacVal;
}
if (fm_lle.o_sh1 && !lastSH) {
dacOut[0]=dacVal2^0x8000;
dacOut[0]=dacVal^0x8000;
have0=true;
}
if (fm_lle.o_sh2 && !lastSH2) {
dacOut[1]=dacVal2^0x8000;
if (!fm_lle.o_sh2 && lastSH2) {
dacOut[1]=dacVal^0x8000;
have1=true;
}

View file

@ -525,20 +525,12 @@ void DivPlatformYM2610::acquire_lle(short** buf, size_t len) {
}
if (!fm_lle.o_s && lastS) {
if (!fm_lle.o_sh1 && lastSH) {
dacVal2=dacVal;
}
if (!fm_lle.o_sh2 && lastSH2) {
dacVal2=dacVal;
}
if (fm_lle.o_sh1 && !lastSH) {
dacOut[0]=dacVal2^0x8000;
dacOut[0]=dacVal^0x8000;
have0=true;
}
if (fm_lle.o_sh2 && !lastSH2) {
dacOut[1]=dacVal2^0x8000;
if (!fm_lle.o_sh2 && lastSH2) {
dacOut[1]=dacVal^0x8000;
have1=true;
}

View file

@ -594,20 +594,12 @@ void DivPlatformYM2610B::acquire_lle(short** buf, size_t len) {
}
if (!fm_lle.o_s && lastS) {
if (!fm_lle.o_sh1 && lastSH) {
dacVal2=dacVal;
}
if (!fm_lle.o_sh2 && lastSH2) {
dacVal2=dacVal;
}
if (fm_lle.o_sh1 && !lastSH) {
dacOut[0]=dacVal2^0x8000;
dacOut[0]=dacVal^0x8000;
have0=true;
}
if (fm_lle.o_sh2 && !lastSH2) {
dacOut[1]=dacVal2^0x8000;
if (!fm_lle.o_sh2 && lastSH2) {
dacOut[1]=dacVal^0x8000;
have1=true;
}

View file

@ -116,6 +116,8 @@ class DivPlatformYM2610Base: public DivPlatformOPN {
OPN2_Reset(&fm_nuked);
OPN2_SetChipType(&fm_nuked,ym3438_mode_opn);
memset(&fm_lle,0,sizeof(fmopna_2610_t));
if (useCombo==2) {
fm_lle.input.cs=1;
fm_lle.input.rd=0;