Intellivision Update Cartridge

Add Ms Pac Man (doesnt work yet)
Fix Banking
This commit is contained in:
alyosha-tas 2016-12-22 18:10:39 -05:00 committed by GitHub
parent ebe011f43a
commit 81033c1120
1 changed files with 42 additions and 27 deletions

View File

@ -64,134 +64,149 @@ namespace BizHawk.Emulation.Cores.Intellivision
switch (mapper)
{
case 0:
if (addr>=0x5000 && addr<0x6FFF)
if (addr>=0x5000 && addr<=0x6FFF)
{
return Data[addr-0x5000];
}
else if (addr>=0xD000 && addr<0xDFFF)
else if (addr>=0xD000 && addr<=0xDFFF)
{
return Data[addr - 0xB000];
}
else if (addr>=0xF000 && addr<0xFFFF)
else if (addr>=0xF000 && addr<=0xFFFF)
{
return Data[addr - 0xC000];
}
break;
case 1:
if (addr >= 0x5000 && addr < 0x6FFF)
if (addr >= 0x5000 && addr <= 0x6FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0xD000 && addr < 0xFFFF)
else if (addr >= 0xD000 && addr <= 0xFFFF)
{
return Data[addr - 0xB000];
}
break;
case 2:
if (addr >= 0x5000 && addr < 0x6FFF)
if (addr >= 0x5000 && addr <= 0x6FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0x9000 && addr < 0xBFFF)
else if (addr >= 0x9000 && addr <= 0xBFFF)
{
return Data[addr - 0x7000];
}
else if (addr >= 0xD000 && addr < 0xDFFF)
else if (addr >= 0xD000 && addr <= 0xDFFF)
{
return Data[addr - 0x8000];
}
break;
case 3:
if (addr >= 0x5000 && addr < 0x6FFF)
if (addr >= 0x5000 && addr <= 0x6FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0x9000 && addr < 0xAFFF)
else if (addr >= 0x9000 && addr <= 0xAFFF)
{
return Data[addr - 0x7000];
}
else if (addr >= 0xD000 && addr < 0xDFFF)
else if (addr >= 0xD000 && addr <= 0xDFFF)
{
return Data[addr - 0x9000];
}
else if (addr >= 0xF000 && addr < 0xFFFF)
else if (addr >= 0xF000 && addr <= 0xFFFF)
{
return Data[addr - 0xA000];
}
break;
case 4:
if (addr >= 0x5000 && addr < 0x6FFF)
if (addr >= 0x5000 && addr <= 0x6FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0xD000 && addr < 0xD3FF)
else if (addr >= 0xD000 && addr <= 0xD3FF)
{
return Cart_Ram[addr - 0xD000];
}
break;
case 5:
if (addr >= 0x5000 && addr < 0x7FFF)
if (addr >= 0x5000 && addr <= 0x7FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0x9000 && addr < 0xBFFF)
else if (addr >= 0x9000 && addr <= 0xBFFF)
{
return Data[addr - 0x6000];
}
break;
case 6:
if (addr >= 0x6000 && addr < 0x7FFF)
if (addr >= 0x6000 && addr <= 0x7FFF)
{
return Data[addr - 0x6000];
}
break;
case 7:
if (addr >= 0x4800 && addr < 0x67FF)
if (addr >= 0x4800 && addr <= 0x67FF)
{
return Data[addr - 0x4800];
}
break;
case 8:
if (addr >= 0x5000 && addr < 0x5FFF)
if (addr >= 0x5000 && addr <= 0x5FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0x7000 && addr < 0x7FFF)
else if (addr >= 0x7000 && addr <= 0x7FFF)
{
return Data[addr - 0x6000];
}
break;
case 9:
if (addr >= 0x5000 && addr < 0x6FFF)
if (addr >= 0x5000 && addr <= 0x6FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0x9000 && addr < 0xAFFF)
else if (addr >= 0x9000 && addr <= 0xAFFF)
{
return Data[addr - 0x7000];
}
else if (addr >= 0xD000 && addr < 0xDFFF)
else if (addr >= 0xD000 && addr <= 0xDFFF)
{
return Data[addr - 0x9000];
}
else if (addr >= 0xF000 && addr < 0xFFFF)
else if (addr >= 0xF000 && addr <= 0xFFFF)
{
return Data[addr - 0xA000];
}
else if (addr >= 0x8800 && addr < 0x8FFF)
else if (addr >= 0x8800 && addr <= 0x8FFF)
{
return Cart_Ram[addr - 0x8800];
}
break;
case 10:
if (addr >= 0x5000 && addr <= 0x6FFF)
{
return Data[addr - 0x5000];
}
else if (addr >= 0x8800 && addr <= 0xB7FF)
{
return Data[addr - 0x6800];
}
else if (addr >= 0xD000 && addr <= 0xFFFF)
{
return Data[addr - 0x8000];
}
break;
}
@ -203,14 +218,14 @@ namespace BizHawk.Emulation.Cores.Intellivision
switch (mapper)
{
case 4:
if (addr >= 0xD000 && addr < 0xD3FF)
if (addr >= 0xD000 && addr <= 0xD3FF)
{
Cart_Ram[addr - 0xD000] = value;
return true;
}
break;
case 9:
if (addr >= 0x8800 && addr < 0x8FFF)
if (addr >= 0x8800 && addr <= 0x8FFF)
{
Cart_Ram[addr - 0x8800] = value;
return true;