Wii U Error 160-0103 HYNIX eMMC Production 2015

Started by tzirf, Jan 30, 2024, 07:26 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

tzirf

Another day, another Wii U with the dreaded error 160-0103:
Error.JPG

Today is also the day we find out that the defective Hynix chips may not all be from the early production models of the Wii U. Have a look at the following picture.
System Info.JPG


Notice anything? The ports on the back are black, meaning this console is not an early production model. So when I powered it on to be greeted with Error 160-0103. I was excited to get into system information and see if this was a Toshiba or Samsung eMMC. To my surprise it is a Hynix revision 0x5c(5.12) eMMC from manufacturing date of 4/25/2015. Way outside the scope of the models thought to be effected by these bad eMMC. This is the first console like this I have seen. So lets dive in and see what is happening.

Edit: An individual who goes by janhofmeier9427 on youtube let me know that the CID of the Hynix chip shows that it was manufactured in September 2013. Which begs the question how it ended up in a Wii U that was manufactured in 2015. My theory is that this may have something to do with the poor sales of the Wii U and perhaps Nintendo overproduced the console in the beginning and had these sitting in a warehouse being unsold for years. We know they bundled these consoles later in the Wii U life in order to sell them and at that time they admitted the consoles were not moving off shelves to consumers.

tzirf

I dumped the logs from the console and we have the the following throughout the log files: 
00:00:16:365: FSA: ### DATA CORRUPTION ERROR ###, dev:mlc01, err:-1245211, cmd:11, path:(null)
00:00:16:432: FSA: ### DATA CORRUPTION ERROR ###, dev:mlc01, err:-1245211, cmd:11, path:(null)
00:00:16:515: FSA: ### DATA CORRUPTION ERROR ###, dev:mlc01, err:-1245211, cmd:11, path:(null)
00:00:16:582: FSA: ### DATA CORRUPTION ERROR ###, dev:mlc01, err:-1245211, cmd:11, path:(null)
00:00:16:643: FSA: ### DATA CORRUPTION ERROR ###, dev:mlc01, err:-1245211, cmd:11, path:(null)
00;00;16;523: FS: READ_FILE upid:[ 2] sts:[DATA_CORRUPTED] hnd:[0x3b9056c] dst:[0x3dd576c0] size:[1] cnt:[1048576] pos: 00;00;16;523: SystemFatal(core1)

Not a full indication that the eMMC is failing or has failed. However it does show us that there is data corruption, which can be caused by a failing eMMC. This data corruption can also be caused by pulling the power during a software/firmware update. Full logs attached to this post. 




tzirf

#2
I made a video of the full process which you can view below, for those who don't prefer watching a video, you can continue reading to find out more. 

I chose to approach this console differently. I found it interesting that a Hynix chip from 2015 was showing signs of failure. This is uncommon. I have not seen this and I couldn't find anyone else online that has reported it albeit with limited resources because there is no database online of repaired consoles that I am aware of.

This particular console on the MLC Check came back with 93 errors:
MLC Check.JPG 

I chose to load the recovery menu, and then load minute where I installed ISFShax. After that I did the necessary backups, then I erased the MLC and rebuilt it. The rebuilding process went without a hitch, it was a blue light and finished in about 6 minutes.

I boot up the console and it loads into the Wii U menu. I did the initial setup and immediately inserted Hyrule Warriors and began the update download/install:
Installing.JPG
UpdateWorks.JPG

Hyrule  Warriors loaded after the install was successful. I believe this consoles issue was limited to corrupt data and the MLC is fully functional. I will do further testing to verify this and post back.


   

 

   



tzirf

#3
I completed additional testing of the console. Installed half a dozen titles successfully. Then checked the MLC using the recovery menu. No errors were found and nearly the entire 32GB of space was filled with data.  After that I reset the console to factory settings and set it up a second time and it was also successful. The reason this is important is because a factory reset will hang if there is corrupt data.

I believe this console is fully functional and the corrupt data on it was caused from loss of power during an update. So we have another Wii U that is functioning to add to the list. 


SDIO

