mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
NandInitializerRed に TWLFontTable.dat を NAND に書き込む機能を追加。
SUBDIR として sharedFont をビルドするように変更。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1347 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
aad8f81ac3
commit
1cfac23266
@ -36,17 +36,16 @@ const LCFGTWLHWNormalInfo *LCFG_THW_GetNormalInfo( void );
|
|||||||
const LCFGTWLHWSecureInfo *LCFG_THW_GetSecureInfo( void );
|
const LCFGTWLHWSecureInfo *LCFG_THW_GetSecureInfo( void );
|
||||||
|
|
||||||
// function's prototype declaration---------------------
|
// function's prototype declaration---------------------
|
||||||
static void ReadTWLSettings( void );
|
|
||||||
static HwiInitResult ReadPrivateKey( void );
|
static HwiInitResult ReadPrivateKey( void );
|
||||||
static void ReadHWInfoFile( void );
|
|
||||||
static void VerifyHWInfo( void );
|
static void VerifyHWInfo( void );
|
||||||
static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len );
|
static BOOL VerifyData( const u8 *pTgt, const u8 *pOrg, u32 len );
|
||||||
|
static BOOL ReadHWInfoFile( void );
|
||||||
|
static BOOL ReadTWLSettings( void );
|
||||||
|
|
||||||
// global variable -------------------------------------
|
// global variable -------------------------------------
|
||||||
|
|
||||||
// static variable -------------------------------------
|
// static variable -------------------------------------
|
||||||
static u8 *s_pPrivKeyBuffer = NULL;
|
static u8 *s_pPrivKeyBuffer = NULL;
|
||||||
static BOOL s_isReadTSD;
|
|
||||||
static void *(*spAlloc)( u32 length );
|
static void *(*spAlloc)( u32 length );
|
||||||
static void (*spFree)( void *ptr );
|
static void (*spFree)( void *ptr );
|
||||||
|
|
||||||
@ -123,27 +122,28 @@ HwiInitResult HWI_Init( void *(*pAlloc)( u32 ), void (*pFree)( void * ) )
|
|||||||
|
|
||||||
|
|
||||||
// TWL設定データのリード
|
// TWL設定データのリード
|
||||||
static void ReadTWLSettings( void )
|
static BOOL ReadTWLSettings( void )
|
||||||
{
|
{
|
||||||
u8 *pBuffer = spAlloc( LCFG_READ_TEMP );
|
u8 *pBuffer = spAlloc( LCFG_READ_TEMP );
|
||||||
s_isReadTSD = FALSE;
|
BOOL result;
|
||||||
if( pBuffer ) {
|
if( pBuffer ) {
|
||||||
s_isReadTSD = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer );
|
result = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer );
|
||||||
// Readに失敗した場合 LCFG_ReadTWLSettings 内部でファイルがリカバリ生成されるが
|
// Readに失敗した場合 LCFG_ReadTWLSettings 内部でファイルがリカバリ生成されるが
|
||||||
// 返り値は FALSE となる。HWI_ModifyLanguage のために s_isReadTSD は TRUEにしておく
|
// 返り値は FALSE となるためもう一度リードを試みる
|
||||||
// 必要があるためもう一度リードを試みる
|
if (!result)
|
||||||
if (!s_isReadTSD)
|
|
||||||
{
|
{
|
||||||
OS_TPrintf( "TSD read failed. Retry onece more.\n" );
|
OS_TPrintf( "TSD read failed. Retry onece more.\n" );
|
||||||
s_isReadTSD = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer );
|
result = LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ] )pBuffer );
|
||||||
}
|
}
|
||||||
spFree( pBuffer );
|
spFree( pBuffer );
|
||||||
}
|
}
|
||||||
if( s_isReadTSD ) {
|
if( result ) {
|
||||||
OS_TPrintf( "TSD read succeeded.\n" );
|
OS_TPrintf( "TSD read succeeded.\n" );
|
||||||
}else {
|
}else {
|
||||||
OS_TPrintf( "TSD read failed.\n" );
|
OS_TPrintf( "TSD read failed.\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 秘密鍵のリード
|
// 秘密鍵のリード
|
||||||
@ -192,15 +192,17 @@ HwiInitResult ReadPrivateKey( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// HW情報全体のリード
|
// HW情報全体のリード
|
||||||
static void ReadHWInfoFile( void )
|
static BOOL ReadHWInfoFile( void )
|
||||||
{
|
{
|
||||||
LCFGReadResult retval;
|
LCFGReadResult retval;
|
||||||
|
BOOL result = TRUE;
|
||||||
OSTick start = OS_GetTick();
|
OSTick start = OS_GetTick();
|
||||||
|
|
||||||
retval = LCFGi_THW_ReadNormalInfo();
|
retval = LCFGi_THW_ReadNormalInfo();
|
||||||
if( retval == LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
if( retval == LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
||||||
OS_TPrintf( "HW Normal Info read succeeded.\n" );
|
OS_TPrintf( "HW Normal Info read succeeded.\n" );
|
||||||
}else {
|
}else {
|
||||||
|
result = FALSE;
|
||||||
OS_TPrintf( "HW Normal Info read failed.\n" );
|
OS_TPrintf( "HW Normal Info read failed.\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,9 +213,12 @@ static void ReadHWInfoFile( void )
|
|||||||
if( retval == LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
if( retval == LCFG_TSF_READ_RESULT_SUCCEEDED ) {
|
||||||
OS_TPrintf( "HW Secure Info read succeeded.\n" );
|
OS_TPrintf( "HW Secure Info read succeeded.\n" );
|
||||||
}else {
|
}else {
|
||||||
|
result = FALSE;
|
||||||
OS_TPrintf( "HW Secure Info read failed.\n" );
|
OS_TPrintf( "HW Secure Info read failed.\n" );
|
||||||
}
|
}
|
||||||
// OS_TPrintf( "HW Secure Info read time = %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
// OS_TPrintf( "HW Secure Info read time = %dms\n", OS_TicksToMilliSeconds( OS_GetTick() - start ) );
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// HWInfoファイルのベリファイ
|
// HWInfoファイルのベリファイ
|
||||||
@ -259,11 +264,11 @@ BOOL HWI_ModifyLanguage( u8 region )
|
|||||||
u8 nowLanguage = LCFG_TSD_GetLanguage();
|
u8 nowLanguage = LCFG_TSD_GetLanguage();
|
||||||
BOOL result = TRUE;
|
BOOL result = TRUE;
|
||||||
|
|
||||||
// TSDが読み込めていないなら、何もせずリターン
|
if (!ReadTWLSettings())
|
||||||
if( !s_isReadTSD ) {
|
{
|
||||||
OS_TPrintf("TWLSetting is not Readed!\n");
|
result = FALSE;
|
||||||
return FALSE;
|
OS_TPrintf( "HW Normal Info read failed.\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( langBitmap & ( 0x0001 << nowLanguage ) ) {
|
if( langBitmap & ( 0x0001 << nowLanguage ) ) {
|
||||||
OS_TPrintf( "Language no change.\n" );
|
OS_TPrintf( "Language no change.\n" );
|
||||||
|
|||||||
@ -16,9 +16,6 @@
|
|||||||
# $Author$
|
# $Author$
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
SUBDIRS = $(ROOT)/build/demos/gx/UnitTours/DEMOLib
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
#============================================================================
|
#============================================================================
|
||||||
@ -65,6 +62,7 @@ SRCS = main.c \
|
|||||||
process_norfirm.c \
|
process_norfirm.c \
|
||||||
process_auto.c \
|
process_auto.c \
|
||||||
process_fade.c \
|
process_fade.c \
|
||||||
|
process_font.c \
|
||||||
sd_event.c \
|
sd_event.c \
|
||||||
hwi.c
|
hwi.c
|
||||||
|
|
||||||
@ -103,7 +101,6 @@ LLIBRARIES += libes$(TWL_LIBSUFFIX).a \
|
|||||||
libnamut$(TWL_LIBSUFFIX).a
|
libnamut$(TWL_LIBSUFFIX).a
|
||||||
|
|
||||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
||||||
include $(TWLSDK_ROOT)/build/buildtools/commondefs.gx.demolib
|
|
||||||
|
|
||||||
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
|
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
|
||||||
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
|
$(TWL_IPL_RED_ROOT)/build/systemMenu_RED/sharedFont \
|
||||||
banner \
|
banner \
|
||||||
ARM7.TWL \
|
ARM7.TWL \
|
||||||
ARM9.TWL \
|
ARM9.TWL \
|
||||||
|
|||||||
@ -58,6 +58,7 @@ SRCS = main.c \
|
|||||||
process_norfirm.c \
|
process_norfirm.c \
|
||||||
process_auto.c \
|
process_auto.c \
|
||||||
process_fade.c \
|
process_fade.c \
|
||||||
|
process_font.c \
|
||||||
sd_event.c \
|
sd_event.c \
|
||||||
hwi.c
|
hwi.c
|
||||||
|
|
||||||
|
|||||||
@ -78,6 +78,7 @@ void kamiFontPrintfConsoleEx(u8 color, const char *text, ...);
|
|||||||
#define BG_COLOR_VIOLET 8
|
#define BG_COLOR_VIOLET 8
|
||||||
#define BG_COLOR_RED 9
|
#define BG_COLOR_RED 9
|
||||||
#define BG_COLOR_YELLOW 10
|
#define BG_COLOR_YELLOW 10
|
||||||
|
#define BG_COLOR_BROWN 11
|
||||||
|
|
||||||
#define BG_COLOR_NONE 0xff
|
#define BG_COLOR_NONE 0xff
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,55 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - NandInitializer
|
||||||
|
File: process_font.h
|
||||||
|
|
||||||
|
Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef PROCESS_FONT_H_
|
||||||
|
#define PROCESS_FONT_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
#include <nitro.h>
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
’è<EFBFBD>”’è‹`
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#define FONT_DATA_FILE_PATH_IN_ROM "rom:/data/TWLFontTable.dat"
|
||||||
|
#define FONT_DATA_FILE_PATH_IN_NAND "nand:sys/TWLFontTable.dat"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
ŠÖ<EFBFBD>”’è‹`
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void* fontProcess0(void);
|
||||||
|
void* fontProcess1(void);
|
||||||
|
void* fontProcess2(void);
|
||||||
|
void* fontProcess3(void);
|
||||||
|
void* fontProcess4(void);
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* PROCESS_FONT_H_ */
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
End of file
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
@ -119,8 +119,8 @@ const u16 PlttDataSub[16][16] = {
|
|||||||
{RGB555(31, 31, 31), RGB555(31, 31, 31), RGB555(31, 31, 31), RGB555(31, 31, 31),}, // White
|
{RGB555(31, 31, 31), RGB555(31, 31, 31), RGB555(31, 31, 31), RGB555(31, 31, 31),}, // White
|
||||||
|
|
||||||
// 背景カラーはこの16番パレット
|
// 背景カラーはこの16番パレット
|
||||||
// 白 黒 灰 むらさき ピンク みずいろ 緑 青紫 赤 黄
|
// 白 黒 灰 むらさき ピンク みずいろ 緑 青紫 赤 黄 茶
|
||||||
{RGB555(31, 31, 31), RGB555(31, 31, 31), RGB555( 0, 0, 0), RGB555(20, 20, 20), RGB555(31, 15, 31), RGB555(31, 20, 20), RGB555(20, 29, 31), RGB555(20, 31, 20), RGB555(21, 21, 31), RGB555(31, 0, 0), RGB555(31, 31, 10), RGB555(31, 31, 31), RGB555(31, 31, 31), RGB555(31, 31, 31), } // White
|
{RGB555(31, 31, 31), RGB555(31, 31, 31), RGB555( 0, 0, 0), RGB555(20, 20, 20), RGB555(31, 15, 31), RGB555(31, 20, 20), RGB555(20, 29, 31), RGB555(20, 31, 20), RGB555(21, 21, 31), RGB555(31, 0, 0), RGB555(31, 31, 10), RGB555(25, 15, 15), RGB555(31, 31, 31), RGB555(31, 31, 31), } // White
|
||||||
};
|
};
|
||||||
|
|
||||||
/*---------------------- キャラクタデータ -------------------------*/
|
/*---------------------- キャラクタデータ -------------------------*/
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#include "process_format.h"
|
#include "process_format.h"
|
||||||
#include "process_hw_info.h"
|
#include "process_hw_info.h"
|
||||||
#include "process_import.h"
|
#include "process_import.h"
|
||||||
|
#include "process_font.h"
|
||||||
#include "process_eticket.h"
|
#include "process_eticket.h"
|
||||||
#include "process_nandfirm.h"
|
#include "process_nandfirm.h"
|
||||||
#include "process_norfirm.h"
|
#include "process_norfirm.h"
|
||||||
@ -37,10 +38,7 @@
|
|||||||
定数定義
|
定数定義
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#define NUM_OF_MENU_SELECT 6
|
#define NUM_OF_MENU 6
|
||||||
#define DOT_OF_MENU_SPACE 16
|
|
||||||
#define CURSOR_ORIGIN_X 32
|
|
||||||
#define CURSOR_ORIGIN_Y 56
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
グローバル変数定義
|
グローバル変数定義
|
||||||
@ -104,14 +102,15 @@ void* AutoProcess1(void)
|
|||||||
return FormatProcess0;
|
return FormatProcess0;
|
||||||
case 1:
|
case 1:
|
||||||
return HWInfoProcess0;
|
return HWInfoProcess0;
|
||||||
break;
|
|
||||||
case 2:
|
case 2:
|
||||||
return eTicketProcess0;
|
return fontProcess0;
|
||||||
case 3:
|
case 3:
|
||||||
return ImportProcess0;
|
return eTicketProcess0;
|
||||||
case 4:
|
case 4:
|
||||||
return NandfirmProcess0;
|
return ImportProcess0;
|
||||||
case 5:
|
case 5:
|
||||||
|
return NandfirmProcess0;
|
||||||
|
case 6:
|
||||||
return AutoProcess2;
|
return AutoProcess2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,9 +149,10 @@ void* AutoProcess2(void)
|
|||||||
// メニュー一覧
|
// メニュー一覧
|
||||||
kamiFontPrintf(3, 7, FONT_COLOR_BLACK, " FORMAT NAND ");
|
kamiFontPrintf(3, 7, FONT_COLOR_BLACK, " FORMAT NAND ");
|
||||||
kamiFontPrintf(3, 9, FONT_COLOR_BLACK, " WRITE HARDWARE INFO ");
|
kamiFontPrintf(3, 9, FONT_COLOR_BLACK, " WRITE HARDWARE INFO ");
|
||||||
kamiFontPrintf(3, 11, FONT_COLOR_BLACK, " WRITE ETICKET SIGN ");
|
kamiFontPrintf(3, 11, FONT_COLOR_BLACK, " WRITE FONT DATA ");
|
||||||
kamiFontPrintf(3, 13, FONT_COLOR_BLACK, " INPORT TAD FROM SD ");
|
kamiFontPrintf(3, 13, FONT_COLOR_BLACK, " WRITE ETICKET SIGN ");
|
||||||
kamiFontPrintf(3, 15, FONT_COLOR_BLACK, " INPORT NANDFIRM FROM SD");
|
kamiFontPrintf(3, 15, FONT_COLOR_BLACK, " INPORT TAD FROM SD ");
|
||||||
|
kamiFontPrintf(3, 17, FONT_COLOR_BLACK, " INPORT NANDFIRM FROM SD");
|
||||||
#ifndef AUTO_FORMAT_MODE
|
#ifndef AUTO_FORMAT_MODE
|
||||||
kamiFontPrintf(3, 22, FONT_COLOR_BLACK, " Button B : return to menu");
|
kamiFontPrintf(3, 22, FONT_COLOR_BLACK, " Button B : return to menu");
|
||||||
#endif
|
#endif
|
||||||
@ -163,16 +163,16 @@ void* AutoProcess2(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 失敗あり
|
// 失敗あり
|
||||||
if (i<5)
|
if (i<NUM_OF_MENU)
|
||||||
{
|
{
|
||||||
kamiFontPrintf(3, (s16)(7+2*i), FONT_COLOR_RED, "NG");
|
kamiFontPrintf(3, (s16)(7+2*i), FONT_COLOR_RED, "NG");
|
||||||
kamiFontPrintf(3, 18, FONT_COLOR_BLACK, " Error Occured!");
|
kamiFontPrintf(3, 19, FONT_COLOR_BLACK, " Error Occured!");
|
||||||
bg_color = BG_COLOR_RED;
|
bg_color = BG_COLOR_RED;
|
||||||
}
|
}
|
||||||
// 失敗なし
|
// 失敗なし
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kamiFontPrintf(3, 18, FONT_COLOR_BLACK, " Finished Successfully!");
|
kamiFontPrintf(3, 19, FONT_COLOR_BLACK, " Finished Successfully!");
|
||||||
bg_color = BG_COLOR_GREEN;
|
bg_color = BG_COLOR_GREEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,9 +182,9 @@ void* AutoProcess2(void)
|
|||||||
kamiFontFillChar( 2, bg_color, BG_COLOR_TRANS );
|
kamiFontFillChar( 2, bg_color, BG_COLOR_TRANS );
|
||||||
|
|
||||||
// 背景下部
|
// 背景下部
|
||||||
kamiFontFillChar(17, BG_COLOR_TRANS, bg_color );
|
kamiFontFillChar(18, BG_COLOR_TRANS, bg_color );
|
||||||
kamiFontFillChar(18, bg_color, bg_color );
|
kamiFontFillChar(19, bg_color, bg_color );
|
||||||
kamiFontFillChar(19, bg_color, BG_COLOR_TRANS );
|
kamiFontFillChar(20, bg_color, BG_COLOR_TRANS );
|
||||||
|
|
||||||
// カーソル消去
|
// カーソル消去
|
||||||
SetCursorPos((u16)200, (u16)200);
|
SetCursorPos((u16)200, (u16)200);
|
||||||
|
|||||||
@ -0,0 +1,268 @@
|
|||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Project: TwlSDK - NandInitializer
|
||||||
|
File: process_font.c
|
||||||
|
|
||||||
|
Copyright 2008 Nintendo. All rights reserved.
|
||||||
|
|
||||||
|
These coded instructions, statements, and computer programs contain
|
||||||
|
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||||
|
Company Ltd., and are protected by Federal copyright law. They may
|
||||||
|
not be disclosed to third parties or copied or duplicated in any form,
|
||||||
|
in whole or in part, without the prior written consent of Nintendo.
|
||||||
|
|
||||||
|
$Date:: $
|
||||||
|
$Rev$
|
||||||
|
$Author$
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include <twl.h>
|
||||||
|
#include <nitro/snd.h>
|
||||||
|
#include <twl/fatfs.h>
|
||||||
|
#include <nitro/card.h>
|
||||||
|
#include "kami_font.h"
|
||||||
|
#include "kami_pxi.h"
|
||||||
|
#include "process_topmenu.h"
|
||||||
|
#include "process_font.h"
|
||||||
|
#include "process_auto.h"
|
||||||
|
#include "process_fade.h"
|
||||||
|
#include "cursor.h"
|
||||||
|
#include "keypad.h"
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
型定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
定数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#define NUM_OF_MENU_SELECT 2
|
||||||
|
#define DOT_OF_MENU_SPACE 16
|
||||||
|
#define CURSOR_ORIGIN_X 32
|
||||||
|
#define CURSOR_ORIGIN_Y 56
|
||||||
|
|
||||||
|
#define ROUND_UP(value, alignment) \
|
||||||
|
(((u32)(value) + (alignment-1)) & ~(alignment-1))
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
内部変数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static s8 sMenuSelectNo;
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
内部関数宣言
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static BOOL WriteFontData(void);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
プロセス関数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: font プロセス0
|
||||||
|
|
||||||
|
Description:
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: next sequence
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void* fontProcess0(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// 文字列全クリア
|
||||||
|
kamiFontClear();
|
||||||
|
|
||||||
|
// バージョン表示
|
||||||
|
kamiFontPrintf(2, 1, FONT_COLOR_BLACK, "Write Font 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, 10, FONT_COLOR_BLACK, "+-------------------+-----+");
|
||||||
|
|
||||||
|
// 背景全クリア
|
||||||
|
for (i=0;i<24;i++)
|
||||||
|
{
|
||||||
|
kamiFontFillChar( i, BG_COLOR_TRANS, BG_COLOR_TRANS );
|
||||||
|
}
|
||||||
|
|
||||||
|
// 背景上部
|
||||||
|
kamiFontFillChar( 0, BG_COLOR_BROWN, BG_COLOR_BROWN );
|
||||||
|
kamiFontFillChar( 1, BG_COLOR_BROWN, BG_COLOR_BROWN );
|
||||||
|
kamiFontFillChar( 2, BG_COLOR_BROWN, BG_COLOR_TRANS );
|
||||||
|
|
||||||
|
// カーソル消去
|
||||||
|
SetCursorPos((u16)200, (u16)200);
|
||||||
|
|
||||||
|
FADE_IN_RETURN( fontProcess1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: font プロセス1
|
||||||
|
|
||||||
|
Description:
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: next sequence
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void* fontProcess1(void)
|
||||||
|
{
|
||||||
|
// オート実行用
|
||||||
|
if (gAutoFlag)
|
||||||
|
{
|
||||||
|
sMenuSelectNo = 0;
|
||||||
|
return fontProcess2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 選択メニューの変更
|
||||||
|
if ( kamiPadIsRepeatTrigger(PAD_KEY_UP) )
|
||||||
|
{
|
||||||
|
if (--sMenuSelectNo < 0) sMenuSelectNo = NUM_OF_MENU_SELECT -1;
|
||||||
|
}
|
||||||
|
else if ( kamiPadIsRepeatTrigger(PAD_KEY_DOWN) )
|
||||||
|
{
|
||||||
|
if (++sMenuSelectNo >= NUM_OF_MENU_SELECT) sMenuSelectNo = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// カーソル配置
|
||||||
|
SetCursorPos((u16)CURSOR_ORIGIN_X, (u16)(CURSOR_ORIGIN_Y + sMenuSelectNo * DOT_OF_MENU_SPACE));
|
||||||
|
|
||||||
|
// 決定
|
||||||
|
if (kamiPadIsTrigger(PAD_BUTTON_A))
|
||||||
|
{
|
||||||
|
return fontProcess2;
|
||||||
|
}
|
||||||
|
// トップメニューへ戻る
|
||||||
|
else if (kamiPadIsTrigger(PAD_BUTTON_B))
|
||||||
|
{
|
||||||
|
FADE_OUT_RETURN( TopmenuProcess0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
return fontProcess1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: font プロセス2
|
||||||
|
|
||||||
|
Description:
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: next sequence
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
void* fontProcess2(void)
|
||||||
|
{
|
||||||
|
BOOL result;
|
||||||
|
|
||||||
|
switch( sMenuSelectNo )
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
result = WriteFontData();
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
kamiFontPrintf(25, 7, FONT_COLOR_GREEN, "OK");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
kamiFontPrintf(25, 7, FONT_COLOR_RED, "NG");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
FADE_OUT_RETURN( TopmenuProcess0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Auto用
|
||||||
|
if (gAutoFlag)
|
||||||
|
{
|
||||||
|
if (result) { FADE_OUT_RETURN( AutoProcess1 ); }
|
||||||
|
else { FADE_OUT_RETURN( AutoProcess2); }
|
||||||
|
}
|
||||||
|
|
||||||
|
return fontProcess1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
処理関数定義
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
static BOOL WriteFontData(void)
|
||||||
|
{
|
||||||
|
FSFile file;
|
||||||
|
BOOL open_is_ok;
|
||||||
|
BOOL read_is_ok;
|
||||||
|
void* pTempBuf;
|
||||||
|
u32 file_size;
|
||||||
|
u32 alloc_size;
|
||||||
|
BOOL result = TRUE;
|
||||||
|
|
||||||
|
// ROMファイルオープン
|
||||||
|
FS_InitFile(&file);
|
||||||
|
open_is_ok = FS_OpenFile(&file, FONT_DATA_FILE_PATH_IN_ROM);
|
||||||
|
if (!open_is_ok)
|
||||||
|
{
|
||||||
|
OS_Printf("FS_OpenFile(\"%s\") ... ERROR!\n", FONT_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", FONT_DATA_FILE_PATH_IN_ROM);
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
OS_Free(pTempBuf);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROMファイルクローズ
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
|
||||||
|
// 一旦フォントデータを削除する
|
||||||
|
(void)FS_DeleteFile(FONT_DATA_FILE_PATH_IN_NAND);
|
||||||
|
|
||||||
|
// nand:sys/TWLFontTable.dat作成
|
||||||
|
if (!FS_CreateFile(FONT_DATA_FILE_PATH_IN_NAND, FS_PERMIT_R | FS_PERMIT_W))
|
||||||
|
{
|
||||||
|
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_CreateFile(%s) failed.\n", FONT_DATA_FILE_PATH_IN_NAND);
|
||||||
|
result = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// nand:sys/TWLFontTable.datオープン
|
||||||
|
FS_InitFile(&file);
|
||||||
|
open_is_ok = FS_OpenFileEx(&file, FONT_DATA_FILE_PATH_IN_NAND, FS_FILEMODE_W);
|
||||||
|
if (!open_is_ok)
|
||||||
|
{
|
||||||
|
kamiFontPrintfConsoleEx(CONSOLE_RED, "FS_OpenFile(%s) failed.\n", FONT_DATA_FILE_PATH_IN_NAND);
|
||||||
|
result = FALSE;
|
||||||
|
}
|
||||||
|
// nand:sys/TWLFontTable.dat書き込み
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
@ -313,18 +313,17 @@ void* FormatProcess2(void)
|
|||||||
return FormatProcess1;
|
return FormatProcess1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 割り込み内につき負荷は軽く
|
||||||
static void FormatCallback(KAMIResult result, void* /*arg*/)
|
static void FormatCallback(KAMIResult result, void* /*arg*/)
|
||||||
{
|
{
|
||||||
s16 y_pos = (s16)(7 + sMenuSelectNo * CHAR_OF_MENU_SPACE);
|
s16 y_pos = (s16)(7 + sMenuSelectNo * CHAR_OF_MENU_SPACE);
|
||||||
|
|
||||||
if ( result == KAMI_RESULT_SUCCESS_TRUE )
|
if ( result == KAMI_RESULT_SUCCESS_TRUE )
|
||||||
{
|
{
|
||||||
kamiFontPrintf(24, y_pos, FONT_COLOR_GREEN, " OK ");
|
|
||||||
sFormatResult = TRUE;
|
sFormatResult = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
kamiFontPrintf(24, y_pos, FONT_COLOR_RED, " NG ");
|
|
||||||
sFormatResult = FALSE;
|
sFormatResult = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -352,11 +351,21 @@ void* FormatProcess3(void)
|
|||||||
{
|
{
|
||||||
progress = 0;
|
progress = 0;
|
||||||
|
|
||||||
|
if ( sFormatResult )
|
||||||
|
{
|
||||||
|
kamiFontPrintf(24, y_pos, FONT_COLOR_GREEN, " OK ");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
kamiFontPrintf(24, y_pos, FONT_COLOR_RED, " NG ");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||||
// Auto—p
|
// Auto—p
|
||||||
if (gAutoFlag)
|
if (gAutoFlag)
|
||||||
{
|
{
|
||||||
if (sFormatResult == TRUE) { FADE_OUT_RETURN( AutoProcess1 ); }
|
if (sFormatResult) { FADE_OUT_RETURN( AutoProcess1 ); }
|
||||||
else { FADE_OUT_RETURN( AutoProcess2 ); }
|
else { FADE_OUT_RETURN( AutoProcess2 ); }
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
#include "process_format.h"
|
#include "process_format.h"
|
||||||
#include "process_hw_info.h"
|
#include "process_hw_info.h"
|
||||||
#include "process_import.h"
|
#include "process_import.h"
|
||||||
|
#include "process_font.h"
|
||||||
#include "process_eticket.h"
|
#include "process_eticket.h"
|
||||||
#include "process_nandfirm.h"
|
#include "process_nandfirm.h"
|
||||||
#include "process_norfirm.h"
|
#include "process_norfirm.h"
|
||||||
@ -43,6 +44,7 @@ enum {
|
|||||||
MENU_WIRELESS_SETTING,
|
MENU_WIRELESS_SETTING,
|
||||||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||||
|
MENU_FONT_DATA,
|
||||||
MENU_ETICKET,
|
MENU_ETICKET,
|
||||||
MENU_IMPORT_TAD,
|
MENU_IMPORT_TAD,
|
||||||
MENU_IMPORT_NANDFIRM,
|
MENU_IMPORT_NANDFIRM,
|
||||||
@ -75,6 +77,7 @@ static const MenuAndColor sMenuArray[] =
|
|||||||
{" WIRELESS FORCE SETTING ", BG_COLOR_YELLOW },
|
{" WIRELESS FORCE SETTING ", BG_COLOR_YELLOW },
|
||||||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||||
|
{" WRITE FONT DATA ", BG_COLOR_BROWN },
|
||||||
{" WRITE ETICKET SIGN ", BG_COLOR_GRAY },
|
{" WRITE ETICKET SIGN ", BG_COLOR_GRAY },
|
||||||
{" IMPORT TAD FROM SD ", BG_COLOR_PINK },
|
{" IMPORT TAD FROM SD ", BG_COLOR_PINK },
|
||||||
{" IMPORT NANDFIRM FROM SD", BG_COLOR_GREEN },
|
{" IMPORT NANDFIRM FROM SD", BG_COLOR_GREEN },
|
||||||
@ -217,6 +220,8 @@ void* TopmenuProcess2(void)
|
|||||||
FADE_OUT_RETURN( WirelessSettingProcess0 );
|
FADE_OUT_RETURN( WirelessSettingProcess0 );
|
||||||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||||||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||||
|
case MENU_FONT_DATA:
|
||||||
|
FADE_OUT_RETURN( fontProcess0 );
|
||||||
case MENU_ETICKET:
|
case MENU_ETICKET:
|
||||||
FADE_OUT_RETURN( eTicketProcess0 );
|
FADE_OUT_RETURN( eTicketProcess0 );
|
||||||
case MENU_IMPORT_TAD:
|
case MENU_IMPORT_TAD:
|
||||||
|
|||||||
@ -22,6 +22,7 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
|
$(TWL_IPL_RED_ROOT)/build/systemMenu_RED/sharedFont \
|
||||||
banner \
|
banner \
|
||||||
ARM7.TWL \
|
ARM7.TWL \
|
||||||
ARM9.TWL \
|
ARM9.TWL \
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user