バンブラパッチを当てるためのコードだけ追加(ファイルが届くまでこのまま放置)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2034 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-07-30 08:01:54 +00:00
parent 1d3ba4e21e
commit 7501e4814e

View File

@ -93,6 +93,7 @@ static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle );
static BOOL SYSMi_CheckTitlePointer( TitleProperty *pBootTitle );
static void SYSMi_makeTitleIdList( void );
static BOOL SYSMi_AuthenticateHeader( TitleProperty *pBootTitle, ROM_Header *head );
static void SYSMi_applyPatchToBandBrothers( void );
// global variable-------------------------------------------------------------
// static variable-------------------------------------------------------------
@ -1676,10 +1677,61 @@ void SYSM_TryToBootTitle( TitleProperty *pBootTitle )
// タイトルIDリストの作成
SYSMi_makeTitleIdList();
// バンブラパッチ
// SYSMi_applyPatchToBandBrothers();
BOOT_Ready(); // never return.
}
// バンブラパッチを当てる関数
static void SYSMi_applyPatchToBandBrothers( void )
{
ROM_Header_Short *hs = ( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF;
if( ( 0 == STD_CompareNString( hs->game_code , "AXBJ", 4 ) ) && ( hs->rom_version == 0 ) )
{
s32 len = 0;
s32 llen;
FSFile src;
void *dest;
// データ読み込み + パッチ
FS_InitFile( &src );
if ( !FS_OpenFileEx( &src, "rom:/bandbroth_7flx.bin", FS_FILEMODE_R ) ) return;
len = (int)FS_GetFileLength( &src );
if( SYSMi_GetWork()->romRelocateInfo[ARM7_STATIC].src != NULL )
{
// ARM7FLXが再配置の場合
dest = (void *)SYSMi_GetWork()->romRelocateInfo[ARM7_STATIC].src;
}else
{
// 再配置なし
dest = hs->sub_ram_address;
}
for(llen = 0; llen < len; )
{
int rd;
rd = FS_ReadFile( &src, dest, len );
if(rd == -1)
{
FS_CloseFile( &src );
return;
}
dest = (void *)((u32)dest + rd);
llen += rd;
}
if ( !FS_CloseFile( &src ) ) return;
if (len != llen) return;
OS_TPrintf("bandbrothers patch : apply succeeded! \n");
}
return;
}
// タイトルIDリストの作成
static void SYSMi_makeTitleIdList( void )
{