Hacking [Release] rxTools - Roxas75 3DS Toolkit [fw 2.0 - 9.2]

Status
Not open for further replies.

WateredFire19

Banned!
Banned
Joined
Aug 23, 2014
Messages
642
Trophies
0
Age
38
XP
291
Country
United States
Well, I wouldn't go that far. Lying is abundantly useful, you just have to know how, and when, to use it. It's a tool for self-promotion and self-protection. This user just doesn't understand that this is neither the time or place to use it.
True. I'll rephrase: Don't lie when a bunch of other people can just test it out.
 
  • Like
Reactions: Hashtastrophe

duke_srg

Well-Known Member
Member
Joined
Mar 1, 2011
Messages
1,862
Trophies
0
Age
43
Location
Moscow
XP
797
Country
Serbia, Republic of
@Gadorach BTW, downgraded MSET 4 have a difference in CakeHax loader, you should check that downgraded MSET 6 works fine or better contact mid-kid to confirm that downgraded MSET 6 works just the same way as the original. (or maybe that was for GW-downgraded firmware?)
 

WateredFire19

Banned!
Banned
Joined
Aug 23, 2014
Messages
642
Trophies
0
Age
38
XP
291
Country
United States
Unrelated, sorry, but I had to do it. Custom gold pants Iwata Mii in Mii Plaza as a tribute/memorial
WvJpmHn.jpg
 

Gadorach

Electronics Engineering Technologist
Member
Joined
Jan 22, 2014
Messages
970
Trophies
0
Location
Canada
XP
944
Country
Canada
@Gadorach BTW, downgraded MSET 4 have a difference in CakeHax loader, you should check that downgraded MSET 6 works fine or better contact mid-kid to confirm that downgraded MSET 6 works just the same way as the original. (or maybe that was for GW-downgraded firmware?)
The CakeHax loader already supports 6.x MSET, and after looking through the DG code, there's no difference in the operations done, regardless of the MSET version. I'll test it on my NAND-modded consoles to be safe though, of course.

Edit:

Alright, so, there be an issue. The MSET selection is handled by the region bit found in SecureInfo_A/B. That means I need to duplicate the code for MSET DG and have a second 6.x MSET DG app. This wouldn't be a problem, except I need to make another spot in the Advanced Menu for it, which means modifying the themes as well. It'll break compatability with past themes if I do it that way. Alternatively, I need to recode it to accept more choices, which I just might do instead, even though it's more intensive and I'm not a super-experienced coder in C. Anyway, I'll give it a shot and see what happens.

If the rxTools main devs want to race past me, here's the CRC list:


JPN4 - 2528035705 - 96AEC379 - v3074
JPN6 - 3979433480 - ED315608 - v5127

USA4 - 864547533 - 3387F2CD - v3078
USA6 - 3987473879 - EDAC05D7 - v5128

EUR4 - 2898378338 - ACC1BE62 - v3075
EUR6 - 4043284232 - F0FF9F08 - v5127

KOR4 - 2688963782 - A04654C6 - v1026
KOR5 - 2949673318 - AFD07166 - v2049

CHN4 - 1448857376 - 565BCF20 - v8

TWN4 - 3557495540 - D40B12F4 - v8
 
Last edited by Gadorach,
  • Like
Reactions: Dartz150

duke_srg

Well-Known Member
Member
Joined
Mar 1, 2011
Messages
1,862
Trophies
0
Age
43
Location
Moscow
XP
797
Country
Serbia, Republic of

WateredFire19

Banned!
Banned
Joined
Aug 23, 2014
Messages
642
Trophies
0
Age
38
XP
291
Country
United States
yeah he maked piracy that why :glare:
Well not exactly. It's because someone made a .DAT file that disables sig-checks on rxMode. He was the first person that made a 9.6 EmuNAND. Yes, before Gateway. After he realized everyone loved that little rxMode mod so much, he decided to open the source of rxTools, rxMode specifically. Then when he ditched his project and left the scene, he opened up DevMode on rxtools.
 

Rioluwott

Well-Known Member
Member
Joined
Feb 23, 2014
Messages
850
Trophies
0
Age
27
XP
2,193
Country
Mexico
As stated, those are only the games that can be used to update the console to the 4.x series of firmwares, notably the 4.1 to 4.5 firmware range. You can use Pokemon Y as well, but again, you will need a DS flash cart as well.
i have a ds flashard so can i update with my pokemon Y? can i install the mset with it?
Also can i install the internet browser with fbi? i have a cubic ninja copy
 

capito27

Well-Known Member
Member
Joined
Jan 19, 2015
Messages
874
Trophies
0
XP
1,220
Country
Swaziland
Ok, @WateredFire19 and @NeoSlyde, could you please take your argument to some other thread ? i fail to see the point for it to be in this thead, this is only toxic, off-topic chattering.

@ any mods (so the one curently on, sorry to summon you ; @Bortz ) As he (@NeoSlyde) is claiming he is an aquintance of a GM, i don't really have high hopes to see any real sanction, but could you (@Bortz) at least purge the thread from the derailed bickerring ? thank you, and have a good day

- Cap
 

WateredFire19

Banned!
Banned
Joined
Aug 23, 2014
Messages
642
Trophies
0
Age
38
XP
291
Country
United States
Ok, @WateredFire19 and @NeoSlyde, could you please take your argument to some other thread ? i fail to see the point for it to be in this thead, this is only toxic, off-topic chattering.

@ any mods (so the one curently on, sorry to summon you ; @Bortz ) As he (@NeoSlyde) is claiming he is an aquintance of a GM, i don't really have high hopes to see any real sanction, but could you (@Bortz) at least purge the thread from the derailed bickerring ? thank you, and have a good day

- Cap
We are no longer arguing, we were JUST talking about Roxas75 / rxTools / rxMode.
 
  • Like
Reactions: NeoSlyde

Gadorach

Electronics Engineering Technologist
Member
Joined
Jan 22, 2014
Messages
970
Trophies
0
Location
Canada
XP
944
Country
Canada
Here is the difference:
https://github.com/dukesrg/rop3ds/blob/master/rop.h#L36
CakeHax have this as a subroject.
Yup, but if you look just below it, MSET 6.x is defined in the proceeding elif.

Anyway, think you could look over my code for errors before I start testing? Nice to have another set of eyes, ha ha.

