private void SaveMemory(string filepath, uint memoryType) { var size = Bridges.retro_get_memory_size(memoryType); var ptr = Bridges.retro_get_memory_data(memoryType); if (size <= 0) { return; } var bytes = new byte[size]; Marshal.Copy(ptr, bytes, 0, (int)size); using (var file = File.OpenWrite(filepath)) file.Write(bytes, 0, (int)size); }
private void LoadMemory(string filepath, uint memoryType) { if (!File.Exists(filepath)) { return; } var size = Bridges.retro_get_memory_size(memoryType); var ptr = Bridges.retro_get_memory_data(memoryType); if (size <= 0) { return; } var bytes = new byte[size]; using (var file = File.OpenRead(filepath)) file.Read(bytes, 0, (int)size); Marshal.Copy(bytes, 0, ptr, (int)size); }