Hardware nand flash dump (3ds xl)

krisztian1997

Well-Known Member
Member
Joined
Dec 14, 2013
Messages
370
Trophies
0
Age
27
XP
300
Country
Romania
hey if i make a DIY/NAND backup of my 4.5 firmware befor using my gateway, and get bricked in the future i can allways unbrick my 3ds, by reinstalling the old nand.bin right?

nope, gateway locks the eMMC controller and you cant reflash a new NAND onto it. I and some other users are working on a way to unlock it, but we still have a lot to do.
 

kirillov

Well-Known Member
Newcomer
Joined
Dec 10, 2013
Messages
73
Trophies
0
Age
33
XP
187
Country
nope, gateway locks the eMMC controller and you cant reflash a new NAND onto it. I and some other users are working on a way to unlock it, but we still have a lot to do.

Why not create a new thread writing in first post your updates? :toot: All the info are dispersed and it´s difficult for newbs
 

krisztian1997

Well-Known Member
Member
Joined
Dec 14, 2013
Messages
370
Trophies
0
Age
27
XP
300
Country
Romania
Why not create a new thread writing in first post your updates? :toot: All the info are dispersed and it´s difficult for newbs

I dont really have anything atm, I have some code on pc but I cant test it because my arduino should come on friday or next monday.
 

gamesquest1

Nabnut
Former Staff
Joined
Sep 23, 2013
Messages
15,153
Trophies
2
XP
12,247
Has anyone tried any of this yet? Or people still waiting for their parts to arrive?
Seems promising, would be good to know there's always a Unbricking method
 

Flopp

Active Member
Newcomer
Joined
Dec 27, 2013
Messages
31
Trophies
0
Age
36
XP
93
Country
How successful are clone-card NAND backup? I did one a while ago but haven't tested it. Can I trust the backup-file 100%?
 

Dan-the-Rebirth

Well-Known Member
Member
Joined
Jan 5, 2014
Messages
541
Trophies
1
Age
36
XP
1,530
Country
Australia
so it means the faq on maxconsoles is wrong
Q: My 3DS is stuck on Blue Screen of Death after playing. GW is dangerous aaah!
A: Calm down. This crash is due to a memory corruption from modified GW software (such as the region free patch and clone firmware). You will have to reflash a 4.5 back to the 3DS. If you did not back up your NAND before use, then I'm sorry, you failed lesson number 2: Better safe than sorry.
 

illicit

Well-Known Member
Member
Joined
Sep 28, 2010
Messages
159
Trophies
0
XP
255
Country
United States
20140123_000050.jpg
20140123_000220.jpg


just finished mine
 

Quicksilver88

Well-Known Member
Member
Joined
Jan 26, 2013
Messages
618
Trophies
1
Age
54
XP
753
Country
United States
Wow........that is nice, super clean. I like how you used the existing hole in the case (used for the strap?) to place the usb port. Did you have to cut it any or did the port just fit right in there?
 

drfsupercenter

Flash Cart Aficionado
Member
Joined
Mar 26, 2008
Messages
1,909
Trophies
1
XP
1,173
Country
United States
Personally, I don't like having it so blatantly obvious that you've modded your hardware. When I get mine done, I'm having it put under the battery cover like some of the earlier posts, that way nobody will know unless you take the battery cover off.

It's not like you're going to be NAND flashing every day or something, it's more of a fail-safe backup system.
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,565
Country
Chile
If we are unlucky, the eMMC doesn't even support SPI Mode... It was removed from v4.4 v4.3 of the specs in 2009...

EDIT. Sorry, krisztian1997 is right. It was removed even earlier in 4.3

That would be unfortunate, because SPI allows no CRC detection (unsafe but guaranteed CMDs will arrive at some moment).


And if everything fails:
one can still access these commands (SD or SPI mode):
33wy73r.jpg

given eMMC does not support SPI mode (1bit), it would jump directly to SD0(1bit) mode, right? CMD42 can still be accessed.

SD0 (1bit) mode is CLK,GND,CMD,VCC,DAT0 (1:1 SD to SD controller) or, the same approach used in this guide.


But for SD mode we need the CRC16 sent to be correct. And, i'm 99% sure this can be issued in SD mode as well:
316m9gm.jpg

Remember that SD mode is the one used by the OP (DAT0,CMD,GND,VCC,CLK) 1:1 on both devices

This is for people with raspberry pi's:

Code:
typedef struct EMMCCommand
  {
  const char* name;
  unsigned int code;
  unsigned char resp;
  unsigned char rca;
  int delay;
  } EMMCCommand;
 
