mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
(NandInitializer*)Makefileにおいて MARIOCLUB_VERSIONマクロを定義した場合に cert.sys と wrap.bin を書き込む機能を追加しました。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2205 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
5e806507f2
commit
f552fcb4ab
@ -32,14 +32,6 @@ MACRO_FLAGS += -DNAND_INITIALIZER_LIMITED_MODE
|
||||
#MACRO_FLAGS += -DUSE_WIRELESS_FORCE_DISABLE_SETTING
|
||||
#============================================================================
|
||||
#============================================================================
|
||||
# フォントデータを書き込み可能にする場合定義します。(要:Make Clean)
|
||||
#USE_WRITE_FONT_DATA = TRUE
|
||||
|
||||
ifdef USE_WRITE_FONT_DATA
|
||||
MACRO_FLAGS += -DUSE_WRITE_FONT_DATA
|
||||
endif
|
||||
#============================================================================
|
||||
#============================================================================
|
||||
# NightlyBuild 用に自動実行させる場合定義します。(要:Make Clean)
|
||||
#USE_FOR_NIGHTLY_AUTO_TEST = TRUE
|
||||
|
||||
@ -66,12 +58,8 @@ TITLEID_LO = 0NIA
|
||||
ifdef USE_FOR_NIGHTLY_AUTO_TEST
|
||||
TARGET_BIN = NandInitializerForAutoTest.srl
|
||||
else
|
||||
ifdef USE_WRITE_FONT_DATA
|
||||
TARGET_BIN = NandInitializerWithSharedFont.srl
|
||||
else
|
||||
TARGET_BIN = NandInitializer.srl
|
||||
endif
|
||||
endif
|
||||
|
||||
LCFILE_SPEC = ../../NandInitializerRed/ARM9.TWL/ARM9-TS.lsf
|
||||
ROM_SPEC = ./main.rsf
|
||||
@ -91,7 +79,6 @@ SRCS = main.c \
|
||||
process_hw_info.c \
|
||||
process_wireless_setting.c \
|
||||
process_fade.c \
|
||||
process_font.c \
|
||||
sd_event.c \
|
||||
hwi.c \
|
||||
debugger_hw_reset_control.c
|
||||
|
||||
@ -30,12 +30,16 @@ MACRO_FLAGS += -DAUTO_FORMAT_MODE
|
||||
MACRO_FLAGS += -DUSE_WIRELESS_FORCE_DISABLE_SETTING
|
||||
#============================================================================
|
||||
#============================================================================
|
||||
# フォントデータを書き込み可能にする場合定義します。(要:Make Clean)
|
||||
MACRO_FLAGS += -DUSE_WRITE_FONT_DATA
|
||||
# 各種データを書き込み可能にする場合定義します。(要:Make Clean)
|
||||
# 具体的には TWLFontTable.dat wrap.bin cert.sys の3つです。
|
||||
MACRO_FLAGS += -DUSE_WRITE_VARIOUS_DATA
|
||||
#============================================================================
|
||||
#============================================================================
|
||||
# マリクラデバッグ用に製品本体での起動を抑制する場合定義します。(要:Make Clean)
|
||||
#MACRO_FLAGS += -DMARIOCLUB_VERSION
|
||||
# マリクラデバッグ用として作成する場合定義します。(要:Make Clean)
|
||||
# ・自動処理において"nand:/shared2/launcher/wrap.bin"を作成します。
|
||||
# ・自動処理において開発用CLSの証明書(cert.sys)を書き込みます。
|
||||
# ・自動処理の最後に本体初期化を行います。
|
||||
MACRO_FLAGS += -DMARIOCLUB_VERSION
|
||||
#============================================================================
|
||||
|
||||
SYSM_DISABLE_DEBUG = FALSE
|
||||
@ -73,7 +77,7 @@ SRCS = main.c \
|
||||
process_norfirm.c \
|
||||
process_auto.c \
|
||||
process_fade.c \
|
||||
process_font.c \
|
||||
process_write_data.c \
|
||||
process_mcu.c \
|
||||
process_wireless_setting.c \
|
||||
sd_event.c \
|
||||
|
||||
@ -26,12 +26,16 @@
|
||||
MACRO_FLAGS += -DUSE_WIRELESS_FORCE_DISABLE_SETTING
|
||||
#============================================================================
|
||||
#============================================================================
|
||||
# フォントデータを書き込み可能にする場合定義します。(要:Make Clean)
|
||||
MACRO_FLAGS += -DUSE_WRITE_FONT_DATA
|
||||
# 各種データを書き込み可能にする場合定義します。(要:Make Clean)
|
||||
# 具体的には TWLFontTable.dat wrap.bin cert.sys の3つです。
|
||||
MACRO_FLAGS += -DUSE_WRITE_VARIOUS_DATA
|
||||
#============================================================================
|
||||
#============================================================================
|
||||
# マリクラデバッグ用に製品本体での起動を抑制する場合定義します。(要:Make Clean)
|
||||
#MACRO_FLAGS += -DMARIOCLUB_VERSION
|
||||
# マリクラデバッグ用として作成する場合定義します。(要:Make Clean)
|
||||
# ・自動処理において"nand:/shared2/launcher/wrap.bin"を作成します。
|
||||
# ・自動処理において開発用CLSの証明書(cert.sys)を書き込みます。
|
||||
# ・自動処理の最後に本体初期化を行います。
|
||||
#MACRO_FLAGS += -DMARIOCLUB_VERSION
|
||||
#============================================================================
|
||||
|
||||
SYSM_DISABLE_DEBUG = FALSE
|
||||
@ -69,7 +73,7 @@ SRCS = main.c \
|
||||
process_norfirm.c \
|
||||
process_auto.c \
|
||||
process_fade.c \
|
||||
process_font.c \
|
||||
process_write_data.c \
|
||||
process_mcu.c \
|
||||
process_wireless_setting.c \
|
||||
sd_event.c \
|
||||
|
||||
@ -33,13 +33,15 @@ extern "C" {
|
||||
enum {
|
||||
AUTO_PROCESS_MENU_FORMAT = 0,
|
||||
AUTO_PROCESS_MENU_HARDWARE_INFO,
|
||||
#ifdef USE_WRITE_FONT_DATA
|
||||
AUTO_PROCESS_MENU_FONT_DATA,
|
||||
#endif // USE_WRITE_FONT_DATA
|
||||
#ifdef USE_WRITE_VARIOUS_DATA
|
||||
AUTO_PROCESS_MENU_VARIOUS_DATA,
|
||||
#endif // USE_WRITE_VARIOUS_DATA
|
||||
AUTO_PROCESS_MENU_IMPORT_TAD,
|
||||
AUTO_PROCESS_MENU_IMPORT_NANDFIRM,
|
||||
AUTO_PROCESS_MENU_MCU,
|
||||
#ifdef MARIOCLUB_VERSION
|
||||
AUTO_PROCESS_MENU_MACHINE_INITIALIZE,
|
||||
#endif // MARIOCLUB_VERSION
|
||||
AUTO_PROCESS_MENU_NUM
|
||||
};
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - NandInitializer
|
||||
File: process_font.h
|
||||
File: process_write_data.h
|
||||
|
||||
Copyright 2008 Nintendo. All rights reserved.
|
||||
|
||||
@ -15,8 +15,8 @@
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef PROCESS_FONT_H_
|
||||
#define PROCESS_FONT_H_
|
||||
#ifndef PROCESS_WRITE_DATA_H_
|
||||
#define PROCESS_WRITE_DATA_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -31,16 +31,19 @@ extern "C" {
|
||||
*---------------------------------------------------------------------------*/
|
||||
#define FONT_DATA_FILE_PATH_IN_SDMC "sdmc:/TWLFontTable.dat"
|
||||
#define FONT_DATA_FILE_PATH_IN_NAND "nand:sys/TWLFontTable.dat"
|
||||
#define WRAP_DATA_FILE_PATH_IN_NAND "nand:/shared2/launcher/wrap.bin"
|
||||
#define CERT_DATA_FILE_PATH_IN_ROM "rom:/data/cert.sys"
|
||||
#define CERT_DATA_FILE_PATH_IN_NAND "nand:/sys/cert.sys"
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
ŠÖ<EFBFBD>”’è‹`
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
void* fontProcess0(void);
|
||||
void* fontProcess1(void);
|
||||
void* fontProcess2(void);
|
||||
void* fontProcess3(void);
|
||||
void* fontProcess4(void);
|
||||
void* WriteDataProcess0(void);
|
||||
void* WriteDataProcess1(void);
|
||||
void* WriteDataProcess2(void);
|
||||
void* WriteDataProcess3(void);
|
||||
void* WriteDataProcess4(void);
|
||||
|
||||
/*===========================================================================*/
|
||||
|
||||
@ -48,7 +51,7 @@ void* fontProcess4(void);
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* PROCESS_FONT_H_ */
|
||||
#endif /* PROCESS_WRITE_DATA_H_ */
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
End of file
|
||||
@ -223,6 +223,9 @@ RomSpec
|
||||
{
|
||||
Offset 0x00000000
|
||||
Segment ALL
|
||||
HostRoot $(TWL_IPL_RED_ROOT)/build/systemMenu_tools/NandInitializerRed/data
|
||||
Root /data
|
||||
File cert.sys
|
||||
HostRoot $(PRIVKEY_PATH)
|
||||
Root /key
|
||||
File $(HWINFO_PRIVKEY) $(HWID_PRIVKEY)
|
||||
|
||||
@ -98,14 +98,6 @@ TwlMain()
|
||||
(void)OS_EnableIrqMask(OS_IE_FIFO_RECV);
|
||||
(void)OS_EnableIrq();
|
||||
(void)GX_VBlankIntr(TRUE);
|
||||
|
||||
#ifdef MARIOCLUB_VERSION
|
||||
// ボンディングオプションが製品なら停止
|
||||
if (SCFG_ReadBondingOption() == SCFG_OP_PRODUCT)
|
||||
{
|
||||
OS_Panic("Bonding Option == PRODUCT\n");
|
||||
}
|
||||
#endif // MARIOCLUB_VERSION
|
||||
|
||||
// initialize file-system
|
||||
FS_Init(FS_DMA_NOT_USE);
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
#include "process_format.h"
|
||||
#include "process_hw_info.h"
|
||||
#include "process_import.h"
|
||||
#include "process_font.h"
|
||||
#include "process_write_data.h"
|
||||
#include "process_nandfirm.h"
|
||||
#include "process_norfirm.h"
|
||||
#include "process_auto.h"
|
||||
@ -111,10 +111,10 @@ void* AutoProcess1(void)
|
||||
case AUTO_PROCESS_MENU_HARDWARE_INFO:
|
||||
return HWInfoProcess0;
|
||||
|
||||
#ifdef USE_WRITE_FONT_DATA
|
||||
case AUTO_PROCESS_MENU_FONT_DATA:
|
||||
return fontProcess0;
|
||||
#endif // USE_WRITE_FONT_DATA
|
||||
#ifdef USE_WRITE_VARIOUS_DATA
|
||||
case AUTO_PROCESS_MENU_VARIOUS_DATA:
|
||||
return WriteDataProcess0;
|
||||
#endif // USE_WRITE_VARIOUS_DATA
|
||||
|
||||
case AUTO_PROCESS_MENU_IMPORT_TAD:
|
||||
return ImportProcess0;
|
||||
@ -125,8 +125,10 @@ void* AutoProcess1(void)
|
||||
case AUTO_PROCESS_MENU_MCU:
|
||||
return mcuProcess0;
|
||||
|
||||
#ifdef MARIOCLUB_VERSION
|
||||
case AUTO_PROCESS_MENU_MACHINE_INITIALIZE:
|
||||
return FormatProcess0;
|
||||
#endif // MARIOCLUB_VERSION
|
||||
|
||||
case AUTO_PROCESS_MENU_NUM:
|
||||
return AutoProcess2;
|
||||
@ -149,7 +151,7 @@ void* AutoProcess1(void)
|
||||
void* AutoProcess2(void)
|
||||
{
|
||||
int i;
|
||||
s8 line = 5;
|
||||
s8 line = 3;
|
||||
u8 bg_color;
|
||||
BOOL totalResult = TRUE;
|
||||
|
||||
@ -169,13 +171,15 @@ void* AutoProcess2(void)
|
||||
// ƒ<>ƒjƒ…<C692>[ˆê——
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " FORMAT NAND ");
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE HARDWARE INFO ");
|
||||
#ifdef USE_WRITE_FONT_DATA
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE FONT DATA ");
|
||||
#endif // USE_WRITE_FONT_DATA
|
||||
#ifdef USE_WRITE_VARIOUS_DATA
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE VARIOUS DATA ");
|
||||
#endif // USE_WRITE_VARIOUS_DATA
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " INPORT TAD FROM SD ");
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " INPORT NANDFIRM FROM SD");
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " WRITE MCU FIRM ");
|
||||
#ifdef MARIOCLUB_VERSION
|
||||
kamiFontPrintf(3, line += 2, FONT_COLOR_BLACK, " MACHINE INITIALIZE ");
|
||||
#endif // MARIOCLUB_VERSION
|
||||
|
||||
/*
|
||||
for (i=0;i<sMenuSelectNo-1;i++)
|
||||
@ -189,14 +193,14 @@ void* AutoProcess2(void)
|
||||
switch (gAutoProcessResult[i])
|
||||
{
|
||||
case AUTO_PROCESS_RESULT_SUCCESS:
|
||||
kamiFontPrintf(3, (s16)(7+2*i), FONT_COLOR_GREEN, "OK");
|
||||
kamiFontPrintf(3, (s16)(5+2*i), FONT_COLOR_GREEN, "OK");
|
||||
break;
|
||||
case AUTO_PROCESS_RESULT_FAILURE:
|
||||
totalResult = FALSE;
|
||||
kamiFontPrintf(3, (s16)(7+2*i), FONT_COLOR_RED, "NG");
|
||||
kamiFontPrintf(3, (s16)(5+2*i), FONT_COLOR_RED, "NG");
|
||||
break;
|
||||
case AUTO_PROCESS_RESULT_SKIP:
|
||||
kamiFontPrintf(2, (s16)(7+2*i), FONT_COLOR_PURPLE, "SKIP");
|
||||
kamiFontPrintf(2, (s16)(5+2*i), FONT_COLOR_PURPLE, "SKIP");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -265,6 +265,8 @@ void* FormatProcess2(void)
|
||||
#endif //USE_FOR_NIGHTLY_AUTO_TEST
|
||||
|
||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||
#ifdef MARIOCLUB_VERSION
|
||||
|
||||
// Auto—p
|
||||
if (gAutoFlag)
|
||||
{
|
||||
@ -281,6 +283,7 @@ void* FormatProcess2(void)
|
||||
FADE_OUT_RETURN( AutoProcess2 );
|
||||
}
|
||||
}
|
||||
#endif // MARIOCLUB_VERSION
|
||||
#endif
|
||||
|
||||
return FormatProcess1;
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
#include "process_auto.h"
|
||||
#include "process_fade.h"
|
||||
#include "process_wireless_setting.h"
|
||||
#include "process_font.h"
|
||||
#include "process_write_data.h"
|
||||
#include "process_mcu.h"
|
||||
#include "cursor.h"
|
||||
#include "keypad.h"
|
||||
@ -43,9 +43,9 @@ enum {
|
||||
MENU_WIRELESS_SETTING,
|
||||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||||
|
||||
#ifdef USE_WRITE_FONT_DATA
|
||||
MENU_FONT_DATA,
|
||||
#endif // USE_WRITE_FONT_DATA
|
||||
#ifdef USE_WRITE_VARIOUS_DATA
|
||||
MENU_WRITE_DATA,
|
||||
#endif // USE_WRITE_VARIOUS_DATA
|
||||
|
||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||
MENU_IMPORT_TAD,
|
||||
@ -81,9 +81,9 @@ static const MenuAndColor sMenuArray[] =
|
||||
{" WIRELESS FORCE SETTING ", BG_COLOR_YELLOW },
|
||||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||||
|
||||
#ifdef USE_WRITE_FONT_DATA
|
||||
{" WRITE FONT DATA ", BG_COLOR_BROWN },
|
||||
#endif // USE_WRITE_FONT_DATA
|
||||
#ifdef USE_WRITE_VARIOUS_DATA
|
||||
{" WRITE VARIOUS DATA ", BG_COLOR_BROWN },
|
||||
#endif // USE_WRITE_VARIOUS_DATA
|
||||
|
||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||
{" IMPORT TAD FROM SD ", BG_COLOR_PINK },
|
||||
@ -229,10 +229,10 @@ void* TopmenuProcess2(void)
|
||||
FADE_OUT_RETURN( WirelessSettingProcess0 );
|
||||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||||
|
||||
#ifdef USE_WRITE_FONT_DATA
|
||||
case MENU_FONT_DATA:
|
||||
FADE_OUT_RETURN( fontProcess0 );
|
||||
#endif // USE_WRITE_FONT_DATA
|
||||
#ifdef USE_WRITE_VARIOUS_DATA
|
||||
case MENU_WRITE_DATA:
|
||||
FADE_OUT_RETURN( WriteDataProcess0 );
|
||||
#endif // USE_WRITE_VARIOUS_DATA
|
||||
|
||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||
case MENU_IMPORT_TAD:
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - NandInitializer
|
||||
File: process_font.c
|
||||
File: process_write_data.c
|
||||
|
||||
Copyright 2008 Nintendo. All rights reserved.
|
||||
|
||||
@ -15,8 +15,6 @@
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef USE_WRITE_FONT_DATA
|
||||
|
||||
#include <twl.h>
|
||||
#include <nitro/snd.h>
|
||||
#include <twl/fatfs.h>
|
||||
@ -24,7 +22,7 @@
|
||||
#include "kami_font.h"
|
||||
#include "kami_pxi.h"
|
||||
#include "process_topmenu.h"
|
||||
#include "process_font.h"
|
||||
#include "process_write_data.h"
|
||||
#include "process_auto.h"
|
||||
#include "process_fade.h"
|
||||
#include "cursor.h"
|
||||
@ -34,14 +32,22 @@
|
||||
型定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
enum {
|
||||
MENU_FONT=0,
|
||||
MENU_WRAP,
|
||||
MENU_CERT,
|
||||
MENU_RETURN,
|
||||
NUM_OF_MENU_SELECT
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
定数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#define NUM_OF_MENU_SELECT 2
|
||||
#define DOT_OF_MENU_SPACE 16
|
||||
#define CURSOR_ORIGIN_X 32
|
||||
#define CURSOR_ORIGIN_Y 56
|
||||
#define CHAR_OF_MENU_SPACE 2
|
||||
|
||||
#define ROUND_UP(value, alignment) \
|
||||
(((u32)(value) + (alignment-1)) & ~(alignment-1))
|
||||
@ -57,13 +63,15 @@ static s8 sMenuSelectNo;
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
static BOOL WriteFontData(void);
|
||||
static BOOL WriteWrapData(void);
|
||||
static BOOL WriteCertData(void);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
プロセス関数定義
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: font プロセス0
|
||||
Name: WriteData プロセス0
|
||||
|
||||
Description:
|
||||
|
||||
@ -72,7 +80,7 @@ static BOOL WriteFontData(void);
|
||||
Returns: next sequence
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
void* fontProcess0(void)
|
||||
void* WriteDataProcess0(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -80,15 +88,19 @@ void* fontProcess0(void)
|
||||
kamiFontClear();
|
||||
|
||||
// バージョン表示
|
||||
kamiFontPrintf(2, 1, FONT_COLOR_BLACK, "Write Font Data");
|
||||
kamiFontPrintf(2, 1, FONT_COLOR_BLACK, "Write Various Data");
|
||||
kamiFontPrintf(0, 2, FONT_COLOR_BLACK, "--------------------------------");
|
||||
|
||||
// メニュー一覧
|
||||
kamiFontPrintf(3, 6, FONT_COLOR_BLACK, "+-------------------+-----+");
|
||||
kamiFontPrintf(3, 7, FONT_COLOR_BLACK, "l WRITE FONT DATA l l");
|
||||
kamiFontPrintf(3, 8, FONT_COLOR_BLACK, "+-------------------+-----+");
|
||||
kamiFontPrintf(3, 9, FONT_COLOR_BLACK, "l RETURN l l");
|
||||
kamiFontPrintf(3, 9, FONT_COLOR_BLACK, "l WRITE WRAP DATA l l");
|
||||
kamiFontPrintf(3, 10, FONT_COLOR_BLACK, "+-------------------+-----+");
|
||||
kamiFontPrintf(3, 11, FONT_COLOR_BLACK, "l WRITE CERT.SYS l l");
|
||||
kamiFontPrintf(3, 12, FONT_COLOR_BLACK, "+-------------------+-----+");
|
||||
kamiFontPrintf(3, 13, FONT_COLOR_BLACK, "l RETURN l l");
|
||||
kamiFontPrintf(3, 14, FONT_COLOR_BLACK, "+-------------------+-----+");
|
||||
|
||||
// 背景全クリア
|
||||
for (i=0;i<24;i++)
|
||||
@ -104,11 +116,11 @@ void* fontProcess0(void)
|
||||
// カーソル消去
|
||||
SetCursorPos((u16)200, (u16)200);
|
||||
|
||||
FADE_IN_RETURN( fontProcess1 );
|
||||
FADE_IN_RETURN( WriteDataProcess1 );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: font プロセス1
|
||||
Name: WriteData プロセス1
|
||||
|
||||
Description:
|
||||
|
||||
@ -117,14 +129,14 @@ void* fontProcess0(void)
|
||||
Returns: next sequence
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
void* fontProcess1(void)
|
||||
void* WriteDataProcess1(void)
|
||||
{
|
||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||
// オート実行用
|
||||
if (gAutoFlag)
|
||||
{
|
||||
sMenuSelectNo = 0;
|
||||
return fontProcess2;
|
||||
sMenuSelectNo = MENU_FONT;
|
||||
return WriteDataProcess2;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -144,7 +156,7 @@ void* fontProcess1(void)
|
||||
// 決定
|
||||
if (kamiPadIsTrigger(PAD_BUTTON_A))
|
||||
{
|
||||
return fontProcess2;
|
||||
return WriteDataProcess2;
|
||||
}
|
||||
// トップメニューへ戻る
|
||||
else if (kamiPadIsTrigger(PAD_BUTTON_B))
|
||||
@ -152,11 +164,11 @@ void* fontProcess1(void)
|
||||
FADE_OUT_RETURN( TopmenuProcess0 );
|
||||
}
|
||||
|
||||
return fontProcess1;
|
||||
return WriteDataProcess1;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: font プロセス2
|
||||
Name: WriteData プロセス2
|
||||
|
||||
Description:
|
||||
|
||||
@ -165,45 +177,66 @@ void* fontProcess1(void)
|
||||
Returns: next sequence
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
void* fontProcess2(void)
|
||||
void* WriteDataProcess2(void)
|
||||
{
|
||||
BOOL result;
|
||||
s16 y_pos = (s16)(7 + sMenuSelectNo * CHAR_OF_MENU_SPACE);
|
||||
|
||||
switch( sMenuSelectNo )
|
||||
{
|
||||
case 0:
|
||||
case MENU_FONT:
|
||||
result = WriteFontData();
|
||||
if (result)
|
||||
{
|
||||
kamiFontPrintf(25, 7, FONT_COLOR_GREEN, "OK");
|
||||
}
|
||||
else
|
||||
{
|
||||
kamiFontPrintf(25, 7, FONT_COLOR_RED, "NG");
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case MENU_WRAP:
|
||||
result = WriteWrapData();
|
||||
break;
|
||||
case MENU_CERT:
|
||||
result = WriteCertData();
|
||||
break;
|
||||
case MENU_RETURN:
|
||||
FADE_OUT_RETURN( TopmenuProcess0 );
|
||||
}
|
||||
|
||||
if (result)
|
||||
{
|
||||
kamiFontPrintf(25, y_pos, FONT_COLOR_GREEN, "OK");
|
||||
}
|
||||
else
|
||||
{
|
||||
kamiFontPrintf(25, y_pos, FONT_COLOR_RED, "NG");
|
||||
}
|
||||
|
||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||
// Auto用
|
||||
if (gAutoFlag)
|
||||
{
|
||||
if (result)
|
||||
{
|
||||
gAutoProcessResult[AUTO_PROCESS_MENU_FONT_DATA] = AUTO_PROCESS_RESULT_SUCCESS;
|
||||
FADE_OUT_RETURN( AutoProcess1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
gAutoProcessResult[AUTO_PROCESS_MENU_FONT_DATA] = AUTO_PROCESS_RESULT_FAILURE;
|
||||
FADE_OUT_RETURN( AutoProcess2);
|
||||
static BOOL total_result = TRUE;
|
||||
total_result &= result;
|
||||
|
||||
switch(sMenuSelectNo)
|
||||
{
|
||||
case MENU_FONT:
|
||||
case MENU_WRAP:
|
||||
#ifdef MARIOCLUB_VERSION
|
||||
sMenuSelectNo++;
|
||||
return WriteDataProcess2;
|
||||
#endif // MARIOCLUB_VERSION
|
||||
case MENU_CERT:
|
||||
if (total_result)
|
||||
{
|
||||
gAutoProcessResult[AUTO_PROCESS_MENU_VARIOUS_DATA] = AUTO_PROCESS_RESULT_SUCCESS;
|
||||
FADE_OUT_RETURN( AutoProcess1 );
|
||||
}
|
||||
else
|
||||
{
|
||||
gAutoProcessResult[AUTO_PROCESS_MENU_VARIOUS_DATA] = AUTO_PROCESS_RESULT_FAILURE;
|
||||
FADE_OUT_RETURN( AutoProcess2);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return fontProcess1;
|
||||
return WriteDataProcess1;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
@ -280,4 +313,110 @@ static BOOL WriteFontData(void)
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif // USE_WRITE_FONT_DATA
|
||||
// ダミーのDSメニューラッピング用ファイル作成(UIGランチャーが作っているもの)
|
||||
static BOOL WriteWrapData(void)
|
||||
{
|
||||
FSFile file;
|
||||
BOOL open_is_ok;
|
||||
const int FATFS_CLUSTER_SIZE = 16 * 1024;
|
||||
|
||||
// 既に存在するなら何もしない
|
||||
FS_InitFile(&file);
|
||||
open_is_ok = FS_OpenFile(&file, WRAP_DATA_FILE_PATH_IN_NAND);
|
||||
if (open_is_ok)
|
||||
{
|
||||
FS_CloseFile(&file);
|
||||
OS_Printf("%s is already exist.\n", WRAP_DATA_FILE_PATH_IN_NAND);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if( FS_CreateFileAuto( WRAP_DATA_FILE_PATH_IN_NAND, FS_PERMIT_R | FS_PERMIT_W ) )
|
||||
{
|
||||
FSFile file;
|
||||
if( FS_OpenFileEx( &file, WRAP_DATA_FILE_PATH_IN_NAND, FS_FILEMODE_RW ) )
|
||||
{
|
||||
(void)FS_SetFileLength( &file, FATFS_CLUSTER_SIZE );
|
||||
FS_CloseFile( &file );
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL WriteCertData(void)
|
||||
{
|
||||
FSFile file;
|
||||
BOOL open_is_ok;
|
||||
BOOL read_is_ok;
|
||||
void* pTempBuf;
|
||||
u32 file_size;
|
||||
u32 alloc_size;
|
||||
BOOL result = TRUE;
|
||||
|
||||
// nand:/sys/cert.sysが既に存在するなら何もしない
|
||||
FS_InitFile(&file);
|
||||
open_is_ok = FS_OpenFile(&file, CERT_DATA_FILE_PATH_IN_NAND);
|
||||
if (open_is_ok)
|
||||
{
|
||||
FS_CloseFile(&file);
|
||||
OS_Printf("%s is already exist.\n", CERT_DATA_FILE_PATH_IN_NAND);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// ROMファイルオープン
|
||||
FS_InitFile(&file);
|
||||
open_is_ok = FS_OpenFile(&file, CERT_DATA_FILE_PATH_IN_ROM);
|
||||
if (!open_is_ok)
|
||||
{
|
||||
OS_Printf("FS_OpenFile(\"%s\") ... ERROR!\n", CERT_DATA_FILE_PATH_IN_ROM);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ROMファイルリード
|
||||
file_size = FS_GetFileLength(&file) ;
|
||||
alloc_size = ROUND_UP(file_size, 32) ;
|
||||
pTempBuf = OS_Alloc( alloc_size );
|
||||
SDK_NULL_ASSERT(pTempBuf);
|
||||
DC_InvalidateRange(pTempBuf, alloc_size);
|
||||
read_is_ok = FS_ReadFile( &file, pTempBuf, (s32)file_size );
|
||||
if (!read_is_ok)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_ReadFile(\"%s\") ... ERROR!\n", CERT_DATA_FILE_PATH_IN_ROM);
|
||||
FS_CloseFile(&file);
|
||||
OS_Free(pTempBuf);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ROMファイルクローズ
|
||||
FS_CloseFile(&file);
|
||||
|
||||
// nand:sys/cert.sys作成
|
||||
if (!FS_CreateFile(CERT_DATA_FILE_PATH_IN_NAND, FS_PERMIT_R | FS_PERMIT_W))
|
||||
{
|
||||
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_CreateFile(%s) failed.\n", CERT_DATA_FILE_PATH_IN_NAND);
|
||||
result = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// nand:sys/cert.sysオープン
|
||||
FS_InitFile(&file);
|
||||
open_is_ok = FS_OpenFileEx(&file, CERT_DATA_FILE_PATH_IN_NAND, FS_FILEMODE_W);
|
||||
if (!open_is_ok)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_OpenFile(%s) failed.\n", CERT_DATA_FILE_PATH_IN_NAND);
|
||||
result = FALSE;
|
||||
}
|
||||
// nand:sys/cert.sys書き込み
|
||||
else if (FS_WriteFile(&file, pTempBuf, (s32)file_size) == -1)
|
||||
{
|
||||
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_WritFile() failed.\n");
|
||||
result = FALSE;
|
||||
}
|
||||
(void)FS_CloseFile(&file);
|
||||
}
|
||||
|
||||
OS_Free(pTempBuf);
|
||||
|
||||
return result;
|
||||
}
|
||||
BIN
build/systemMenu_tools/NandInitializerRed/data/cert.sys
Normal file
BIN
build/systemMenu_tools/NandInitializerRed/data/cert.sys
Normal file
Binary file not shown.
@ -63,7 +63,6 @@ static const char *s_pDirList0[] = {
|
||||
(const char *)"nand:/ticket",
|
||||
(const char *)"nand:/shared1",
|
||||
(const char *)"nand:/shared2",
|
||||
(const char *)"nand:/shared2/launcher",
|
||||
(const char *)"nand:/import",
|
||||
(const char *)"nand:/tmp",
|
||||
NULL,
|
||||
@ -74,11 +73,6 @@ static const char *s_pDirList1[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const FileProperty s_fileList[] = {
|
||||
{ FATFS_CLUSTER_SIZE, "nand:/shared2/launcher/wrap.bin" },
|
||||
{ 0, NULL }
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
内部関数宣言
|
||||
*---------------------------------------------------------------------------*/
|
||||
@ -220,8 +214,8 @@ ExeFormat(FormatMode format_mode)
|
||||
if (!CheckDirectory ( "nand2:", s_pDirList1 )) { return FALSE; }
|
||||
|
||||
// ファイル生成&チェック
|
||||
if (!CreateFile( &s_fileList[0] )) { return FALSE; }
|
||||
if (!CheckFile ( &s_fileList[0] )) { return FALSE; }
|
||||
// if (!CreateFile( &s_fileList[0] )) { return FALSE; }
|
||||
// if (!CheckFile ( &s_fileList[0] )) { return FALSE; }
|
||||
|
||||
// 成功
|
||||
return TRUE;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user