@@ -328,7 +328,7 @@ void dsiWarePatch(cardengineArm9* ce9, const tNDSHeader* ndsHeader) {
328328 *(u32*)0x02075FFC = 0xE3A00001; // mov r0, #1 (dsiSaveOpenDir)
329329 *(u32*)0x02076018 = 0xE3A00001; // mov r0, #1 (dsiSaveReadDir)
330330 *(u32*)0x02076244 = 0xE3A00000; // mov r0, #0 (dsiSaveReadDir)
331- *(u32*)0x02076254 = 0xE3A00001 ; // mov r0, #1 (dsiSaveCloseDir)
331+ *(u32*)0x02076254 = 0xE1A00000 ; // nop (dsiSaveCloseDir)
332332 *(u32*)0x02076280 = 0xE3A00000; // mov r0, #0
333333 *(u32*)0x02076284 = 0xE12FFF1E; // bx lr
334334 setBL(0x020762FC, (u32)dsiSaveOpen);
@@ -342,10 +342,8 @@ void dsiWarePatch(cardengineArm9* ce9, const tNDSHeader* ndsHeader) {
342342 setBL(0x020764A4, (u32)dsiSaveWrite);
343343 setBL(0x020764AC, (u32)dsiSaveClose);
344344 } */
345- toncset((char*)0x020A05F4, 0, 9); // Redirect otherPrv to dataPrv
346- tonccpy((char*)0x020A05F4, dataPrv, strlen(dataPrv));
347- toncset((char*)0x020A0608, 0, 9);
348- tonccpy((char*)0x020A0608, dataPrv, strlen(dataPrv));
345+ tonccpy((char*)0x020A05F4, dataPrv, strlen(dataPrv)+1); // Redirect otherPrv to dataPrv
346+ tonccpy((char*)0x020A0608, dataPrv, strlen(dataPrv)+1);
349347 }
350348
351349 // 21 Blackjack (USA)
@@ -1249,6 +1247,7 @@ void dsiWarePatch(cardengineArm9* ce9, const tNDSHeader* ndsHeader) {
12491247 } */
12501248
12511249 // Absolute BrickBuster (USA)
1250+ // Saving seems difficult to get working
12521251 else if (strcmp(romTid, "K6QE") == 0) {
12531252 if (!twlFontFound) {
12541253 *(u32*)0x020053E4 = 0xE1A00000; // nop (Disable NFTR loading from TWLNAND)
@@ -1259,65 +1258,98 @@ void dsiWarePatch(cardengineArm9* ce9, const tNDSHeader* ndsHeader) {
12591258 *(u32*)0x02055C48 = 0xE3A00000; // mov r0, #0
12601259 *(u32*)0x02055C4C = 0xE12FFF1E; // bx lr
12611260 } */
1262- toncset((char*)0x02095CD4, 0, 9); // Redirect otherPub to dataPub
1263- tonccpy((char*)0x02095CD4, dataPub, strlen(dataPub));
1264- toncset((char*)0x02095CE8, 0, 9);
1265- tonccpy((char*)0x02095CE8, dataPub, strlen(dataPub));
1261+ /* if (saveOnFlashcardNtr) {
1262+ *(u32*)0x02056230 = 0xE3A00001; // mov r0, #1 (dsiSaveOpenDir)
1263+ *(u32*)0x0205624C = 0xE3A00001; // mov r0, #1 (dsiSaveReadDir)
1264+ *(u32*)0x02056274 = 0xE3A00001; // mov r0, #1
1265+ *(u32*)0x02056288 = 0xE3A00001; // mov r0, #1
1266+ *(u32*)0x02056488 = 0xE3A00000; // mov r0, #0 (dsiSaveReadDir)
1267+ *(u32*)0x02056498 = 0xE1A00000; // nop (dsiSaveCloseDir)
1268+ *(u32*)0x020564C4 = 0xE3A00000; // mov r0, #0
1269+ *(u32*)0x020564C8 = 0xE12FFF1E; // bx lr
1270+ setBL(0x02056540, (u32)dsiSaveOpen);
1271+ setBL(0x02056558, (u32)dsiSaveGetLength);
1272+ setBL(0x02056584, (u32)dsiSaveRead);
1273+ setBL(0x0205658C, (u32)dsiSaveClose);
1274+ setBL(0x02056664, (u32)dsiSaveCreate);
1275+ setBL(0x02056674, (u32)dsiSaveOpen);
1276+ setBL(0x02056684, (u32)dsiSaveGetResultCode);
1277+ setBL(0x020566B8, (u32)dsiSaveSetLength);
1278+ setBL(0x020566E8, (u32)dsiSaveWrite);
1279+ setBL(0x020566F0, (u32)dsiSaveClose);
1280+ } */
1281+ tonccpy((char*)0x02095CD4, dataPub, strlen(dataPub)+1); // Redirect otherPub to dataPub
1282+ tonccpy((char*)0x02095CE8, dataPub, strlen(dataPub)+1);
12661283 }
12671284
12681285 // At Enta!: Burokku Kuzushi (Japan)
1286+ // Saving seems difficult to get working
12691287 else if (strcmp(romTid, "K6QJ") == 0) {
12701288 if (!twlFontFound) {
12711289 *(u32*)0x020053E4 = 0xE1A00000; // nop (Disable NFTR loading from TWLNAND)
12721290 }
1273- toncset((char*)0x020943B0, 0, 9);
1274- tonccpy((char*)0x020943B0, dataPub, strlen(dataPub));
1275- toncset((char*)0x020943C4, 0, 9);
1276- tonccpy((char*)0x020943C4, dataPub, strlen(dataPub));
1291+ /* if (saveOnFlashcardNtr) { // Part of .pck file
1292+ *(u32*)0x02055980 = 0xE3A00000; // mov r0, #0
1293+ *(u32*)0x02055984 = 0xE12FFF1E; // bx lr
1294+ *(u32*)0x02055A54 = 0xE3A00000; // mov r0, #0
1295+ *(u32*)0x02055A58 = 0xE12FFF1E; // bx lr
1296+ } */
1297+ /* if (saveOnFlashcardNtr) {
1298+ *(u32*)0x0205603C = 0xE3A00001; // mov r0, #1 (dsiSaveOpenDir)
1299+ *(u32*)0x02056058 = 0xE3A00001; // mov r0, #1 (dsiSaveReadDir)
1300+ *(u32*)0x02056284 = 0xE3A00000; // mov r0, #0 (dsiSaveReadDir)
1301+ *(u32*)0x02056294 = 0xE1A00000; // nop (dsiSaveCloseDir)
1302+ *(u32*)0x020562C0 = 0xE3A00000; // mov r0, #0
1303+ *(u32*)0x020562C4 = 0xE12FFF1E; // bx lr
1304+ setBL(0x0205633C, (u32)dsiSaveOpen);
1305+ setBL(0x02056354, (u32)dsiSaveGetLength);
1306+ setBL(0x02056380, (u32)dsiSaveRead);
1307+ setBL(0x02056388, (u32)dsiSaveClose);
1308+ setBL(0x02056460, (u32)dsiSaveCreate);
1309+ setBL(0x02056470, (u32)dsiSaveOpen);
1310+ setBL(0x02056480, (u32)dsiSaveGetResultCode);
1311+ setBL(0x020564B4, (u32)dsiSaveSetLength);
1312+ setBL(0x020564E4, (u32)dsiSaveWrite);
1313+ setBL(0x020564EC, (u32)dsiSaveClose);
1314+ } */
1315+ tonccpy((char*)0x020943B0, dataPub, strlen(dataPub)+1); // Redirect otherPub to dataPub
1316+ tonccpy((char*)0x020943C4, dataPub, strlen(dataPub)+1);
12771317 }
12781318
12791319 // Absolute Chess (USA)
12801320 else if (strcmp(romTid, "KCZE") == 0) {
12811321 if (!twlFontFound) {
12821322 *(u32*)0x020053E4 = 0xE1A00000; // nop (Disable NFTR loading from TWLNAND)
12831323 }
1284- toncset((char*)0x0209E9C8, 0, 9); // Redirect otherPub to dataPub
1285- tonccpy((char*)0x0209E9C8, dataPub, strlen(dataPub));
1286- toncset((char*)0x0209E9DC, 0, 9);
1287- tonccpy((char*)0x0209E9DC, dataPub, strlen(dataPub));
1324+ tonccpy((char*)0x0209E9C8, dataPub, strlen(dataPub)+1); // Redirect otherPub to dataPub
1325+ tonccpy((char*)0x0209E9DC, dataPub, strlen(dataPub)+1);
12881326 }
12891327
12901328 // At Chisu: Charenji Supirittsu (Japan)
12911329 else if (strcmp(romTid, "KCZJ") == 0) {
12921330 if (!twlFontFound) {
12931331 *(u32*)0x020053E4 = 0xE1A00000; // nop (Disable NFTR loading from TWLNAND)
12941332 }
1295- toncset((char*)0x0209CCDC, 0, 9); // Redirect otherPub to dataPub
1296- tonccpy((char*)0x0209CCDC, dataPrv, strlen(dataPrv));
1297- toncset((char*)0x0209CCF0, 0, 9);
1298- tonccpy((char*)0x0209CCF0, dataPrv, strlen(dataPrv));
1333+ tonccpy((char*)0x0209CCDC, dataPrv, strlen(dataPrv)+1); // Redirect otherPrv to dataPrv
1334+ tonccpy((char*)0x0209CCF0, dataPrv, strlen(dataPrv)+1);
12991335 }
13001336
13011337 // Absolute Reversi (USA)
13021338 else if (strcmp(romTid, "KA8E") == 0) {
13031339 if (!twlFontFound) {
13041340 *(u32*)0x020053E4 = 0xE1A00000; // nop (Disable NFTR loading from TWLNAND)
13051341 }
1306- toncset((char*)0x0209D220, 0, 9); // Redirect otherPub to dataPub
1307- tonccpy((char*)0x0209D220, dataPub, strlen(dataPub));
1308- toncset((char*)0x0209D234, 0, 9);
1309- tonccpy((char*)0x0209D234, dataPub, strlen(dataPub));
1342+ tonccpy((char*)0x0209D220, dataPub, strlen(dataPub)+1); // Redirect otherPub to dataPub
1343+ tonccpy((char*)0x0209D234, dataPub, strlen(dataPub)+1);
13101344 }
13111345
13121346 // At Enta!: Taisen Ribashi (Japan)
13131347 else if (strcmp(romTid, "KA8J") == 0) {
13141348 if (!twlFontFound) {
13151349 *(u32*)0x020053E4 = 0xE1A00000; // nop (Disable NFTR loading from TWLNAND)
13161350 }
1317- toncset((char*)0x0209C1C0, 0, 9); // Redirect otherPub to dataPub
1318- tonccpy((char*)0x0209C1C0, dataPub, strlen(dataPub));
1319- toncset((char*)0x0209C1D4, 0, 9);
1320- tonccpy((char*)0x0209C1D4, dataPub, strlen(dataPub));
1351+ tonccpy((char*)0x0209C1C0, dataPub, strlen(dataPub)+1); // Redirect otherPub to dataPub
1352+ tonccpy((char*)0x0209C1D4, dataPub, strlen(dataPub)+1);
13211353 }
13221354
13231355 // Abyss (USA)
0 commit comments