mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ERRORLOG_Init()を呼び出してsysmenu.logを生成するようにした。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2763 b08762b0-b915-fc4b-9d8c-17b2551a87ff
256 lines
7.2 KiB
C
256 lines
7.2 KiB
C
/*---------------------------------------------------------------------------*
|
||
Project: TwlSDK - NandInitializer
|
||
File: process_topmenu.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 "kami_font.h"
|
||
#include "process_topmenu.h"
|
||
#include "process_format.h"
|
||
#include "process_hw_info.h"
|
||
#include "process_import.h"
|
||
#include "process_nandfirm.h"
|
||
#include "process_norfirm.h"
|
||
#include "process_auto.h"
|
||
#include "process_fade.h"
|
||
#include "process_wireless_setting.h"
|
||
#include "process_write_data.h"
|
||
#include "process_mcu.h"
|
||
#include "cursor.h"
|
||
#include "keypad.h"
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Œ^’è‹`
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
enum {
|
||
MENU_FORMAT = 0,
|
||
MENU_HARDWARE_INFO,
|
||
|
||
#ifdef USE_WIRELESS_FORCE_DISABLE_SETTING
|
||
MENU_WIRELESS_SETTING,
|
||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||
|
||
#ifdef USE_WRITE_VARIOUS_DATA
|
||
MENU_WRITE_DATA,
|
||
#endif // USE_WRITE_VARIOUS_DATA
|
||
|
||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||
MENU_IMPORT_TAD,
|
||
MENU_IMPORT_NANDFIRM,
|
||
MENU_IMPORT_NORFIRM,
|
||
MENU_WRITE_MCU_DATA,
|
||
#endif // NAND_INITIALIZER_LIMITED_MODE
|
||
NUM_OF_MENU_SELECT
|
||
};
|
||
|
||
typedef struct _MenuAndColor
|
||
{
|
||
char* menu_name;
|
||
u8 color;
|
||
} MenuAndColor;
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
’è<E28099>”’è‹`
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
#define DOT_OF_MENU_SPACE 16
|
||
#define CURSOR_ORIGIN_X 32
|
||
#define CURSOR_ORIGIN_Y 56
|
||
#define MENU_TOP_LINE 7
|
||
#define CHAR_OF_MENU_SPACE 2
|
||
|
||
static const MenuAndColor sMenuArray[] =
|
||
{
|
||
{" FORMAT NAND ", BG_COLOR_BLUE },
|
||
{" WRITE HARDWARE INFO ", BG_COLOR_PURPLE },
|
||
|
||
#ifdef USE_WIRELESS_FORCE_DISABLE_SETTING
|
||
{" WIRELESS FORCE SETTING ", BG_COLOR_YELLOW },
|
||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||
|
||
#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 },
|
||
{" IMPORT NANDFIRM FROM SD", BG_COLOR_GREEN },
|
||
{" IMPORT NORFIRM FROM SD", BG_COLOR_VIOLET },
|
||
{" WRITE MCU DATA ", BG_COLOR_GRAY }
|
||
#endif // NAND_INITIALIZER_LIMITED_MODE
|
||
};
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
“à•”•Ï<E280A2>”’è‹`
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
static s8 sMenuSelectNo;
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
“à•”ŠÖ<C5A0>”’è‹`
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
ƒvƒ<76>ƒZƒXŠÖ<C5A0>”’è‹`
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: Top Menu ƒvƒ<76>ƒZƒX‚O
|
||
|
||
Description:
|
||
|
||
Arguments: None.
|
||
|
||
Returns: next sequence
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
void* TopmenuProcess0(void)
|
||
{
|
||
int i;
|
||
|
||
// •¶Žš—ñ‘SƒNƒŠƒA
|
||
kamiFontClear();
|
||
|
||
// ƒo<C692>[ƒWƒ‡ƒ“•\ަ
|
||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||
kamiFontPrintf(7, 2, 0, "Nand Initializer RED");
|
||
#else
|
||
kamiFontPrintf(8, 2, 0, "Nand Initializer");
|
||
#endif
|
||
kamiFontPrintf(9, 4, 8, "<%s>", __DATE__);
|
||
|
||
// ”wŒi‘SƒNƒŠƒA
|
||
for (i=0;i<24;i++)
|
||
{
|
||
kamiFontFillChar( i, BG_COLOR_TRANS, BG_COLOR_TRANS );
|
||
}
|
||
|
||
for (i=0;i<NUM_OF_MENU_SELECT;i++)
|
||
{
|
||
// ƒ<>ƒjƒ…<C692>[•¶Žš—ñ•`‰æ
|
||
kamiFontPrintf(3, (s16)(MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i), FONT_COLOR_BLACK, sMenuArray[i].menu_name);
|
||
// ”wŒi<C592>Ý’è
|
||
kamiFontFillChar( MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i-1, BG_COLOR_NONE, sMenuArray[i].color );
|
||
kamiFontFillChar( MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i, sMenuArray[i].color, sMenuArray[i].color );
|
||
kamiFontFillChar( MENU_TOP_LINE+CHAR_OF_MENU_SPACE*i+1, sMenuArray[i].color, BG_COLOR_NONE );
|
||
}
|
||
|
||
// ƒJ<C692>[ƒ\ƒ‹<C692>Á‹Ž
|
||
SetCursorPos((u16)200, (u16)200);
|
||
|
||
FADE_IN_RETURN(TopmenuProcess1);
|
||
}
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: Top Menu ƒvƒ<76>ƒZƒX‚P
|
||
|
||
Description:
|
||
|
||
Arguments: None.
|
||
|
||
Returns: next sequence
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
void* TopmenuProcess1(void)
|
||
{
|
||
// ‘I‘ðƒ<C3B0>ƒjƒ…<C692>[‚Ì•Ï<E280A2>X
|
||
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;
|
||
}
|
||
|
||
// ƒJ<C692>[ƒ\ƒ‹”z’u
|
||
SetCursorPos((u16)CURSOR_ORIGIN_X, (u16)(CURSOR_ORIGIN_Y + sMenuSelectNo * DOT_OF_MENU_SPACE));
|
||
|
||
// Œˆ’è
|
||
if (kamiPadIsTrigger(PAD_BUTTON_A))
|
||
{
|
||
return TopmenuProcess2;
|
||
}
|
||
|
||
#ifdef USE_FOR_NIGHTLY_AUTO_TEST
|
||
FADE_OUT_RETURN( FormatProcess0 );
|
||
#endif //USE_FOR_NIGHTLY_AUTO_TEST
|
||
|
||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||
|
||
#ifdef AUTO_FORMAT_MODE
|
||
FADE_OUT_RETURN( AutoProcess0 );
|
||
#endif
|
||
|
||
// L&R“¯Žž‰Ÿ‚µ‚ŃI<C692>[ƒgŽÀ<C5BD>s<EFBFBD>I
|
||
if (kamiPadIsPress(PAD_BUTTON_L) && kamiPadIsPress(PAD_BUTTON_R))
|
||
{
|
||
FADE_OUT_RETURN( AutoProcess0 );
|
||
}
|
||
#endif // NAND_INITIALIZER_LIMITED_MODE
|
||
|
||
return TopmenuProcess1;
|
||
}
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: Top Menu ƒvƒ<76>ƒZƒX‚Q
|
||
|
||
Description:
|
||
|
||
Arguments: None.
|
||
|
||
Returns: next sequence
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
void* TopmenuProcess2(void)
|
||
{
|
||
|
||
#ifndef TWL_CAPTURE_VERSION
|
||
switch ( sMenuSelectNo )
|
||
{
|
||
case MENU_FORMAT:
|
||
FADE_OUT_RETURN( FormatProcess0 );
|
||
case MENU_HARDWARE_INFO:
|
||
FADE_OUT_RETURN( HWInfoProcess0 );
|
||
#ifdef USE_WIRELESS_FORCE_DISABLE_SETTING
|
||
case MENU_WIRELESS_SETTING:
|
||
FADE_OUT_RETURN( WirelessSettingProcess0 );
|
||
#endif // USE_WIRELESS_FORCE_DISABLE_SETTING
|
||
|
||
#ifdef USE_WRITE_VARIOUS_DATA
|
||
case MENU_WRITE_DATA:
|
||
FADE_OUT_RETURN( WriteDataProcessPre0 );
|
||
#endif // USE_WRITE_VARIOUS_DATA
|
||
|
||
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||
case MENU_IMPORT_TAD:
|
||
FADE_OUT_RETURN( ImportProcess0 );
|
||
case MENU_IMPORT_NANDFIRM:
|
||
FADE_OUT_RETURN( NandfirmProcess0 );
|
||
case MENU_IMPORT_NORFIRM:
|
||
FADE_OUT_RETURN( NorfirmProcess0 );
|
||
case MENU_WRITE_MCU_DATA:
|
||
FADE_OUT_RETURN( mcuProcess0 );
|
||
#endif // NAND_INITIALIZER_LIMITED_MODE
|
||
}
|
||
#endif // TWL_CAPTURE_VERSION
|
||
return TopmenuProcess1;
|
||
}
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
<20>ˆ—<CB86>ŠÖ<C5A0>”’è‹`
|
||
*---------------------------------------------------------------------------*/
|