This is modified source from "downgradeapp.c"
Code:
void downgradeMSET()
{
   File dg;
   char *dgpath = "0:msetdg.bin";
   unsigned int titleid_low = 0x00040010;
   unsigned int titleid_high[6] = { 0x00020000, 0x00021000, 0x00022000, 0x00026000, 0x00027000, 0x00028000 }; //JPN, USA, EUR, CHN, KOR, TWN
   unsigned int mset_hash[10] = { 0x96AEC379, 0xED315608, 0x3387F2CD, 0xEDAC05D7, 0xACC1BE62, 0xF0FF9F08, 0x565BCF20, 0xA04654C6, 0xAFD07166, 0xD40B12F4 }; //JPN, USA, EUR, CHN, KOR, TWN
   unsigned short mset_ver[10] = { 3074, 5127, 3078, 5128, 3075, 5127, 8, 1026, 2049, 8 };
   unsigned short mset_dg_ver = 0;

   ConsoleInit();
   ConsoleSetTitle("  MSET DOWNGRADER");

   int checkLoop = 0;
   while( checkLoop < 1 )
   {
     print("What would you like to Downgrade to?\n\n"); ConsoleShow();
     print("[A] 4.x MSET\n[B] 5.x/6.x MSET\n"); ConsoleShow();

     if (InputWait() == BUTTON_A)
     {
       if (region == 1)
       {
         mset_dg_ver = 1;
       }
       else if (region == 2)
       {
         mset_dg_ver = 3;
       }
       else if (region == 3)
       {
         mset_dg_ver = 5;
       }
       else if (region == 4)
       {
         mset_dg_ver = 7;
       }
       else if (region == 5)
       {
         mset_dg_ver = 8;
       }
       else if (region == 6)
       {
         mset_dg_ver = 10;
       }
       else
       {
         print("Unsupported Region!\n"); ConsoleShow();
         mset_dg_ver = 0;
       }
       checkLoop = 1;
     }
     else if (InputWait() == BUTTON_B)
     {
       if (region == 1)
       {
         mset_dg_ver = 2;
       }
       else if (region == 2)
       {
         mset_dg_ver = 4;
       }
       else if (region == 3)
       {
         mset_dg_ver = 6;
       }
       else if (region == 4)
       {
         mset_dg_ver = 7;
         print("CHN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
       }
       else if (region == 5)
       {
         mset_dg_ver = 9;
       }
       else if (region == 6)
       {
         mset_dg_ver = 10;
         print("TWN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
       }
       else
       {
         print("Unsupported Region!\n"); ConsoleShow();
         mset_dg_ver = 0;
       }
       checkLoop = 1;
     }
     else
     {
       print("Please press a valid button!\n"); ConsoleShow();
     }
   }
   print("Opening MSET app...\n"); ConsoleShow();

   if (CheckRegion(SYS_NAND) == 0)
   {
     if (FindApp(titleid_low, titleid_high[region], SYS_NAND)) // SysNAND only
     {
       if (FileOpen(&dg, tmdpath, 0))
       {
         /* Get the MSET TMD version */
         unsigned short tmd_ver;
         FileRead(&dg, &tmd_ver, 2, 0x1DC);
         tmd_ver = bswap_16(tmd_ver);
         FileClose(&dg);
     
         /* Verify version number */
         if (tmd_ver > mset_ver[mset_dg_ver])
         {
           /* Open MSET content file */
           if (FileOpen(&dg, cntpath, 0))
           {
             unsigned int check_val;
             FileRead(&dg, &check_val, 4, 0x130);
             FileClose(&dg);
         
             if (check_val != 0)
             {
               if (checkDgFile(dgpath, mset_hash[mset_dg_ver]))
               {
                 print("Opening downgrade pack... "); ConsoleShow();
                 if (FileOpen(&dg, dgpath, 0))
                 {
                   print("OK!\n"); ConsoleShow();
               
                   unsigned int dgsize = FileGetSize(&dg);
                   unsigned char *buf = (unsigned char*)0x21000000;
                   FileRead(&dg, buf, dgsize, 0);
               
                   /* Downgrade pack decryption */
                   u8 iv[0x10] = {0};
                   u8 Key[0x10] = {0};
               
                   GetTitleKey(&Key[0], titleid_low, titleid_high[region], SYS_NAND);
               
                   aes_context aes_ctxt;
                   aes_setkey_dec(&aes_ctxt, Key, 0x80);
                   aes_crypt_cbc(&aes_ctxt, AES_DECRYPT, dgsize, iv, buf, buf);
               
                   FileWrite(&dg, buf, dgsize, 0);
                   FileClose(&dg);
               
                   if (*((unsigned int*)(buf + 0x100)) == 0x4843434E) // "NCCH" magic word
                   {
                     print("Downgrading... "); ConsoleShow();
                     if (FSFileCopy(cntpath, dgpath) == 0)
                     {
                       print("done!\nRemoving downgrade pack... "); ConsoleShow();
                       f_unlink(dgpath);
                       print("done.\n"); ConsoleShow();
                     } else {
                       print("\nError downgrading MSET content.\nRemoving downgrade pack... "); ConsoleShow();
                       f_unlink(dgpath);
                       print("done.\n"); ConsoleShow();
                     }
                   } else {
                     print("Error: bad downgrade pack.\n"); ConsoleShow();
                   }
                 } else {
                   print("Error.\n"); ConsoleShow();
                 }
               } else {
                 print("Error: bad downgrade pack.\n"); ConsoleShow();
               }
             } else {
               print("Your MSET version is exploitable.\nDowngrade isn't necessary.\n"); ConsoleShow();
             }
           } else {
             print("Error opening MSET content file.\n"); ConsoleShow();
           }
         } else {
           print("Your MSET version is exploitable.\nDowngrade isn't necessary.\n"); ConsoleShow();
         }
       } else {
         print("Error opening MSET TMD.\n"); ConsoleShow();
       }
     } else {
       print("Error: couldn't find MSET data.\n"); ConsoleShow();
     }
   }

   print("\nPress A to exit\n");
   ConsoleShow();
   WaitForButton(BUTTON_A);
}

Again, I'm no expert coder, and I don't work with C much, so yeah, might work, might not, but that's my contribution, ha ha

Edit:
Looking at it, would it be proper to use this instead for the button check?


Code:
    int checkLoop = 0;
    while( checkLoop < 1 )
    {
        print("What would you like to Downgrade to?\n\n"); ConsoleShow();
        print("[A] 4.x MSET\n[B] 5.x/6.x MSET\n"); ConsoleShow();

        InputWait();

        if (GetInput() == BUTTON_A)
        {
            if (region == 1)
            {
                mset_dg_ver = 1;
            }
            else if (region == 2)
            {
                mset_dg_ver = 3;
            }
            else if (region == 3)
            {
                mset_dg_ver = 5;
            }
            else if (region == 4)
            {
                mset_dg_ver = 7;
            }
            else if (region == 5)
            {
                mset_dg_ver = 8;
            }
            else if (region == 6)
            {
                mset_dg_ver = 10;
            }
            else
            {
                print("Unsupported Region!\n"); ConsoleShow();
                mset_dg_ver = 0;
            }
            checkLoop = 1;
        }
        else if (GetInput() == BUTTON_B)
        {
            if (region == 1)
            {
                mset_dg_ver = 2;
            }
            else if (region == 2)
            {
                mset_dg_ver = 4;
            }
            else if (region == 3)
            {
                mset_dg_ver = 6;
            }
            else if (region == 4)
            {
                mset_dg_ver = 7;
                print("CHN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
            }
            else if (region == 5)
            {
                mset_dg_ver = 9;
            }
            else if (region == 6)
            {
                mset_dg_ver = 10;
                print("TWN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
            }
            else
            {
                print("Unsupported Region!\n"); ConsoleShow();
                mset_dg_ver = 0;
            }
            checkLoop = 1;
        }
        else
        {
            print("Please press a valid button!\n"); ConsoleShow();
        }
    }
 
Last edited by Gadorach, , Reason: Added Spoiler tags to clean up post
Joined
Apr 13, 2010
Messages
1,136
Trophies
0
Website
www.google.com
XP
1,066
Country
United Kingdom
The theme that comes with the Alpha build has a spelling error in the Advanced Options. It's supposed to be 'uninstall' FBI not unistall.

Edit: Also MSET 4.X does not work for me for some reason. I downgraded MSET using rxTools and used rxinstaller.nds that comes with the Alpha build. but it keeps crashing and force rebooting my 3DS.
 

dubbz82

Well-Known Member
Member
Joined
Feb 2, 2014
Messages
1,572
Trophies
0
Age
40
XP
1,205
Country
United States
Yup, but if you look just below it, MSET 6.x is defined in the proceeding elif.

Anyway, think you could look over my code for errors before I start testing? Nice to have another set of eyes, ha ha.

This is modified source from "downgradeapp.c"
Code:
void downgradeMSET()
{
   File dg;
   char *dgpath = "0:msetdg.bin";
   unsigned int titleid_low = 0x00040010;
   unsigned int titleid_high[6] = { 0x00020000, 0x00021000, 0x00022000, 0x00026000, 0x00027000, 0x00028000 }; //JPN, USA, EUR, CHN, KOR, TWN
   unsigned int mset_hash[10] = { 0x96AEC379, 0xED315608, 0x3387F2CD, 0xEDAC05D7, 0xACC1BE62, 0xF0FF9F08, 0x565BCF20, 0xA04654C6, 0xAFD07166, 0xD40B12F4 }; //JPN, USA, EUR, CHN, KOR, TWN
   unsigned short mset_ver[10] = { 3074, 5127, 3078, 5128, 3075, 5127, 8, 1026, 2049, 8 };
   unsigned short mset_dg_ver = 0;

   ConsoleInit();
   ConsoleSetTitle("  MSET DOWNGRADER");

   int checkLoop = 0;
   while( checkLoop < 1 )
   {
     print("What would you like to Downgrade to?\n\n"); ConsoleShow();
     print("[A] 4.x MSET\n[B] 5.x/6.x MSET\n"); ConsoleShow();

     if (InputWait() == BUTTON_A)
     {
       if (region == 1)
       {
         mset_dg_ver = 1;
       }
       else if (region == 2)
       {
         mset_dg_ver = 3;
       }
       else if (region == 3)
       {
         mset_dg_ver = 5;
       }
       else if (region == 4)
       {
         mset_dg_ver = 7;
       }
       else if (region == 5)
       {
         mset_dg_ver = 8;
       }
       else if (region == 6)
       {
         mset_dg_ver = 10;
       }
       else
       {
         print("Unsupported Region!\n"); ConsoleShow();
         mset_dg_ver = 0;
       }
       checkLoop = 1;
     }
     else if (InputWait() == BUTTON_B)
     {
       if (region == 1)
       {
         mset_dg_ver = 2;
       }
       else if (region == 2)
       {
         mset_dg_ver = 4;
       }
       else if (region == 3)
       {
         mset_dg_ver = 6;
       }
       else if (region == 4)
       {
         mset_dg_ver = 7;
         print("CHN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
       }
       else if (region == 5)
       {
         mset_dg_ver = 9;
       }
       else if (region == 6)
       {
         mset_dg_ver = 10;
         print("TWN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
       }
       else
       {
         print("Unsupported Region!\n"); ConsoleShow();
         mset_dg_ver = 0;
       }
       checkLoop = 1;
     }
     else
     {
       print("Please press a valid button!\n"); ConsoleShow();
     }
   }
   print("Opening MSET app...\n"); ConsoleShow();

   if (CheckRegion(SYS_NAND) == 0)
   {
     if (FindApp(titleid_low, titleid_high[region], SYS_NAND)) // SysNAND only
     {
       if (FileOpen(&dg, tmdpath, 0))
       {
         /* Get the MSET TMD version */
         unsigned short tmd_ver;
         FileRead(&dg, &tmd_ver, 2, 0x1DC);
         tmd_ver = bswap_16(tmd_ver);
         FileClose(&dg);
    
         /* Verify version number */
         if (tmd_ver > mset_ver[mset_dg_ver])
         {
           /* Open MSET content file */
           if (FileOpen(&dg, cntpath, 0))
           {
             unsigned int check_val;
             FileRead(&dg, &check_val, 4, 0x130);
             FileClose(&dg);
        
             if (check_val != 0)
             {
               if (checkDgFile(dgpath, mset_hash[mset_dg_ver]))
               {
                 print("Opening downgrade pack... "); ConsoleShow();
                 if (FileOpen(&dg, dgpath, 0))
                 {
                   print("OK!\n"); ConsoleShow();
              
                   unsigned int dgsize = FileGetSize(&dg);
                   unsigned char *buf = (unsigned char*)0x21000000;
                   FileRead(&dg, buf, dgsize, 0);
              
                   /* Downgrade pack decryption */
                   u8 iv[0x10] = {0};
                   u8 Key[0x10] = {0};
              
                   GetTitleKey(&Key[0], titleid_low, titleid_high[region], SYS_NAND);
              
                   aes_context aes_ctxt;
                   aes_setkey_dec(&aes_ctxt, Key, 0x80);
                   aes_crypt_cbc(&aes_ctxt, AES_DECRYPT, dgsize, iv, buf, buf);
              
                   FileWrite(&dg, buf, dgsize, 0);
                   FileClose(&dg);
              
                   if (*((unsigned int*)(buf + 0x100)) == 0x4843434E) // "NCCH" magic word
                   {
                     print("Downgrading... "); ConsoleShow();
                     if (FSFileCopy(cntpath, dgpath) == 0)
                     {
                       print("done!\nRemoving downgrade pack... "); ConsoleShow();
                       f_unlink(dgpath);
                       print("done.\n"); ConsoleShow();
                     } else {
                       print("\nError downgrading MSET content.\nRemoving downgrade pack... "); ConsoleShow();
                       f_unlink(dgpath);
                       print("done.\n"); ConsoleShow();
                     }
                   } else {
                     print("Error: bad downgrade pack.\n"); ConsoleShow();
                   }
                 } else {
                   print("Error.\n"); ConsoleShow();
                 }
               } else {
                 print("Error: bad downgrade pack.\n"); ConsoleShow();
               }
             } else {
               print("Your MSET version is exploitable.\nDowngrade isn't necessary.\n"); ConsoleShow();
             }
           } else {
             print("Error opening MSET content file.\n"); ConsoleShow();
           }
         } else {
           print("Your MSET version is exploitable.\nDowngrade isn't necessary.\n"); ConsoleShow();
         }
       } else {
         print("Error opening MSET TMD.\n"); ConsoleShow();
       }
     } else {
       print("Error: couldn't find MSET data.\n"); ConsoleShow();
     }
   }

   print("\nPress A to exit\n");
   ConsoleShow();
   WaitForButton(BUTTON_A);
}

Again, I'm no expert coder, and I don't work with C much, so yeah, might work, might not, but that's my contribution, ha ha

Edit:
Looking at it, would it be proper to use this instead for the button check?


Code:
    int checkLoop = 0;
    while( checkLoop < 1 )
    {
        print("What would you like to Downgrade to?\n\n"); ConsoleShow();
        print("[A] 4.x MSET\n[B] 5.x/6.x MSET\n"); ConsoleShow();

        InputWait();

        if (GetInput() == BUTTON_A)
        {
            if (region == 1)
            {
                mset_dg_ver = 1;
            }
            else if (region == 2)
            {
                mset_dg_ver = 3;
            }
            else if (region == 3)
            {
                mset_dg_ver = 5;
            }
            else if (region == 4)
            {
                mset_dg_ver = 7;
            }
            else if (region == 5)
            {
                mset_dg_ver = 8;
            }
            else if (region == 6)
            {
                mset_dg_ver = 10;
            }
            else
            {
                print("Unsupported Region!\n"); ConsoleShow();
                mset_dg_ver = 0;
            }
            checkLoop = 1;
        }
        else if (GetInput() == BUTTON_B)
        {
            if (region == 1)
            {
                mset_dg_ver = 2;
            }
            else if (region == 2)
            {
                mset_dg_ver = 4;
            }
            else if (region == 3)
            {
                mset_dg_ver = 6;
            }
            else if (region == 4)
            {
                mset_dg_ver = 7;
                print("CHN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
            }
            else if (region == 5)
            {
                mset_dg_ver = 9;
            }
            else if (region == 6)
            {
                mset_dg_ver = 10;
                print("TWN Region Detected, falling back to 4.x MSET\n"); ConsoleShow();
            }
            else
            {
                print("Unsupported Region!\n"); ConsoleShow();
                mset_dg_ver = 0;
            }
            checkLoop = 1;
        }
        else
        {
            print("Please press a valid button!\n"); ConsoleShow();
        }
    }


Those nested if statements though :wtf:
 

Gadorach

Electronics Engineering Technologist
Member
Joined
Jan 22, 2014
Messages
970
Trophies
0
Location
Canada
XP
944
Country
Canada
Those nested if statements though :wtf:
Didn't have much choice, wanted to preserve compatibility. It was the lesser of two evils, and an evil I knew how to work around, unlike the other, haha

Edit: Oh, actually, I guessing you're looking at the main process. Yeah, that's a lot of nested ifs. I didn't write that though, so not my problem, lmao. As far as I'm concerned, if it works, who cares. We're not writing giant software for a company.
 
Last edited by Gadorach,

Rioluwott

Well-Known Member
Member
Joined
Feb 23, 2014
Messages
850
Trophies
0
Age
27
XP
2,193
Country
Mexico
Didn't have much choice, wanted to preserve compatibility. It was the lesser of two evils, and an evil I knew how to work around, unlike the other, haha
i have a ds flashard so can i update with my pokemon Y? can i install the mset with it?
Also can i install the internet browser with fbi? i have a cubic ninja copy
 

Gadorach

Electronics Engineering Technologist
Member
Joined
Jan 22, 2014
Messages
970
Trophies
0
Location
Canada
XP
944
Country
Canada
i have a ds flashard so can i update with my pokemon Y? can i install the mset with it?
Also can i install the internet browser with fbi? i have a cubic ninja copy
FBI can install the browser, but not without Cubic Ninja 1.x, which needs the internet browser. Either way, you're at an impasse.
I strongly recommend using a 4.x compatible game to update for that reason explicitly. If you're on 4.x, you have many more options for getting it working.

If you want to update to 6.x from there, you'll be in a better position if you have the internet browser already.

I should also mention, that 4.1, 4.2, and 4.3 firmware are the ideal points if you have an older DS flash cart. Starting with 4.4 firmware, the DS-Mode was updated to check the save-chip on the cart's mainboard for a proper serial number. Many older carts did not get updated to bypass this check, and still do not work on newer firmwares without first downgrading the DS-Mode firmware on your console.
 
Last edited by Gadorach,
Status
Not open for further replies.
General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: Hope they made lots of spaget