Do you have a full log from the MLC checker? 92 Errors sounds unlikely to be caused by a power outage.
This works, even if it is full of MEDIA ERRORs, but it is only a temporary. The problem with these eMMCs isn't that they go irreversible bad, but that the charge and wth that the data leaks out faster than usual. The problem will probably reoccur after you leave it off for a few years.
I deliberately didn't talk much about that temporary solution, to prevent resellers buying these consoles with that errors and giving them this lazy fix, which will blow up in the buyers face after a few years. I was even hesitant to implement the erase eMMC function for that reason.

tzirf

#5
Quote from: SDIO on Feb 12, 2024, 08:11 PMDo you have a full log from the MLC checker? 92 Errors sounds unlikely to be caused by a power outage.
This works, even if it is full of MEDIA ERRORs, but it is only a temporary. The problem with these eMMCs isn't that they go irreversible bad, but that the charge and wth that the data leaks out faster than usual. The problem will probably reoccur after you leave it off for a few years.
I deliberately didn't talk much about that temporary solution, to prevent resellers buying these consoles with that errors and giving them this lazy fix, which will blow up in the buyers face after a few years. I was even hesitant to implement the erase eMMC function for that reason.

I agree with your stance on resellers. I still have the console. Actually I have all the consoles I have repaired and the only ones I would be willing to sell or give to someone are the ones I know for certain have been repaired. Part of the fun for me is testing these ones where I was able to rebuild the MLC and they appear to work. My concern is will they work a few months or a year down the road. So my intention is to let them sit until then and retest. If you have a method that can determine if the eMMC is indeed bad, I am all for it. I would prefer to fix these consoles permanently so someone can enjoy them.

As for the MLC Checker Log, Yes this is the log:
ReadFile;/vol/storage_mlc01/sys/title/00050010/10040100/content/Common/Package/Set2.pack;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050010/10040100/content/Common/Sound/Men/stream/BGM_SET_ACS.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10040100/content/Us/Model/AccountTvCap_Us.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10040100/content/Us/Model/ConfigTvCap_Us.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10040100/meta/bootTvTex.tga;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050010/10044100/content/lang_01.bin;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10044100/content/lang_02.bin;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10044100/content/lang_03.bin;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10048100/code/pcl.rpx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10048100/content/Common/Package/Pcl.pack;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10048100/content/Common/Sound/Pcl/stream/BGM_PCL.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10048100/content/UsPortuguese/Message/AllMessage.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10048100/meta/bootDrcTex.tga;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10048100/meta/bootTvTex.tga;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10049100/code/acs.rpx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10049100/code/title.fst;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10049100/content/Common/Package/Acs.pack;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10049100/content/Common/Sound/Acs/cafe_barista_acs.bfsar;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10049100/content/Us/Model/AccountTvCap_Us.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10049100/meta/bootMovie.h264;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10049100/meta/iconTex.tga;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004a100/content/arclayout/layout.sgarc.cmp;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004a100/content/sound/stream/BGM_STR_BARISTA_ACS_SUGAR_TV.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004a100/content/sound/stream/BGM_STR_BOOT_DRC.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004a100/content/sound/stream/BGM_STR_BOOT_TV.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004a100/content/sound/stream/BGM_STR_MII_EDIT_ORCH_DRC.dspadpcm.bfstm;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004a100/content/sound/stream/BGM_STR_MII_EDIT_ORCH_TV.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004b100/code/libwkc.rpl;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004b100/content/preload.oma;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004b100/content/sound/stream/BGM_ACCOUNT_MAIN_TV.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004b100/meta/bootTvTex.tga;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004c100/content/Common/Package/Ply.pack;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004d100/code/inf.rpx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004d100/content/Common/Package/Inf.pack;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1004d100/content/Common/Sound/Inf/stream/BGM_INF.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/code/doors.rpx;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/content/art/Audio/stream/DOORS_GOODBYE_TV.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/content/art/Audio/stream/DOORS_LOBBY_DRC.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/content/art/Audio/stream/DOORS_LOBBY_TV.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/content/art/FE/FEGroupBoot_res.data;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/content/art/FE/FEGroupMainUI_res.data;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/content/art/global.data;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/content/materials/material_new.data;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/1005a100/meta/bootTvTex.tga;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/audio/stream/BGM_WAGONU_MENU.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/audio/stream/BGM_WAGONU_MOVING.aac;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/piki/RoboGM.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/piki/RoboOM.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/piki/RoboPM.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/piki/RoboRM.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WagonMap2.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WiiBg08.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WiiBg10.szs;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WiiBg21.szs;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WiiBgGoal.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WiiBgStart.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WiiUBg00.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/content/Common/lodging/convert_test/WagonMap2/WiiUBg01.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/meta/bootTvTex.tga;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050010/10062100/meta/meta.xml;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/DE/large/njubase3.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/EN/njubase2.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/EN/njubase3.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/ES/ES/njubase3.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/FR/CA/regular/njubase1.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/FR/FR/large/njubase3.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/IT/IT/njubase3.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/NL/NL/njubase3.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/0005001b/1004f000/content/00/Common/Iwnn/dic/PT/BR/large/njubase3.a;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001310a/content/fonts/bffnt/CafeStd_25.bffnt;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001310a/content/layouts/week_USFr.gfx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001310a/content/layouts/week_USPo.gfx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001310a/content/memo/memo.arc;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001410a/code/wave.rpx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001410a/content/sound/stream/BGM_WOOD_SETTING.dspadpcm.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001410a/content/sound/wiiu_sounddata.bfsar;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/code/frd.rpx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/content/Common/Package/Frd.pack;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/content/Common/Package/Frd2.pack;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/content/Common/Sound/Frd/cafe_barista_frd.bfsar;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/content/Common/Sound/Frd/stream/BGM_FRD.bfstm;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/content/UsEnglish/Message/AllMessage.szs;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/meta/bootMovie.h264;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001510a/meta/bootTvTex.tga;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001610a/code/libcairo.rpl;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001610a/code/libcurl.rpl;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001610a/code/libwkc.rpl;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001610a/content/memo/memo.arc;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001610a/content/sound/wiiu_sounddata.bfsar;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/10017109/code/recipe.rpx;-00030041
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001910a/code/miiverse_post.rpx;-0003001B
ReadFile;/vol/storage_mlc01/sys/title/00050030/1001910a/content/memo/memo.arc;-00030041
finished;/vol/storage_mlc01;-0000005C

SDIO

-30041 is MEDIA ERROR
-3001B is DATA CORRUPTION ERROR

you have lots of 30041, so bad eMMC for sure. The 3001B might be the result of the corruption becomming so bad that the ECC in the eMMC couldn't even detect the errors anymore, or the eMMC just returned bad data (I noticed that happening on single block reads, on multiblock it would fail because of ECC errors, but on single block it would still return something)

tzirf

#7
Oh so that is how you can tell from these logs. That is good information to have. Thank you for sharing that. Well then I have another console that needs a NAND-AID. On the other hand I have another console that I can check the MLC Checker logs to see if it also has a bad eMMC as well.  


tzirf

#9
I disassembled the Wii U today and started the installation of the NAND-AID. This Wii U uses a system board that has noticeable differences than the boards I am used to seeing as almost all of these I have repaired were manufactured in 2012. This is the first one I have repaired that was manufactured in 2015.

IMG_8090.JPG
IMG_8095.JPG

Notice that the Hynix chip has a completely different silk screen print on it to identify the chip. It says SKhynix, not Hynix like all the other ones I have worked on. This isn't important, I just find it interesting and its something I would expect as manufacturing electronics changes over time and this console was made 3 years into the Wii U life cycle. That being said I was told that the CID of this Hynix chip shows that it was manufactured in 2012. If anyone knows how to read the CID to get the manufacturers date, please make a post. I have been trying to figure that out so that I can include the date the eMMC was manufactured as its different than the console manufacture date. 

 

tzirf

#10
Quote from: SDIO on Feb 13, 2024, 04:04 PMThe errors are all listed in decaf: https://github.com/decaf-emu/decaf-emu/blob/6feb1be1db3938e6da2d4a65fc0a7a8599fc8dd6/src/libdecaf/src/ios/fs/ios_fs_enum.h#L152

btw it seems like my posts aren't publicly visible

Thanks for the resource. I have never heard of Decaf. Also what do you mean your posts aren't publicly visible? Are you talking about on this forum? All posts on this forum are public. No account is required to view posts.

SDIO

Quote from: tzirf203 on Feb 13, 2024, 04:24 PMAlso what do you mean your posts aren't publicly visible? Are you talking about on this forum?
Oh lol, forget that, I was looking at the wrong thread, where I just saw you quoting me but not my posts. My mistake.

The Board you are looking at is probably a WUP-50 (or at least so WUP-30 or WUP-20), it should say so on the board. The First revision from 2012 is WUP-01 and that is by far the most common one. WUP-50 also has the newer B1X SoC, which needs less power. Would be worth saving in any case as they are much rarer then the WUP-01.

Also the eMMC is from 2013 not 2012, I mistyped yesterday on youtube.

tzirf

Oh it was you on youtube that commented that. How do you decode the CID? is there a formula or I am just overlooking the date code hidden in it?

SDIO

I commented it on the video:
Quotethe third digit from the right is the (year-1997)%16 (16 because its one hex digit). So 2012 is F and 2013 is 0. The forth digit from the right is the month.

Or what the eMMC spec says:
QuoteMDT [15:8]
The manufacturing date, MDT, is composed of two hexadecimal digits, four bits each, representing a two
digits date code m/y; The "m" field, most significant nibble, is the month code. 1 = January. The "y"
field, least significant nibble, is the year code. 0 = 1997. As an example, the binary value of the MDT
field for production date "April 2000" will be: 0100 0011
For e•MMC 4.41 and later devices, indicated by a value larger than 4 in EXT_CSD_REV [192], the 4-bit
"y" field shall roll over after 2012, so that y=0 shall be used for 2013. See Table 61a for a list of valid y
values for specific e•MMC versions.

Here is how WiiUIdent calculates it: https://github.com/GaryOderNichts/WiiUIdent/commit/a2f6893cc04cee9b4398252fea4d5366521b4850

tzirf

#14
Got the NAND-AID installed on this console.
IMG_8093.JPG

Ran into an interesting problem where the console would detect the Micro SD Card during the rebuilt process inside the minute menu, however after I setup the console in the Wii U menu and powered it down to reassemble it I ran into an issue. The MLC seemed to disappear from the minute menu and it would throw an error saying it couldn't power it on and also it was unable to detect it if I went into backup and restore and tried to erase the MLC.

The only difference during the setup and after it was that I installed the screws that hold the metal shield in place. I assumed something must have shorted out the NAND-AID and thus it was unable to detect the SD Card installed in it. There is a metal shield that covers the entire Wii U board, and there is a leg that touches the Wii U board that is very close to the NAND-AID installation site, specifically where the copper wire runs for the 3V. So as a precaution I put some kapton tape over this section. However the 32GB SD card I had used still wasn't detected. After an hour of fussing around with it I decided to replace it with a 64GB SD Card. That card immediately showed up in minute and I was able to erase it as well. I think what happen is there was a short and that short damaged the 32GB SD Card. I am unable to format the original 32GB card using a computer. So as a precaution it might be a good idea for everyone installing NAND-AID to insulate them using Kapton tape. it doesn't hurt anything and its high temperature tape so it won't fall off from the heat the Wii U generates.

It may not be necessary on all Wii U consoles. It seems these later models had a major change to where that metal shield leg touched the board. The earlier boards had a large ground pad where the leg touched the board. The later versions of the console this is removed and the leg touches the PCB directly. See picture below for comparison and differences...
EditBoardComp.jpg

Also here is another picture showing the metal shield installed with the leg I am talking about. The console is this picture is 2015 model. This is also where I placed the Kapton tape. Right behind the connector where the ribbon cable for the disc drive connects to the board.
IMG_8098.JPG

Now before anyone says it. The picture I took of the NAND-AID installed was before I moved the 3V copper cable up on the eMMC. I did try moving the 3V cable around after I noticed the issue and it didn't seem to make a difference. Furthermore I made sure the metal shield wasn't sitting on or touching that wire. However after I put a piece of Kapton tape over this area the console is working fully assembled, so I am not going to fight it or do any further investigation.