public byte[] CloneSaveRam() { if (disposed) { if (_disposedSaveRam != null) { return((byte[])_disposedSaveRam.Clone()); } return(new byte[0]); } else { int size = 0; IntPtr area = IntPtr.Zero; LibGPGX.gpgx_get_sram(ref area, ref size); if (size <= 0 || area == IntPtr.Zero) { return(new byte[0]); } LibGPGX.gpgx_sram_prepread(); byte[] ret = new byte[size]; Marshal.Copy(area, ret, 0, size); return(ret); } }