Mode2/2336 support (fixes #3387)
This commit is contained in:
parent
6c8d4c536a
commit
3c7fd55f70
|
@ -557,7 +557,7 @@ namespace BizHawk.Emulation.DiscSystem
|
||||||
SS_Base synth = track.ReadMode switch
|
SS_Base synth = track.ReadMode switch
|
||||||
{
|
{
|
||||||
0 => new SS_Mode1_2048(),
|
0 => new SS_Mode1_2048(),
|
||||||
1 => throw new NotSupportedException("Mode2/2336"), // TODO
|
1 => new SS_Mode2_2336(),
|
||||||
2 => new SS_2352(),
|
2 => new SS_2352(),
|
||||||
3 => new SS_CDI_RawQ(),
|
3 => new SS_CDI_RawQ(),
|
||||||
4 => new SS_CDI_RawPQRSTUVW(),
|
4 => new SS_CDI_RawPQRSTUVW(),
|
||||||
|
|
|
@ -337,8 +337,13 @@ namespace BizHawk.Emulation.DiscSystem.CUE
|
||||||
sectorSize = 2048;
|
sectorSize = 2048;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
case CueTrackType.CDI_2336:
|
||||||
case CueTrackType.Mode2_2336:
|
case CueTrackType.Mode2_2336:
|
||||||
|
ss = new SS_Mode2_2336();
|
||||||
|
sectorSize = 2336;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
throw new InvalidOperationException($"Not supported: {cct.TrackType}");
|
throw new InvalidOperationException($"Not supported: {cct.TrackType}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,24 @@ namespace BizHawk.Emulation.DiscSystem.CUE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Represents a Mode2 2336-byte sector
|
||||||
|
/// </summary>
|
||||||
|
internal class SS_Mode2_2336 : SS_Base
|
||||||
|
{
|
||||||
|
public override void Synth(SectorSynthJob job)
|
||||||
|
{
|
||||||
|
//read the sector user data
|
||||||
|
Blob.Read(BlobOffset, job.DestBuffer2448, job.DestOffset + 16, 2336);
|
||||||
|
|
||||||
|
if ((job.Parts & ESectorSynthPart.Header16) != 0)
|
||||||
|
SynthUtils.SectorHeader(job.DestBuffer2448, job.DestOffset + 0, job.LBA, 2);
|
||||||
|
|
||||||
|
//if subcode is needed, synthesize it
|
||||||
|
SynthSubchannelAsNeed(job);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a 2352-byte sector of any sort
|
/// Represents a 2352-byte sector of any sort
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -108,6 +126,8 @@ namespace BizHawk.Emulation.DiscSystem.CUE
|
||||||
mode = 1;
|
mode = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CueTrackType.CDI_2336:
|
||||||
|
case CueTrackType.Mode2_2336:
|
||||||
case CueTrackType.Mode2_2352:
|
case CueTrackType.Mode2_2352:
|
||||||
mode = 2;
|
mode = 2;
|
||||||
if (Policy.CUE_PregapMode2_As_XA_Form2)
|
if (Policy.CUE_PregapMode2_As_XA_Form2)
|
||||||
|
@ -123,7 +143,6 @@ namespace BizHawk.Emulation.DiscSystem.CUE
|
||||||
Pause = true;
|
Pause = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CueTrackType.Mode2_2336:
|
|
||||||
default:
|
default:
|
||||||
throw new InvalidOperationException($"Not supported: {TrackType}");
|
throw new InvalidOperationException($"Not supported: {TrackType}");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue