diff --git a/build/components/hyena.TWL/src/main.c b/build/components/hyena.TWL/src/main.c index 8a29c0f4..dc1f8269 100644 --- a/build/components/hyena.TWL/src/main.c +++ b/build/components/hyena.TWL/src/main.c @@ -122,7 +122,7 @@ TwlSpMain(void) PrintDebugInfo(); // PXIコールバックの設定 -// PXI_SetFifoRecvCallback( SYSMENU_PXI_FIFO_TAG, SYSMi_PXIFifoRecvCallback ); + SYSM_InitPXI(); // ランチャーパラメター取得(Cold/Hotスタート判定含む) ReadLauncherParameter(); diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/device.c b/build/libraries_sysmenu/sysmenu/ARM9/src/device.c index 04de3aa9..b2e020e6 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/device.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/device.c @@ -46,7 +46,8 @@ void SYSM_SetBackLightBrightness( u8 brightness ) if( brightness > LCFG_TWL_BACKLIGHT_LEVEL_MAX ) { OS_Panic( "Backlight brightness over : %d\n", brightness ); } - ( void )PMi_WriteRegister( 0x20, (u16)brightness ); + ( void )SYSMi_SendPXICommand( SYSM_PXI_COMM_BL_BRIGHT, brightness ); + LCFG_TSD_SetBacklightBrightness( brightness ); // [TODO:] バックライト輝度は毎回セーブせずに、アプリ起動やリセット、電源OFF時に値が変わっていたらセーブするようにする。 diff --git a/build/libraries_sysmenu/sysmenu/common/include/internal_api.h b/build/libraries_sysmenu/sysmenu/common/include/internal_api.h index a95c7734..3362975f 100644 --- a/build/libraries_sysmenu/sysmenu/common/include/internal_api.h +++ b/build/libraries_sysmenu/sysmenu/common/include/internal_api.h @@ -2,7 +2,7 @@ Project: TwlIPL File: internal_api.h - Copyright 2007 Nintendo. All rights reserved. + Copyright 2007-2008 Nintendo. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo @@ -19,6 +19,7 @@ #define SYSM_INTERNAL_API_H_ #include +#include #ifdef __cplusplus extern "C" { @@ -78,8 +79,6 @@ void SYSMi_EnableHotSW( BOOL enable ); //======================================================= BOOL SYSMi_IsDebuggerBannerViewMode( void ); BOOL SYSMi_CheckEntryAddress( void ); -BOOL SYSMi_SendPXICommand( SYSMPXICommand command ); -void SYSMi_PXIFifoRecvCallback( PXIFifoTag tag, u32 data, BOOL err ); #ifdef __cplusplus diff --git a/build/libraries_sysmenu/sysmenu/common/src/pxi.c b/build/libraries_sysmenu/sysmenu/common/src/pxi.c index d14b2192..6b6049a9 100644 --- a/build/libraries_sysmenu/sysmenu/common/src/pxi.c +++ b/build/libraries_sysmenu/sysmenu/common/src/pxi.c @@ -16,6 +16,7 @@ *---------------------------------------------------------------------------*/ #include +#include #include #include "internal_api.h" @@ -27,8 +28,8 @@ typedef union SYSMPXIPacket { struct { u16 data; - u16 command : 14; - u16 stat : 2; + u8 cmd; // PXI_FIFOMESSAGE_BITSZ_DATA = 26 + u8 stat : 2; }; u32 raw; }SYSMPXIPacket; @@ -38,31 +39,73 @@ typedef union SYSMPXIPacket { // function's prototype------------------------------------------------------- // global variable------------------------------------------------------------- // static variable------------------------------------------------------------- -static volatile BOOL s_sending = FALSE; +static volatile BOOL s_sending[SYSM_PXI_COMM_NUM]; // const data------------------------------------------------------------------ +// PXI初期化 +void SYSM_InitPXI( void ) +{ + static BOOL isInitialized; + int i; + + if (isInitialized) + { + return; + } + isInitialized = TRUE; + + for (i=0; i #include +#include #ifdef __cplusplus diff --git a/include/sysmenu/sysmenu_lib/common/pxi.h b/include/sysmenu/sysmenu_lib/common/pxi.h new file mode 100644 index 00000000..c02212ad --- /dev/null +++ b/include/sysmenu/sysmenu_lib/common/pxi.h @@ -0,0 +1,58 @@ +/*---------------------------------------------------------------------------* + Project: TwlIPL + File: pxi.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 SYSM_COMMON_PXI_H_ +#define SYSM_COMMON_PXI_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +//---------------------------------------------------------------------- +// PXIコマンド +//---------------------------------------------------------------------- +#define SYSMENU_PXI_FIFO_TAG PXI_FIFO_TAG_USER_1 + +typedef enum SYSMPXICommand { + SYSM_PXI_COMM_BL_BRIGHT = 0, + SYSM_PXI_COMM_DISABLE_HOTSW = 1, + + SYSM_PXI_COMM_NUM +}SYSMPXICommand; + +/*---------------------------------------------------------------------------* + 関数定義 + *---------------------------------------------------------------------------*/ + +// PXI初期化 +void SYSM_InitPXI( void ); + +// PXIコマンド送信 +BOOL SYSMi_TrySendPXICommand( SYSMPXICommand cmd, u16 data ); +BOOL SYSMi_SendPXICommand( SYSMPXICommand command, u16 data ); + +// PXIコマンド受信 +void SYSMi_PXIFifoRecvCallback( PXIFifoTag tag, u32 data, BOOL err ); + + +#ifdef __cplusplus +} +#endif + +#endif // SYSM_COMMON_PXI_H_ diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_api.h b/include/sysmenu/sysmenu_lib/common/sysmenu_api.h index 71a6e34c..bbbd31ae 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_api.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_api.h @@ -83,6 +83,7 @@ extern void SYSM_Free( void *ptr ); // 初期化 extern void SYSM_Init( void *(*pAlloc)(u32), void (*pFree)(void*) ); // 初期化。 +extern void SYSM_InitPXI( void ); // PXI初期化 extern void SYSM_SetArena( void ); // システムメニューのアリーナ初期化。OS_Initの後で呼んでください。 extern void SYSM_SetAllocFunc( void *(*pAlloc)(u32), void (*pFree)(void*) ); // SYSM_initで設定した場合は必要なし。 extern TitleProperty *SYSM_ReadParameters( void ); // 本体設定データ、リセットパラメータなどを取得 diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index 65a3f7af..d1682d02 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -41,15 +41,6 @@ typedef struct TitleID_HiLo { }TitleID_HiLo; -//---------------------------------------------------------------------- -// PXIコマンド -//---------------------------------------------------------------------- -#define SYSMENU_PXI_FIFO_TAG PXI_FIFO_TAG_USER_0 - -typedef enum SYSMPXICommand { - SYSM_PXI_COMM_DISABLE_HOTSW = 1 -}SYSMPXICommand; - //---------------------------------------------------------------------- // ROMエミュレーション情報 //----------------------------------------------------------------------