// Command table.
static EMMCCommand sdCommandTable[] =
  {
  { "GO_IDLE_STATE", 0x00000000|CMD_RSPNS_NO                            , RESP_NO , RCA_NO  ,0},
  { "ALL_SEND_CID" , 0x02000000|CMD_RSPNS_136                            , RESP_R2I, RCA_NO  ,0},
  { "SEND_REL_ADDR", 0x03000000|CMD_RSPNS_48                            , RESP_R6 , RCA_NO  ,0},
  { "SET_DSR"      , 0x04000000|CMD_RSPNS_NO                            , RESP_NO , RCA_NO  ,0},
  { "SWITCH_FUNC"  , 0x06000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "CARD_SELECT"  , 0x07000000|CMD_RSPNS_48B                            , RESP_R1b, RCA_YES ,0},
  { "SEND_IF_COND" , 0x08000000|CMD_RSPNS_48                            , RESP_R7 , RCA_NO  ,100},
  { "SEND_CSD"    , 0x09000000|CMD_RSPNS_136                            , RESP_R2S, RCA_YES ,0},
  { "SEND_CID"    , 0x0A000000|CMD_RSPNS_136                            , RESP_R2I, RCA_YES ,0},
  { "VOLT_SWITCH"  , 0x0B000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "STOP_TRANS"  , 0x0C000000|CMD_RSPNS_48B                            , RESP_R1b, RCA_NO  ,0},
  { "SEND_STATUS"  , 0x0D000000|CMD_RSPNS_48                            , RESP_R1 , RCA_YES ,0},
  { "GO_INACTIVE"  , 0x0F000000|CMD_RSPNS_NO                            , RESP_NO , RCA_YES ,0},
  { "SET_BLOCKLEN" , 0x10000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "READ_SINGLE"  , 0x11000000|CMD_RSPNS_48 |CMD_IS_DATA  |TM_DAT_DIR_CH, RESP_R1 , RCA_NO  ,0},
  { "READ_MULTI"  , 0x12000000|CMD_RSPNS_48 |TM_MULTI_DATA|TM_DAT_DIR_CH, RESP_R1 , RCA_NO  ,0},
  { "SEND_TUNING"  , 0x13000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "SPEED_CLASS"  , 0x14000000|CMD_RSPNS_48B                            , RESP_R1b, RCA_NO  ,0},
  { "SET_BLOCKCNT" , 0x17000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "WRITE_SINGLE" , 0x18000000|CMD_RSPNS_48 |CMD_IS_DATA  |TM_DAT_DIR_HC, RESP_R1 , RCA_NO  ,0},
  { "WRITE_MULTI"  , 0x19000000|CMD_RSPNS_48 |TM_MULTI_DATA|TM_DAT_DIR_HC, RESP_R1 , RCA_NO  ,0},
  { "PROGRAM_CSD"  , 0x1B000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "SET_WRITE_PR" , 0x1C000000|CMD_RSPNS_48B                            , RESP_R1b, RCA_NO  ,0},
  { "CLR_WRITE_PR" , 0x1D000000|CMD_RSPNS_48B                            , RESP_R1b, RCA_NO  ,0},
  { "SND_WRITE_PR" , 0x1E000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "ERASE_WR_ST"  , 0x20000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "ERASE_WR_END" , 0x21000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "ERASE"        , 0x26000000|CMD_RSPNS_48B                            , RESP_R1b, RCA_NO  ,0},
  { "LOCK_UNLOCK"  , 0x2A000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "APP_CMD"      , 0x37000000|CMD_RSPNS_NO                            , RESP_NO , RCA_NO  ,100},
  { "APP_CMD"      , 0x37000000|CMD_RSPNS_48                            , RESP_R1 , RCA_YES ,0},
  { "GEN_CMD"      , 0x38000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
 
  // APP commands must be prefixed by an APP_CMD.
  { "SET_BUS_WIDTH", 0x06000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "SD_STATUS"    , 0x0D000000|CMD_RSPNS_48                            , RESP_R1 , RCA_YES ,0}, // RCA???
  { "SEND_NUM_WRBL", 0x16000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "SEND_NUM_ERS" , 0x17000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "SD_SENDOPCOND", 0x29000000|CMD_RSPNS_48                            , RESP_R3 , RCA_NO  ,1000},
  { "SET_CLR_DET"  , 0x2A000000|CMD_RSPNS_48                            , RESP_R1 , RCA_NO  ,0},
  { "SEND_SCR"    , 0x33000000|CMD_RSPNS_48|CMD_IS_DATA|TM_DAT_DIR_CH  , RESP_R1 , RCA_NO  ,0},
  };
 
static int sdSendCommand( int index )
  { // ... get cmd from table; check if APP_CMD is needed, sends that if so.
    // checks cmd->rca and if set uses card's rca as the arg value, then calls sdSendCommandP(cmd,arg); }
 
static int sdSendCommand( int index, int arg )
  { // ... get cmd from table; check if APP_CMD is needed, sends that if so.
    // calls sdSendCommandP(cmd,arg); }
 
static int sdSendCommandP( EMMCCommand* cmd, int arg )
  {
  // Clear interrupt flags.  This is done by setting the ones that are currently set.
  *EMMC_INTERRUPT = *EMMC_INTERRUPT;
 
  // Set the argument and the command code.
  // Some commands require a delay before reading the response.
  *EMMC_ARG1 = arg;
  *EMMC_CMDTM = cmd->code;
  if( cmd->delay ) waitMicro(cmd->delay);
 
  // Wait until command complete interrupt.
  if( (result = sdWaitForInterrupt(INT_CMD_DONE)) ) return result;
 
  // Get response from RESP0.
  int resp0 = *EMMC_RESP0;
 
  // Handle response types.
  switch( cmd->resp )
    {
    // No response.
    case RESP_NO:
 
  ...etc...
taken from http://www.raspberrypi.org/forums/viewtopic.php?f=72&t=59395, the guy who pasted this code explains that he could not enter SPI mode on his eMMC, but could send SD CMDs.
 

krisztian1997

Well-Known Member
Member
Joined
Dec 14, 2013
Messages
370
Trophies
0
Age
27
XP
300
Country
Romania
https://github.com/Nephiel/sdlocker-tiny

Maybe change the program inside and add the reset/clear commando.
Only don't know where connect the *CS signal.

To DAT3. Thx for that code, looking over it right now to see if we can use it with a normal sd card to test some stuffs.
EDIT: That code is an older version of SD lock 2, and only enables/disables write acces... so that is not what we want
 

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,565
Country
Chile

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • S @ salazarcosplay:
    hunter x hunter
  • S @ salazarcosplay:
    he has not allowed anyone to continue it for him for example
  • Xdqwerty @ Xdqwerty:
    @salazarcosplay, theres a dragon ball af mod for budokai 3
  • Xdqwerty @ Xdqwerty:
    updated ship of harkinian, gonna install some hd texture pack
  • Xdqwerty @ Xdqwerty:
    I might download rayman revolution for my ps3
  • BigOnYa @ BigOnYa:
    I may try the new ram site, and download more RAM to my Switch. Not sure if ddr3 is the right ram
    for it tho. Edit- no it uses floppy Ram, just like @AncientBoi
    +1
  • Xdqwerty @ Xdqwerty:
    aeiou
  • BigOnYa @ BigOnYa:
    And sometimes Z
  • SylverReZ @ SylverReZ:
    @K3Nv2, MAGA supporters be wearing tin foil hats lol.
    +1
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, whats maga?
  • BigOnYa @ BigOnYa:
    It stands for Maniacs Against General Acceptance
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, people rejecting general consensus about stuff?
    +1
  • BigOnYa @ BigOnYa:
    Yup, nuh its really just Trump followers
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, im not american so i dont care about trump
    +1
  • Xdqwerty @ Xdqwerty:
    or us elections
  • BigOnYa @ BigOnYa:
    Me niether, us north Koreans don't care
  • Xdqwerty @ Xdqwerty:
    good night
  • BakerMan @ BakerMan:
    i don't care either, even if i'm american
  • BakerMan @ BakerMan:
    truth be told, i agree with psi, i dislike both candidates, but i'd probably vote trump simply because the economy was better during his presidency
  • AngryCinnabon @ AngryCinnabon:
    Just be careful, if trump ends up winning and using project 2025 America might really change...for the worse.
  • AngryCinnabon @ AngryCinnabon:
    I'm not american and even that sends shivers down my spine.
  • AngryCinnabon @ AngryCinnabon:
    anything that offers trump an opportunity to become an actual dictator
    is bad in my book, i could care less if it wasn't for that...
  • K3Nv2 @ K3Nv2:
    Canada: America's Russia
  • NinStar @ NinStar:
    people are so dramatic that I can't even tell if they are being serious
    NinStar @ NinStar: people are so dramatic that I can't even tell if they are being serious