Dragon Quest V - Hand of the Heavenly Bride (US)
during the gamepaly the background is black but you can see the speech bubbles
New Touch Party Game (EU)
the logo on the title screen is a brown rectangle
my graphics card is a Radeon HD 5670
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Need for Speed - Most Wanted (US)
on the car choice screen the rotating car is glitchy (missing polygons)
and during the race the road and background is glitchy aswell
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
That particular Nanostray 2 bug has been around since at least v0.9.5, and most likely even older than that. It has to do with the way OpenGL handles depth differently than SoftRasterizer. In this particular case, it works against OpenGL's favor.
The likelihood of this being fixed in the current OpenGL renderer is very low. This is because GPUs traditionally don't allow you to read and write the same fragment at the same time. But due to the way the NDS stores many attributes per fragment, of which depth is one of those attributes, emulating all of the fragment features requires read/write access on the same fragment.
Of course, we could try emulating fragments using persistent mapped SSBOs, which will allow read/write access per fragment. However, these features would take an OpenGL v4.4 compatible GPU and a huge amount of rework on the OpenGL renderer. Not a small undertaking by any means.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Another peculiar problem with OpenGL. Notice the rainbow is not as vibrant compared to Softrasterizer. It is as though there is a shade of black/some kind of filter is placed on top of the element. And the clouds too during the game.
I let you guys know since in this particular revision you are focusing on fixing the 3D renderer as well.
Pretty sure the latest Nvidia drivers from Fermi onwards support OpenGL 4.4 so not to worry much about the hardware the user have.
The rainbow and clouds in Pokemon Rangers: Guardian Signs show the blending differences between OpenGL and SoftRasterizer. After looking at some videos of this game, it seems like SoftRasterizer has the correct blending. Fixing blending in OpenGL will require further investigation.
As for the OpenGL 4.4 requirement: Not everyone has a Fermi-generation GPU. And even if everyone did have one, I mean it when I say that emulating fragments in OpenGL 4.4 to match what SoftRasterizer does is a very complex task. It will involve remaking big portions of how the OpenGL renderer works as a whole.
In short, doing complete fragment emulation in OpenGL would be extremely difficult and will not be addressed anytime soon, if ever.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yeah I know that to make OpenGL 4.4, you guys have to rewrote the whole coding and more lines of codes which makes it extremely complicated. I do understand your situation so no need to rush on this as this is just graphical glitch and will not cause any adverse effect on gameplay so nothing much to worry.
I posted the screenshot just to let you guys know so that it can be address in the future, hopefully I guess. Of course if you guys manage to make OpenGL 4.4 happen sooner the better perhaps.
Last edit: Josh 2015-07-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Okay, I remember now. The NDS uses a special blending condition: If the alpha value of the destination fragment is 0, then do not blend; instead, overwrite the destination fragment with the source fragment.
SoftRasterizer handles the special blending condition. However, OpenGL cannot due to the fact that we run into the same issue I've mentioned above: You have to both read and write the destination fragment at the same time in order to account for the special blending condition.
So yeah, it doesn't look like this issue will be fixed in OpenGL anytime soon.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is also a blending issue, but of a different variety. This time, it has to do with toon highlight blending. I've fixed the issue in [r5230].
Basically, I just made the OpenGL renderer do the same thing SoftRasterizer does, since SoftRasterizer seems to be doing toon highlight blending correctly. However, this claim is only going off of the Shadows of Almia logo in the title screen. I wish there were more test cases for toon highlight blending to help confirm that this is the correct way to do this. To note, GBATEK uses a different blend equation for toon highlight, which causes the Shadows of Almia logo to render incorrectly.
Dragon Quest V - Hand of the Heavenly Bride (US)
during the gamepaly the background is black but you can see the speech bubbles
New Touch Party Game (EU)
the logo on the title screen is a brown rectangle
my graphics card is a Radeon HD 5670
can you please be clear whether youve tested these in Opengl Old and whether the results are any different?
yea i did test them in bother OpenGL and the same result from old and 3.2
Resident Evil - Deadly Silence (US)
the characters are invisible
Need for Speed - Most Wanted (US)
on the car choice screen the rotating car is glitchy (missing polygons)
and during the race the road and background is glitchy aswell
Battles of Prince of Persia (US)(M6)
the map is missing part here and there
what catalyst driver.
windows or linux?
windows
SVN5189, Nanostray 2: on the main menu with OpenGL 3.2 the layer order on the game title is wrong, with softrasterizer is ok.
That particular Nanostray 2 bug has been around since at least v0.9.5, and most likely even older than that. It has to do with the way OpenGL handles depth differently than SoftRasterizer. In this particular case, it works against OpenGL's favor.
The likelihood of this being fixed in the current OpenGL renderer is very low. This is because GPUs traditionally don't allow you to read and write the same fragment at the same time. But due to the way the NDS stores many attributes per fragment, of which depth is one of those attributes, emulating all of the fragment features requires read/write access on the same fragment.
Of course, we could try emulating fragments using persistent mapped SSBOs, which will allow read/write access per fragment. However, these features would take an OpenGL v4.4 compatible GPU and a huge amount of rework on the OpenGL renderer. Not a small undertaking by any means.
View and moderate all "bugs Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Bugs"
Same goes with Pokemon Ranger
Last edit: Anonymous 2016-12-24
Another peculiar problem with OpenGL. Notice the rainbow is not as vibrant compared to Softrasterizer. It is as though there is a shade of black/some kind of filter is placed on top of the element. And the clouds too during the game.
I let you guys know since in this particular revision you are focusing on fixing the 3D renderer as well.
Pretty sure the latest Nvidia drivers from Fermi onwards support OpenGL 4.4 so not to worry much about the hardware the user have.
Last edit: Josh 2015-07-28
The rainbow and clouds in Pokemon Rangers: Guardian Signs show the blending differences between OpenGL and SoftRasterizer. After looking at some videos of this game, it seems like SoftRasterizer has the correct blending. Fixing blending in OpenGL will require further investigation.
As for the OpenGL 4.4 requirement: Not everyone has a Fermi-generation GPU. And even if everyone did have one, I mean it when I say that emulating fragments in OpenGL 4.4 to match what SoftRasterizer does is a very complex task. It will involve remaking big portions of how the OpenGL renderer works as a whole.
In short, doing complete fragment emulation in OpenGL would be extremely difficult and will not be addressed anytime soon, if ever.
Yeah I know that to make OpenGL 4.4, you guys have to rewrote the whole coding and more lines of codes which makes it extremely complicated. I do understand your situation so no need to rush on this as this is just graphical glitch and will not cause any adverse effect on gameplay so nothing much to worry.
I posted the screenshot just to let you guys know so that it can be address in the future, hopefully I guess. Of course if you guys manage to make OpenGL 4.4 happen sooner the better perhaps.
Last edit: Josh 2015-07-28
Okay, I remember now. The NDS uses a special blending condition: If the alpha value of the destination fragment is 0, then do not blend; instead, overwrite the destination fragment with the source fragment.
SoftRasterizer handles the special blending condition. However, OpenGL cannot due to the fact that we run into the same issue I've mentioned above: You have to both read and write the destination fragment at the same time in order to account for the special blending condition.
So yeah, it doesn't look like this issue will be fixed in OpenGL anytime soon.
Thanks for the update. Truly appreciate it.
The subtitle "Shadows of Almia" is displayed in red in OpenGL. Is it a blending issue as well?
This is also a blending issue, but of a different variety. This time, it has to do with toon highlight blending. I've fixed the issue in [r5230].
Basically, I just made the OpenGL renderer do the same thing SoftRasterizer does, since SoftRasterizer seems to be doing toon highlight blending correctly. However, this claim is only going off of the Shadows of Almia logo in the title screen. I wish there were more test cases for toon highlight blending to help confirm that this is the correct way to do this. To note, GBATEK uses a different blend equation for toon highlight, which causes the Shadows of Almia logo to render incorrectly.
Related
Commit: [r5230]
Maybe this can help you. I got this from the Drastic (NDS emu for Android) changelog.