Hacking UStealth - Wii U 'Format Disk' Nag workaround :)

  • Thread starter Thread starter jayjay123
  • Start date Start date
  • Views Views 432,160
  • Replies Replies 707
  • Likes Likes 45
The format doesn't matter, but what loaders are you using on the 3Tb?

Try installing HxD:
http://mh-nexus.de/en/downloads.php?product=HxD

Once installed, run it as administrator, then choose to open your disk (read only). Select the physical drive that corresponds with your 3Tb. Have a look at the end of sector 1 and see if you have this entry (55 AA):

hxd.png
 
I am trying to modify the source for several emulators (Wii64, snes9xgx, fceugx, vbagx, etc.) such that they will load roms and saves from a hidden USB HDD. However, I am having a hard time locating where in the source these check the Master Boot Record Signature. Does anyone know enough about these homebrews to point me in the right direction or know of a utility which would help me look for MBR signature comparisons?
 
I am trying to modify the source for several emulators (Wii64, snes9xgx, fceugx, vbagx, etc.) such that they will load roms and saves from a hidden USB HDD. However, I am having a hard time locating where in the source these check the Master Boot Record Signature. Does anyone know enough about these homebrews to point me in the right direction or know of a utility which would help me look for MBR signature comparisons?
The USB loaders we tackled were pretty easy - they actually had a string variable that referenced the MBR signature of "55AA" in the code. I'm quite sure not all software tackles it the same way. Try searching for 55 or AA for starters in the code.
 
I'm using the following USB Loaders:
- USB Loader GX 3.0 r1180
- USB Loader CFG v70r65
- Wii Flow 4.2.1

https://www.dropbox.com/s/is00rfewep9swya/Screenshot 2014-02-04 10.43.17.png

I have entry 55 AA at the end of sector 1.
Thanks for the feedback. Clearly there is another issue here. It seems like it's producing an error and just reporting 'unsupported'. I'd be happy to troubleshoot your system if you have the time? What I'd need is for you to install Visual Studio on your system if you don't already have it:
http://go.microsoft.com/?linkid=9709939
Then once that's done, download teamviewer QS if you don't already have that:
http://download.teamviewer.com/download/TeamViewerQS.exe

Once that's done we need to set up a time that's convenient for both of us for me to look at your system to see what it's up to.
Shout if that works for you.
 
I have Visual Studio 2010 and 2013 installed.
And I also have TeamViewer.
excellent, do you have a form of SVN installed? Tortoise perhaps?
http://tortoisesvn.net/
when would suit you? It's 7:30 at the moment where I am - I have another two to three hours. Let me know when suits you. If you like, you can either text me the user/pass for teamviewer or email it, I'll PM my email address
 
I used U_Stealth last night and it worked fine on the Wii U; however when tried to launch it again, it failed. I downloaded Visual Studio C# ( I use Python and C primarily, but know C#) , svn checked out your source code and debugged it. The error is a Null Reference error. I wrote a quick fix. This looks like it errors when an interface(in my case an SD card) does not have an interface name. Inserted screen capture. The error is in ToggleMain.cs and in the GetDriveList() Function call.

Error:
Null Reference Error.png


Fix:

fixedbug.png
 
  • Like
Reactions: Cyan
I debugged the code with my 3TB WD Elements
And the problem is that bufR[511] = 0
All elements in the bufR array are 0.
So I think the ReadBoot/ReadFile function isn't working for my 3TB WD Elements.
 
If I change this:
Code:
                byte[] buf = new byte[512];
                int read = 0;
                int moveToHigh;
                SetFilePointer(handleValue, offset, out moveToHigh, EMoveMethod.Begin);
                ReadFile(handleValue, buf, 512, out read, IntPtr.Zero);
to:
Code:
                byte[] buf = new byte[8192];
                int read = 0;
                int moveToHigh;
                SetFilePointer(handleValue, offset, out moveToHigh, EMoveMethod.Begin);
                ReadFile(handleValue, buf, 8192, out read, IntPtr.Zero);
It works.
 
The problem is that the 3TB drive has a physical sector size of 4096 (instead of 512).

You can get the sector size with:
Code:
mObj["BytesPerSector"]
 
Yes, it does also work with 4096 in stead of 8092.
But when i use a number lower than 4096, it doesn't work.
 
Yes, it does also work with 4096 in stead of 8092.
But when i use a number lower than 4096, it doesn't work.
Cool, and if having it too big doesn't actually cause any problems, am I right to assume that just leaving it at 4096 would even still work for older the 512 drives?
 
Yes, I tested the 4096 value with older drives and that also worked.
But you can get the sector size with:
Code:
mObj["BytesPerSector"]
So you have the sector size per drive.
 
This is great, thanks Rob and Onion_Knight for your input.
I'll update the source and post a compiled binary here... and of course add your names to the credits.
Really appreciate the effort!
 
*EDIT* Updated to R7 with support for newer drives with 4k blocks and fixed a bug in systems with SD card slots. Thanks to RobJanssen and Onion_Knight for their assistance. The compiled .exe can be downloaded using the link in the opening post.

RobJanssen and Onion_Knight, I'd appreciate if you could test the new compiled exe on your systems to confirm it's working, I'd appreciate it! Thanks!
 
*EDIT* Updated to R7 with support for newer drives with 4k blocks and fixed a bug in systems with SD card slots. Thanks to RobJanssen and Onion_Knight for their assistance. The compiled .exe can be downloaded using the link in the opening post.

RobJanssen and Onion_Knight, I'd appreciate if you could test the new compiled exe on your systems to confirm it's working, I'd appreciate it! Thanks!

tested with
windows Vista
windows 8.1
UStealth_R7 does not start
 

Site & Scene News

Popular threads in this forum