puae: fix region change
This commit is contained in:
parent
dad929fd9f
commit
aca5ccae50
|
@ -33,8 +33,9 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga
|
||||||
MaxSamples = 2 * 1024,
|
MaxSamples = 2 * 1024,
|
||||||
DefaultWidth = LibPUAE.NTSC_WIDTH,
|
DefaultWidth = LibPUAE.NTSC_WIDTH,
|
||||||
DefaultHeight = LibPUAE.NTSC_HEIGHT,
|
DefaultHeight = LibPUAE.NTSC_HEIGHT,
|
||||||
MaxWidth = LibPUAE.NTSC_WIDTH,
|
// games never switch region, and video dumping won't be happy, but amiga can still do it
|
||||||
MaxHeight = LibPUAE.NTSC_HEIGHT,
|
MaxWidth = LibPUAE.PAL_WIDTH,
|
||||||
|
MaxHeight = LibPUAE.PAL_HEIGHT,
|
||||||
DefaultFpsNumerator = LibPUAE.PUAE_VIDEO_NUMERATOR_NTSC,
|
DefaultFpsNumerator = LibPUAE.PUAE_VIDEO_NUMERATOR_NTSC,
|
||||||
DefaultFpsDenominator = LibPUAE.PUAE_VIDEO_DENOMINATOR_NTSC
|
DefaultFpsDenominator = LibPUAE.PUAE_VIDEO_DENOMINATOR_NTSC
|
||||||
};
|
};
|
||||||
|
@ -77,7 +78,7 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga
|
||||||
_drives = new(_syncSettings.FloppyDrives);
|
_drives = new(_syncSettings.FloppyDrives);
|
||||||
DriveLightEnabled = _syncSettings.FloppyDrives > 0;
|
DriveLightEnabled = _syncSettings.FloppyDrives > 0;
|
||||||
|
|
||||||
UpdateAspectRatio(_syncSettings);
|
UpdateVideoStandard(true);
|
||||||
CreateArguments(_syncSettings);
|
CreateArguments(_syncSettings);
|
||||||
ControllerDefinition = CreateControllerDefinition(_syncSettings);
|
ControllerDefinition = CreateControllerDefinition(_syncSettings);
|
||||||
_ledCallback = LEDCallback;
|
_ledCallback = LEDCallback;
|
||||||
|
@ -277,17 +278,7 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga
|
||||||
|
|
||||||
protected override void FrameAdvancePost()
|
protected override void FrameAdvancePost()
|
||||||
{
|
{
|
||||||
if (BufferHeight == LibPUAE.NTSC_HEIGHT)
|
UpdateVideoStandard(false);
|
||||||
{
|
|
||||||
VsyncNumerator = LibPUAE.PUAE_VIDEO_NUMERATOR_NTSC;
|
|
||||||
VsyncDenominator = LibPUAE.PUAE_VIDEO_DENOMINATOR_NTSC;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
VsyncNumerator = LibPUAE.PUAE_VIDEO_NUMERATOR_PAL;
|
|
||||||
VsyncDenominator = LibPUAE.PUAE_VIDEO_DENOMINATOR_PAL;
|
|
||||||
}
|
|
||||||
UpdateAspectRatio(_syncSettings);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SaveStateBinaryInternal(BinaryWriter writer)
|
protected override void SaveStateBinaryInternal(BinaryWriter writer)
|
||||||
|
@ -310,11 +301,24 @@ namespace BizHawk.Emulation.Cores.Computers.Amiga
|
||||||
_currentSlot = reader.ReadInt32();
|
_currentSlot = reader.ReadInt32();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateAspectRatio(PUAESyncSettings settings)
|
private void UpdateVideoStandard(bool initial)
|
||||||
{
|
{
|
||||||
_correctedWidth = settings.Region is VideoStandard.PAL
|
var ntsc = initial
|
||||||
? LibPUAE.PAL_WIDTH
|
? _syncSettings.Region is VideoStandard.NTSC
|
||||||
: LibPUAE.PAL_WIDTH * 6 / 7;
|
: BufferHeight == LibPUAE.NTSC_HEIGHT;
|
||||||
|
|
||||||
|
if (ntsc)
|
||||||
|
{
|
||||||
|
_correctedWidth = LibPUAE.PAL_WIDTH * 6 / 7;
|
||||||
|
VsyncNumerator = LibPUAE.PUAE_VIDEO_NUMERATOR_NTSC;
|
||||||
|
VsyncDenominator = LibPUAE.PUAE_VIDEO_DENOMINATOR_NTSC;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_correctedWidth = LibPUAE.PAL_WIDTH;
|
||||||
|
VsyncNumerator = LibPUAE.PUAE_VIDEO_NUMERATOR_PAL;
|
||||||
|
VsyncDenominator = LibPUAE.PUAE_VIDEO_DENOMINATOR_PAL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class FileNames
|
private static class FileNames
|
||||||
|
|
Loading…
Reference in New Issue