From b5016ec79ca55f61c19f9f9108a92cab1425134b Mon Sep 17 00:00:00 2001 From: nakasima Date: Fri, 11 Jul 2008 10:53:38 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=B9=E3=83=AA=E3=83=BC=E3=83=97=E6=99=82?= =?UTF-8?q?=E3=81=AE=E7=84=A1=E7=B7=9A=E5=81=9C=E6=AD=A2=E5=87=A6=E7=90=86?= =?UTF-8?q?=EF=BC=88=E3=82=B9=E3=83=AA=E3=83=BC=E3=83=97=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E7=8E=870=EF=BC=85=E3=81=A0=E3=81=A3=E3=81=9F=E3=81=AE?= =?UTF-8?q?=E3=81=8C30=EF=BC=85=E7=A8=8B=E5=BA=A6=E3=81=BE=E3=81=A7?= =?UTF-8?q?=E3=81=97=E3=81=8B=E5=90=91=E4=B8=8A=E3=81=A7=E3=81=8D=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=AA=E3=81=84=EF=BC=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1861 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/util/ARM9/src/util.c | 38 +++++++++++++++----- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/build/libraries_sysmenu/util/ARM9/src/util.c b/build/libraries_sysmenu/util/ARM9/src/util.c index 642c590c..54e8e8f3 100644 --- a/build/libraries_sysmenu/util/ARM9/src/util.c +++ b/build/libraries_sysmenu/util/ARM9/src/util.c @@ -95,6 +95,12 @@ BOOL UTL_IsValidCalibration( u16 x, u16 y, u16 correct_x, u16 correct_y ) //====================================================================== // スリープ //====================================================================== +static volatile BOOL isWmEnd = FALSE; + +static void UTLi_WmCallback( void* ) +{ + isWmEnd = TRUE; +} // スリープモードへの遷移 void UTL_GoSleepMode( void ) @@ -108,21 +114,37 @@ void UTL_GoSleepMode( void ) // デバッガ接続中だけはスリープに入らない(蓋閉じでもデバッガが起動するように) if ( !SYSM_IsRunOnDebugger() || (OSi_DetectDebugger() & OS_CONSOLE_TWLDEBUGGER) ) { + // 無線停止 + isWmEnd = FALSE; + WM_Reset( UTLi_WmCallback ); + while (isWmEnd == FALSE) + { + OS_Sleep(1); + } + isWmEnd = FALSE; + WM_End( UTLi_WmCallback ); + while (isWmEnd == FALSE) + { + OS_Sleep(1); + } + // カード抜け無検出設定 // TWLではゲームカードの再ロードが可能なため // スリープ時のカード抜け検出を無効化 // (DS-IPLではゲームカードが起動できなくなるので // レジューム時のROM-IDチェックでエラーになると // シャットダウンしていた) - OSIntrMode enable = OS_DisableInterrupts(); - reg_MI_MCCNT0 &= ~REG_MI_MCCNT0_I_MASK; - OS_ResetRequestIrqMask( OS_IE_CARD_IREQ ); - OS_RestoreInterrupts( enable ); + { + OSIntrMode enable = OS_DisableInterrupts(); + reg_MI_MCCNT0 &= ~REG_MI_MCCNT0_I_MASK; + OS_ResetRequestIrqMask( OS_IE_CARD_IREQ ); + OS_RestoreInterrupts( enable ); - // スリープ遷移 - PM_GoSleepMode( PM_TRIGGER_COVER_OPEN, - 0, - 0 ); + // スリープ遷移 + PM_GoSleepMode( PM_TRIGGER_COVER_OPEN, + 0, + 0 ); + } } }