Atari 2600: fix audio in commando raid

This commit is contained in:
alyosha-tas 2020-01-02 19:28:28 -05:00
parent dd419e6768
commit f6695ad87c
2 changed files with 12 additions and 41 deletions

View File

@ -120,18 +120,17 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
One5_L(); One5_L();
on_L = One4_L(); on_L = One4_L();
break; break;
case 0x01: case 0x01:
// Both run, but the 5 bit is ignored // Both run, but the 5 bit is ignored
on_L = Run4_L(); on_L = Run4_L();
//Run5(); Run5_L();
break; break;
case 0x02: case 0x02:
if ((sr5_L & 0x0f) == 0 || (sr5_L & 0x0f) == 0x0f) if (((sr5_L & 0x0f) == 0) || ((sr5_L & 0x0f) == 0x0f))
{ {
on_L = Run4_L(); on_L = Run4_L();
Run5_L();
} }
Run5_L(); Run5_L();
break; break;
case 0x03: case 0x03:
@ -139,21 +138,17 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{ {
on_L = Run4_L(); on_L = Run4_L();
} }
break; break;
case 0x04: case 0x04:
Run5_L(); Run5_L();
One4_L(); One4_L();
on_L = Run1_L(); on_L = Run1_L();
break; break;
case 0x05: case 0x05:
One5_L(); One5_L();
Run4_L(); Run4_L();
on_L = Run1_L(); on_L = Run1_L();
break; break;
case 0x06: case 0x06:
case 0x0a: case 0x0a:
Run5_L(); Run5_L();
@ -165,14 +160,11 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{ {
on_L = true; on_L = true;
} }
break; break;
case 0x07: case 0x07:
case 0x09: case 0x09:
on_L = Run5_L(); on_L = Run5_L();
break; break;
case 0x08: case 0x08:
on_L = Run9_L(); on_L = Run9_L();
break; break;
@ -182,14 +174,12 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{ {
on_L = Run1_L(); on_L = Run1_L();
} }
break; break;
case 0x0e: case 0x0e:
if (Run3_L()) if (Run3_L())
{ {
goto case 0x06; goto case 0x06;
} }
break; break;
case 0x0f: case 0x0f:
// poly5 output to div 6 // poly5 output to div 6
@ -280,18 +270,17 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
One5_R(); One5_R();
on_R = One4_R(); on_R = One4_R();
break; break;
case 0x01: case 0x01:
// Both run, but the 5 bit is ignored // Both run, but the 5 bit is ignored
on_R = Run4_R(); on_R = Run4_R();
//Run5(); Run5_R();
break; break;
case 0x02: case 0x02:
if ((sr5_R & 0x0f) == 0 || (sr5_R & 0x0f) == 0x0f) if (((sr5_R & 0x0f) == 0) || ((sr5_R & 0x0f) == 0x0f))
{ {
on_R = Run4_R(); on_R = Run4_R();
Run5_R();
} }
Run5_R(); Run5_R();
break; break;
case 0x03: case 0x03:
@ -299,21 +288,17 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{ {
on_R = Run4_R(); on_R = Run4_R();
} }
break; break;
case 0x04: case 0x04:
Run5_R(); Run5_R();
One4_R(); One4_R();
on_R = Run1_R(); on_R = Run1_R();
break; break;
case 0x05: case 0x05:
One5_R(); One5_R();
Run4_R(); Run4_R();
on_R = Run1_R(); on_R = Run1_R();
break; break;
case 0x06: case 0x06:
case 0x0a: case 0x0a:
Run5_R(); Run5_R();
@ -327,12 +312,10 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
} }
break; break;
case 0x07: case 0x07:
case 0x09: case 0x09:
on_R = Run5_R(); on_R = Run5_R();
break; break;
case 0x08: case 0x08:
on_R = Run9_R(); on_R = Run9_R();
break; break;
@ -342,14 +325,12 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
{ {
on_R = Run1_R(); on_R = Run1_R();
} }
break; break;
case 0x0e: case 0x0e:
if (Run3_R()) if (Run3_R())
{ {
goto case 0x06; goto case 0x06;
} }
break; break;
case 0x0f: case 0x0f:
// poly5 output to div 6 // poly5 output to div 6

View File

@ -110,18 +110,17 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
One5(); One5();
on = One4(); on = One4();
break; break;
case 0x01: case 0x01:
// Both run, but the 5 bit is ignored // Both run, but the 5 bit is ignored
on = Run4(); on = Run4();
//Run5(); Run5();
break; break;
case 0x02: case 0x02:
if ((sr5 & 0x0f) == 0 || (sr5 & 0x0f) == 0x0f) if ((sr5 & 0x0f) == 0 || (sr5 & 0x0f) == 0x0f)
{ {
on = Run4(); on = Run4();
Run5();
} }
Run5(); Run5();
break; break;
case 0x03: case 0x03:
@ -129,21 +128,17 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
{ {
on = Run4(); on = Run4();
} }
break; break;
case 0x04: case 0x04:
Run5(); Run5();
One4(); One4();
on = Run1(); on = Run1();
break; break;
case 0x05: case 0x05:
One5(); One5();
Run4(); Run4();
on = Run1(); on = Run1();
break; break;
case 0x06: case 0x06:
case 0x0a: case 0x0a:
Run5(); Run5();
@ -155,14 +150,11 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
{ {
on = true; on = true;
} }
break; break;
case 0x07: case 0x07:
case 0x09: case 0x09:
on = Run5(); on = Run5();
break; break;
case 0x08: case 0x08:
on = Run9(); on = Run9();
break; break;
@ -172,14 +164,12 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
{ {
on = Run1(); on = Run1();
} }
break; break;
case 0x0e: case 0x0e:
if (Run3()) if (Run3())
{ {
goto case 0x06; goto case 0x06;
} }
break; break;
case 0x0f: case 0x0f:
// poly5 output to div 6 // poly5 output to div 6