Merge branch 'master' of https://github.com/TASVideos/bizhawk into Release

This commit is contained in:
hegyak 2015-07-18 06:02:02 -07:00
commit 24c98ab5ae
10 changed files with 41 additions and 8 deletions

View File

@ -270,7 +270,7 @@ namespace BizHawk.Client.Common
{ {
string discHash = new DiscHasher(disc).Calculate_PSX_BizIDHash().ToString("X8"); string discHash = new DiscHasher(disc).Calculate_PSX_BizIDHash().ToString("X8");
game = Database.CheckDatabase(discHash); game = Database.CheckDatabase(discHash);
if (game.IsRomStatusBad() || game.Status == RomStatus.NotInDatabase) if (game == null || game.IsRomStatusBad() || game.Status == RomStatus.NotInDatabase)
sw.WriteLine("Disc could not be identified as known-good. Look for a better rip."); sw.WriteLine("Disc could not be identified as known-good. Look for a better rip.");
else else
{ {

View File

@ -272,6 +272,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES
case "sha1:E8BC7E6BAE7032D571152F6834516535C34C68F0": // Bill and Ted's Excellent Adventure bad dump case "sha1:E8BC7E6BAE7032D571152F6834516535C34C68F0": // Bill and Ted's Excellent Adventure bad dump
case "sha1:401023BAE92A38B89F7D0C2E0F023E35F1FFEEFD": // Bill and Ted's Excellent Adventure bad dump case "sha1:401023BAE92A38B89F7D0C2E0F023E35F1FFEEFD": // Bill and Ted's Excellent Adventure bad dump
case "sha1:6270F9FF2BD0B32A23A45985D9D7FB2793E1CED3": // Bill and Ted's Excellent Adventure overdump dump case "sha1:6270F9FF2BD0B32A23A45985D9D7FB2793E1CED3": // Bill and Ted's Excellent Adventure overdump dump
case "sha1:5E3C02A3A5F6CD4F2442311630F1C44A8E9DC7E2": // Paperboy
throw new UnsupportedGameException("Game known to not be playable in this core"); throw new UnsupportedGameException("Game known to not be playable in this core");
default: default:
break; break;

View File

@ -322,7 +322,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
ret.readcallback = cd_callback_handle = new LibGPGX.cd_read_cb(CDRead); ret.readcallback = cd_callback_handle = new LibGPGX.cd_read_cb(CDRead);
var ses = CD.Session1; var ses = CD.Session1;
int ntrack = ses.Tracks.Count; int ntrack = ses.InformationTrackCount;
// bet you a dollar this is all wrong // bet you a dollar this is all wrong
//zero 07-jul-2015 - throws a dollar in the pile, since he probably messed it up worse //zero 07-jul-2015 - throws a dollar in the pile, since he probably messed it up worse
@ -330,8 +330,8 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
{ {
if (i < ntrack) if (i < ntrack)
{ {
ret.tracks[i].start = ses.Tracks[i].LBA; ret.tracks[i].start = ses.Tracks[i + 1].LBA;
ret.tracks[i].end = ses.Tracks[i + 1].LBA; ret.tracks[i].end = ses.Tracks[i + 2].LBA;
if (i == ntrack - 1) if (i == ntrack - 1)
{ {
ret.end = ret.tracks[i].end; ret.end = ret.tracks[i].end;

View File

@ -100,7 +100,9 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
ControllerDefinition.FloatControls.Add("Disc Select"); ControllerDefinition.FloatControls.Add("Disc Select");
ControllerDefinition.FloatRanges.Add( ControllerDefinition.FloatRanges.Add(
new[] {-1f,-1f,-1f} //this is carefully chosen so that we end up with a -1 disc by default (indicating that it's never been set) //new[] {-1f,-1f,-1f} //this is carefully chosen so that we end up with a -1 disc by default (indicating that it's never been set)
//hmm.. I don't see why this wouldn't work
new[] {0f,1f,1f}
); );
} }
@ -586,6 +588,10 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
else else
OctoshockDll.shock_SetTraceCallback(psx, IntPtr.Zero, null); OctoshockDll.shock_SetTraceCallback(psx, IntPtr.Zero, null);
//apply soft reset if needed
if (Controller["Reset"])
OctoshockDll.shock_SoftReset(psx);
//------------------------ //------------------------
OctoshockDll.shock_Step(psx, OctoshockDll.eShockStep.Frame); OctoshockDll.shock_Step(psx, OctoshockDll.eShockStep.Frame);
//------------------------ //------------------------

View File

@ -202,6 +202,9 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
[DllImport(dd, CallingConvention = cc)] [DllImport(dd, CallingConvention = cc)]
public static extern int shock_PowerOn(IntPtr psx); public static extern int shock_PowerOn(IntPtr psx);
[DllImport(dd, CallingConvention = cc)]
public static extern int shock_SoftReset(IntPtr psx);
[DllImport(dd, CallingConvention = cc)] [DllImport(dd, CallingConvention = cc)]
public static extern int shock_PowerOff(IntPtr psx); public static extern int shock_PowerOff(IntPtr psx);

View File

@ -28,8 +28,8 @@ namespace BizHawk.Emulation.DiscSystem
session.Tracks.Add(new DiscStructure.Track() session.Tracks.Add(new DiscStructure.Track()
{ {
Number = 0, Number = 0,
Control = EControlQ.None, //TODO - not accurate (take from track 1?) Control = EControlQ.None, //we'll set this later
LBA = -150 //TODO - not accurate LBA = -new Timestamp(99,99,99).Sector //obvious garbage
}); });
int ntracks = TOCRaw.LastRecordedTrackNumber - TOCRaw.FirstRecordedTrackNumber + 1; int ntracks = TOCRaw.LastRecordedTrackNumber - TOCRaw.FirstRecordedTrackNumber + 1;
@ -63,7 +63,9 @@ namespace BizHawk.Emulation.DiscSystem
session.Tracks.Add(new DiscStructure.Track() session.Tracks.Add(new DiscStructure.Track()
{ {
Number = 0xA0, //right? Number = 0xA0, //right?
Control = EControlQ.None, //TODO - not accurate (take from track 1?) //kind of a guess, but not completely
Control = session.Tracks[session.Tracks.Count -1 ].Control,
Mode = session.Tracks[session.Tracks.Count - 1].Mode,
LBA = TOCRaw.LeadoutLBA.Sector LBA = TOCRaw.LeadoutLBA.Sector
}); });
@ -72,6 +74,11 @@ namespace BizHawk.Emulation.DiscSystem
{ {
session.Tracks[i].NextTrack = session.Tracks[i + 1]; session.Tracks[i].NextTrack = session.Tracks[i + 1];
} }
//fix lead-in track type
//guesses:
session.Tracks[0].Control = session.Tracks[1].Control;
session.Tracks[0].Mode = session.Tracks[1].Mode;
} }
} }
} }

Binary file not shown.

View File

@ -128,6 +128,9 @@ sha1:32D71DD6C5A8D78A918FE1B9D6D6C4A570D9652D Oeka Kids - Anpanman no Hiragana
;it works, so don't laugh ;it works, so don't laugh
sha1:203523818A348361584CDEBE47AEB860808757FC U Jurassic Boy 2 (Sachen) NES board=NES-TR1ROM;VRAM=8 sha1:203523818A348361584CDEBE47AEB860808757FC U Jurassic Boy 2 (Sachen) NES board=NES-TR1ROM;VRAM=8
;wrong mirroring, no bootgod entry
sha1:C1D82F6BE8AF524F951FC7C9D41604E59F9FE92A G Dragon Wars (USA) (Proto) NES board=MAPPER004;PAD_H=0;PAD_V=0
;;;;;;;;;;;;;;;;;;;----------------------------------------------------------------------- ;;;;;;;;;;;;;;;;;;;-----------------------------------------------------------------------
;mmc3 homebrews that need chip specification ;mmc3 homebrews that need chip specification
sha1:35C157A921156E47FD3F6573D150F54108D0EDFC Blargg's 5.MMC3_rev_A.nes NES board=MAPPER004;MMC3=MMC3A sha1:35C157A921156E47FD3F6573D150F54108D0EDFC Blargg's 5.MMC3_rev_A.nes NES board=MAPPER004;MMC3=MMC3A

View File

@ -1342,6 +1342,16 @@ EW_EXPORT s32 shock_PowerOn(void* psx)
return SHOCK_OK; return SHOCK_OK;
} }
//Triggers a soft reset immediately. Returns SHOCK_NOCANDO if console is powered off.
EW_EXPORT s32 shock_SoftReset(void *psx)
{
if (!s_ShockState.power) return SHOCK_NOCANDO;
PSX_Power(false);
return SHOCK_OK;
}
//Sets the power to OFF. It is an error to turn an already-off console OFF again //Sets the power to OFF. It is an error to turn an already-off console OFF again
EW_EXPORT s32 shock_PowerOff(void* psx) EW_EXPORT s32 shock_PowerOff(void* psx)
{ {

View File

@ -344,6 +344,9 @@ EW_EXPORT s32 shock_MountEXE(void* psx, void* exebuf, s32 size);
//Sets the power to ON. Returns SHOCK_NOCANDO if already on. //Sets the power to ON. Returns SHOCK_NOCANDO if already on.
EW_EXPORT s32 shock_PowerOn(void* psx); EW_EXPORT s32 shock_PowerOn(void* psx);
//Triggers a soft reset immediately. Returns SHOCK_NOCANDO if console is powered off.
EW_EXPORT s32 shock_SoftReset(void* psx);
//Sets the power to OFF. Returns SHOCK_NOCANDO if already off. //Sets the power to OFF. Returns SHOCK_NOCANDO if already off.
EW_EXPORT s32 shock_PowerOff(void* psx); EW_EXPORT s32 shock_PowerOff(void* psx);