Emulation [RELEASE] Cemu - Wii U emulator

  • Thread starter Exzap
  • Start date
  • Views 7,228,271
  • Replies 21,664
  • Likes 284

Exzap

Well-Known Member
OP
Member
Joined
Sep 19, 2015
Messages
154
Trophies
0
XP
1,570
Country
Netherlands
Just wonder which GL extension used for this type of rendering in AMD , or higher version of OpenGL may provide in Nvidia driver?
That's the problem, there is no OpenGL extension for this.

I am not sure if you care about the technical details, but in case you or anyone else is interested:
There is this rule in the specification when using multiple render targets/attachments.
OpenGL specification said:
If the attachment sizes are not all identical, the results of rendering are defined only within the largest area that can fit in all of the attachments. This area is defined as the intersection of rectangles having a lower left of (0;0) and an upper right of (width;height) for each attachment.
(OpenGL 4.5 spec, page 310)

What this means is that if you use a colorbuffer of size 1920x1080 and a depthbuffer of size 1000x1000 then any pixel drawn outside the smaller 1000x1000 rectangle will be discarded. However, AMD goes against the specification and allows to render pixels outside the smaller attachments. That's pretty much what happens in NSMBU/NSLU, where the coin is drawn outside the depthbuffer rectangle.

I actually emailed NVIDIA about this and from what I understand there are no plans to turn it into an extension, but there are workarounds (like rendering everything multiple times, once for each attachment individually or using tricks to simulate a larger depth buffer). All of the workarounds have major disadvantages, mostly reduced performance and being incredibly annoying to implement.

tl;dr; Rendering the coins in NSMBU is hard on NVIDIA/Intel.
 
Last edited by Exzap,

pol40

Well-Known Member
Member
Joined
Mar 3, 2015
Messages
321
Trophies
0
Age
44
XP
409
Country
Barbados
That's the problem, there is no OpenGL extension for this.

I am not sure if you care about the technical details, but in case you or anyone else is interested:
There is this rule in the specification when using multiple render targets/attachments.

(OpenGL 4.5 spec, page 310)

What this means is that if you use a colorbuffer of size 1920x1080 and a depthbuffer of size 1000x1000 then any pixel drawn outside the smaller 1000x1000 rectangle will be discarded. However, AMD goes against the specification and allows to render pixels outside the smaller attachments. That's pretty much what happens in NSMBU/NSLU, where the coin is drawn outside the depthbuffer rectangle.

I actually emailed NVIDIA about this and from what I understand there are no plans to turn it into an extension, but there are workarounds (like rendering everything multiple times, once for each attachment individually or using tricks to simulate a larger depth buffer). All of the workarounds have major disadvantages, mostly reduced performance and being incredibly annoying to implement.

tl;dr; Rendering the coins in NSMBU is hard on NVIDIA/Intel.

Could this be done in another API like Vulkan or DX11, DX12?
 

StripTheSoul

Well-Known Member
Member
Joined
Apr 3, 2016
Messages
400
Trophies
0
Age
40
XP
259
Country
Gambia, The
That's the problem, there is no OpenGL extension for this.

I am not sure if you care about the technical details, but in case you or anyone else is interested:
There is this rule in the specification when using multiple render targets/attachments.

(OpenGL 4.5 spec, page 310)

What this means is that if you use a colorbuffer of size 1920x1080 and a depthbuffer of size 1000x1000 then any pixel drawn outside the smaller 1000x1000 rectangle will be discarded. However, AMD goes against the specification and allows to render pixels outside the smaller attachments. That's pretty much what happens in NSMBU/NSLU, where the coin is drawn outside the depthbuffer rectangle.

I actually emailed NVIDIA about this and from what I understand there are no plans to turn it into an extension, but there are workarounds (like rendering everything multiple times, once for each attachment individually or using tricks to simulate a larger depth buffer). All of the workarounds have major disadvantages, mostly reduced performance and being incredibly annoying to implement.

tl;dr; Rendering the coins in NSMBU is hard on NVIDIA/Intel.

I remember Dolphin having the year-long issue that the coins were only rendered in super-low res (or maybe it was just native res, but looked pretty bad when everything else was at higher res) and not turning. Maybe it's the same underlying issue?
 

jacky400

Member
Newcomer
Joined
Mar 22, 2016
Messages
5
Trophies
0
Age
45
XP
59
Country
Hong Kong
That's the problem, there is no OpenGL extension for this.

I am not sure if you care about the technical details, but in case you or anyone else is interested:
There is this rule in the specification when using multiple render targets/attachments.

(OpenGL 4.5 spec, page 310)

What this means is that if you use a colorbuffer of size 1920x1080 and a depthbuffer of size 1000x1000 then any pixel drawn outside the smaller 1000x1000 rectangle will be discarded. However, AMD goes against the specification and allows to render pixels outside the smaller attachments. That's pretty much what happens in NSMBU/NSLU, where the coin is drawn outside the depthbuffer rectangle.

I actually emailed NVIDIA about this and from what I understand there are no plans to turn it into an extension, but there are workarounds (like rendering everything multiple times, once for each attachment individually or using tricks to simulate a larger depth buffer). All of the workarounds have major disadvantages, mostly reduced performance and being incredibly annoying to implement.

tl;dr; Rendering the coins in NSMBU is hard on NVIDIA/Intel.

Exzap, thanks for the explanation .I did hear similar issue in RPCS3 and PPSSPP previously and they are also using tricks to overcome .
 

StripTheSoul

