YM2608-LLE, part 19
fix YM2610 crash fix chan osc
This commit is contained in:
parent
54d831ee9b
commit
b04ed91297
|
@ -399,20 +399,12 @@ void DivPlatformYM2203::acquire_lle(short** buf, size_t len) {
|
||||||
}
|
}
|
||||||
if (!fm_lle.o_s && lastS) {
|
if (!fm_lle.o_s && lastS) {
|
||||||
if (!fm_lle.o_sh1 && lastSH) {
|
if (!fm_lle.o_sh1 && lastSH) {
|
||||||
dacVal2=dacVal;
|
dacOut[0]=dacVal^0x8000;
|
||||||
}
|
|
||||||
|
|
||||||
if (!fm_lle.o_sh2 && lastSH2) {
|
|
||||||
dacVal2=dacVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fm_lle.o_sh1 && !lastSH) {
|
|
||||||
dacOut[0]=dacVal2^0x8000;
|
|
||||||
have0=true;
|
have0=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fm_lle.o_sh2 && !lastSH2) {
|
if (!fm_lle.o_sh2 && lastSH2) {
|
||||||
dacOut[1]=dacVal2^0x8000;
|
dacOut[1]=dacVal^0x8000;
|
||||||
have1=true;
|
have1=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -603,20 +603,12 @@ void DivPlatformYM2608::acquire_lle(short** buf, size_t len) {
|
||||||
}
|
}
|
||||||
if (!fm_lle.o_s && lastS) {
|
if (!fm_lle.o_s && lastS) {
|
||||||
if (!fm_lle.o_sh1 && lastSH) {
|
if (!fm_lle.o_sh1 && lastSH) {
|
||||||
dacVal2=dacVal;
|
dacOut[0]=dacVal^0x8000;
|
||||||
}
|
|
||||||
|
|
||||||
if (!fm_lle.o_sh2 && lastSH2) {
|
|
||||||
dacVal2=dacVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fm_lle.o_sh1 && !lastSH) {
|
|
||||||
dacOut[0]=dacVal2^0x8000;
|
|
||||||
have0=true;
|
have0=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fm_lle.o_sh2 && !lastSH2) {
|
if (!fm_lle.o_sh2 && lastSH2) {
|
||||||
dacOut[1]=dacVal2^0x8000;
|
dacOut[1]=dacVal^0x8000;
|
||||||
have1=true;
|
have1=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -525,20 +525,12 @@ void DivPlatformYM2610::acquire_lle(short** buf, size_t len) {
|
||||||
}
|
}
|
||||||
if (!fm_lle.o_s && lastS) {
|
if (!fm_lle.o_s && lastS) {
|
||||||
if (!fm_lle.o_sh1 && lastSH) {
|
if (!fm_lle.o_sh1 && lastSH) {
|
||||||
dacVal2=dacVal;
|
dacOut[0]=dacVal^0x8000;
|
||||||
}
|
|
||||||
|
|
||||||
if (!fm_lle.o_sh2 && lastSH2) {
|
|
||||||
dacVal2=dacVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fm_lle.o_sh1 && !lastSH) {
|
|
||||||
dacOut[0]=dacVal2^0x8000;
|
|
||||||
have0=true;
|
have0=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fm_lle.o_sh2 && !lastSH2) {
|
if (!fm_lle.o_sh2 && lastSH2) {
|
||||||
dacOut[1]=dacVal2^0x8000;
|
dacOut[1]=dacVal^0x8000;
|
||||||
have1=true;
|
have1=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -594,20 +594,12 @@ void DivPlatformYM2610B::acquire_lle(short** buf, size_t len) {
|
||||||
}
|
}
|
||||||
if (!fm_lle.o_s && lastS) {
|
if (!fm_lle.o_s && lastS) {
|
||||||
if (!fm_lle.o_sh1 && lastSH) {
|
if (!fm_lle.o_sh1 && lastSH) {
|
||||||
dacVal2=dacVal;
|
dacOut[0]=dacVal^0x8000;
|
||||||
}
|
|
||||||
|
|
||||||
if (!fm_lle.o_sh2 && lastSH2) {
|
|
||||||
dacVal2=dacVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fm_lle.o_sh1 && !lastSH) {
|
|
||||||
dacOut[0]=dacVal2^0x8000;
|
|
||||||
have0=true;
|
have0=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fm_lle.o_sh2 && !lastSH2) {
|
if (!fm_lle.o_sh2 && lastSH2) {
|
||||||
dacOut[1]=dacVal2^0x8000;
|
dacOut[1]=dacVal^0x8000;
|
||||||
have1=true;
|
have1=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -116,6 +116,8 @@ class DivPlatformYM2610Base: public DivPlatformOPN {
|
||||||
OPN2_Reset(&fm_nuked);
|
OPN2_Reset(&fm_nuked);
|
||||||
OPN2_SetChipType(&fm_nuked,ym3438_mode_opn);
|
OPN2_SetChipType(&fm_nuked,ym3438_mode_opn);
|
||||||
|
|
||||||
|
memset(&fm_lle,0,sizeof(fmopna_2610_t));
|
||||||
|
|
||||||
if (useCombo==2) {
|
if (useCombo==2) {
|
||||||
fm_lle.input.cs=1;
|
fm_lle.input.cs=1;
|
||||||
fm_lle.input.rd=0;
|
fm_lle.input.rd=0;
|
||||||
|
|
Loading…
Reference in a new issue