From 7501e4814ec9d0dcffde082c2e232b659a2d5dff Mon Sep 17 00:00:00 2001 From: yoshida_teruhisa Date: Wed, 30 Jul 2008 08:01:54 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=83=B3=E3=83=96=E3=83=A9=E3=83=91?= =?UTF-8?q?=E3=83=83=E3=83=81=E3=82=92=E5=BD=93=E3=81=A6=E3=82=8B=E3=81=9F?= =?UTF-8?q?=E3=82=81=E3=81=AE=E3=82=B3=E3=83=BC=E3=83=89=E3=81=A0=E3=81=91?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=EF=BC=88=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E3=81=8C=E5=B1=8A=E3=81=8F=E3=81=BE=E3=81=A7=E3=81=93=E3=81=AE?= =?UTF-8?q?=E3=81=BE=E3=81=BE=E6=94=BE=E7=BD=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2034 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../sysmenu/ARM9/src/title.c | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index 78427a87..15988e1e 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -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 ) {