mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2025-01-13 19:59:07 +01:00
[Core/Sound] fixed Timer B overflow handling
This commit is contained in:
parent
116b001fb2
commit
62c1d82145
@ -121,6 +121,8 @@ Genesis Plus GX 1.7.5 (xx/xx/xxxx) (Eke-Eke)
|
|||||||
* removed PSG boost noise feature & added optional high-quality PSG resampling
|
* removed PSG boost noise feature & added optional high-quality PSG resampling
|
||||||
* fixed YM2612 self-feedback regression introduced in 1.7.1
|
* fixed YM2612 self-feedback regression introduced in 1.7.1
|
||||||
* fixed YM2612 one-sample extra delay on operator1 output
|
* fixed YM2612 one-sample extra delay on operator1 output
|
||||||
|
* fixed YM2612 LFO PM implementation: block & keyscale code should not be modified by LFO (verified on YM2612 die)
|
||||||
|
* fixed YM2612 Timer B overflow handling
|
||||||
|
|
||||||
[Gamecube/Wii]
|
[Gamecube/Wii]
|
||||||
---------------
|
---------------
|
||||||
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.2 MiB |
Binary file not shown.
Before Width: | Height: | Size: 3.3 MiB After Width: | Height: | Size: 3.3 MiB |
@ -26,6 +26,7 @@
|
|||||||
**
|
**
|
||||||
** 09-04-2017 Eke-Eke (Genesis Plus GX):
|
** 09-04-2017 Eke-Eke (Genesis Plus GX):
|
||||||
** - fixed LFO PM implementation: block & keyscale code should not be modified by LFO (verified on YM2612 die)
|
** - fixed LFO PM implementation: block & keyscale code should not be modified by LFO (verified on YM2612 die)
|
||||||
|
** - fixed Timer B overflow handling
|
||||||
**
|
**
|
||||||
** 12-03-2017 Eke-Eke (Genesis Plus GX):
|
** 12-03-2017 Eke-Eke (Genesis Plus GX):
|
||||||
** - fixed Op1 self-feedback regression introduced by previous modifications
|
** - fixed Op1 self-feedback regression introduced by previous modifications
|
||||||
@ -801,10 +802,11 @@ INLINE void INTERNAL_TIMER_B(int step)
|
|||||||
ym2612.OPN.ST.status |= 0x02;
|
ym2612.OPN.ST.status |= 0x02;
|
||||||
|
|
||||||
/* reload the counter */
|
/* reload the counter */
|
||||||
if (ym2612.OPN.ST.TBL)
|
do
|
||||||
|
{
|
||||||
ym2612.OPN.ST.TBC += ym2612.OPN.ST.TBL;
|
ym2612.OPN.ST.TBC += ym2612.OPN.ST.TBL;
|
||||||
else
|
}
|
||||||
ym2612.OPN.ST.TBC = ym2612.OPN.ST.TBL;
|
while (ym2612.OPN.ST.TBC <= 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1526,11 +1528,11 @@ INLINE void OPNWriteMode(int r, int v)
|
|||||||
ym2612.OPN.LFO_AM = 126;
|
ym2612.OPN.LFO_AM = 126;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x24: /* timer A High 8*/
|
case 0x24: /* timer A High */
|
||||||
ym2612.OPN.ST.TA = (ym2612.OPN.ST.TA & 0x03)|(((int)v)<<2);
|
ym2612.OPN.ST.TA = (ym2612.OPN.ST.TA & 0x03)|(((int)v)<<2);
|
||||||
ym2612.OPN.ST.TAL = 1024 - ym2612.OPN.ST.TA;
|
ym2612.OPN.ST.TAL = 1024 - ym2612.OPN.ST.TA;
|
||||||
break;
|
break;
|
||||||
case 0x25: /* timer A Low 2*/
|
case 0x25: /* timer A Low */
|
||||||
ym2612.OPN.ST.TA = (ym2612.OPN.ST.TA & 0x3fc)|(v&3);
|
ym2612.OPN.ST.TA = (ym2612.OPN.ST.TA & 0x3fc)|(v&3);
|
||||||
ym2612.OPN.ST.TAL = 1024 - ym2612.OPN.ST.TA;
|
ym2612.OPN.ST.TAL = 1024 - ym2612.OPN.ST.TA;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user