master #31
@ -1,7 +1,17 @@
|
|||||||
namespace VirtualNes.Core
|
namespace VirtualNes.Core
|
||||||
{
|
{
|
||||||
public struct DISKDATA
|
public struct DISKDATA : IStateBufferObject
|
||||||
{
|
{
|
||||||
public int DifferentSize;
|
public int DifferentSize;
|
||||||
|
|
||||||
|
public uint GetSize()
|
||||||
|
{
|
||||||
|
return sizeof(int);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SaveState(StateBuffer buffer)
|
||||||
|
{
|
||||||
|
buffer.Write(DifferentSize);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
public readonly void SaveState(StateBuffer buffer)
|
public readonly void SaveState(StateBuffer buffer)
|
||||||
{
|
{
|
||||||
throw new System.NotImplementedException();
|
buffer.Write(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,15 +16,16 @@ namespace VirtualNes.Core
|
|||||||
/// <summary> 2字节 </summary>
|
/// <summary> 2字节 </summary>
|
||||||
public ushort Ext2;
|
public ushort Ext2;
|
||||||
|
|
||||||
public void SaveState(StateBuffer buffer)
|
public readonly void SaveState(StateBuffer buffer)
|
||||||
{
|
{
|
||||||
buffer.Write(ID);
|
buffer.Write(ID);
|
||||||
buffer.Write(BlockVersion);
|
buffer.Write(BlockVersion);
|
||||||
|
buffer.Write(Ext0);
|
||||||
buffer.Write(Ext1);
|
buffer.Write(Ext1);
|
||||||
buffer.Write(Ext2);
|
buffer.Write(Ext2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public uint GetSize()
|
public readonly uint GetSize()
|
||||||
{
|
{
|
||||||
return (uint)(ID.Length + sizeof(ushort) + sizeof(uint) + sizeof(ushort) + sizeof(ushort));
|
return (uint)(ID.Length + sizeof(ushort) + sizeof(uint) + sizeof(ushort) + sizeof(ushort));
|
||||||
}
|
}
|
||||||
|
@ -35,5 +35,44 @@ namespace VirtualNes.Core
|
|||||||
|
|
||||||
public BLOCKHDR exctrBLOCK;
|
public BLOCKHDR exctrBLOCK;
|
||||||
public EXCTRSTAT exctr;
|
public EXCTRSTAT exctr;
|
||||||
|
|
||||||
|
public readonly byte[] ToBytes()
|
||||||
|
{
|
||||||
|
StateBuffer buffer = new StateBuffer();
|
||||||
|
|
||||||
|
HEADER.SaveState(buffer);
|
||||||
|
|
||||||
|
regBLOCK.SaveState(buffer);
|
||||||
|
reg.SaveState(buffer);
|
||||||
|
|
||||||
|
ramBLOCK.SaveState(buffer);
|
||||||
|
ram.SaveState(buffer);
|
||||||
|
|
||||||
|
if(WRAM!=null) buffer.Write(WRAM);
|
||||||
|
|
||||||
|
mmuBLOCK.SaveState(buffer);
|
||||||
|
mmu.SaveState(buffer);
|
||||||
|
buffer.Write(CPU_MEM_BANK.ToArray());
|
||||||
|
buffer.Write(VRAM);
|
||||||
|
buffer.Write(CRAM.ToArray());
|
||||||
|
|
||||||
|
mmcBLOCK.SaveState(buffer);
|
||||||
|
mmc.SaveState(buffer);
|
||||||
|
|
||||||
|
ctrBLOCK.SaveState(buffer);
|
||||||
|
ctr.SaveState(buffer);
|
||||||
|
|
||||||
|
sndBLOCK.SaveState(buffer);
|
||||||
|
snd.SaveState(buffer);
|
||||||
|
|
||||||
|
dskBLOCK.SaveState(buffer);
|
||||||
|
dsk.SaveState(buffer);
|
||||||
|
buffer.Write(dskdata);
|
||||||
|
|
||||||
|
exctrBLOCK.SaveState(buffer);
|
||||||
|
exctr.SaveState(buffer);
|
||||||
|
|
||||||
|
return buffer.Data.ToArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user