diff --git a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h index bee08e2b..16d7b172 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h +++ b/build/libraries_sysmenu/hotsw/ARM7/include/dsCardType2.h @@ -45,8 +45,7 @@ HotSwState ChangeModeSecure_DSType2(CardBootData *cbd); #define ReadIDGame_DSType2 ReadIDGame_DSType1 // DSカードType2のゲームモードの指定ページ読み込み -HotSwState ReadPageGame_DSType2(CardBootData *cbd, u32 start_addr, void* buf, u32 size); -//#define ReadPageGame_DSType2 ReadPageGame_DSType1 +#define ReadPageGame_DSType2 ReadPageGame_DSType1 #ifdef __cplusplus } /* extern "C" */ diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c index ccf7c5d9..c082a653 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType1.c @@ -378,9 +378,11 @@ HotSwState ReadIDGame_DSType1(CardBootData *cbd) } /*---------------------------------------------------------------------------* - Name: ReadPageGame_DSType1 - - Description: ゲームモードで、指定されたページを指定バッファに指定サイズ分を読み込む + * Name: ReadPageGame_DSType1 + * + * Description: ゲームモードで、指定されたページを指定バッファに指定サイズ分を読み込む + * + * CT=150ns Pagecount=1page Latency=RomHeaderで指定の値 *---------------------------------------------------------------------------*/ HotSwState ReadPageGame_DSType1(CardBootData *cbd, u32 start_addr, void* buf, u32 size) { @@ -400,6 +402,9 @@ HotSwState ReadPageGame_DSType1(CardBootData *cbd, u32 start_addr, void* buf, u3 return HOTSW_PULLED_OUT_ERROR; } + // NewDMA転送の準備 + HOTSW_NDmaCopy_Card( HOTSW_DMA_NO, (u32 *)HOTSW_MCD1, (u32 *)buf + (u32)(PAGE_WORD_SIZE*i), PAGE_SIZE ); + // ゼロクリア MI_CpuClear8(&cndLE, sizeof(GCDCmd64)); @@ -425,12 +430,9 @@ HotSwState ReadPageGame_DSType1(CardBootData *cbd, u32 start_addr, void* buf, u3 reg_HOTSW_MCCNT1 = cbd->pBootSegBuf->rh.s.game_cmd_param | START_MASK | (PC_MASK & (0x1 << PC_SHIFT)); - // MCCNTレジスタのRDYフラグをポーリングして、フラグが立ったらデータをMCD1レジスタに再度セット。スタートフラグが0になるまでループ。 - while(reg_HOTSW_MCCNT1 & START_FLG_MASK){ - while(!(reg_HOTSW_MCCNT1 & READY_FLG_MASK)){} - *((u32 *)buf + counter++) = reg_HOTSW_MCD1; - } + // カードデータ転送終了割り込みが起こるまで寝る(割り込みハンドラの中で起こされる) + OS_SleepThread(NULL); } return HOTSW_SUCCESS; -} +} \ No newline at end of file diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c index d25825bf..f4c25240 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/dsCardType2.c @@ -427,61 +427,8 @@ HotSwState ChangeModeSecure_DSType2(CardBootData *cbd) /*---------------------------------------------------------------------------* - * Name: ReadPageGame_DSType1 + * Name: ReadPageGame_DSType2 * * Description: ゲームモードで、指定されたページを指定バッファに指定サイズ分を読み込む - * - * CT=150ns Latency1=0x657 Latency2=0x1 Pagecount=1page *---------------------------------------------------------------------------*/ -HotSwState ReadPageGame_DSType2(CardBootData *cbd, u32 start_addr, void* buf, u32 size) -{ - u32 loop, counter=0; - u64 i, page; - GCDCmd64 cndLE, cndBE; - - page = (u32)(start_addr / PAGE_SIZE); - loop = (u32)(size / PAGE_SIZE); - loop = (size % PAGE_SIZE) ? loop + 1 : loop; - -// OS_TPrintf("Src Addr : 0x%08x Dst Addr : 0x%08x\n", start_addr, buf); -// OS_TPrintf("Read Game Segment Page Count : %d size : %x\n", loop, size); - - for(i=0; ipBootSegBuf->rh.s.game_cmd_param | - START_MASK | (PC_MASK & (0x1 << PC_SHIFT)); - - // カードデータ転送終了割り込みが起こるまで寝る(割り込みハンドラの中で起こされる) - OS_SleepThread(NULL); - } - - return HOTSW_SUCCESS; -} \ No newline at end of file +// Type1と同じ \ No newline at end of file