mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
吸出しバイナリへROMヘッダを追加。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2917 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
a764b2c2f5
commit
6d24607229
@ -23,6 +23,7 @@ extern "C" {
|
|||||||
|
|
||||||
#include <nitro.h>
|
#include <nitro.h>
|
||||||
|
|
||||||
|
#define CARD_SECURE_AREA_OFFSET 0x4000 // 16KB
|
||||||
#define CARD_GAME_AREA_OFFSET 0x8000 // 32KB
|
#define CARD_GAME_AREA_OFFSET 0x8000 // 32KB
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
【card_copy操作手順】
|
【card_copy操作手順】
|
||||||
|
|
||||||
1. TWL 開発機へ NMenu または NandInitializer で card_copy.tad をインポート(インポート済みなら不要)
|
1. TWL 開発機へ NMenu または NandInitializer で card_copy_*.tad をインポート(インポート済みなら不要)
|
||||||
2. TWL メニューから「カードコピーマルチブート」 NAND アプリを起動
|
2. TWL メニューから「カードコピーマルチブート」 NAND アプリを起動
|
||||||
3. NTR へ吸い出したい DS カードを差す
|
3. NTR へ吸い出したい DS カードを差す
|
||||||
4. NTR の DS ダウンロードメニューを起動
|
4. NTR の DS ダウンロードメニューを起動
|
||||||
|
|||||||
@ -207,14 +207,32 @@ void MpSendCallback(BOOL result)
|
|||||||
{
|
{
|
||||||
#pragma unused( result )
|
#pragma unused( result )
|
||||||
CARDRomHeader* rh = (void*)CARD_GetRomHeader();
|
CARDRomHeader* rh = (void*)CARD_GetRomHeader();
|
||||||
|
u32 rh_size = sizeof(CARDRomHeaderNTR);
|
||||||
u32 limit = rh->rom_size + CARD_ROM_PAGE_SIZE;
|
u32 limit = rh->rom_size + CARD_ROM_PAGE_SIZE;
|
||||||
u32 offset = CARD_GAME_AREA_OFFSET + WH_CHILD_SIZE * send_counter[0];
|
u32 offset = WH_CHILD_SIZE * send_counter[0];
|
||||||
|
|
||||||
BgSetMessage(PLTT_YELLOW, " Sending: ROM addr=0x%x", offset);
|
BgSetMessage(PLTT_YELLOW, " Sending: ROM addr=0x%x", offset);
|
||||||
|
|
||||||
if ( offset < limit )
|
if ( offset < limit )
|
||||||
{
|
{
|
||||||
CARD_ReadRom( MI_DMA_NOT_USE, (void*)offset, gSendBuf, WH_CHILD_SIZE );
|
if ( offset < rh_size )
|
||||||
|
{
|
||||||
|
u32 rem = rh_size%WH_CHILD_SIZE;
|
||||||
|
MI_CpuCopy8( &((u8*)rh)[offset], gSendBuf, WH_CHILD_SIZE );
|
||||||
|
if ( offset >= MATH_ROUNDDOWN(rh_size, WH_CHILD_SIZE) )
|
||||||
|
{
|
||||||
|
MI_CpuFill8( &gSendBuf[rem], 0, WH_CHILD_SIZE - rem );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if ( offset < CARD_GAME_AREA_OFFSET )
|
||||||
|
{
|
||||||
|
MI_CpuFill8(gSendBuf, 0, WH_CHILD_SIZE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CARD_ReadRom( MI_DMA_NOT_USE, (void*)offset, gSendBuf, WH_CHILD_SIZE );
|
||||||
|
}
|
||||||
gSendBuf[WH_CHILD_SIZE] = FALSE;
|
gSendBuf[WH_CHILD_SIZE] = FALSE;
|
||||||
if ( (offset + WH_CHILD_SIZE) >= limit )
|
if ( (offset + WH_CHILD_SIZE) >= limit )
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user