예제 #1
0
        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);
        }
예제 #2
0
        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);
        }