Hacking Wii U support in Dolphin

  • Thread starter Thread starter CarlKenner
  • Start date Start date
  • Views Views 258,829
  • Replies Replies 258
  • Likes Likes 25
As was pointed by others in this thread differences are not that big, GPU is different but CPU architecture is very similiar and can run wii software natively.


Are they Dolphin devs ? or dev of any other emulator?
At least 2 of the Main devs of Dolphin already said the difference is not that small and they are not interested.

Dolphin is open source, why don't you or those who said "the difference is not that big" just take the codes of Dolphin (Gui, CPU cores etc) and add in WiiU components to create a WiiU emulator?
Since WiiU is backward compatible with Wii (and they can always add in a Gamecube "module"); if they done it right, they can tell everybody to ditch Dolphin and you got your all-in-one emulator.
 
Are they Dolphin devs ? or dev of any other emulator?
At least 2 of the Main devs of Dolphin already said the difference is not that small and they are not interested.

Dolphin is open source, why don't you or those who said "the difference is not that big" just take the codes of Dolphin (Gui, CPU cores etc) and add in WiiU components to create a WiiU emulator?
Since WiiU is backward compatible with Wii (and they can always add in a Gamecube "module"); if they done it right, they can tell everybody to ditch Dolphin and you got your all-in-one emulator.

Why not make a fork of Dolphin, strip out old the Wii and Gamecube code, then put in Wii U support?
That way we don't have to clutter the main Dolphin .
 
All this talk about GUI... the world is crying out for a good, elegant frontend...!
 
Why not make a fork of Dolphin, strip out old the Wii and Gamecube code, then put in Wii U support?
That way we don't have to clutter the main Dolphin .

Why not make a fork of bsnes, take out all the SNES code, then put in Wii U support?

Point being, it's been said time and time again that just because the hardware architectures vaguely resemble each other doesn't mean you can use any of the old code. You should all read up on how modern emulation of systems works - it's actually quite abstracted from the hardware. Enough such it's actually worth making a brand new emulator from scratch, rather than taking a low-level approach like Dolphin uses.
 
  • Like
Reactions: Kargaroc
Why not make a fork of bsnes, take out all the SNES code, then put in Wii U support?

Point being, it's been said time and time again that just because the hardware architectures vaguely resemble each other doesn't mean you can use any of the old code. You should all read up on how modern emulation of systems works - it's actually quite abstracted from the hardware. Enough such it's actually worth making a brand new emulator from scratch, rather than taking a low-level approach like Dolphin uses.
To be honest I would prefer proper hardware emulation than ultra HLE approach it probably would be slower but less hacky and more accurate.
 
  • Like
Reactions: Margen67
Why not make a fork of bsnes, take out all the SNES code, then put in Wii U support?

Point being, it's been said time and time again that just because the hardware architectures vaguely resemble each other doesn't mean you can use any of the old code. You should all read up on how modern emulation of systems works - it's actually quite abstracted from the hardware. Enough such it's actually worth making a brand new emulator from scratch, rather than taking a low-level approach like Dolphin uses.

If it's that different, why did the Dolphin team add Wii support to their GameCube emulator rather than develop it?

Similar hardware lets you use it as a starting point.
 
If it's that different, why did the Dolphin team add Wii support to their GameCube emulator rather than develop it?

Similar hardware lets you use it as a starting point.


On the Gamecube, games accessed the hardware directly. Wii games did the same thing, and since the hardware remained mostly the same, it made sense to reuse Dolphin. There were no libraries to handle hardware access like there are now on the Wii U. On the Wii U, games don't talk directly to the hardware. They call functions in libraries which perform the hardware accesses. It's completely pointless to emulate all the hardware when you can just make the emulator translate Wii U library calls into accessing PC hardware.
 
On the Gamecube, games accessed the hardware directly. Wii games did the same thing, and since the hardware remained mostly the same, it made sense to reuse Dolphin. There were no libraries to handle hardware access like there are now on the Wii U. On the Wii U, games don't talk directly to the hardware. They call functions in libraries which perform the hardware accesses. It's completely pointless to emulate all the hardware when you can just make the emulator translate Wii U library calls into accessing PC hardware.

Very interesting. Thanks for the correction! Sorry for my incorrect statements then, I didn't know the Wii U worked differently. I'd just assumed an emulator would still be working at a hardware level and running software on top of it, like the Intel emulators for PowerPC Macs way back in the day.

I would imagine Wii U emulators could get better performance than Wii emulators, if it worked based on translating API calls instead of emulating the hardware all the way down, yes? But it seems like a lot of work to basically reverse engineer Nintendo's libraries.
 
Wow yeah, why hasn't anyone discussed HLE at all in this thread? There's totally no reason to go for brutally accurate emulation when we can get everything 99% working with a way lower requirement for hardware.
99% working with HLE without hardware emulation is very unlikely even current Dolphin isnt 99% compatible.
 
We would need to be able to decrypt Wii U game data in order to even think about emulating commercial games, even with an HLE solution, correct?
 
even if we can get Wii U games to start on dolphin, they will be unplayable for years to come, as the processor is roughly a 3 core Wii running at twice the clock speed. The problem is that currently, high end PCs struggle emulating some Wii games, yet alone any Wii U games.

Really? Wii Games run just fine on my System with i5-2300 (2.8GHz) and GTX 660 (using Dolphin 3). I mean sometimes my coolers become very loud, but I havent had any problems yet. Oh yes, Mario Kart Wii is just amazing with XBox360 Controllers xD
 
Really? Wii Games run just fine on my System with i5-2300 (2.8GHz) and GTX 660 (using Dolphin 3). I mean sometimes my coolers become very loud, but I havent had any problems yet. Oh yes, Mario Kart Wii is just amazing with XBox360 Controllers xD


You made an account just to flaunt your PC specs? :rolleyes:

Also, old thread.
 
Yes, this was back when everybody was in a craze when I was downloading and reuploading Wii U ISOs and this basically takes the encryption key given in the torrents (per disc basis) and decrypts the update data, the only thing it can decrypt (need the common key for anything else)
 
A good
I started adding Wii U support to the Dolphin emulator.
Currently it can recognize your Wii U games (in addition to your GameCube and Wii games) in either WUD or ISO format, recognize what region it is, what size it is, get the game ID, and most importantly read the file system and extract files for all partitions except the game partition. Also it lets you open RPX files, although they don't load correctly.
It can only find the partitions and read the file system for games where the title key has been released. Don't ask me how to rip your games from your WiiU, because I don't know, but some people seem to manage it.

Currently this is only useful for hackers who want to examine the update partition (I heard some exploit authors wanted binaries), or collectors who want to show off their list of games, or people who are curious what's on those discs, or people who want to work on emulating the Wii U.
IT DOES NOT PLAY WII U GAMES YET.

The source code is here on github (requires Visual Studio 2013, or if you are on linux you may need to modify the build system to include the extra files in the DiscIO module):
https://github.com/CarlKenner/dolphin/tree/WiiU

There is a bug with at least 3 of the file names on SM3DW, where the names are not read correctly, which I believe is caused by the filenames being split across the cluster boundary. Which means there is probably also a bug which corrupts some of the contents of other files where that happens. So don't rely on files being 100% accurate. The files whose formats I can understand, like app.xml or update.inf.USA, seem to be working perfectly (which is an especially good sign because those files are actually garbled when you decrypt the entire disc image with OpenSSL, at least on SM3DW).

I hope this will provide a starting point for other people who want to work on adding Wii U support to Dolphin. I believe the next step should be to try to get RPX files to load and to be viewable in Dolphin's debugger (use the command line option -d I think). Then we can work on getting simple hello world rpx files to work with high level emulation of SDK functions.

EDIT: I should point out that this is not in the official dolphin builds, just in my unofficial branch that I posted above.

EDIT: Screenshot
A good progress :)
 

Site & Scene News

Popular threads in this forum