@@ -48,6 +48,7 @@ u16 a7JumpTableSignatureUniversalThumb[3] = {0x68D0,0x6911,0x6952};
48
48
u16 a7JumpTableSignatureUniversalThumb_pt2 [3 ] = {0x6910 ,0x68D1 ,0x6952 };
49
49
u16 a7JumpTableSignatureUniversalThumb_pt3 [2 ] = {0x6908 ,0x6949 };
50
50
u16 a7JumpTableSignatureUniversalThumb_pt3_alt [2 ] = {0x6910 ,0x6951 };
51
+ u16 a7JumpTableSignatureUniversalThumb_pt3_alt2 [2 ] = {0x6800 ,0x6900 };
51
52
52
53
u32 j_HaltSignature1 [4 ] = {0xE59FC004 , 0xE08FC00C , 0xE12FFF1C , 0x00007BAF };
53
54
u32 j_HaltSignature1Alt1 [4 ] = {0xE59FC004 , 0xE08FC00C , 0xE12FFF1C , 0x0000B7A3 };
@@ -991,22 +992,36 @@ u32 savePatchUniversal (const tNDSHeader* ndsHeader, u32* cardEngineLocation, mo
991
992
992
993
EepromWriteJump = getOffsetThumb ((u16 * )EepromReadJump + 2 , ndsHeader -> arm7binarySize ,
993
994
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 );
1003
995
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
+ }
1010
1025
}
1011
1026
}
1012
1027
0 commit comments