Hardware How I fixed 160-0103 system memory error

MikeyTaylorGaming

YouTube Glitcher
Member
Joined
Aug 11, 2007
Messages
1,754
Trophies
1
Location
North West England
Website
youtube.com
XP
1,560
Country
United Kingdom
I did just bump an old thread about this, just in case anyone is interested in helping the cause with this error, a chap named Voultar on twitter is investigating the issue and is looking for effected WiiU consoles to work on!

If there's a common fault that will effect a lot of consoles in the near future then it may be worth contributing to the cause.

You can find the tweet here
 
  • Like
Reactions: Jokey_Carrot

CrazySquid

Well-Known Member
Member
Joined
May 27, 2017
Messages
232
Trophies
0
XP
858
Country
I did just bump an old thread about this, just in case anyone is interested in helping the cause with this error, a chap named Voultar on twitter is investigating the issue and is looking for effected WiiU consoles to work on!

If there's a common fault that will effect a lot of consoles in the near future then it may be worth contributing to the cause.

You can find the tweet here

If the eMMC reached it's read/write limits... then there is nothing that can be done, only replacing the eMMC with another one, or with a SDCard (just like OP did).
Also, as consumer flash drives get older (for 2010s at least) then data retention starts to deteriorate if the chip is not powered on in a while (MLC), making the data corruption error to appear, that's why it's suggested to power up the console before a year passes since your last usage.
If data is corrupted, then it's fixeable via UPDIH, as long the IOSU is working (which usually should be, since it's on the SLC and not MLC, SLCs seems to be more durable).
 

ItalianGamer97

Member
Newcomer
Joined
May 2, 2018
Messages
24
Trophies
0
Age
26
XP
219
Country
United States
I haven't seen this error on my own Wii U yet, thankfully... Mine's a 32 GB Deluxe model that came from the "Mario & Luigi Deluxe Set" bundle that was bought on December 30th, 2013.

I've hacked my system with Tiramisu set to autoboot a good while back, and I now have two NAND backups on hand... One I made during the initial process of hacking my Wii U, and another one I just made earlier today after getting wind of this "Wii U NANDs are dying!" thing.

I deadass don't have the know-how to try OP's fix or even swap out the eMMC for another chip in the event my Wii U's NAND goes kaput, and trying to call Nintendo about the error when it happens might be a gamble, since they might've stopped offering free replacement systems at this point...

Gonna be running mdinfo on my end of things to see what brand of eMMC chip my Wii U's got installed, and I'll be crossing my fingers hoping that it's not a Hynix...

Update: Here's what mdinfo gave me regarding my Wii U's eMMC:

Code:
Manufacturer ID: 0x15
Product Revision: 0x00
Manufacturer: 'Samsung/SanDisk/LG'
Type: mmc
Name 0: 'unknown'
Name 1: 'MBG4GA'
Name 2: 'unknown'

So my system's eMMC seems to be a Samsung one... But why is the manufacturer tagged as "Samsung/SanDisk/LG"?

If y'all need the picture I took of my Wii U gamepad displaying the mdinfo screen to verify this, just say so and I'll toss it onto Imgur for easy viewing.
 
Last edited by ItalianGamer97,

michalt

Well-Known Member
Newcomer
Joined
Jun 28, 2020
Messages
87
Trophies
0
Age
55
XP
284
Country
Netherlands
I was wondering why we don't hear (at least I have not noticed) the same issue with Wii, which is older?
 

V10lator

Well-Known Member
Member
Joined
Apr 21, 2019
Messages
2,658
Trophies
1
Age
36
XP
5,598
Country
Germany
@michalt Probably cause the Wii uses expensive SLC (50,000 to 100,000 write cycles before failing) while Wii U uses cheap MLC (1,000 to 10,000 write cycles before failing).

Numbers are from https://en.m.wikipedia.org/wiki/Multi-level_cell

//EDIT: To be fair Wii U uses both, MLC and SLC, but so far all we see is MLC failing while SLC continues to work just fine.
 
Last edited by V10lator,

Patxinco

Riding a Shooting Star
Member
Joined
Apr 18, 2011
Messages
850
Trophies
1
XP
2,249
Country
Spain
Was trying to have a look with mdinfo, but i cannot make it work.
.rpx should be launched from environment or i'm missing something?
 

flowlapache

Well-Known Member
Member
Joined
Sep 7, 2010
Messages
245
Trophies
1
Age
38
Website
Visit site
XP
1,073
Country
France
whaou! Thanks to you all. I wasn't aware about this memory problem; so sad for the less sold nintendo console. I'll follow your recommandations and begin by move a max of thing from nand to usb.
And nowdays, is there something to backup the usb storage (or saves at least)?
 

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
38,471
Trophies
3
XP
29,138
Country
United States
whaou! Thanks to you all. I wasn't aware about this memory problem; so sad for the less sold nintendo console. I'll follow your recommandations and begin by move a max of thing from nand to usb.
And nowdays, is there something to backup the usb storage (or saves at least)?
dumpster or dumpling I suppose, to backup usb.
 
  • Like
Reactions: flowlapache

ItalianGamer97

Member
Newcomer
Joined
May 2, 2018
Messages
24
Trophies
0
Age
26
XP
219
Country
United States
Was trying to have a look with mdinfo, but i cannot make it work.
.rpx should be launched from environment or i'm missing something?

On my Tiramisu setup, I put the .rpx for mdinfo into an 'mdinfo' subfolder in the "wiiu\apps\" directory on my SD, and I was able to launch it via the Homebrew Launcher. You'll be able to exit from mdinfo's results screen by pressing the gamepad's Home button.

In short, the directory that I'd recommend putting the "mdinfo.rpx" file in should look something like this on your computer:
Code:
[Drive Letter of SD]:\wiiu\apps\mdinfo\
 
  • Like
Reactions: Patxinco

Patxinco

Riding a Shooting Star
Member
Joined
Apr 18, 2011
Messages
850
Trophies
1
XP
2,249
Country
Spain
On my Tiramisu setup, I put the .rpx for mdinfo into an 'mdinfo' subfolder in the "wiiu\apps\" directory on my SD, and I was able to launch it via the Homebrew Launcher. You'll be able to exit from mdinfo's results screen by pressing the gamepad's Home button.

In short, the directory that I'd recommend putting the "mdinfo.rpx" file in should look something like this on your computer:
Code:
[Drive Letter of SD]:\wiiu\apps\mdinfo\
Ok, that was easier than following instructions on the github, was totally lost. Seems i'm pretty safe being a Toshiba, no reports of failing have been made yet.
 

Attachments

  • IMG20230308213436.jpg
    IMG20230308213436.jpg
    4.6 MB · Views: 69
Last edited by Patxinco,
  • Like
Reactions: flowlapache

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,296
Trophies
0
Age
28
XP
1,403
Country
Germany
The way I read this is that you tried the 64 GB card one time only and that you did this at a time the 32 GB card also didn't work / showed the exact same errors.
Am I right with this and if so: Could you try to clone the 32 GB card to the 64 GB one and try this, please? From a technical standpoint the Wii U knows 2 MMC sizes: 8 GB and not 8 GB. All not 8 GB is expected to be 32 GB, so using a 64 GB card should work (but waste space).
After I flashed back the SLC and it began working again with the 32GB card, I put the 64GB card back and it still didn't work. When I looked at the logic analyzer I saw that the Wii U gave up after querying the status, it didn't even attempt a read from the SDXC card, so it doesn't matter what was on it.
The strange thing is, the SDXC card is working fine in the normal SD Slot of the Wii U, so the Cafe OS should be able to handle it.

Amazing work! Interesting that the Wii U doesn't like higher than 32GB SD Cards, maybe Cafe OS is hard limited to 32GB max, who knows.
I'm a bit worried because I have my Wii U since launch, so it's a 32GB launch unit, still works perfectly fine without a single issue, but I don't now how longer will the NAND work.
Also, I did read that you couldn't get better performance out of a faster SD Card? That's interesting, I remember when I was using redNAND with a high class SDCard, the Wii U Menu loading and the apps felt faster.

