SMS: hook up Export/Japan, NTSC/PAL, BIOS Enable, and US/JP Bios selection
This commit is contained in:
parent
8daab82463
commit
b1a37724a1
|
@ -106,11 +106,12 @@ namespace BizHawk.Emulation.Common
|
||||||
var sms_us_1b = File("29091FF60EF4C22B1EE17AA21E0E75BAC6B36474", "sms_us_1.0b.sms", "SMS BIOS 1.0 (USA) (Proto)");
|
var sms_us_1b = File("29091FF60EF4C22B1EE17AA21E0E75BAC6B36474", "sms_us_1.0b.sms", "SMS BIOS 1.0 (USA) (Proto)");
|
||||||
var sms_m404 = File("4A06C8E66261611DCE0305217C42138B71331701", "sms_m404.sms", "SMS BIOS (USA) (M404) (Proto)");
|
var sms_m404 = File("4A06C8E66261611DCE0305217C42138B71331701", "sms_m404.sms", "SMS BIOS (USA) (M404) (Proto)");
|
||||||
|
|
||||||
Firmware("SMS", "SMSBIOS", "SMS Bios");
|
Firmware("SMS", "Export", "SMS Bios (USA/Export)");
|
||||||
Option("SMS", "SMSBIOS", sms_us_13);
|
Firmware("SMS", "Japan", "SMS Bios (Japan)");
|
||||||
Option("SMS", "SMSBIOS", sms_jp_21);
|
Option("SMS", "Export", sms_us_13);
|
||||||
Option("SMS", "SMSBIOS", sms_us_1b);
|
Option("SMS", "Export", sms_us_1b);
|
||||||
Option("SMS", "SMSBIOS", sms_m404);
|
Option("SMS", "Export", sms_m404);
|
||||||
|
Option("SMS", "Japan", sms_jp_21);
|
||||||
}
|
}
|
||||||
|
|
||||||
//adds a defined firmware ID to the database
|
//adds a defined firmware ID to the database
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
======= SMS compatibility issues =======
|
======= SMS compatibility issues =======
|
||||||
|
|
||||||
|
* Several korean TMS games don't work. Possibly mapper issue?
|
||||||
|
* Janggun-ui Adeul (Korea).sms - Sprite flip gfx issue? Could be interesting to investigate. Cogwheel does the same; Kega wont even boot the game
|
||||||
|
* Jang Pung 3 - boots but totally fuxed?
|
||||||
|
* Pretty much everything with (korea) in it needs to be checked. Stupid rare korea shit.
|
||||||
|
|
||||||
* NBA-Jam SMS Proto: works in PAL mode, which is how it's designed to run.
|
* NBA-Jam SMS Proto: works in PAL mode, which is how it's designed to run.
|
||||||
In NTSC mode, it is impossible to start a game, however, it is possible on
|
In NTSC mode, it is impossible to start a game, however, it is possible on
|
||||||
other emulators.
|
other emulators.
|
||||||
|
|
|
@ -15,6 +15,9 @@ using BizHawk.Emulation.Cores.Components.Z80;
|
||||||
+ Try to clean up the organization of the source code.
|
+ Try to clean up the organization of the source code.
|
||||||
+ Lightgun/Paddle/etc if I get really bored
|
+ Lightgun/Paddle/etc if I get really bored
|
||||||
+ Mode 1 not implemented in VDP TMS modes. (I dont have a test case in SG1000 or Coleco)
|
+ Mode 1 not implemented in VDP TMS modes. (I dont have a test case in SG1000 or Coleco)
|
||||||
|
+ Add Region to GameDB.
|
||||||
|
+ Still need a "disable bios for japan-only games when bios is enabled and region is export" functionality
|
||||||
|
+ Or a "force region to japan if game is only for japan" thing. Which one is better?
|
||||||
|
|
||||||
**********************************************************/
|
**********************************************************/
|
||||||
|
|
||||||
|
@ -142,12 +145,22 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
||||||
Array.Resize(ref RomData, ((RomData.Length / BankSize) + 1) * BankSize);
|
Array.Resize(ref RomData, ((RomData.Length / BankSize) + 1) * BankSize);
|
||||||
RomBanks = (byte)(RomData.Length / BankSize);
|
RomBanks = (byte)(RomData.Length / BankSize);
|
||||||
|
|
||||||
DisplayType = DisplayType.NTSC;
|
DisplayType = SyncSettings.UsePAL ? DisplayType.PAL : DisplayType.NTSC;
|
||||||
if (game["PAL"]) DisplayType = DisplayType.PAL;
|
if (game["PAL"] && DisplayType != DisplayType.PAL)
|
||||||
|
{
|
||||||
|
DisplayType = DisplayType.PAL;
|
||||||
|
Console.WriteLine("Display was forced to PAL mode for game compatibility."); // TODO change to corecomm.notify when it exists
|
||||||
|
}
|
||||||
CoreComm.VsyncNum = DisplayType == DisplayType.NTSC ? 60 : 50;
|
CoreComm.VsyncNum = DisplayType == DisplayType.NTSC ? 60 : 50;
|
||||||
CoreComm.VsyncDen = 1;
|
CoreComm.VsyncDen = 1;
|
||||||
|
|
||||||
if (game["Japan"]) Region = "Japan";
|
Region = SyncSettings.ExportRegion ? "Export" : "Japan";
|
||||||
|
if (game["Japan"] && Region != "Japan")
|
||||||
|
{
|
||||||
|
Region = "Japan";
|
||||||
|
Console.WriteLine("Region was forced to Japan for game compatibility."); // TODO corecomm.notify
|
||||||
|
}
|
||||||
|
|
||||||
if (game.NotInDatabase || game["FM"] && SyncSettings.EnableFM && !IsGameGear)
|
if (game.NotInDatabase || game["FM"] && SyncSettings.EnableFM && !IsGameGear)
|
||||||
HasYM2413 = true;
|
HasYM2413 = true;
|
||||||
|
|
||||||
|
@ -201,14 +214,15 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
||||||
}
|
}
|
||||||
else if (game.System == "SMS")
|
else if (game.System == "SMS")
|
||||||
{
|
{
|
||||||
BiosRom = comm.CoreFileProvider.GetFirmware("SMS", "SMSBIOS", false);
|
BiosRom = comm.CoreFileProvider.GetFirmware("SMS", Region, false);
|
||||||
if (BiosRom != null) // && usebios
|
if (BiosRom != null && SyncSettings.UseBIOS)
|
||||||
{
|
|
||||||
Port3E = 0xF7;
|
Port3E = 0xF7;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetupMemoryDomains();
|
if (SyncSettings.UseBIOS && BiosRom == null)
|
||||||
|
Console.WriteLine("BIOS was selected, but rom image not available. BIOS not enabled."); // TODO corecomm.notify
|
||||||
|
}
|
||||||
|
|
||||||
|
SetupMemoryDomains();
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte ReadPort(ushort port)
|
public byte ReadPort(ushort port)
|
||||||
|
@ -464,7 +478,7 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
||||||
|
|
||||||
public string BoardName { get { return null; } }
|
public string BoardName { get { return null; } }
|
||||||
|
|
||||||
string region = "Export";
|
string region;
|
||||||
public string Region
|
public string Region
|
||||||
{
|
{
|
||||||
get { return region; }
|
get { return region; }
|
||||||
|
|
Loading…
Reference in New Issue