diff --git a/build/libraries_sysmenu/hotsw/ARM7/include/hotswTypes.h b/build/libraries_sysmenu/hotsw/ARM7/include/hotswTypes.h index d4aa97a8..18b14fd9 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/include/hotswTypes.h +++ b/build/libraries_sysmenu/hotsw/ARM7/include/hotswTypes.h @@ -238,6 +238,7 @@ typedef enum HotSwState{ HOTSW_MODE_ERROR, HOTSW_ILLEGAL_CARD_ERROR, HOTSW_GAMEMODE_ID_CHECK_ERROR, + HOTSW_BUS_LOCK_ERROR, HOTSW_UNEXPECTED_ERROR } HotSwState; diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index 9491f6f1..d4965fc9 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -927,6 +927,11 @@ static void ReadCardData(u32 src, u32 dest, u32 size) if(s_cbData.id_gam != s_gameID){ state = HOTSW_GAMEMODE_ID_CHECK_ERROR; } + + // [Debug] + if(!(reg_MI_EXMEMCNT_L & REG_MI_EXMEMCNT_L_MP_MASK)){ + state = HOTSW_BUS_LOCK_ERROR; + } while(size > 0 && state == HOTSW_SUCCESS){ // --- Boot Segment @@ -1025,6 +1030,10 @@ static void ReadCardData(u32 src, u32 dest, u32 size) case HOTSW_GAMEMODE_ID_CHECK_ERROR: retval = CARD_READ_ID_CHECK_ERROR; break; + + case HOTSW_BUS_LOCK_ERROR: + retval = CARD_READ_BUS_LOCK_ERROR; + break; default: retval = CARD_READ_UNEXPECTED_ERROR; diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index 06de63a9..f0f4e01c 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -44,6 +44,7 @@ typedef enum CardDataReadState { CARD_READ_MODE_ERROR, CARD_READ_BUSY, CARD_READ_ID_CHECK_ERROR, + CARD_READ_BUS_LOCK_ERROR, CARD_READ_UNEXPECTED_ERROR } CardDataReadState;