fix #3917
[genesisplusgx] "VDP mode" option (for eliminate region lockups / megakey behavior) #3917
This commit is contained in:
parent
0f20bff766
commit
c65a11eb2b
Binary file not shown.
|
@ -263,6 +263,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
|
||||||
[DefaultValue(LibGPGX.Region.Autodetect)]
|
[DefaultValue(LibGPGX.Region.Autodetect)]
|
||||||
public LibGPGX.Region Region { get; set; }
|
public LibGPGX.Region Region { get; set; }
|
||||||
|
|
||||||
|
[DisplayName("Force VDP Mode")]
|
||||||
|
[Description("Overrides the VDP mode to force it to run at either 60Hz (NTSC) or 50Hz (PAL), regardless of system region.")]
|
||||||
|
[DefaultValue(LibGPGX.ForceVDP.Disabled)]
|
||||||
|
public LibGPGX.ForceVDP ForceVDP { get; set; }
|
||||||
|
|
||||||
[DisplayName("Load BIOS")]
|
[DisplayName("Load BIOS")]
|
||||||
[Description("Indicates whether to load the system BIOS rom.")]
|
[Description("Indicates whether to load the system BIOS rom.")]
|
||||||
[DefaultValue(false)]
|
[DefaultValue(false)]
|
||||||
|
@ -349,6 +354,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
|
||||||
InputSystemA = SystemForSystem(ControlTypeLeft),
|
InputSystemA = SystemForSystem(ControlTypeLeft),
|
||||||
InputSystemB = SystemForSystem(ControlTypeRight),
|
InputSystemB = SystemForSystem(ControlTypeRight),
|
||||||
Region = Region,
|
Region = Region,
|
||||||
|
ForceVDP = ForceVDP,
|
||||||
LoadBIOS = LoadBIOS,
|
LoadBIOS = LoadBIOS,
|
||||||
ForceSram = game["sram"],
|
ForceSram = game["sram"],
|
||||||
SMSFMSoundChip = SMSFMSoundChip,
|
SMSFMSoundChip = SMSFMSoundChip,
|
||||||
|
|
|
@ -30,11 +30,19 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
|
||||||
Japan_PAL = 4
|
Japan_PAL = 4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ForceVDP : int
|
||||||
|
{
|
||||||
|
Disabled = 0,
|
||||||
|
NTSC = 1,
|
||||||
|
PAL = 2
|
||||||
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct InitSettings
|
public struct InitSettings
|
||||||
{
|
{
|
||||||
public uint BackdropColor;
|
public uint BackdropColor;
|
||||||
public Region Region;
|
public Region Region;
|
||||||
|
public ForceVDP ForceVDP;
|
||||||
public ushort LowPassRange;
|
public ushort LowPassRange;
|
||||||
public short LowFreq;
|
public short LowFreq;
|
||||||
public short HighFreq;
|
public short HighFreq;
|
||||||
|
|
|
@ -715,6 +715,7 @@ struct InitSettings
|
||||||
{
|
{
|
||||||
uint32_t BackdropColor;
|
uint32_t BackdropColor;
|
||||||
int32_t Region;
|
int32_t Region;
|
||||||
|
int32_t ForceVDP;
|
||||||
uint16_t LowPassRange;
|
uint16_t LowPassRange;
|
||||||
int16_t LowFreq;
|
int16_t LowFreq;
|
||||||
int16_t HighFreq;
|
int16_t HighFreq;
|
||||||
|
@ -917,8 +918,8 @@ GPGX_EX int gpgx_init(const char* feromextension,
|
||||||
|
|
||||||
/* system options */
|
/* system options */
|
||||||
config.system = 0; /* = AUTO (or SYSTEM_SG, SYSTEM_SGII, SYSTEM_SGII_RAM_EXT, SYSTEM_MARKIII, SYSTEM_SMS, SYSTEM_SMS2, SYSTEM_GG, SYSTEM_MD) */
|
config.system = 0; /* = AUTO (or SYSTEM_SG, SYSTEM_SGII, SYSTEM_SGII_RAM_EXT, SYSTEM_MARKIII, SYSTEM_SMS, SYSTEM_SMS2, SYSTEM_GG, SYSTEM_MD) */
|
||||||
config.region_detect = settings->Region; /* = AUTO (1 = USA, 2 = EUROPE, 3 = JAPAN/NTSC, 4 = JAPAN/PAL) */
|
config.region_detect = settings->Region; /* 0 = AUTO, 1 = USA, 2 = EUROPE, 3 = JAPAN/NTSC, 4 = JAPAN/PAL */
|
||||||
config.vdp_mode = 0; /* = AUTO (1 = NTSC, 2 = PAL) */
|
config.vdp_mode = settings->ForceVDP; /* 0 = AUTO, 1 = NTSC, 2 = PAL */
|
||||||
config.master_clock = 0; /* = AUTO (1 = NTSC, 2 = PAL) */
|
config.master_clock = 0; /* = AUTO (1 = NTSC, 2 = PAL) */
|
||||||
config.force_dtack = 0;
|
config.force_dtack = 0;
|
||||||
config.addr_error = 1;
|
config.addr_error = 1;
|
||||||
|
|
Loading…
Reference in New Issue