mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-04 23:07:46 -04:00
simple ym2612 fixes
This commit is contained in:
parent
6d28fb5023
commit
151df6adf9
1 changed files with 9 additions and 28 deletions
|
@ -1695,20 +1695,17 @@ int YM2612Write_(unsigned int a, unsigned int v)
|
|||
|
||||
switch( a & 3 ){
|
||||
case 0: /* address port 0 */
|
||||
case 2: /* address port 1 */
|
||||
ym2612.OPN.ST.address = v;
|
||||
ym2612.addr_A1 = 0;
|
||||
ym2612.addr_A1 = (a & 2) >> 1;
|
||||
ret = 0;
|
||||
break;
|
||||
|
||||
case 1: /* data port 0 */
|
||||
if (ym2612.addr_A1 != 0) {
|
||||
ret=0;
|
||||
break; /* verified on real YM2608 */
|
||||
}
|
||||
case 1:
|
||||
case 3: /* data port */
|
||||
addr = ym2612.OPN.ST.address | ((int)ym2612.addr_A1 << 8);
|
||||
|
||||
addr = ym2612.OPN.ST.address;
|
||||
|
||||
switch( addr & 0xf0 )
|
||||
switch( addr & 0x1f0 )
|
||||
{
|
||||
case 0x20: /* 0x20-0x2f Mode */
|
||||
switch( addr )
|
||||
|
@ -1721,6 +1718,7 @@ int YM2612Write_(unsigned int a, unsigned int v)
|
|||
else
|
||||
{
|
||||
ym2612.OPN.lfo_inc = 0;
|
||||
ym2612.OPN.lfo_cnt = 0;
|
||||
}
|
||||
break;
|
||||
#if 0 // handled elsewhere
|
||||
|
@ -1790,23 +1788,6 @@ int YM2612Write_(unsigned int a, unsigned int v)
|
|||
ret = OPNWriteReg(addr,v);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2: /* address port 1 */
|
||||
ym2612.OPN.ST.address = v;
|
||||
ym2612.addr_A1 = 1;
|
||||
ret=0;
|
||||
break;
|
||||
|
||||
case 3: /* data port 1 */
|
||||
if (ym2612.addr_A1 != 1) {
|
||||
ret=0;
|
||||
break; /* verified on real YM2608 */
|
||||
}
|
||||
|
||||
addr = ym2612.OPN.ST.address | 0x100;
|
||||
|
||||
ret = OPNWriteReg(addr, v);
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue