C64: Don't compress savestate data (let the UI do that)
This commit is contained in:
parent
a06dd5f768
commit
fd62145df5
|
@ -47,19 +47,40 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.Media
|
|||
|
||||
private int[] ConvertToFluxTransitions(int density, byte[] bytes, int fluxBitOffset)
|
||||
{
|
||||
var paddedBytes = new byte[bytes.Length + 1];
|
||||
var paddedLength = bytes.Length;
|
||||
switch (density)
|
||||
{
|
||||
case 3:
|
||||
paddedLength = Math.Max(bytes.Length, 7692);
|
||||
break;
|
||||
case 2:
|
||||
paddedLength = Math.Max(bytes.Length, 7142);
|
||||
break;
|
||||
case 1:
|
||||
paddedLength = Math.Max(bytes.Length, 6666);
|
||||
break;
|
||||
case 0:
|
||||
paddedLength = Math.Max(bytes.Length, 6250);
|
||||
break;
|
||||
}
|
||||
|
||||
paddedLength++;
|
||||
var paddedBytes = new byte[paddedLength];
|
||||
Array.Copy(bytes, paddedBytes, bytes.Length);
|
||||
paddedBytes[paddedBytes.Length - 1] = 0x00;
|
||||
for (var i = bytes.Length; i < paddedLength; i++)
|
||||
{
|
||||
paddedBytes[i] = 0xAA;
|
||||
}
|
||||
var result = new int[FluxEntriesPerTrack];
|
||||
var length = paddedBytes.Length;
|
||||
var lengthBits = length*8+7;
|
||||
var length = paddedLength;
|
||||
var lengthBits = (paddedLength * 8) - 7;
|
||||
var offsets = new List<long>();
|
||||
var remainingBits = lengthBits;
|
||||
|
||||
const long bitsNum = FluxEntriesPerTrack * FluxBitsPerEntry;
|
||||
long bitsDen = lengthBits;
|
||||
|
||||
for (var i = 0; i < length; i++)
|
||||
for (var i = 0; i < paddedLength; i++)
|
||||
{
|
||||
var byteData = paddedBytes[i];
|
||||
for (var j = 0; j < 8; j++)
|
||||
|
@ -70,10 +91,11 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64.Media
|
|||
offsets.Add(offset);
|
||||
result[byteOffset] |= ((byteData & 0x80) != 0 ? 1 : 0) << bitOffset;
|
||||
byteData <<= 1;
|
||||
}
|
||||
|
||||
remainingBits--;
|
||||
if (remainingBits <= 0)
|
||||
remainingBits--;
|
||||
if (remainingBits <= 0)
|
||||
break;
|
||||
}
|
||||
if (remainingBits <= 0)
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -97,15 +97,15 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
|
||||
public static void SyncDelta(string name, Serializer ser, int[] source, ref int[] data)
|
||||
{
|
||||
byte[] delta = null;
|
||||
int[] delta = null;
|
||||
if (ser.IsWriter && data != null)
|
||||
{
|
||||
delta = CompressInts(GetDelta(source, data));
|
||||
delta = GetDelta(source, data);
|
||||
}
|
||||
ser.Sync(name, ref delta, false);
|
||||
if (ser.IsReader && delta != null)
|
||||
{
|
||||
data = GetDelta(source, DecompressInts(delta));
|
||||
data = GetDelta(source, delta);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue