Hacking Wii U support in Dolphin

  • Thread starter Thread starter CarlKenner
  • Start date Start date
  • Views Views 258,788
  • Replies Replies 258
  • Likes Likes 25
it's not like the wii u is similar to the wii, gamecube

it plays wii and gamecube games

álsó, ít hás ppc


No, the Wii U has 0 similarity with GameCube and Wii at a low level. It's more similar to an Xbox 360 than a Wii.

Reusing Dolphin's PPC JIT would make no sense since it's very rooted in kernel-land emulation with its constraints around exception handling. It's also built for single threading, and doing multithreaded recompilation and multithreaded execution in the current Dolphin JIT framework would require a rewrite of the whole thing. You'd either need a per-core JIT cache (which would blow up RAM usage and JIT compilation time) or a thread local ppcState object (which would require replacing some immediated with computed offsets, and make things slow too). Not to mention that none of this could be shared with the standard Dolphin JIT, requiring duplicating the whole codebase and never merging changes ever again (it's basically a hard fork).
 
No, the Wii U has 0 similarity with GameCube and Wii at a low level. It's more similar to an Xbox 360 than a Wii.

Reusing Dolphin's PPC JIT would make no sense since it's very rooted in kernel-land emulation with its constraints around exception handling. It's also built for single threading, and doing multithreaded recompilation and multithreaded execution in the current Dolphin JIT framework would require a rewrite of the whole thing. You'd either need a per-core JIT cache (which would blow up RAM usage and JIT compilation time) or a thread local ppcState object (which would require replacing some immediated with computed offsets, and make things slow too). Not to mention that none of this could be shared with the standard Dolphin JIT, requiring duplicating the whole codebase and never merging changes ever again (it's basically a hard fork).


Is that because Wii U inherits some "services" handled on a different CPU? Like 3DS does with kernelmode interrupts to external devices "queue" commands to different hardware, which are connected by ie: IO gpu ports.
 
No, the Wii U has 0 similarity with GameCube and Wii at a low level. It's more similar to an Xbox 360 than a Wii.

Reusing Dolphin's PPC JIT would make no sense since it's very rooted in kernel-land emulation with its constraints around exception handling. It's also built for single threading, and doing multithreaded recompilation and multithreaded execution in the current Dolphin JIT framework would require a rewrite of the whole thing. You'd either need a per-core JIT cache (which would blow up RAM usage and JIT compilation time) or a thread local ppcState object (which would require replacing some immediated with computed offsets, and make things slow too). Not to mention that none of this could be shared with the standard Dolphin JIT, requiring duplicating the whole codebase and never merging changes ever again (it's basically a hard fork).

some core don't emulated because os doesn't emulate?
sory, i'v very sleepy
 
No, the Wii U has 0 similarity with GameCube and Wii at a low level. It's more similar to an Xbox 360 than a Wii.
Couldn't be farther from the truth - the CPU belongs to the exact same family, it's an extension of the Gamecube and Wii's fork of PPC7xx and it contains all of the legacy elements from the Wii and the Gamecube, including MEM0 and MEM1, which is why it's capable of running Wii (and Gamecube, after some tinkering) software natively. If I remember correctly, marcan went as far as to say that it's "three Wii cores stuck together and clocked higher plus a new GPU". I am absolutely certain that you could appropriate Dolphin to run Wii U software.

BsfK1OW.png
 
Couldn't be farther from the truth - the CPU belongs to the exact same family, it's an extension of the Gamecube and Wii's fork of PPC7xx and it contains all of the legacy elements from the Wii and the Gamecube, including MEM0, which is why it's capable of running Wii (and Gamecube, after some tinkering) software natively. If I remember correctly, marcan went as far as to say that it's "three Wii cores stuck together and clocked higher plus a new GPU". I am absolutely certain that you could appropriate Dolphin to run Wii U software.


So I was right and it is a separate chip?
 
  • Like
Reactions: Deleted User
So I was right and it is a separate chip?
Not really, no. It's two separate pieces of silicon on the same chip.

7xNCpX7.jpg


De-packaged Espresso and Latte

DRdRKvk.jpg


De-packaged Broadway and Hollywood

As you can (blatantly) see, the differences here are in the lithography and the fact that the Espresso packs the GPU on the same piece of silicon rather than a separate chip - other than that, the technology used and the chips themselves are similar.

I'd like to add that both chips contain an ARM core - in the case of the Wii it's Starlet, situated on Hollywood, in the case of the Wii U it's Starbuck, situated in the Latte section.
 
As you can (blatantly) see, the differences here are in the lithography and the fact that the Espresso packs the GPU on the same piece of silicone rather than a separate chip - other than that, the technology used and the chips themselves are similar.
Tee hee. Fake boobs.
 
And here I was expecting Gahars to say that :D
*Insert pun about how fake boobs artificially improve breasts that are otherwise lacking in oomph, much like Nintendo's PPC7xx has an ARM component to deal with all the SIMD instructions the aged PPC design can't handle properly... which is a half-baked idea, but it works so who's complaining?* ;O;
EDIT: I stand corrected, the ARM core does exactly the same stuff it used to on the Wii. :P
 
*Insert pun about how fake boobs artificially improve breasts that are otherwise lacking in oomph, much like Nintendo's PPC7xx has an ARM component to deal with all the SIMD instructions the aged PPC design can't handle properly... which is a half-baked idea, but it works so who's complaining?* ;O;

Uh, the ARM isn't used for games at all, it's used for security and I/O.
 
  • Like
Reactions: filfat and Foxi4
Uh, the ARM isn't used for games at all, it's used for security and I/O.
I know that's the case on the Wii, but I was pretty sure it could also be used for some SIMD since the PPC isn't doing a terribly good job at it, however I can't quite recall where I've read that so I may be entirely off-base here. :P
 
I know that's the case on the Wii, but I was pretty sure it could also be used for some SIMD since the PPC isn't doing a terribly good job at it, however I can't quite recall where I've read that so I may be entirely off-base here. :P

The ARM has the same purpose on the Wii U. It even runs a rewritten IOS called IOSU.
 
  • Like
Reactions: Foxi4

Site & Scene News

Popular threads in this forum