mirror of https://github.com/PCSX2/pcsx2.git
Internal Iso: Only search for dual layer once.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4027 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
2b0f47260a
commit
a9d7f24884
|
@ -35,6 +35,7 @@ static isoFile iso;
|
||||||
static int psize, cdtype;
|
static int psize, cdtype;
|
||||||
|
|
||||||
static s32 layer1start = -1;
|
static s32 layer1start = -1;
|
||||||
|
static bool layer1searched = false;
|
||||||
|
|
||||||
void CALLBACK ISOclose()
|
void CALLBACK ISOclose()
|
||||||
{
|
{
|
||||||
|
@ -77,7 +78,8 @@ s32 CALLBACK ISOopen(const char* pTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
layer1start = -1;
|
layer1start = -1;
|
||||||
|
layer1searched = false;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,11 +147,14 @@ static bool testForPartitionInfo( const u8 (&tempbuffer)[CD_FRAMESIZE_RAW] )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool FindLayer1Start()
|
static void FindLayer1Start()
|
||||||
{
|
{
|
||||||
if( (layer1start != -1) || (iso.GetBlockCount() < 0x230540) ) return true;
|
if (iso.GetBlockCount() < 0x230540) return;
|
||||||
|
if (layer1start != -1) return;
|
||||||
|
if (layer1searched) return;
|
||||||
|
|
||||||
Console.WriteLn("isoFile: searching for layer1...");
|
Console.WriteLn("isoFile: searching for layer1...");
|
||||||
|
layer1searched = true;
|
||||||
|
|
||||||
int blockresult = -1;
|
int blockresult = -1;
|
||||||
|
|
||||||
|
@ -232,7 +237,6 @@ static bool FindLayer1Start()
|
||||||
if( layer1start == -1 )
|
if( layer1start == -1 )
|
||||||
{
|
{
|
||||||
Console.Error("isoFile: Couldn't find layer1... iso image is probably corrupt or incomplete.");
|
Console.Error("isoFile: Couldn't find layer1... iso image is probably corrupt or incomplete.");
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -243,15 +247,14 @@ static bool FindLayer1Start()
|
||||||
layerCacheIni.Write( cacheKey, layer1start );
|
layerCacheIni.Write( cacheKey, layer1start );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Should return 0 if no error occurred, or -1 if layer detection FAILED.
|
// Should return 0 if no error occurred, or -1 if layer detection FAILED.
|
||||||
s32 CALLBACK ISOgetDualInfo(s32* dualType, u32* _layer1start)
|
s32 CALLBACK ISOgetDualInfo(s32* dualType, u32* _layer1start)
|
||||||
{
|
{
|
||||||
if( !FindLayer1Start() ) return -1;
|
FindLayer1Start();
|
||||||
|
|
||||||
if(layer1start<0)
|
if (layer1start < 0)
|
||||||
{
|
{
|
||||||
*dualType = 0;
|
*dualType = 0;
|
||||||
*_layer1start = iso.GetBlockCount();
|
*_layer1start = iso.GetBlockCount();
|
||||||
|
|
Loading…
Reference in New Issue