* Fixed CDVD startup code sot hat the CRC for games is more reliably detected when booting through Run->Execute.

* Minor bugfix to MTGS thread startup code; wasn't copying the register state properly (probably didn't matter either way)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1349 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-06-08 16:17:08 +00:00
parent 67b2d2bfc2
commit e538ecd7d8
3 changed files with 20 additions and 8 deletions

View File

@ -402,7 +402,7 @@ void cdvdReadKey(u8 arg0, u16 arg1, u32 arg2, u8* key) {
s32 cdvdGetToc(void* toc)
{
s32 ret = CDVDgetTOC(toc);
if (ret == -1) ret = 0x80;
if (ret == -1) ret = 0x80;
return ret;
}
@ -569,13 +569,25 @@ void cdvdNewDiskCB()
{
cdvd.Type = CDVDgetDiskType();
char str[g_MaxPath];
int result = GetPS2ElfName(str);
if (cdvd.Type == CDVD_TYPE_PS2CD)
{
char str[g_MaxPath];
// Does the SYSTEM.CNF file only say "BOOT="? PS1 CD then.
if(GetPS2ElfName(str) == 1) cdvd.Type = CDVD_TYPE_PSCD;
if(result == 1) cdvd.Type = CDVD_TYPE_PSCD;
}
// Now's a good time to reload the ELF info...
if( ElfCRC == 0 )
{
ElfCRC = loadElfCRC( str );
ElfApplyPatches();
LoadGameSpecificSettings();
GSsetGameCRC( ElfCRC, 0 );
}
}
void mechaDecryptBytes( u32 madr, int size )

View File

@ -511,7 +511,7 @@ int mtgsThreadObject::Callback()
{
Console::WriteLn("MTGS > Thread Started, Opening GS Plugin...");
memcpy_aligned( m_gsMem, PS2MEM_GS, sizeof(m_gsMem) );
memcpy_aligned( m_gsMem, PS2MEM_GS, sizeof(PS2MEM_GS) );
GSsetBaseMem( m_gsMem );
GSirqCallback( NULL );

View File

@ -737,14 +737,11 @@ int OpenPlugins(const char* pTitleFilename)
if (ret != 0) {
if (g_Startup.BootMode != BootMode_Elf) { Msgbox::Alert("Error Opening CDVD Plugin"); goto OpenError; }
else { Console::Notice("Running ELF File Without CDVD Plugin Support!"); cdvdElf = 1; goto skipOpenCDVD; }
else { Console::Notice("Running ELF File Without CDVD Plugin Support!"); cdvdElf = 1; }
}
OpenStatus.CDVD = true;
cdvdNewDiskCB();
}
skipOpenCDVD:
if( !OpenStatus.GS ) {
ret = gsOpen();
if (ret != 0) { Msgbox::Alert("Error Opening GS Plugin"); goto OpenError; }
@ -816,6 +813,9 @@ skipOpenCDVD:
OpenStatus.FW = true;
}
if( !cdvdElf )
cdvdNewDiskCB();
#ifndef _WIN32
//chdir(MAIN_DIR);
#endif