Well-Known Member
Member
Joined
Apr 3, 2016
Messages
400
Trophies
0
Age
40
XP
259
Country
Gambia, The
Am I the only one getting way more stutters on this build?
You are probably getting the same amount of stuttering as last time you used a new Cemu version for the first time. If it's what I think it is (shader cache generation stuttering) they are probably generated anew with every new version.
Play the same track on MK8 twice and the second time around (or even on the second lap) should be much smoother.
But yeah, stuttering is very enjoyment-breaking, more so than minor glitches or pop-ups.
I do hope there will be some kind of solution to this like the Full Asynchronous Shader Cache Generation Dolphin-Ishiiruka offers.
 

CustomEyeBrows

Well-Known Member
Member
Joined
Apr 8, 2015
Messages
128
Trophies
0
Age
36
XP
143
Country
New Zealand
That's the problem, there is no OpenGL extension for this...

What this means is...

tl;dr; Rendering the coins in NSMBU is hard on NVIDIA/Intel.

Thanks for the Exzaplination...

As an nivida user, id take accuracy and performance over brute forced coins. And If im correct, collecting coins doesnt unlock anything, plus this isnt a Far Cry/AssCreed collectathon, so im not bothered. Peeps can always play NSMb wii on dolphin if it really bothers them, its the exact same game really.
 
Last edited by CustomEyeBrows,

Miguel Gomez

Well-Known Member
Member
Joined
Jan 10, 2016
Messages
2,867
Trophies
0
Age
25
Location
Planet Earth
XP
1,530
Country
Rendering the coins relies on AMD-specific behavior in the graphics driver (remember that Wii U's GPU is also from AMD)
Don't expect this issue to be fixed anytime soon on NVIDIA/Intel. It's a nightmare to work around.
Well. That explains alot. Thank you for your info. I didn't know that Nintendo uses AMD as a Processor for their console. :P
I hope that the NX will be Nvidia or so.
 
  • Like
Reactions: TotalInsanity4

aracom

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
476
Trophies
0
XP
363
Country
Gambia, The
Well. That explains alot. Thank you for your info. I didn't know that Nintendo uses AMD as a Processor for their console. :P
I hope that the NX will be Nvidia or so.
It doesn't, it's just easier to replicate on AMD.
Although you are talking about CPUs. Wii, Wii U and GameCube are using AMD GPUs.
 
Last edited by aracom,
  • Like
Reactions: TotalInsanity4

CustomEyeBrows

Well-Known Member
Member
Joined
Apr 8, 2015
Messages
128
Trophies
0
Age
36
XP
143
Country
New Zealand
It doesn't, it's just easier to replicate on AMD.
Although you are talking about CPUs. Wii, Wii U and GameCube are using AMD GPUs.

britney-confused-gif.gif
 

echdareez

Active Member
Newcomer
Joined
Apr 23, 2009
Messages
30
Trophies
0
XP
210
Country
Belgium
Hope I'm not hijacking this thread but I downloaded the 3 games I have on my WII U (Mario, Mario and more Mario ;) ) and 2 worked miraculously (Super Mario 3D World and Super Mario Maker / didn't expect an emu for a current gen console to work so well) and one didn't. The game that doesn't work is Super Mario Bros U -> the download I did, contained the files itself (instead of an "iso"). Any way to convert this as I have no option to run this from within CEMU (or so it seems)?

No problem though if this isn't possible - CEMU is incredible but I will still stick to my WII U for now :) That one has 100% emulation :D

thanks,
/dimi
 

Growlith1223

Well-Known Member
Member
Joined
Oct 15, 2015
Messages
297
Trophies
0
Age
27
XP
328
Country
United States
  • Like
Reactions: CustomEyeBrows

donkeyhigh

Well-Known Member
Member
Joined
Aug 24, 2014
Messages
190
Trophies
0
Age
38
Location
Levanger, Norway
XP
200
Country
Norway
Hope I'm not hijacking this thread but I downloaded the 3 games I have on my WII U (Mario, Mario and more Mario ;) ) and 2 worked miraculously (Super Mario 3D World and Super Mario Maker / didn't expect an emu for a current gen console to work so well) and one didn't. The game that doesn't work is Super Mario Bros U -> the download I did, contained the files itself (instead of an "iso"). Any way to convert this as I have no option to run this from within CEMU (or so it seems)?

No problem though if this isn't possible - CEMU is incredible but I will still stick to my WII U for now :) That one has 100% emulation :D

thanks,
/dimi
You will find the solution with a simple search in this thread.
 
  • Like
Reactions: echdareez

Miguel Gomez

Well-Known Member
Member
Joined
Jan 10, 2016
Messages
2,867
Trophies
0
Age
25
Location
Planet Earth
XP
1,530
Country
Dayum man! Look at the difference between 1.4.0c and 1.4.1!
Super Mario 3D World Final Boss
Edit: Honestly, the 1.4.0c render seems to look like Ōkami and Viewtiful Joe.
Too much Cel-Shading. XD
gXywBr9.jpg
 

Attachments

  • asdas.png
    asdas.png
    209.3 KB · Views: 308
Last edited by Miguel Gomez,
  • Like
Reactions: Growlith1223

Hamza_Farooq

Active Member
Newcomer
Joined
Feb 7, 2016
Messages
30
Trophies
0
Age
27
XP
84
Country
United States
Having Strange Issue with Mario kart 8. it hangs the emulator i cant even click it. Task manager shows not responding. It Worked in 1.4.0c. New Super Mario Bros. U and Shovel Knight Working fine with cemu 1.4.1 i am using AMD Driver 16.2.1 Beta Can't try 16.4.1 because AMD no Longer support my card.
MarioKart8.JPG
 
Last edited by Hamza_Farooq,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Sonic Angel Knight @ Sonic Angel Knight: No make a patty cake :blink: