diff --git a/build/tests/FakeRomHeader/main.c b/build/tests/FakeRomHeader/main.c index 341f5e48..f4edea71 100644 --- a/build/tests/FakeRomHeader/main.c +++ b/build/tests/FakeRomHeader/main.c @@ -107,10 +107,10 @@ void usage() printf( " input_file : a ROM data file (generated by makerom.TWL).\n" ); printf( " output_file : a destination file.\n" ); #else - printf( "Usage: fakeRomHeader.exe input_file output_file new_version\n" ); - printf( " input_file : a ROM data file (generated by makerom.TWL).\n" ); - printf( " output_file : a destination file.\n" ); - printf( " ROM_version : a new ROM version.\n" ); + printf( "Usage: RomVersionChanger.exe input_file output_file new_ROM_version\n" ); + printf( " input_file : a source ROM file.\n" ); + printf( " output_file : a destination ROM file.\n" ); + printf( " new_ROM_version : a new ROM version.\n" ); #endif printf( "\nOption:\n" ); printf( "-h : print help only.\n" ); @@ -122,8 +122,8 @@ void usage() printf( "-m : [Only NTR limited ROM] Rom speed type replace 1TROM from MROM.\n" ); printf( "-D : assert a disable flag of debugger alalysis.\n" ); printf( "-c : assert a check(inspection) card flag.\n" ); -#endif printf( "-N : skip appending signature [using for NTR limited ROM]" ); +#endif printf( "-f : force to overwrite a output_file.\n" ); printf( "-----------------------------------------------------------------------------\n" ); } @@ -154,7 +154,7 @@ int main(int argc, char *argv[]) #ifdef FOR_RED while( (opt = getopt(argc, argv, "hpsdmv:DcfN")) >= 0 ) #endif - while( (opt = getopt(argc, argv, "hfN")) >= 0 ) + while( (opt = getopt(argc, argv, "hf")) >= 0 ) { switch( opt ) { @@ -192,11 +192,11 @@ int main(int argc, char *argv[]) case 'c': context.bCheckCard = TRUE; break; -#endif + case 'N': context.bNTR = TRUE; break; - +#endif case 'f': bForceOverwrite = TRUE; break; @@ -334,18 +334,23 @@ static BOOL iMain( SContext *pContext ) #ifndef FOR_RED // 署名の検証 - if( !(pContext->bNTR) ) + if( !DecryptSignRomHeader(&rh) ) { - if( !DecryptSignRomHeader(&rh) ) - { - printf( "Decrypt Sign: Failed\n" ); - return FALSE; - } - printf( "Decrypt Sign: Succeeded\n" ); + printf( "Decrypt Sign: Failed\n" ); + return FALSE; } - else if( rh.s.platform_code == PLATFORM_CODE_NTR ) + printf( "Decrypt Sign: Succeeded\n" ); + + // NTRのときエラー(よくありそうなので仰々しく出力) + if( rh.s.platform_code == PLATFORM_CODE_NTR ) { - printf( "\n*** Error: required -N option for NTR Limited application. ***\n" ); + printf("\n"); + printf("******************** Error *******************\n"); + printf("* *\n"); + printf("* NTR Limited tytle is not supported. *\n"); + printf("* *\n"); + printf("************************************************\n"); + printf("\n"); return FALSE; } @@ -362,20 +367,8 @@ static BOOL iMain( SContext *pContext ) printf("************************************************\n"); printf("\n"); } - - // NTRのときも念のため警告 - if( rh.s.platform_code == PLATFORM_CODE_NTR ) - { - printf("\n"); - printf("******************** Warning *******************\n"); - printf("* *\n"); - printf("* Platform is NTR Limited. *\n"); - printf("* *\n"); - printf("* Clone-boot application is not supported. *\n"); - printf("* *\n"); - printf("************************************************\n"); - printf("\n"); - } + printf("Initial Code: %c%c%c%c\n", + rh.s.game_code[0], rh.s.game_code[1], rh.s.game_code[2], rh.s.game_code[3]); #endif //#ifndef FOR_RED // ROMヘッダをいじる @@ -451,7 +444,9 @@ static BOOL iMain( SContext *pContext ) } // ヘッダCRC計算 + printf("Header CRC: 0x%04X -> ", rh.s.header_crc16); rh.s.header_crc16 = CalcCRC16( CRC16_INIT_VALUE, (u8*)&rh, CALC_CRC16_SIZE ); + printf("0x%04X\n", rh.s.header_crc16); // 再署名 if( !(pContext->bMROM) && !(pContext->bNTR) ) // NTR専用オプションのときは署名しない