forked from sin365/AxibugEmuOnline
Compare commits
No commits in common. "5064465c2a70992dfe102781ba19719056d72098" and "273015f95b214685a23b6d2f8c7e6dda1655cf1f" have entirely different histories.
5064465c2a
...
273015f95b
@ -1,6 +1,4 @@
|
|||||||
using System;
|
namespace VirtualNes.Core
|
||||||
|
|
||||||
namespace VirtualNes.Core
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
@ -178,31 +176,28 @@ namespace VirtualNes.Core
|
|||||||
return sda;
|
return sda;
|
||||||
}
|
}
|
||||||
|
|
||||||
public unsafe void Load(byte* p)
|
public void Load(byte[] p)
|
||||||
{
|
{
|
||||||
//now_state = *((INT*)&p[0]);
|
//now_state = *((INT*)&p[0]);
|
||||||
now_state = *(int*)p;
|
|
||||||
//next_state = *((INT*)&p[4]);
|
//next_state = *((INT*)&p[4]);
|
||||||
next_state = *(int*)p[4];
|
|
||||||
//bitcnt = *((INT*)&p[8]);
|
//bitcnt = *((INT*)&p[8]);
|
||||||
bitcnt = *(int*)p[8];
|
//addr = p[12];
|
||||||
addr = p[12];
|
//data = p[13];
|
||||||
data = p[13];
|
//sda = p[14];
|
||||||
sda = p[14];
|
//scl_old = p[15];
|
||||||
scl_old = p[15];
|
//sda_old = p[16];
|
||||||
sda_old = p[16];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public unsafe void Save(byte* p)
|
public void Save(byte[] p)
|
||||||
{
|
{
|
||||||
*((int*)&p[0]) = now_state;
|
//*((INT*)&p[0]) = now_state;
|
||||||
*((int*)&p[4]) = next_state;
|
//*((INT*)&p[4]) = next_state;
|
||||||
*((int*)&p[8]) = bitcnt;
|
//*((INT*)&p[8]) = bitcnt;
|
||||||
p[12] = addr;
|
//p[12] = addr;
|
||||||
p[13] = data;
|
//p[13] = data;
|
||||||
p[14] = sda;
|
//p[14] = sda;
|
||||||
p[15] = scl_old;
|
//p[15] = scl_old;
|
||||||
p[16] = sda_old;
|
//p[16] = sda_old;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,31 +424,30 @@ namespace VirtualNes.Core
|
|||||||
return sda;
|
return sda;
|
||||||
}
|
}
|
||||||
|
|
||||||
public unsafe void Load(byte* p)
|
public void Load(byte[] p)
|
||||||
{
|
{
|
||||||
//now_state = *((INT*)&p[0]);
|
//now_state = *((INT*)&p[0]);
|
||||||
next_state = *((int*)&p[4]);
|
//next_state = *((INT*)&p[4]);
|
||||||
//bitcnt = *((INT*)&p[8]);
|
//bitcnt = *((INT*)&p[8]);
|
||||||
bitcnt = *((int*)&p[8]);
|
//addr = p[12];
|
||||||
addr = p[12];
|
//data = p[13];
|
||||||
data = p[13];
|
//rw = p[14];
|
||||||
rw = p[14];
|
//sda = p[15];
|
||||||
sda = p[15];
|
//scl_old = p[16];
|
||||||
scl_old = p[16];
|
//sda_old = p[17];
|
||||||
sda_old = p[17];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public unsafe void Save(byte* p)
|
public void Save(byte[] p)
|
||||||
{
|
{
|
||||||
*((int*)&p[0]) = now_state;
|
//*((INT*)&p[0]) = now_state;
|
||||||
*((int*)&p[4]) = next_state;
|
//*((INT*)&p[4]) = next_state;
|
||||||
*((int*)&p[8]) = bitcnt;
|
//*((INT*)&p[8]) = bitcnt;
|
||||||
p[12] = addr;
|
//p[12] = addr;
|
||||||
p[13] = data;
|
//p[13] = data;
|
||||||
p[14] = rw;
|
//p[14] = rw;
|
||||||
p[15] = sda;
|
//p[15] = sda;
|
||||||
p[16] = scl_old;
|
//p[16] = scl_old;
|
||||||
p[17] = sda_old;
|
//p[17] = sda_old;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper006 FFE F4xxx //
|
// Mapper006 FFE F4xxx //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -93,17 +92,15 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper006::SaveState(LPBYTE p)
|
//void Mapper006::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
//*(INT*)&p[1] = irq_counter;
|
//*(INT*)&p[1] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper006::LoadState(LPBYTE p)
|
//void Mapper006::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
//irq_counter = *(INT*)&p[1];
|
//irq_counter = *(INT*)&p[1];
|
||||||
irq_counter = BitConverter.ToInt32(p, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.Core.CPU;
|
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
using INT = System.Int32;
|
using INT = System.Int32;
|
||||||
@ -276,55 +275,51 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper012::SaveState(LPBYTE p)
|
//void Mapper012::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[8] = prg0;
|
//p[8] = prg0;
|
||||||
p[9] = prg1;
|
//p[9] = prg1;
|
||||||
p[10] = chr01;
|
//p[10] = chr01;
|
||||||
p[11] = chr23;
|
//p[11] = chr23;
|
||||||
p[12] = chr4;
|
//p[12] = chr4;
|
||||||
p[13] = chr5;
|
//p[13] = chr5;
|
||||||
p[14] = chr6;
|
//p[14] = chr6;
|
||||||
p[15] = chr7;
|
//p[15] = chr7;
|
||||||
p[16] = irq_enable;
|
//p[16] = irq_enable;
|
||||||
p[17] = (BYTE)irq_counter;
|
//p[17] = (BYTE)irq_counter;
|
||||||
p[18] = irq_latch;
|
//p[18] = irq_latch;
|
||||||
p[19] = irq_request;
|
//p[19] = irq_request;
|
||||||
p[20] = irq_preset;
|
//p[20] = irq_preset;
|
||||||
p[21] = irq_preset_vbl;
|
//p[21] = irq_preset_vbl;
|
||||||
//*((DWORD*)&p[22]) = vb0;
|
//*((DWORD*)&p[22]) = vb0;
|
||||||
BitConverter.GetBytes(vb0).CopyTo(p,22);
|
|
||||||
//*((DWORD*)&p[26]) = vb1;
|
//*((DWORD*)&p[26]) = vb1;
|
||||||
BitConverter.GetBytes(vb1).CopyTo(p,26);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper012::LoadState(LPBYTE p)
|
//void Mapper012::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
prg0 = p[8];
|
//prg0 = p[8];
|
||||||
prg1 = p[9];
|
//prg1 = p[9];
|
||||||
chr01 = p[10];
|
//chr01 = p[10];
|
||||||
chr23 = p[11];
|
//chr23 = p[11];
|
||||||
chr4 = p[12];
|
//chr4 = p[12];
|
||||||
chr5 = p[13];
|
//chr5 = p[13];
|
||||||
chr6 = p[14];
|
//chr6 = p[14];
|
||||||
chr7 = p[15];
|
//chr7 = p[15];
|
||||||
irq_enable = p[16];
|
//irq_enable = p[16];
|
||||||
irq_counter = (byte)p[17];
|
//irq_counter = (INT)p[17];
|
||||||
irq_latch = p[18];
|
//irq_latch = p[18];
|
||||||
irq_request = p[19];
|
//irq_request = p[19];
|
||||||
irq_preset = p[20];
|
//irq_preset = p[20];
|
||||||
irq_preset_vbl = p[21];
|
//irq_preset_vbl = p[21];
|
||||||
//vb0 = *((DWORD*)&p[22]);
|
//vb0 = *((DWORD*)&p[22]);
|
||||||
vb0 = BitConverter.ToUInt32(p, 22);
|
|
||||||
//vb1 = *((DWORD*)&p[26]);
|
//vb1 = *((DWORD*)&p[26]);
|
||||||
vb1 = BitConverter.ToUInt32(p, 26);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -368,64 +368,55 @@ namespace VirtualNes.Core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public unsafe override void SaveState(byte[] buffer)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
fixed (byte* p = buffer)
|
//p[0] = reg[0];
|
||||||
{
|
//p[1] = reg[1];
|
||||||
p[0] = reg[0];
|
//p[2] = reg[2];
|
||||||
p[1] = reg[1];
|
//p[3] = irq_enable;
|
||||||
p[2] = reg[2];
|
//*(INT*)&p[4] = irq_counter;
|
||||||
p[3] = irq_enable;
|
//*(INT*)&p[8] = irq_latch;
|
||||||
*(INT*)&p[4] = irq_counter;
|
|
||||||
*(INT*)&p[8] = irq_latch;
|
|
||||||
|
|
||||||
if (eeprom_type == 0)
|
//if (eeprom_type == 0)
|
||||||
{
|
//{
|
||||||
x24c01.Save(&p[16]);
|
// x24c01.Save(&p[16]);
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
if (eeprom_type == 1)
|
//if (eeprom_type == 1)
|
||||||
{
|
//{
|
||||||
x24c02.Save(&p[16]);
|
// x24c02.Save(&p[16]);
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
if (eeprom_type == 2)
|
//if (eeprom_type == 2)
|
||||||
{
|
//{
|
||||||
x24c02.Save(&p[16]);
|
// x24c02.Save(&p[16]);
|
||||||
x24c01.Save(&p[48]);
|
// x24c01.Save(&p[48]);
|
||||||
}
|
//}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public unsafe override void LoadState(byte[] buffer)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
fixed (byte* p = buffer)
|
//reg[0] = p[0];
|
||||||
{
|
//reg[1] = p[1];
|
||||||
reg[0] = p[0];
|
//reg[2] = p[2];
|
||||||
reg[1] = p[1];
|
//irq_enable = p[3];
|
||||||
reg[2] = p[2];
|
//irq_counter = *(INT*)&p[4];
|
||||||
irq_enable = p[3];
|
//irq_latch = *(INT*)&p[8];
|
||||||
irq_counter = *(INT*)&p[4];
|
//if (eeprom_type == 0)
|
||||||
irq_latch = *(INT*)&p[8];
|
//{
|
||||||
if (eeprom_type == 0)
|
// x24c01.Load(&p[16]);
|
||||||
{
|
//}
|
||||||
x24c01.Load(&p[16]);
|
//else
|
||||||
}
|
//if (eeprom_type == 1)
|
||||||
else
|
//{
|
||||||
if (eeprom_type == 1)
|
// x24c02.Load(&p[16]);
|
||||||
{
|
//}
|
||||||
//x24c02.Load(&p[16]);
|
//else
|
||||||
x24c02.Load(p + 16);
|
//if (eeprom_type == 2)
|
||||||
}
|
//{
|
||||||
else
|
// x24c02.Load(&p[16]);
|
||||||
if (eeprom_type == 2)
|
// x24c01.Load(&p[48]);
|
||||||
{
|
//}
|
||||||
//x24c02.Load(&p[16]);
|
|
||||||
//x24c01.Load(&p[48]);
|
|
||||||
x24c02.Load(p+16);
|
|
||||||
x24c01.Load(p+48);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.Core.CPU;
|
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
using INT = System.Int32;
|
using INT = System.Int32;
|
||||||
@ -105,21 +104,17 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper017::SaveState(LPBYTE p)
|
//void Mapper017::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
//*(INT*)&p[1] = irq_counter;
|
//*(INT*)&p[1] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 1);
|
|
||||||
//*(INT*)&p[5] = irq_latch;
|
//*(INT*)&p[5] = irq_latch;
|
||||||
BitConverter.GetBytes(irq_latch).CopyTo(p, 5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper017::LoadState(LPBYTE p)
|
//void Mapper017::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
//irq_counter = *(INT*)&p[1];
|
//irq_counter = *(INT*)&p[1];
|
||||||
irq_counter = BitConverter.ToInt32(p, 1);
|
|
||||||
//irq_latch = *(INT*)&p[5];
|
//irq_latch = *(INT*)&p[5];
|
||||||
irq_latch = BitConverter.ToInt32(p, 5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper018 Jaleco SS8806 //
|
// Mapper018 Jaleco SS8806 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -246,31 +245,27 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper018::SaveState(LPBYTE p)
|
//void Mapper018::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 11; i++)
|
//for (INT i = 0; i < 11; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[11] = irq_enable;
|
//p[11] = irq_enable;
|
||||||
p[12] = irq_mode;
|
//p[12] = irq_mode;
|
||||||
//*(INT*)&p[13] = irq_counter;
|
//*(INT*)&p[13] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 13);
|
|
||||||
//*(INT*)&p[17] = irq_latch;
|
//*(INT*)&p[17] = irq_latch;
|
||||||
BitConverter.GetBytes(irq_latch).CopyTo(p, 17);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper018::LoadState(LPBYTE p)
|
//void Mapper018::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 11; i++)
|
//for (INT i = 0; i < 11; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
irq_enable = p[11];
|
//irq_enable = p[11];
|
||||||
irq_mode = p[12];
|
//irq_mode = p[12];
|
||||||
//irq_counter = *(INT*)&p[13];
|
//irq_counter = *(INT*)&p[13];
|
||||||
irq_counter = BitConverter.ToInt32(p, 13);
|
|
||||||
//irq_latch = *(INT*)&p[17];
|
//irq_latch = *(INT*)&p[17];
|
||||||
irq_latch = BitConverter.ToInt32(p, 17);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper019 Namcot 106 //
|
// Mapper019 Namcot 106 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -387,29 +386,25 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper019::SaveState(LPBYTE p)
|
//void Mapper019::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = reg[0];
|
// p[0] = reg[0];
|
||||||
p[1] = reg[1];
|
// p[1] = reg[1];
|
||||||
p[2] = reg[2];
|
// p[2] = reg[2];
|
||||||
p[3] = irq_enable;
|
// p[3] = irq_enable;
|
||||||
//*(WORD*)&p[4] = irq_counter;
|
// *(WORD*)&p[4] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 4);
|
|
||||||
|
|
||||||
//::memcpy(&p[8], exram, sizeof(exram));
|
//::memcpy(&p[8], exram, sizeof(exram));
|
||||||
Array.Copy(exram, p, exram.Length);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper019::LoadState(LPBYTE p)
|
//void Mapper019::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
reg[0] = p[0];
|
// reg[0] = p[0];
|
||||||
reg[1] = p[1];
|
// reg[1] = p[1];
|
||||||
reg[2] = p[2];
|
// reg[2] = p[2];
|
||||||
irq_enable = p[3];
|
// irq_enable = p[3];
|
||||||
//irq_counter = *(WORD*)&p[4];
|
// irq_counter = *(WORD*)&p[4];
|
||||||
irq_counter = BitConverter.ToUInt16(p, 4);
|
|
||||||
//::memcpy(exram, &p[8], sizeof(exram));
|
//::memcpy(exram, &p[8], sizeof(exram));
|
||||||
Array.Copy(p,exram,exram.Length);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////
|
//////////////////
|
||||||
// Mapper021 Konami VRC4 (Address mask $F006 or $F0C0) //
|
// Mapper021 Konami VRC4 (Address mask $F006 or $F0C0) //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -224,29 +223,27 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper021::SaveState(LPBYTE p)
|
//void Mapper021::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 9; i++)
|
//for (INT i = 0; i < 9; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[9] = irq_enable;
|
//p[9] = irq_enable;
|
||||||
p[10] = irq_counter;
|
//p[10] = irq_counter;
|
||||||
p[11] = irq_latch;
|
//p[11] = irq_latch;
|
||||||
//*(INT*)&p[12] = irq_clock;
|
//*(INT*)&p[12] = irq_clock;
|
||||||
BitConverter.GetBytes(irq_clock).CopyTo(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper021::LoadState(LPBYTE p)
|
//void Mapper021::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 9; i++)
|
//for (INT i = 0; i < 9; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
irq_enable = p[9];
|
//irq_enable = p[9];
|
||||||
irq_counter = p[10];
|
//irq_counter = p[10];
|
||||||
irq_latch = p[11];
|
//irq_latch = p[11];
|
||||||
//irq_clock = *(INT*)&p[12];
|
//irq_clock = *(INT*)&p[12];
|
||||||
irq_clock = BitConverter.ToInt32(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper023 Konami VRC2 type B //
|
// Mapper023 Konami VRC2 type B //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -240,29 +239,27 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper023::SaveState(LPBYTE p)
|
//void Mapper023::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 9; i++)
|
//for (INT i = 0; i < 9; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[9] = irq_enable;
|
//p[9] = irq_enable;
|
||||||
p[10] = irq_counter;
|
//p[10] = irq_counter;
|
||||||
p[11] = irq_latch;
|
//p[11] = irq_latch;
|
||||||
//*(INT*)&p[12] = irq_clock;
|
//*(INT*)&p[12] = irq_clock;
|
||||||
BitConverter.GetBytes(irq_clock).CopyTo(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper023::LoadState(LPBYTE p)
|
//void Mapper023::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 9; i++)
|
//for (INT i = 0; i < 9; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
irq_enable = p[9];
|
//irq_enable = p[9];
|
||||||
irq_counter = p[10];
|
//irq_counter = p[10];
|
||||||
irq_latch = p[11];
|
//irq_latch = p[11];
|
||||||
//irq_clock = *(INT*)&p[12];
|
//irq_clock = *(INT*)&p[12];
|
||||||
irq_clock = BitConverter.ToInt32(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper024 Konami VRC6 (Normal) //
|
// Mapper024 Konami VRC6 (Normal) //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -150,21 +149,19 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper024::SaveState(LPBYTE p)
|
//void Mapper024::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
p[1] = irq_counter;
|
//p[1] = irq_counter;
|
||||||
p[2] = irq_latch;
|
//p[2] = irq_latch;
|
||||||
//*(INT*)&p[3] = irq_clock;
|
//*(INT*)&p[3] = irq_clock;
|
||||||
BitConverter.GetBytes(irq_clock).CopyTo(p, 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper024::LoadState(LPBYTE p)
|
//void Mapper024::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
irq_counter = p[1];
|
//irq_counter = p[1];
|
||||||
irq_latch = p[2];
|
//irq_latch = p[2];
|
||||||
//irq_clock = *(INT*)&p[3];
|
//irq_clock = *(INT*)&p[3];
|
||||||
irq_clock = BitConverter.ToInt32(p, 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper025 Konami VRC4 (Normal) //
|
// Mapper025 Konami VRC4 (Normal) //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -249,31 +248,29 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper025::SaveState(LPBYTE p)
|
//void Mapper025::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 11; i++)
|
//for (INT i = 0; i < 11; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[11] = irq_enable;
|
//p[11] = irq_enable;
|
||||||
p[12] = irq_occur;
|
//p[12] = irq_occur;
|
||||||
p[13] = irq_latch;
|
//p[13] = irq_latch;
|
||||||
p[14] = irq_counter;
|
//p[14] = irq_counter;
|
||||||
//*((INT*)&p[15]) = irq_clock;
|
//*((INT*)&p[15]) = irq_clock;
|
||||||
BitConverter.GetBytes(irq_clock).CopyTo(p, 15);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper025::LoadState(LPBYTE p)
|
//void Mapper025::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 11; i++)
|
//for (INT i = 0; i < 11; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
irq_enable = p[11];
|
//irq_enable = p[11];
|
||||||
irq_occur = p[12];
|
//irq_occur = p[12];
|
||||||
irq_latch = p[13];
|
//irq_latch = p[13];
|
||||||
irq_counter = p[14];
|
//irq_counter = p[14];
|
||||||
//irq_clock = *((INT*)&p[15]);
|
//irq_clock = *((INT*)&p[15]);
|
||||||
irq_clock = BitConverter.ToInt32(p, 15);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper026 Konami VRC6 (PA0,PA1 reverse) //
|
// Mapper026 Konami VRC6 (PA0,PA1 reverse) //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -161,21 +160,19 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper026::SaveState(LPBYTE p)
|
//void Mapper026::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
p[1] = irq_counter;
|
//p[1] = irq_counter;
|
||||||
p[2] = irq_latch;
|
//p[2] = irq_latch;
|
||||||
//*(INT*)&p[3] = irq_clock;
|
//*(INT*)&p[3] = irq_clock;
|
||||||
BitConverter.GetBytes(irq_clock).CopyTo(p, 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper026::LoadState(LPBYTE p)
|
//void Mapper026::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
irq_counter = p[1];
|
//irq_counter = p[1];
|
||||||
irq_latch = p[2];
|
//irq_latch = p[2];
|
||||||
//irq_clock = *(INT*)&p[3];
|
//irq_clock = *(INT*)&p[3];
|
||||||
irq_clock = BitConverter.ToInt32(p, 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper027 Konami VRC4 (World Hero) //
|
// Mapper027 Konami VRC4 (World Hero) //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -201,29 +200,27 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper027::SaveState(LPBYTE p)
|
//void Mapper027::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 9; i++)
|
//for (INT i = 0; i < 9; i++)
|
||||||
{
|
//{
|
||||||
p[i] = (byte)reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[9] = irq_enable;
|
//p[9] = irq_enable;
|
||||||
p[10] = irq_counter;
|
//p[10] = irq_counter;
|
||||||
p[11] = irq_latch;
|
//p[11] = irq_latch;
|
||||||
//*(INT*)&p[12] = irq_clock;
|
//*(INT*)&p[12] = irq_clock;
|
||||||
BitConverter.GetBytes(irq_clock).CopyTo(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper027::LoadState(LPBYTE p)
|
//void Mapper027::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 9; i++)
|
//for (INT i = 0; i < 9; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
irq_enable = p[9];
|
//irq_enable = p[9];
|
||||||
irq_counter = p[10];
|
//irq_counter = p[10];
|
||||||
irq_latch = p[11];
|
//irq_latch = p[11];
|
||||||
//irq_clock = *(INT*)&p[12];
|
//irq_clock = *(INT*)&p[12];
|
||||||
irq_clock = BitConverter.ToInt32(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper040 SMB2J //
|
// Mapper040 SMB2J //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -71,17 +70,15 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper040::SaveState(LPBYTE p)
|
//void Mapper040::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
//*(INT*)&p[1] = irq_line;
|
//*(INT*)&p[1] = irq_line;
|
||||||
BitConverter.GetBytes(irq_line).CopyTo(p, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper040::LoadState(LPBYTE p)
|
//void Mapper040::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
//irq_line = *(INT*)&p[1];
|
//irq_line = *(INT*)&p[1];
|
||||||
irq_line = BitConverter.ToInt32(p,1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper043 SMB2J //
|
// Mapper043 SMB2J //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -119,17 +118,15 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper043::SaveState(LPBYTE p)
|
//void Mapper043::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
//*(INT*)&p[1] = irq_counter;
|
//*(INT*)&p[1] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper043::LoadState(LPBYTE p)
|
//void Mapper043::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
//irq_counter = *(INT*)&p[1];
|
//irq_counter = *(INT*)&p[1];
|
||||||
irq_counter = BitConverter.ToInt32(p, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper045 1000000-in-1 //
|
// Mapper045 1000000-in-1 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -312,71 +311,69 @@ namespace VirtualNes.Core
|
|||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper045::SaveState(LPBYTE ps)
|
//void Mapper045::SaveState(LPBYTE ps)
|
||||||
public override void SaveState(byte[] ps)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
int i;
|
//INT i;
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
ps[i] = reg[i];
|
// ps[i] = reg[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 4; i++)
|
//for (i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
ps[i + 8] = p[i];
|
// ps[i + 8] = p[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
//*(INT*)&ps[i * 4 + 64] = c[i];
|
// *(INT*)&ps[i * 4 + 64] = c[i];
|
||||||
BitConverter.GetBytes(c[i]).CopyTo(ps, i * 4 + 64);
|
//}
|
||||||
}
|
//ps[20] = prg0;
|
||||||
ps[20] = prg0;
|
//ps[21] = prg1;
|
||||||
ps[21] = prg1;
|
//ps[22] = prg2;
|
||||||
ps[22] = prg2;
|
//ps[23] = prg3;
|
||||||
ps[23] = prg3;
|
//ps[24] = chr0;
|
||||||
ps[24] = chr0;
|
//ps[25] = chr1;
|
||||||
ps[25] = chr1;
|
//ps[26] = chr2;
|
||||||
ps[26] = chr2;
|
//ps[27] = chr3;
|
||||||
ps[27] = chr3;
|
//ps[28] = chr4;
|
||||||
ps[28] = chr4;
|
//ps[29] = chr5;
|
||||||
ps[29] = chr5;
|
//ps[30] = chr6;
|
||||||
ps[30] = chr6;
|
//ps[31] = chr7;
|
||||||
ps[31] = chr7;
|
//ps[32] = irq_enable;
|
||||||
ps[32] = irq_enable;
|
//ps[33] = irq_counter;
|
||||||
ps[33] = irq_counter;
|
//ps[34] = irq_latch;
|
||||||
ps[34] = irq_latch;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper045::LoadState(LPBYTE ps)
|
//void Mapper045::LoadState(LPBYTE ps)
|
||||||
public override void LoadState(byte[] ps)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
int i;
|
//INT i;
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = ps[i];
|
// reg[i] = ps[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 4; i++)
|
//for (i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
p[i] = ps[i + 8];
|
// p[i] = ps[i + 8];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
//c[i] = *(INT*)&ps[i * 4 + 64];
|
// c[i] = *(INT*)&ps[i * 4 + 64];
|
||||||
c[i] = BitConverter.ToInt32(ps, i * 4 + 64);
|
//}
|
||||||
}
|
//prg0 = ps[20];
|
||||||
prg0 = ps[20];
|
//prg1 = ps[21];
|
||||||
prg1 = ps[21];
|
//prg2 = ps[22];
|
||||||
prg2 = ps[22];
|
//prg3 = ps[23];
|
||||||
prg3 = ps[23];
|
//chr0 = ps[24];
|
||||||
chr0 = ps[24];
|
//chr1 = ps[25];
|
||||||
chr1 = ps[25];
|
//chr2 = ps[26];
|
||||||
chr2 = ps[26];
|
//chr3 = ps[27];
|
||||||
chr3 = ps[27];
|
//chr4 = ps[28];
|
||||||
chr4 = ps[28];
|
//chr5 = ps[29];
|
||||||
chr5 = ps[29];
|
//chr6 = ps[30];
|
||||||
chr6 = ps[30];
|
//chr7 = ps[31];
|
||||||
chr7 = ps[31];
|
//irq_enable = ps[32];
|
||||||
irq_enable = ps[32];
|
//irq_counter = ps[33];
|
||||||
irq_counter = ps[33];
|
//irq_latch = ps[34];
|
||||||
irq_latch = ps[34];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper064 Tengen Rambo-1 //
|
// Mapper064 Tengen Rambo-1 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -250,33 +249,29 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper064::SaveState(LPBYTE p)
|
//void Mapper064::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = reg[0];
|
//p[0] = reg[0];
|
||||||
p[1] = reg[1];
|
//p[1] = reg[1];
|
||||||
p[2] = reg[2];
|
//p[2] = reg[2];
|
||||||
p[3] = irq_enable;
|
//p[3] = irq_enable;
|
||||||
p[4] = irq_mode;
|
//p[4] = irq_mode;
|
||||||
p[5] = irq_latch;
|
//p[5] = irq_latch;
|
||||||
p[6] = irq_reset;
|
//p[6] = irq_reset;
|
||||||
//*((INT*)&p[8]) = irq_counter;
|
//*((INT*)&p[8]) = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 8);
|
//*((INT*)&p[12]) = irq_counter2;
|
||||||
//* ((INT*)&p[12]) = irq_counter2;
|
|
||||||
BitConverter.GetBytes(irq_counter2).CopyTo(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper064::LoadState(LPBYTE p)
|
//void Mapper064::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
reg[0] = p[0];
|
//reg[0] = p[0];
|
||||||
reg[1] = p[1];
|
//reg[1] = p[1];
|
||||||
reg[2] = p[2];
|
//reg[2] = p[2];
|
||||||
irq_enable = p[3];
|
//irq_enable = p[3];
|
||||||
irq_mode = p[4];
|
//irq_mode = p[4];
|
||||||
irq_latch = p[5];
|
//irq_latch = p[5];
|
||||||
irq_reset = p[6];
|
//irq_reset = p[6];
|
||||||
//irq_counter = *((INT*)&p[8]);
|
//irq_counter = *((INT*)&p[8]);
|
||||||
irq_counter = BitConverter.ToInt32(p, 8);
|
|
||||||
//irq_counter2 = *((INT*)&p[12]);
|
//irq_counter2 = *((INT*)&p[12]);
|
||||||
irq_counter2 = BitConverter.ToInt32(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper065 Irem H3001 //
|
// Mapper065 Irem H3001 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -167,21 +166,17 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper065::SaveState(LPBYTE p)
|
//void Mapper065::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
//*(INT*)&p[1] = irq_counter;
|
//*(INT*)&p[1] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 1);
|
//*(INT*)&p[5] = irq_latch;
|
||||||
//* (INT*)&p[5] = irq_latch;
|
|
||||||
BitConverter.GetBytes(irq_latch).CopyTo(p, 5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper065::LoadState(LPBYTE p)
|
//void Mapper065::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
//irq_counter = *(INT*)&p[1];
|
//irq_counter = *(INT*)&p[1];
|
||||||
irq_counter = BitConverter.ToInt32(p, 1);
|
|
||||||
//irq_latch = *(INT*)&p[5];
|
//irq_latch = *(INT*)&p[5];
|
||||||
irq_latch = BitConverter.ToInt32(p, 5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper067 SunSoft Mapper 3 //
|
// Mapper067 SunSoft Mapper 3 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -115,21 +114,19 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper067::SaveState(LPBYTE p)
|
//void Mapper067::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
p[1] = irq_occur;
|
//p[1] = irq_occur;
|
||||||
p[2] = irq_toggle;
|
//p[2] = irq_toggle;
|
||||||
//*((INT*)&p[3]) = irq_counter;
|
//*((INT*)&p[3]) = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper067::LoadState(LPBYTE p)
|
//void Mapper067::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
irq_occur = p[1];
|
//irq_occur = p[1];
|
||||||
irq_toggle = p[2];
|
//irq_toggle = p[2];
|
||||||
//irq_counter = *((INT*)&p[3]);
|
//irq_counter = *((INT*)&p[3]);
|
||||||
irq_counter = BitConverter.ToInt32(p, 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper069 SunSoft FME-7 //
|
// Mapper069 SunSoft FME-7 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -157,19 +156,17 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper069::SaveState(LPBYTE p)
|
//void Mapper069::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = reg;
|
//p[0] = reg;
|
||||||
p[1] = irq_enable;
|
//p[1] = irq_enable;
|
||||||
//*(INT*)&p[2] = irq_counter;
|
//*(INT*)&p[2] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper069::LoadState(LPBYTE p)
|
//void Mapper069::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
reg = p[0];
|
//reg = p[0];
|
||||||
irq_enable = p[1];
|
//irq_enable = p[1];
|
||||||
//irq_counter = *(INT*)&p[2];
|
//irq_counter = *(INT*)&p[2];
|
||||||
irq_counter = BitConverter.ToInt32(p, 2);
|
|
||||||
}
|
}
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper073 Konami VRC3 //
|
// Mapper073 Konami VRC3 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -74,17 +73,15 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper073::SaveState(LPBYTE p)
|
//void Mapper073::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
//*(INT*)&p[1] = irq_counter;
|
//*(INT*)&p[1] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper073::LoadState(LPBYTE p)
|
//void Mapper073::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
//irq_counter = *(INT*)&p[1];
|
//irq_counter = *(INT*)&p[1];
|
||||||
irq_counter = BitConverter.ToInt32(p, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
// Mapper083 Cony //
|
// Mapper083 Cony //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -216,27 +215,23 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper083::SaveState(LPBYTE p)
|
//void Mapper083::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = reg[0];
|
//p[0] = reg[0];
|
||||||
p[1] = reg[1];
|
//p[1] = reg[1];
|
||||||
p[2] = reg[2];
|
//p[2] = reg[2];
|
||||||
//*(INT*)&p[3] = chr_bank;
|
//*(INT*)&p[3] = chr_bank;
|
||||||
BitConverter.GetBytes(chr_bank).CopyTo(p,3);
|
//p[7] = irq_enable;
|
||||||
p[7] = irq_enable;
|
|
||||||
//*(INT*)&p[8] = irq_counter;
|
//*(INT*)&p[8] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p,8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper083::LoadState(LPBYTE p)
|
//void Mapper083::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
reg[0] = p[0];
|
//reg[0] = p[0];
|
||||||
reg[1] = p[1];
|
//reg[1] = p[1];
|
||||||
reg[2] = p[2];
|
//reg[2] = p[2];
|
||||||
//chr_bank = *(INT*)&p[3];
|
//chr_bank = *(INT*)&p[3];
|
||||||
chr_bank = BitConverter.ToInt32(p, 3);
|
//irq_enable = p[7];
|
||||||
irq_enable = p[7];
|
|
||||||
//irq_counter = *(INT*)&p[8];
|
//irq_counter = *(INT*)&p[8];
|
||||||
irq_counter = BitConverter.ToInt32(p, 8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper085 Konami VRC7 //
|
// Mapper085 Konami VRC7 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -214,21 +213,19 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper085::SaveState(LPBYTE p)
|
//void Mapper085::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
p[1] = irq_counter;
|
//p[1] = irq_counter;
|
||||||
p[2] = irq_latch;
|
//p[2] = irq_latch;
|
||||||
//*((INT*)&p[4]) = irq_clock;
|
//*((INT*)&p[4]) = irq_clock;
|
||||||
BitConverter.GetBytes(irq_clock).CopyTo(p, 4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper085::LoadState(LPBYTE p)
|
//void Mapper085::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
irq_enable = p[0];
|
//irq_enable = p[0];
|
||||||
irq_counter = p[1];
|
//irq_counter = p[1];
|
||||||
irq_latch = p[2];
|
//irq_latch = p[2];
|
||||||
//irq_clock = *((INT*)&p[4]);
|
//irq_clock = *((INT*)&p[4]);
|
||||||
irq_clock = BitConverter.ToInt32(p, 4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper105 Nintendo World Championship //
|
// Mapper105 Nintendo World Championship //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -167,31 +166,29 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper105::SaveState(LPBYTE p)
|
//void Mapper105::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 4; i++)
|
//for (INT i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[8] = init_state;
|
//p[8] = init_state;
|
||||||
p[9] = write_count;
|
//p[9] = write_count;
|
||||||
p[10] = bits;
|
//p[10] = bits;
|
||||||
p[11] = irq_enable;
|
//p[11] = irq_enable;
|
||||||
//*((INT*)&p[12]) = irq_counter;
|
//*((INT*)&p[12]) = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper105::LoadState(LPBYTE p)
|
//void Mapper105::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 4; i++)
|
//for (INT i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
init_state = p[8];
|
//init_state = p[8];
|
||||||
write_count = p[9];
|
//write_count = p[9];
|
||||||
bits = p[10];
|
//bits = p[10];
|
||||||
irq_enable = p[11];
|
//irq_enable = p[11];
|
||||||
//irq_counter = *((INT*)&p[12]);
|
//irq_counter = *((INT*)&p[12]);
|
||||||
irq_counter = BitConverter.ToInt32(p, 12);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper142 SMB2J //
|
// Mapper142 SMB2J //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -91,19 +90,17 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper142::SaveState(LPBYTE p)
|
//void Mapper142::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = prg_sel;
|
//p[0] = prg_sel;
|
||||||
p[0] = irq_enable;
|
//p[0] = irq_enable;
|
||||||
//*(INT*)&p[2] = irq_counter;
|
//*(INT*)&p[2] = irq_counter;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper142::LoadState(LPBYTE p)
|
//void Mapper142::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
prg_sel = p[0];
|
//prg_sel = p[0];
|
||||||
irq_enable = p[1];
|
//irq_enable = p[1];
|
||||||
//irq_counter = *(INT*)&p[2];
|
//irq_counter = *(INT*)&p[2];
|
||||||
irq_counter = BitConverter.ToInt32 (p, 2);
|
|
||||||
}
|
}
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper183 Gimmick (Bootleg) //
|
// Mapper183 Gimmick (Bootleg) //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -169,25 +168,23 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper183::SaveState(LPBYTE p)
|
//void Mapper183::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[8] = irq_enable;
|
//p[8] = irq_enable;
|
||||||
BitConverter.GetBytes(irq_counter).CopyTo(p, 9);
|
|
||||||
//*((INT*)&p[9]) = irq_counter;
|
//*((INT*)&p[9]) = irq_counter;
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper183::LoadState(LPBYTE p)
|
//void Mapper183::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
// for (INT i = 0; i < 8; i++)
|
||||||
{
|
// {
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
// }
|
||||||
irq_enable = p[8];
|
// irq_enable = p[8];
|
||||||
irq_counter = BitConverter.ToInt32(p, 9);
|
// irq_counter = *((INT*)&p[9]);
|
||||||
//irq_counter = *((INT*)&p[9]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Mapper187 Street Fighter Zero 2 97 //
|
// Mapper187 Street Fighter Zero 2 97 //
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
using System;
|
|
||||||
using static VirtualNes.Core.CPU;
|
using static VirtualNes.Core.CPU;
|
||||||
using static VirtualNes.MMU;
|
using static VirtualNes.MMU;
|
||||||
using BYTE = System.Byte;
|
using BYTE = System.Byte;
|
||||||
@ -311,58 +310,56 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper187::SaveState(LPBYTE p)
|
//void Mapper187::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
int i;
|
//INT i;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
//for (i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
p[i] = prg[i];
|
// p[i] = prg[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
p[4 + i] = bank[i];
|
// p[4 + i] = bank[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
//*((INT*)&p[12 + i * sizeof(INT)]) = chr[i];
|
// *((INT*)&p[12 + i * sizeof(INT)]) = chr[i];
|
||||||
BitConverter.GetBytes(chr[i]).CopyTo(p, 12 + i * sizeof(int));
|
//}
|
||||||
}
|
|
||||||
|
|
||||||
p[44] = ext_mode;
|
//p[44] = ext_mode;
|
||||||
p[45] = chr_mode;
|
//p[45] = chr_mode;
|
||||||
p[46] = ext_enable;
|
//p[46] = ext_enable;
|
||||||
p[47] = irq_enable;
|
//p[47] = irq_enable;
|
||||||
p[48] = irq_counter;
|
//p[48] = irq_counter;
|
||||||
p[49] = irq_latch;
|
//p[49] = irq_latch;
|
||||||
p[50] = irq_occur;
|
//p[50] = irq_occur;
|
||||||
p[51] = last_write;
|
//p[51] = last_write;
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper187::LoadState(LPBYTE p)
|
//void Mapper187::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
int i;
|
//INT i;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
//for (i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
prg[i] = p[i];
|
// prg[i] = p[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
bank[i] = p[4 + i];
|
// bank[i] = p[4 + i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 8; i++)
|
//for (i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
chr[i] = BitConverter.ToInt32(p, 12 + i * sizeof(int));
|
// chr[i] = *((INT*)&p[12 + i * sizeof(INT)]);
|
||||||
//chr[i] = *((INT*)&p[12 + i * sizeof(INT)]);
|
//}
|
||||||
}
|
//ext_mode = p[44];
|
||||||
ext_mode = p[44];
|
//chr_mode = p[45];
|
||||||
chr_mode = p[45];
|
//ext_enable = p[46];
|
||||||
ext_enable = p[46];
|
//irq_enable = p[47];
|
||||||
irq_enable = p[47];
|
//irq_counter = p[48];
|
||||||
irq_counter = p[48];
|
//irq_latch = p[49];
|
||||||
irq_latch = p[49];
|
//irq_occur = p[50];
|
||||||
irq_occur = p[50];
|
//last_write = p[51];
|
||||||
last_write = p[51];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -259,55 +259,53 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper199::SaveState(LPBYTE p)
|
//void Mapper199::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
int i;
|
//for (INT i = 0; i < 8; i++)
|
||||||
for (i = 0; i < 8; i++)
|
//{
|
||||||
{
|
// p[i] = reg[i];
|
||||||
p[i] = reg[i];
|
//}
|
||||||
}
|
//for (i = 8; i < 12; i++)
|
||||||
for (i = 8; i < 12; i++)
|
//{
|
||||||
{
|
// p[i] = prg[i];
|
||||||
p[i] = prg[i];
|
//}
|
||||||
}
|
//for (i = 8; i < 20; i++)
|
||||||
for (i = 8; i < 20; i++)
|
//{
|
||||||
{
|
// p[i] = chr[i];
|
||||||
p[i] = chr[i];
|
//}
|
||||||
}
|
//p[20] = we_sram;
|
||||||
p[20] = we_sram;
|
//p[21] = JMaddr;
|
||||||
p[21] = JMaddr;
|
//p[22] = JMaddrDAT[0];
|
||||||
p[22] = JMaddrDAT[0];
|
//p[23] = JMaddrDAT[1];
|
||||||
p[23] = JMaddrDAT[1];
|
//p[24] = JMaddrDAT[2];
|
||||||
p[24] = JMaddrDAT[2];
|
//p[25] = irq_enable;
|
||||||
p[25] = irq_enable;
|
//p[26] = irq_counter;
|
||||||
p[26] = irq_counter;
|
//p[27] = irq_latch;
|
||||||
p[27] = irq_latch;
|
//p[28] = irq_request;
|
||||||
p[28] = irq_request;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper199::LoadState(LPBYTE p)
|
//void Mapper199::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
int i;
|
//for (INT i = 0; i < 8; i++)
|
||||||
for (i = 0; i < 8; i++)
|
//{
|
||||||
{
|
// reg[i] = p[i];
|
||||||
reg[i] = p[i];
|
//}
|
||||||
}
|
//for (i = 8; i < 12; i++)
|
||||||
for (i = 8; i < 12; i++)
|
//{
|
||||||
{
|
// prg[i] = p[i];
|
||||||
prg[i] = p[i];
|
//}
|
||||||
}
|
//for (i = 8; i < 20; i++)
|
||||||
for (i = 8; i < 20; i++)
|
//{
|
||||||
{
|
// chr[i] = p[i];
|
||||||
chr[i] = p[i];
|
//}
|
||||||
}
|
//we_sram = p[20];
|
||||||
we_sram = p[20];
|
//JMaddr = p[21];
|
||||||
JMaddr = p[21];
|
//JMaddrDAT[0] = p[22];
|
||||||
JMaddrDAT[0] = p[22];
|
//JMaddrDAT[1] = p[23];
|
||||||
JMaddrDAT[1] = p[23];
|
//JMaddrDAT[2] = p[24];
|
||||||
JMaddrDAT[2] = p[24];
|
//irq_enable = p[25];
|
||||||
irq_enable = p[25];
|
//irq_counter = p[26];
|
||||||
irq_counter = p[26];
|
//irq_latch = p[27];
|
||||||
irq_latch = p[27];
|
//irq_request = p[28];
|
||||||
irq_request = p[28];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsStateSave()
|
public override bool IsStateSave()
|
||||||
|
|||||||
@ -92,19 +92,19 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper243::SaveState(LPBYTE p)
|
//void Mapper243::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
p[0] = reg[0];
|
//p[0] = reg[0];
|
||||||
p[1] = reg[1];
|
//p[1] = reg[1];
|
||||||
p[2] = reg[2];
|
//p[2] = reg[2];
|
||||||
p[3] = reg[3];
|
//p[3] = reg[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper243::LoadState(LPBYTE p)
|
//void Mapper243::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
reg[0] = p[0];
|
//reg[0] = p[0];
|
||||||
reg[1] = p[1];
|
//reg[1] = p[1];
|
||||||
reg[2] = p[2];
|
//reg[2] = p[2];
|
||||||
reg[3] = p[3];
|
//reg[3] = p[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -214,43 +214,43 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper245::SaveState(LPBYTE p)
|
//void Mapper245::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[8] = prg0;
|
//p[8] = prg0;
|
||||||
p[9] = prg1;
|
//p[9] = prg1;
|
||||||
p[10] = chr01;
|
//p[10] = chr01;
|
||||||
p[11] = chr23;
|
//p[11] = chr23;
|
||||||
p[12] = chr4;
|
//p[12] = chr4;
|
||||||
p[13] = chr5;
|
//p[13] = chr5;
|
||||||
p[14] = chr6;
|
//p[14] = chr6;
|
||||||
p[15] = chr7;
|
//p[15] = chr7;
|
||||||
p[16] = irq_enable;
|
//p[16] = irq_enable;
|
||||||
p[17] = (BYTE)irq_counter;
|
//p[17] = (BYTE)irq_counter;
|
||||||
p[18] = irq_latch;
|
//p[18] = irq_latch;
|
||||||
p[19] = irq_request;
|
//p[19] = irq_request;
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper245::LoadState(LPBYTE p)
|
//void Mapper245::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
prg0 = p[8];
|
//prg0 = p[8];
|
||||||
prg1 = p[9];
|
//prg1 = p[9];
|
||||||
chr01 = p[10];
|
//chr01 = p[10];
|
||||||
chr23 = p[11];
|
//chr23 = p[11];
|
||||||
chr4 = p[12];
|
//chr4 = p[12];
|
||||||
chr5 = p[13];
|
//chr5 = p[13];
|
||||||
chr6 = p[14];
|
//chr6 = p[14];
|
||||||
chr7 = p[15];
|
//chr7 = p[15];
|
||||||
irq_enable = p[16];
|
//irq_enable = p[16];
|
||||||
irq_counter = (INT)p[17];
|
//irq_counter = (INT)p[17];
|
||||||
irq_latch = p[18];
|
//irq_latch = p[18];
|
||||||
irq_request = p[19];
|
//irq_request = p[19];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -190,43 +190,43 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper248::SaveState(LPBYTE p)
|
//void Mapper248::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[8] = prg0;
|
//p[8] = prg0;
|
||||||
p[9] = prg1;
|
//p[9] = prg1;
|
||||||
p[10] = chr01;
|
//p[10] = chr01;
|
||||||
p[11] = chr23;
|
//p[11] = chr23;
|
||||||
p[12] = chr4;
|
//p[12] = chr4;
|
||||||
p[13] = chr5;
|
//p[13] = chr5;
|
||||||
p[14] = chr6;
|
//p[14] = chr6;
|
||||||
p[15] = chr7;
|
//p[15] = chr7;
|
||||||
p[16] = irq_enable;
|
//p[16] = irq_enable;
|
||||||
p[17] = (BYTE)irq_counter;
|
//p[17] = (BYTE)irq_counter;
|
||||||
p[18] = irq_latch;
|
//p[18] = irq_latch;
|
||||||
p[19] = irq_request;
|
//p[19] = irq_request;
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper248::LoadState(LPBYTE p)
|
//void Mapper248::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
prg0 = p[8];
|
//prg0 = p[8];
|
||||||
prg1 = p[9];
|
//prg1 = p[9];
|
||||||
chr01 = p[10];
|
//chr01 = p[10];
|
||||||
chr23 = p[11];
|
//chr23 = p[11];
|
||||||
chr4 = p[12];
|
//chr4 = p[12];
|
||||||
chr5 = p[13];
|
//chr5 = p[13];
|
||||||
chr6 = p[14];
|
//chr6 = p[14];
|
||||||
chr7 = p[15];
|
//chr7 = p[15];
|
||||||
irq_enable = p[16];
|
//irq_enable = p[16];
|
||||||
irq_counter = (BYTE)p[17];
|
//irq_counter = (INT)p[17];
|
||||||
irq_latch = p[18];
|
//irq_latch = p[18];
|
||||||
irq_request = p[19];
|
//irq_request = p[19];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -338,45 +338,45 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper249::SaveState(LPBYTE p)
|
//void Mapper249::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
p[8] = prg0;
|
//p[8] = prg0;
|
||||||
p[9] = prg1;
|
//p[9] = prg1;
|
||||||
p[10] = chr01;
|
//p[10] = chr01;
|
||||||
p[11] = chr23;
|
//p[11] = chr23;
|
||||||
p[12] = chr4;
|
//p[12] = chr4;
|
||||||
p[13] = chr5;
|
//p[13] = chr5;
|
||||||
p[14] = chr6;
|
//p[14] = chr6;
|
||||||
p[15] = chr7;
|
//p[15] = chr7;
|
||||||
p[16] = irq_enable;
|
//p[16] = irq_enable;
|
||||||
p[17] = irq_counter;
|
//p[17] = irq_counter;
|
||||||
p[18] = irq_latch;
|
//p[18] = irq_latch;
|
||||||
p[19] = irq_request;
|
//p[19] = irq_request;
|
||||||
p[20] = spdata;
|
//p[20] = spdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper249::LoadState(LPBYTE p)
|
//void Mapper249::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
for (INT i = 0; i < 8; i++)
|
//for (INT i = 0; i < 8; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
prg0 = p[8];
|
//prg0 = p[8];
|
||||||
prg1 = p[9];
|
//prg1 = p[9];
|
||||||
chr01 = p[10];
|
//chr01 = p[10];
|
||||||
chr23 = p[11];
|
//chr23 = p[11];
|
||||||
chr4 = p[12];
|
//chr4 = p[12];
|
||||||
chr5 = p[13];
|
//chr5 = p[13];
|
||||||
chr6 = p[14];
|
//chr6 = p[14];
|
||||||
chr7 = p[15];
|
//chr7 = p[15];
|
||||||
irq_enable = p[16];
|
//irq_enable = p[16];
|
||||||
irq_counter = p[17];
|
//irq_counter = p[17];
|
||||||
irq_latch = p[18];
|
//irq_latch = p[18];
|
||||||
irq_request = p[19];
|
//irq_request = p[19];
|
||||||
spdata = p[20];
|
//spdata = p[20];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -112,30 +112,30 @@ namespace VirtualNes.Core
|
|||||||
//void Mapper251::SaveState(LPBYTE p)
|
//void Mapper251::SaveState(LPBYTE p)
|
||||||
public override void SaveState(byte[] p)
|
public override void SaveState(byte[] p)
|
||||||
{
|
{
|
||||||
INT i;
|
//INT i;
|
||||||
|
|
||||||
for (i = 0; i < 11; i++)
|
//for (i = 0; i < 11; i++)
|
||||||
{
|
//{
|
||||||
p[i] = reg[i];
|
// p[i] = reg[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 4; i++)
|
//for (i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
p[i + 11] = breg[i];
|
// p[i + 11] = breg[i];
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
//void Mapper251::LoadState(LPBYTE p)
|
//void Mapper251::LoadState(LPBYTE p)
|
||||||
public override void LoadState(byte[] p)
|
public override void LoadState(byte[] p)
|
||||||
{
|
{
|
||||||
INT i;
|
//INT i;
|
||||||
for (i = 0; i < 11; i++)
|
//for (i = 0; i < 11; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i];
|
// reg[i] = p[i];
|
||||||
}
|
//}
|
||||||
for (i = 0; i < 4; i++)
|
//for (i = 0; i < 4; i++)
|
||||||
{
|
//{
|
||||||
reg[i] = p[i + 11];
|
// reg[i] = p[i + 11];
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user