Skip to content

Commit d23413b

Browse files
committed
Try to fix kirby canvas curse
1 parent 21523f1 commit d23413b

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

bootloader/source/card_patcher.c

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ u16 a7JumpTableSignatureUniversalThumb[3] = {0x68D0,0x6911,0x6952};
4848
u16 a7JumpTableSignatureUniversalThumb_pt2[3] = {0x6910,0x68D1,0x6952};
4949
u16 a7JumpTableSignatureUniversalThumb_pt3[2] = {0x6908,0x6949};
5050
u16 a7JumpTableSignatureUniversalThumb_pt3_alt[2] = {0x6910,0x6951};
51+
u16 a7JumpTableSignatureUniversalThumb_pt3_alt2[2] = {0x6800,0x6900};
5152

5253
u32 j_HaltSignature1[4] = {0xE59FC004, 0xE08FC00C, 0xE12FFF1C, 0x00007BAF};
5354
u32 j_HaltSignature1Alt1[4] = {0xE59FC004, 0xE08FC00C, 0xE12FFF1C, 0x0000B7A3};
@@ -991,22 +992,36 @@ u32 savePatchUniversal (const tNDSHeader* ndsHeader, u32* cardEngineLocation, mo
991992

992993
EepromWriteJump = getOffsetThumb((u16*)EepromReadJump+2, ndsHeader->arm7binarySize,
993994
a7JumpTableSignatureUniversalThumb_pt2, 3, 1);
994-
995-
EepromProgJump = getOffsetThumb((u16*)EepromWriteJump+2, ndsHeader->arm7binarySize,
996-
a7JumpTableSignatureUniversalThumb_pt2, 3, 1);
997-
998-
EepromVerifyJump = getOffsetThumb((u16*)EepromProgJump+2, ndsHeader->arm7binarySize,
999-
a7JumpTableSignatureUniversalThumb_pt2, 3, 1);
1000-
1001-
EepromEraseJump = getOffsetThumb((u16*)EepromVerifyJump+2, ndsHeader->arm7binarySize,
1002-
a7JumpTableSignatureUniversalThumb_pt3, 2, 1);
1003995

1004-
if(!EepromEraseJump){
1005-
EepromEraseJump = getOffsetThumb((u16*)EepromVerifyJump+2, ndsHeader->arm7binarySize,
1006-
a7JumpTableSignatureUniversalThumb_pt3_alt, 2, 1);
1007-
}
1008-
1009-
996+
if(!EepromWriteJump) {
997+
// alternate v1 order
998+
EepromProgJump = getOffsetThumb((u16*)JumpTableFunc, ndsHeader->arm7binarySize,
999+
a7JumpTableSignatureUniversalThumb_pt2, 2, -1);
1000+
1001+
EepromWriteJump = getOffsetThumb((u16*)EepromProgJump-2, ndsHeader->arm7binarySize,
1002+
a7JumpTableSignatureUniversalThumb_pt2, 2, -1);
1003+
1004+
EepromVerifyJump = getOffsetThumb((u16*)EepromWriteJump-2, ndsHeader->arm7binarySize,
1005+
a7JumpTableSignatureUniversalThumb_pt2, 2, -1);
1006+
1007+
EepromEraseJump = getOffsetThumb((u16*)EepromVerifyJump-2, ndsHeader->arm7binarySize,
1008+
a7JumpTableSignatureUniversalThumb_pt3_alt2, 2, -1);
1009+
1010+
} else {
1011+
EepromProgJump = getOffsetThumb((u16*)EepromWriteJump+2, ndsHeader->arm7binarySize,
1012+
a7JumpTableSignatureUniversalThumb_pt2, 3, 1);
1013+
1014+
EepromVerifyJump = getOffsetThumb((u16*)EepromProgJump+2, ndsHeader->arm7binarySize,
1015+
a7JumpTableSignatureUniversalThumb_pt2, 3, 1);
1016+
1017+
EepromEraseJump = getOffsetThumb((u16*)EepromVerifyJump+2, ndsHeader->arm7binarySize,
1018+
a7JumpTableSignatureUniversalThumb_pt3, 2, 1);
1019+
1020+
if(!EepromEraseJump){
1021+
EepromEraseJump = getOffsetThumb((u16*)EepromVerifyJump+2, ndsHeader->arm7binarySize,
1022+
a7JumpTableSignatureUniversalThumb_pt3_alt, 2, 1);
1023+
}
1024+
}
10101025
}
10111026
}
10121027

0 commit comments

Comments
 (0)