Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evolution - The World of Sacred Device (UK/PAL) - Graphics bugs #92

Closed
inactive123 opened this issue Jul 1, 2018 · 11 comments
Closed

Comments

@inactive123
Copy link

inactive123 commented Jul 1, 2018

Unlike the US version, the UK version actually boots up.

@flyinghead These are some long standing graphics bugs with this game that have not been fixed before in Reicast. This is directly after starting a new game.

image

You see certain tiles here color cycling. This should not be happening. What it should look like instead can be seen in this video (captured from a real Dreamcast) -

https://www.youtube.com/watch?v=z5cNCMVcc30

@inactive123
Copy link
Author

inactive123 commented Jul 1, 2018

This issue might shed some more light on the issue -

skmp#56

@flyinghead Could this be fixed with your flat shading branch?

Mr.Psyman says -

It's a funky color scheme.

Flat polys use 1 vertex for color. That's what dknute once told me. For some reason I never looked at it.
Apparently, we treat them the same as gouraud polys.

inactive123 referenced this issue in flyinghead/flycast Jul 1, 2018
@flyinghead
Copy link

Looks like a good candidate. Let me check.

@inactive123
Copy link
Author

Yup, the flat shading branch fixes this -

image

@flyinghead
Copy link

And it works
evolution - flat shading

@inactive123
Copy link
Author

inactive123 commented Jul 1, 2018

Hah, both posted at the same time heh.

OK, I will backport this commit for OIT. Try to make an implementation for non-OIT as well.

@flyinghead
Copy link

Apparently the support for flat shading requires OpenGL/GLES 3.0.

@inactive123
Copy link
Author

Ah, can we put it around ifndef GLES conditionals for now then in the non OIT renderer? That way at least desktop users can still enjoy it. glProvokeVertex is GL 3.2 though. How about adding a setting for correct handling of flat shading that will require GL 3.2, and if the setting is not enabled, we dont default to this superset?

@flyinghead
Copy link

I just pushed a commit on my master branch with flat shading between #ifdef GLES
I didn't backport glProvokeVertex since GL_LAST_VERTEX_CONVENTION is the default so it shouldn't be needed.

@flyinghead
Copy link

In the non-OIT branch there are still some weird colored polygons at the back of the scene. Not sure what they are but I assume it's a transparent sorting issue.

@inactive123
Copy link
Author

Yeah, at a certain point, the current buggy sorting modes in non-OIT might need a rewrite. Space Channel 5 Part 2 for instance is one of the games that exhibits the most serious graphical errors of most games when it comes to alpha sorting - see this comparison video here between OIT and non-OIT -

https://www.youtube.com/watch?v=vmZ5sTYD2q8

@flyinghead
Copy link

I know but there's no easy solution. The sorting is not buggy. It's just that it's only sorting triangles, not pixels. The only real fix I know of is per-pixel sorting, aka OIT ;)

Freesandy pushed a commit to Freesandy/libretro-flycast that referenced this issue Dec 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants