[pce-cd] somewhat improve save-statey-ness. still not solid but good enough to work a lot of the time
This commit is contained in:
parent
65d6961160
commit
9f4ffde86f
|
@ -1,4 +1,26 @@
|
||||||
======= TurboGrafx compatibility issues =======
|
******************************************************
|
||||||
|
* Turbo CD Issues *
|
||||||
|
******************************************************
|
||||||
|
|
||||||
|
- Download 2, eventually has issues. Seems like waiting on ADPCM interrupts or flags.
|
||||||
|
- Similar in Dragon Slayer
|
||||||
|
- Dungeon Explorer II quite desperately need ADPCM audio
|
||||||
|
+ and a gross corruption issue at teh end of the intro. and then it freezes. :(
|
||||||
|
|
||||||
|
- Dynastic Hero... a CD-command related hard crash :(
|
||||||
|
- Exile II .. seems to reset itself after playing the unskippable intro. :(
|
||||||
|
- Macross 2036.. seems impossible to start/play the game. :(
|
||||||
|
|
||||||
|
- Super Darius II : at 1st Boss, game freezes waiting for adpcm
|
||||||
|
- Ys 1, start new game, death by adpcm probably
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
======= TurboGrafx compatibility issues =======
|
||||||
|
|
||||||
General:
|
General:
|
||||||
+ LFO is not implemented, though I can't tell.
|
+ LFO is not implemented, though I can't tell.
|
||||||
|
|
|
@ -297,6 +297,13 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
if (TurboCD)
|
if (TurboCD)
|
||||||
{
|
{
|
||||||
CDAudio.SaveStateText(writer);
|
CDAudio.SaveStateText(writer);
|
||||||
|
writer.Write("CDRAM ");
|
||||||
|
CDRam.SaveAsHex(writer);
|
||||||
|
if (SuperRam != null)
|
||||||
|
{
|
||||||
|
writer.Write("SuperRAM ");
|
||||||
|
SuperRam.SaveAsHex(writer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
writer.WriteLine("[/PCEngine]");
|
writer.WriteLine("[/PCEngine]");
|
||||||
}
|
}
|
||||||
|
@ -319,6 +326,10 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
IOBuffer = byte.Parse(args[1], NumberStyles.HexNumber);
|
IOBuffer = byte.Parse(args[1], NumberStyles.HexNumber);
|
||||||
else if (args[0] == "RAM")
|
else if (args[0] == "RAM")
|
||||||
Ram.ReadFromHex(args[1]);
|
Ram.ReadFromHex(args[1]);
|
||||||
|
else if (args[0] == "CDRAM")
|
||||||
|
CDRam.ReadFromHex(args[1]);
|
||||||
|
else if (args[0] == "SuperRAM")
|
||||||
|
SuperRam.ReadFromHex(args[1]);
|
||||||
else if (args[0] == "PopulousRAM" && PopulousRAM != null)
|
else if (args[0] == "PopulousRAM" && PopulousRAM != null)
|
||||||
PopulousRAM.ReadFromHex(args[1]);
|
PopulousRAM.ReadFromHex(args[1]);
|
||||||
else if (args[0] == "[HuC6280]")
|
else if (args[0] == "[HuC6280]")
|
||||||
|
@ -351,6 +362,11 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
writer.Write(PopulousRAM);
|
writer.Write(PopulousRAM);
|
||||||
if (SuperRam != null)
|
if (SuperRam != null)
|
||||||
writer.Write(SuperRam);
|
writer.Write(SuperRam);
|
||||||
|
if (TurboCD)
|
||||||
|
{
|
||||||
|
writer.Write(CDRam);
|
||||||
|
writer.Write(ADPCM_RAM);
|
||||||
|
}
|
||||||
writer.Write(Frame);
|
writer.Write(Frame);
|
||||||
writer.Write(_lagcount);
|
writer.Write(_lagcount);
|
||||||
writer.Write(SF2MapperLatch);
|
writer.Write(SF2MapperLatch);
|
||||||
|
@ -388,6 +404,11 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
PopulousRAM = reader.ReadBytes(0x8000);
|
PopulousRAM = reader.ReadBytes(0x8000);
|
||||||
if (SuperRam != null)
|
if (SuperRam != null)
|
||||||
SuperRam = reader.ReadBytes(0x30000);
|
SuperRam = reader.ReadBytes(0x30000);
|
||||||
|
if (TurboCD)
|
||||||
|
{
|
||||||
|
CDRam = reader.ReadBytes(0x10000);
|
||||||
|
ADPCM_RAM = reader.ReadBytes(0x10000);
|
||||||
|
}
|
||||||
Frame = reader.ReadInt32();
|
Frame = reader.ReadInt32();
|
||||||
_lagcount = reader.ReadInt32();
|
_lagcount = reader.ReadInt32();
|
||||||
SF2MapperLatch = reader.ReadByte();
|
SF2MapperLatch = reader.ReadByte();
|
||||||
|
@ -421,7 +442,7 @@ namespace BizHawk.Emulation.Consoles.TurboGrafx
|
||||||
if (BramEnabled) buflen += 2048;
|
if (BramEnabled) buflen += 2048;
|
||||||
if (PopulousRAM != null) buflen += 0x8000;
|
if (PopulousRAM != null) buflen += 0x8000;
|
||||||
if (SuperRam != null) buflen += 0x30000;
|
if (SuperRam != null) buflen += 0x30000;
|
||||||
if (TurboCD) buflen += 26;
|
if (TurboCD) buflen += 0x20000 + 30;
|
||||||
//Console.WriteLine("LENGTH1 " + buflen);
|
//Console.WriteLine("LENGTH1 " + buflen);
|
||||||
|
|
||||||
var buf = new byte[buflen];
|
var buf = new byte[buflen];
|
||||||
|
|
|
@ -230,6 +230,8 @@ namespace BizHawk.Emulation.Sound
|
||||||
writer.WriteLine("PlayingTrack {0}", PlayingTrack);
|
writer.WriteLine("PlayingTrack {0}", PlayingTrack);
|
||||||
writer.WriteLine("CurrentSector {0}", CurrentSector);
|
writer.WriteLine("CurrentSector {0}", CurrentSector);
|
||||||
writer.WriteLine("SectorOffset {0}", SectorOffset);
|
writer.WriteLine("SectorOffset {0}", SectorOffset);
|
||||||
|
writer.WriteLine("FadeOutOverFrames {0}", FadeOutOverFrames);
|
||||||
|
writer.WriteLine("FadeOutFramesRemaining {0}", FadeOutFramesRemaining);
|
||||||
writer.WriteLine("[/CDAudio]");
|
writer.WriteLine("[/CDAudio]");
|
||||||
writer.WriteLine();
|
writer.WriteLine();
|
||||||
}
|
}
|
||||||
|
@ -274,6 +276,8 @@ namespace BizHawk.Emulation.Sound
|
||||||
writer.Write(StartLBA);
|
writer.Write(StartLBA);
|
||||||
writer.Write(EndLBA);
|
writer.Write(EndLBA);
|
||||||
writer.Write(PlayingTrack);
|
writer.Write(PlayingTrack);
|
||||||
|
writer.Write((short)FadeOutOverFrames);
|
||||||
|
writer.Write((short)FadeOutFramesRemaining);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadStateBinary(BinaryReader reader)
|
public void LoadStateBinary(BinaryReader reader)
|
||||||
|
@ -286,6 +290,8 @@ namespace BizHawk.Emulation.Sound
|
||||||
StartLBA = reader.ReadInt32();
|
StartLBA = reader.ReadInt32();
|
||||||
EndLBA = reader.ReadInt32();
|
EndLBA = reader.ReadInt32();
|
||||||
PlayingTrack = reader.ReadInt32();
|
PlayingTrack = reader.ReadInt32();
|
||||||
|
FadeOutOverFrames = reader.ReadInt16();
|
||||||
|
FadeOutFramesRemaining = reader.ReadInt16();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue