wfs-extract "Error: Incorrect WFS version, possible wrong keys"

  • Thread starter Thread starter lvlsun
  • Start date Start date
  • Views Views 507
  • Replies Replies 4

lvlsun

New Member
Newbie
Joined
Sep 6, 2025
Messages
3
Reaction score
0
Trophies
0
XP
19
Country
Australia
Hi, I've recently modded my WiiU and am trying to recover save data for a game after I accidentally deleted it :( I found a post titled "How do I restore save files from my mlc.bin" in this forum (can't add the link due to my status) and have been following it. These are the steps I took:

I'm on an M2 Mac so created the mlc.bin file using cat mlc.bin.part01 mlc.bin.part02 ... > mlc.bin. I then moved that file and the otp.bin file into the same folder as wfs-extract (v1.2.3 arm64) and ran ./wfs-extract --input mlc.bin --output dump_dir --type mlc --otp otp.bin. Unfortunately after running this I get the error: Error: Incorrect WFS version, possible wrong keys

Any ideas what the issue may be and steps on how to resolve it? Thanks in advance!

Edit: Also realised I forgot to tag this under 'Hacking' sorry, not sure how to update it.
 
That's likely because of the scfm. You could setup a redNAND from the backup (slc + mlc) and boot that. But that's quite some effort.
 
  • Like
Reactions: lvlsun
Thanks for the info!

I do have a PC, just don't have access to it at the moment. Do you think attempting the same process on there would work? Or will it always need the scfm/redNAND setup?

If so, is there another way you could think of to access the save data that wouldn't be too complicated?
 
A PC won't change the fact that some critical data of the file system are on likely still on the scfm.
For redNAND you need to create two addition partitions on the SD: One With the linux type (0x80) and exactly 60948480 sectors and a 1048576 sector one with type FAT16 (0x0E).

Then you would dd the mlc to the type 0x80 partition and the slc with the spare data stripped to the FAT16 partition.

to strip the spare data from the slc, you can use this python code:
Python:
PAGE_SZ_PLUS_RAS = 2112
PAGE_SZ = 2048
with open("SLC.RAW","rb") as inf:
    with open("striped.bin","wb") as outf:
        for page in iter(lambda: inf.read(PAGE_SZ_PLUS_RAS), b''):
            assert(len(page) == PAGE_SZ_PLUS_RAS)
            outf.write(page[:PAGE_SZ])


And then use this rednand.ini:
INI:
[partitions]
slccmpt=false
slc=true
mlc=true

[scfm]
disable=false
allow_sys=false

[disable_encryption]
mlc=false

[sys_mount]
mlc=false
 
I figured as much :(

Thanks for the details on setting up the redNAND though! I may attempt it later when I've got more time.
 

Site & Scene News

Popular threads in this forum