By the way, an eMMC is supposed to have a better read/write life cycle right than SDCards right? Although, I guess that after you do this mod, it will just be easier to replace a dying SDCard than a new dying eMMC (But the eMMC should last another 10 years I guess, it's probable that other Wii U component will begin to fail first).
Nintendo used different eMMC chios from different Vendors. My failed eMMC is a Hynix H26M64002BNR 228A.They probably had a bad batch or something together with the Cafe OS, wich seems to be write heavy (because it is also known for killing USB sticks) it was just a bad combination in my case. Also the Wii U was unused for many years. Flash can also loose it's content over time just sitting there.
I assume the reason I didn't see a performance difference is the SLC cache doing it's job. With redNAND you don't have the SLC cache.
I would also assume eMMC should be better in general. But here it seems to really be a bad batch of eMMC chips. Also a current SD card from a good brand should last for some time. I am using a Sandisk, but that's just my personal preference as I will never trust Samsung again with anything containing flash (They are also known for many eMMC bugs, like on the Galays S2 and S3 and Nexus 7 and also the 840 Evo (which I own one) has a few known problems). So it's Sandisk for me, never had problems with them. But I also had a HTC HD2, where I was running Android from an Samsung SD card for a long time. Back then I never had Problems with the SD card. But it is the same SD card I used for the comparison. When I made an Backup of the old card before overwriting it with the Wii U MLC I also saw some bit rod there (some blocks needed a few attemps, but it seems the controller was able to correct them finally). Or maybe the contacts where just oxidized and reinserting it a few time scratected them clean...
I'm quoating a post of mine from another thread, but I'm seeing some people are starting to have NAND corruption with the typical 160-0103 error, the article is from 2015, but it suggests that for older SSDs you should power it before a year passes since the last time you use your device, so I suggest everyone to power on their Wii Us every 8 months or so (whatever the time you want, just make sure isn't close to a year).
Yes, but it's not only affecting old SSDs. I would even assume old SLC SSDs are more robust. It is a general problem of flash and it only get's worse the finer the structures get and the more bits you have in a cell. Over time the electrons are migrating out of the Gate in the flash cell, The question is just how long it take till enough cells are corrupted so the ECC can't fix it. It also can happen to BIOS chips (butnot as often, as they are not pushing the limits) and SD cards, CF Cards and the SSD in your computer. Depending on how smart the controller is, it might not be doing a scrub on it's own and only detects errors when reading. I would add to your suggestion, that in addition to powering on it's also a good Idea to do a NAND backup, so every block gets read and the controller can detect the error, while it's still correctable.

I've heard multiple things:
- This information is pretty old and just now getting traction
- It only impacts Hynix emmc's
- Time isn't necessarily the issue since it has to do with the emmc's ability to write data to failed blocks

Would OP be willing to address those issues? Also are you planning on releasing a tutorial for replacing the emmc with an SD card? I could follow the picture, but I want to ensure I'm getting the correct connections and pinholes.
Yes in my case it was a Hynix.
I am not sure what caused my emmc to fail completely over time, if it was bitrod over time or if the cells died from too much writing, so it was running out of reserve blocks. Maybe it was also a combination of the two.
In this German Forum (you don't need to understand the text, just look at the pictures), where I first described the Problem the user nino postet a picture on how to connect the pins: https://forum.wii-homebrew.com/inde...nach-Speicherfehler/?postID=715489#post715489 I don't want to repost it because of copyright. The only thing I would different is cutting the clk trace between the pads and then tie the clk on the emmc side to GND. Also having the pad there gives you the chance to reconnect the emmc if you ever want to.

I was informed that this piece of homebrew should detect it without taking the console apart

https://github.com/GaryOderNichts/mdinfo
Good to know, I also only knew the method of looking at the size. I guess I have to see what this tool has to say about my SD Card.

Does it make sense to move all the games from NAND to external drive to protect the console in this context?
Maybe. From what I know the Wii U writes cheap usb sticks to death when launching games from them. So that would indicate that you would move wear from the eMMC to the USB device. It would be interesting to see what is causing the writes. Maybe someone who knows more about the Firmware could insert some debug code to log all writes to serial or something like that.

@michalt We don't know the internal details of the Wii Us implementation so this is guesswork but yes.
Keeping your NAND as free as possible means more free cells which translates to better wear leveling. Also you will reduce writes (save files and stuff) as these files will move with the game.
When I scrolled through my NAND dump in a hex editor, it doesn't seem like the Wii U is discarding unsued blocks. So from the perspective of the eMMC everything, except some blocks at the end are used. But it was really just a very quick look and I was mostly interested in the part, that didn't fit on the SD card.
Maybe I will take a look again, but not today.
If the eMMC reached it's read/write limits... then there is nothing that can be done, only replacing the eMMC with another one, or with a SDCard (just like OP did).
Also, as consumer flash drives get older (for 2010s at least) then data retention starts to deteriorate if the chip is not powered on in a while (MLC), making the data corruption error to appear, that's why it's suggested to power up the console before a year passes since your last usage.
If data is corrupted, then it's fixeable via UPDIH, as long the IOSU is working (which usually should be, since it's on the SLC and not MLC, SLCs seems to be more durable).
To add a little to your answer: it seemed that in my case the FTL got corrupted and running the discard allowed the eMMC to clear and rebuild the FTL. Also it could be possible that the eMMC is returning I/O errors if it is degraded to much. Mine didn't (but it should have instead of returning random data). When you rewrite the eMMC the I/O errors are gone, which might help IOSU not crashing (but it also could make it worse).

I also saw a few videos from Voultar, maybe I should try to contact him.


whaou! Thanks to you all. I wasn't aware about this memory problem; so sad for the less sold nintendo console. I'll follow your recommandations and begin by move a max of thing from nand to usb.
And nowdays, is there something to backup the usb storage (or saves at least)?
I just use dd for my USB stick. But that would also save the unused space, which isn't much in my case. Together with the otp.bin and the seeprom.bin you can also extract it in the PC and copy it back over FTPiiU (but it takes a long time). I had to do this, because I did a Factory Reset at some point, which changed the USB key in the seeprom and I am to afraid of bricking to write the old seeprom back.

I now bought a broken Wii U from ebay. The seller said it just died, which also seems to be a common problem. Maybe I can figure something out. May 'hopeÄ is that it is also the MLC, but I think thats unlikely.
 
Last edited by SDIO,

michalt

Well-Known Member
Newcomer
Joined
Jun 28, 2020
Messages
87
Trophies
0
Age
55
XP
284
Country
Netherlands
I have just checked, but it seems im unlucky :( Anyway, I have moved my last game to USB, so no games on NAND. Hopefully, the future will bring more answers/solutions.
IMG_8498.JPG

Post automatically merged:

I have created an GitHub issue, but has anybody experienced that all slots (wiiU games) are marked as empty?

UPDATE: solved ;-) it just means I can use 256 slots to do backups ;-)
 
Last edited by michalt,
  • Like
Reactions: flowlapache

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,296
Trophies
0
Age
28
XP
1,403
Country
Germany
The CID of my bad eMMC is 0x90014A48594E4958205C003517057F71
0x90 is the Manufacturer and 0x5C the revision. Just like yours @michalt.
The date is 0x7F. So July 2012. 7th month an the year is 1997+15 (0xF)

It would be helpful if this mdifo tool would also print the manufacturing date. Maybe I will do a pull request on the weekend.
 
  • Like
Reactions: michalt

michalt

Well-Known Member
Newcomer
Joined
Jun 28, 2020
Messages
87
Trophies
0
Age
55
XP
284
Country
Netherlands
The CID of my bad eMMC is 0x90014A48594E4958205C003517057F71
0x90 is the Manufacturer and 0x5C the revision. Just like yours @michalt.
The date is 0x7F. So July 2012. 7th month an the year is 1997+15 (0xF)

It would be helpful if this mdifo tool would also print the manufacturing date. Maybe I will do a pull request on the weekend.
I agree, it would be useful for further analysis. My console is a Mario Kart 8/Splatoon bundle from the end of 2015.
 

SDIO

Well-Known Member
OP
Member
Joined
Feb 13, 2023
Messages
2,296
Trophies
0
Age
28
XP
1,403
Country
Germany
@michalt Here it says, hat it should be able to display the CID: https://github.com/GaryOderNichts/mdinfo
I can't try it mayself at the moment. Can you check if there is any option to display the CID? Then we could get the date from there.
Make sure to use the lates version from his github.

EDIT: I just saw he added the display CID after the release he has there. So we would need to build it from source if no one else has.
 
  • Like
Reactions: michalt

michalt

Well-Known Member
Newcomer
Joined
Jun 28, 2020
Messages
87
Trophies
0
Age
55
XP
284
Country
Netherlands
@michalt Here it says, hat it should be able to display the CID: https://github.com/GaryOderNichts/mdinfo
I can't try it mayself at the moment. Can you check if there is any option to display the CID? Then we could get the date from there.
Make sure to use the lates version from his github.

EDIT: I just saw he added the display CID after the release he has there. So we would need to build it from source if no one else has.
I have just checked (Im using the latest available version) and cannot display CID; I don't know how to build it from the source :(
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: https://youtu.be/qPyo4Z5fFqU?si=qWH13C1sbnF35lvm