Vectrex: Add minestorm and bug fixes
This commit is contained in:
parent
0c8646cfd4
commit
e8d64cdbbb
|
@ -173,7 +173,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
private bool HandleArchiveBinding(HawkFile file)
|
||||
{
|
||||
var romExtensions = new[] { "SMS", "SMC", "SFC", "PCE", "SGX", "GG", "SG", "BIN", "GEN", "MD", "SMD", "GB", "NES", "FDS", "ROM", "INT", "GBC", "UNF", "A78", "CRT", "COL", "XML", "Z64", "V64", "N64", "WS", "WSC", "GBA", "32X" };
|
||||
var romExtensions = new[] { "SMS", "SMC", "SFC", "PCE", "SGX", "GG", "SG", "BIN", "GEN", "MD", "SMD", "GB", "NES", "FDS", "ROM", "INT", "GBC", "UNF", "A78", "CRT", "COL", "XML", "Z64", "V64", "N64", "WS", "WSC", "GBA", "32X", "VEC" };
|
||||
|
||||
// try binding normal rom extensions first
|
||||
if (!file.IsBound)
|
||||
|
@ -884,6 +884,8 @@ namespace BizHawk.Client.Common
|
|||
rom.GameInfo.System = "NES";
|
||||
}
|
||||
|
||||
Console.WriteLine(rom.GameInfo.System);
|
||||
|
||||
if (string.IsNullOrEmpty(rom.GameInfo.System))
|
||||
{
|
||||
// Has the user picked a preference for this extension?
|
||||
|
@ -1116,6 +1118,9 @@ namespace BizHawk.Client.Common
|
|||
case "32X":
|
||||
core = CoreInventory.Instance["GEN", "PicoDrive"];
|
||||
break;
|
||||
case "VEC":
|
||||
core = CoreInventory.Instance["VEC", "VectrexHawk"];
|
||||
break;
|
||||
}
|
||||
|
||||
if (core != null)
|
||||
|
|
|
@ -375,6 +375,11 @@ namespace BizHawk.Emulation.Common
|
|||
game.System = "32X";
|
||||
game.AddOption("32X", "true");
|
||||
break;
|
||||
|
||||
case ".VEC":
|
||||
game.System = "VEC";
|
||||
game.AddOption("VEC", "true");
|
||||
break;
|
||||
}
|
||||
|
||||
game.Name = Path.GetFileNameWithoutExtension(fileName)?.Replace('_', ' ');
|
||||
|
|
|
@ -26,11 +26,16 @@ namespace BizHawk.Emulation.Common
|
|||
FirmwareAndOption("FECBAE2CEC76C710422486BAA186FFA7CA1CF925", 53248, "SNES", "ST011", "st011.rom", "ST011 Rom");
|
||||
FirmwareAndOption("91383B92745CC7CC4F15409AC5BC2C2F699A43F1", 163840, "SNES", "ST018", "st018.rom", "ST018 Rom");
|
||||
FirmwareAndOption("79F5FF55DD10187C7FD7B8DAAB0B3FFBD1F56A2C", 262144, "PCECD", "Bios", "pcecd-3.0-(J).pce", "Super CD Bios (J)");
|
||||
FirmwareAndOption("D9D134BB6B36907C615A594CC7688F7BFCEF5B43", 4096, "A78", "Bios_NTSC", "7800NTSCBIOS.bin", "NTSC Bios");
|
||||
//FirmwareAndOption("D9D134BB6B36907C615A594CC7688F7BFCEF5B43", 4096, "A78", "Bios_NTSC", "7800NTSCBIOS.bin", "NTSC Bios");
|
||||
FirmwareAndOption("CE236581AB7921B59DB95BA12837C22F160896CB", 4096, "A78", "Bios_NTSC", "7800NTSCBIOS.bin", "NTSC Bios");
|
||||
|
||||
FirmwareAndOption("5A140136A16D1D83E4FF32A19409CA376A8DF874", 16384, "A78", "Bios_PAL", "7800PALBIOS.bin", "PAL Bios");
|
||||
FirmwareAndOption("A3AF676991391A6DD716C79022D4947206B78164", 4096, "A78", "Bios_HSC", "7800highscore.bin", "Highscore Bios");
|
||||
FirmwareAndOption("45BEDC4CBDEAC66C7DF59E9E599195C778D86A92", 8192, "Coleco", "Bios", "ColecoBios.bin", "Bios");
|
||||
|
||||
FirmwareAndOption("B9BBF5BB0EAC52D039A4A993A2D8064B862C9E28", 4096, "Vectrex", "Bios", "VectrexBios.bin", "Bios");
|
||||
FirmwareAndOption("65D07426B520DDD3115D40F255511E0FD2E20AE7", 8192, "Vectrex", "Minestorm", "Minestorm.vec", "Game");
|
||||
FirmwareAndOption("1FDCC6E54AE5177BC9CDC79CE616AE3401E5C229", 8192, "Vectrex", "Minestorm", "MinestormII.vec", "Game");
|
||||
|
||||
var gbaNormal = File("300C20DF6731A33952DED8C436F7F186D25D3492", 16384, "gbabios.rom", "Bios (World)");
|
||||
var gbaJDebug = File("AA98A2AD32B86106340665D1222D7D973A1361C7", 16384, "gbabios.rom", "Bios (J Debug)");
|
||||
|
|
|
@ -360,7 +360,7 @@ namespace BizHawk.Emulation.Common.Components.MC6809
|
|||
{
|
||||
PopulateCURINSTR(RD_INC, ALU, PC,
|
||||
RD_INC, ALU2, PC,
|
||||
SET_ADDR, PC, ALU, ALU2);
|
||||
SET_ADDR, ADDR, ALU, ALU2);
|
||||
|
||||
IRQS = 3;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
|
|||
}
|
||||
else if (addr < 0xF000)
|
||||
{
|
||||
return 0xFF;
|
||||
return minestorm[addr-0xE000];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -112,7 +112,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
|
|||
}
|
||||
else if (addr < 0xF000)
|
||||
{
|
||||
return 0xFF;
|
||||
return minestorm[addr - 0xE000];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
|
|||
public byte[] RAM = new byte[0x400];
|
||||
|
||||
|
||||
public byte[] _bios;
|
||||
public byte[] _bios, minestorm;
|
||||
public readonly byte[] _rom;
|
||||
|
||||
public byte[] cart_RAM;
|
||||
|
@ -62,13 +62,30 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
|
|||
_controllerDeck = new VectrexHawkControllerDeck(_syncSettings.Port1, _syncSettings.Port2);
|
||||
|
||||
byte[] Bios = null;
|
||||
byte[] Mine = null;
|
||||
|
||||
Bios = comm.CoreFileProvider.GetFirmware("Vectrex", "Bios", true, "BIOS Not Found, Cannot Load");
|
||||
_bios = Bios;
|
||||
|
||||
Mine = comm.CoreFileProvider.GetFirmware("Vectrex", "Minestorm", true, "Minestorm Not Found, Cannot Load");
|
||||
minestorm = Mine;
|
||||
|
||||
Console.WriteLine("SHA1:" + rom.HashSHA1(0, rom.Length));
|
||||
|
||||
_rom = rom;
|
||||
|
||||
// If the game is minstorm, then no cartridge is inserted, retun 0xFF
|
||||
if ((rom.HashSHA1(0, rom.Length) == "65D07426B520DDD3115D40F255511E0FD2E20AE7") ||
|
||||
(rom.HashSHA1(0, rom.Length) == "1FDCC6E54AE5177BC9CDC79CE616AE3401E5C229"))
|
||||
{
|
||||
_rom = new byte[0x8000];
|
||||
|
||||
for (int i = 0; i < 0x8000; i++)
|
||||
{
|
||||
_rom[i] = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
// mirror games that are too small
|
||||
if (_rom.Length < 0x8000)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue