nes: try (and fail) to support some bad dumps of FAMICOM JUMP 2. meh. the good one works anyway.
batchrunner: keep track of number of lag frames and print to output
This commit is contained in:
parent
7d73f700bc
commit
3c357a7d83
|
@ -39,7 +39,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
public string Filename; // name of file
|
public string Filename; // name of file
|
||||||
public string Fullname; // filename + subfilename
|
public string Fullname; // filename + subfilename
|
||||||
public GameInfo GI;
|
public GameInfo GI;
|
||||||
|
|
||||||
public Type CoreType; // actual type of the core that was returned
|
public Type CoreType; // actual type of the core that was returned
|
||||||
public enum EStatus
|
public enum EStatus
|
||||||
{
|
{
|
||||||
|
@ -52,9 +52,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
public EStatus Status; // what happened
|
public EStatus Status; // what happened
|
||||||
public List<string> Messages = new List<string>();
|
public List<string> Messages = new List<string>();
|
||||||
|
|
||||||
|
public int Frames; // number of frames successfully run
|
||||||
|
public int LaggedFrames; // number of those that were lagged
|
||||||
|
|
||||||
public void DumpToTW(System.IO.TextWriter tw)
|
public void DumpToTW(System.IO.TextWriter tw)
|
||||||
{
|
{
|
||||||
tw.WriteLine("{0}\t{1}\t{2}\t{3}", Filename, Fullname, CoreType, Status);
|
tw.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", Filename, Fullname, CoreType, Status, Frames, LaggedFrames);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,6 +159,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
current.CoreType = emu.GetType();
|
current.CoreType = emu.GetType();
|
||||||
emu.Controller = new Controller(emu.ControllerDefinition);
|
emu.Controller = new Controller(emu.ControllerDefinition);
|
||||||
|
|
||||||
|
current.Frames = 0;
|
||||||
|
current.LaggedFrames = 0;
|
||||||
|
|
||||||
for (int i = 0; i < numframes; i++)
|
for (int i = 0; i < numframes; i++)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -165,6 +171,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
emu.FrameAdvance(true, true);
|
emu.FrameAdvance(true, true);
|
||||||
// some cores really really really like it if you drain their audio every frame
|
// some cores really really really like it if you drain their audio every frame
|
||||||
emu.SyncSoundProvider.GetSamples(out samp, out nsamp);
|
emu.SyncSoundProvider.GetSamples(out samp, out nsamp);
|
||||||
|
current.Frames++;
|
||||||
|
if (emu.IsLagFrame)
|
||||||
|
current.LaggedFrames++;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -105,6 +105,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
regs_wram_enable = false;
|
regs_wram_enable = false;
|
||||||
break;
|
break;
|
||||||
case "MAPPER016": // [7]
|
case "MAPPER016": // [7]
|
||||||
|
if (Cart.prg_size > 256)
|
||||||
|
{
|
||||||
|
// you have two options:
|
||||||
|
// 1) assume prg > 256 => jump2 (aka mapper 153, type [5])
|
||||||
|
// this will break hypothetical prg oversize hacks
|
||||||
|
// 2) assume prg > 256 => oversize regular FCG
|
||||||
|
// this will break famicom 2 dumps without hash match,
|
||||||
|
// which are marked mapper016 usually
|
||||||
|
goto case "MAPPER153";
|
||||||
|
}
|
||||||
AssertPrg(128, 256); AssertChr(128, 256);
|
AssertPrg(128, 256); AssertChr(128, 256);
|
||||||
Cart.wram_size = 0;
|
Cart.wram_size = 0;
|
||||||
regs_prg_enable = true;
|
regs_prg_enable = true;
|
||||||
|
@ -118,6 +128,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
Cart.wram_size = 8;
|
Cart.wram_size = 8;
|
||||||
regs_prg_enable = true;
|
regs_prg_enable = true;
|
||||||
regs_wram_enable = false;
|
regs_wram_enable = false;
|
||||||
|
jump2 = true;
|
||||||
break;
|
break;
|
||||||
case "BANDAI-JUMP2": // [5]
|
case "BANDAI-JUMP2": // [5]
|
||||||
AssertPrg(512);
|
AssertPrg(512);
|
||||||
|
|
Loading…
Reference in New Issue