namespace VirtualNes.Core { public struct MMUSTAT : IStateBufferObject { public byte[] CPU_MEM_TYPE; public ushort[] CPU_MEM_PAGE; public byte[] PPU_MEM_TYPE; public ushort[] PPU_MEM_PAGE; public byte[] CRAM_USED; public static MMUSTAT GetDefault() { var res = new MMUSTAT(); res.CPU_MEM_TYPE = new byte[8]; res.CPU_MEM_PAGE = new ushort[8]; res.PPU_MEM_TYPE = new byte[12]; res.PPU_MEM_PAGE = new ushort[12]; res.CRAM_USED = new byte[8]; return res; } public uint GetSize() { return (uint)(CPU_MEM_TYPE.Length + CPU_MEM_PAGE.Length + PPU_MEM_TYPE.Length + PPU_MEM_PAGE.Length + CRAM_USED.Length); } public void SaveState(StateBuffer buffer) { buffer.Write(CPU_MEM_TYPE); buffer.Write(CPU_MEM_PAGE); buffer.Write(PPU_MEM_TYPE); buffer.Write(PPU_MEM_PAGE); buffer.Write(CRAM_USED); } public void LoadState(StateReader buffer) { CPU_MEM_TYPE = buffer.Read_bytes(8); CPU_MEM_PAGE = buffer.Read_ushorts(8); PPU_MEM_TYPE = buffer.Read_bytes(12); PPU_MEM_PAGE = buffer.Read_ushorts(12); CRAM_USED = buffer.Read_bytes(8); } } }