hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.24k stars 2.17k forks source link

Toaru Kagaku no Railgun no background since v0.9.1-1144-gf8eebdb #5087

Closed sum2012 closed 10 years ago

sum2012 commented 10 years ago

Good v0.9.1-1114-g36fd5df (I have compile myself to test) 1

Bad v0.9.1-1144-gf8eebdb

2

compare https://github.com/hrydgard/ppsspp/compare/v0.9.1-1114-g36fd5df...v0.9.1-1144-gf8eebdb

git bisect result 3

It is @hrydgard commit https://github.com/hrydgard/ppsspp/commit/d7ae3f88a104325fed572030db93642dd69dc673

v0.9.1-1114-g36fd5df log https://gist.github.com/sum2012/b4fa38e617ba0053d6a4

PPSSPP v0.9.6-406-g62eb701 log (dump to next frame to log) https://gist.github.com/sum2012/c9a594eafc2fe7922420

Bigpet commented 10 years ago

can confirm that this happens regardless of buffer mode and also happens with the softgpu

Bigpet commented 10 years ago

Tested a little further. It's indeed d7ae3f88a104325fed572030db93642dd69dc673

and using the now deleted hack of transformDraw_.DrawBezier(bz_ucount, bz_vcount); works while the new proper implementation transformDraw_.SubmitBezier(control_points, indices, bz_ucount, bz_vcount, patchPrim, gstate.vertType); displays black.

dbz400 commented 10 years ago

May be we can mark the title as Beizer issue .

unknownbrackets commented 10 years ago

I guess it could even be using a different prim type than GE_PATCHPRIM_TRIANGLES?

-[Unknown]

Bigpet commented 10 years ago

No, that's not it, that would return before it even got to the call, I'm digging a little deeper currently.

Bigpet commented 10 years ago

This is how it looks in the gedebugger. Not sure how it all works but stepping though the code it definately calls "drawPrim" but I don't see it mentioned anywhere in the gedebugger but I don't know if it should be there either.

GEdebugger screen

dbz400 commented 10 years ago

I did try to comment out below, didn't help

if (prim_type != GE_PATCHPRIM_TRIANGLES) {
    // Only triangles supported!
    return;
}
sum2012 commented 10 years ago

PPSSPP v0.9.6-466 same problem https://gist.github.com/sum2012/5483987171632ba3a829

Bigpet commented 10 years ago

I'm going to need people to test b49fa80838039b4bfc34a2df2b7453e8b8b83abf with as many games as possible that use bezier splines to figure out whether any of the them uses view matrix transformed bezier splines.

Here's a vdeo demonstrating the test with Toaru Kagaku no Railgun: http://www.youtube.com/watch?v=PjXefvWPitY

daniel229 commented 10 years ago

seem to not break these games that using bezier. 03 02 01

daniel229 commented 10 years ago

games that using splines still looks good with that option 04 05

daniel229 commented 10 years ago

still looks good bezier 06

splines 07

Bigpet commented 10 years ago

That's great that they work with both. If anyone wants to test additional games please use https://github.com/Bigpet/ppsspp/commit/2f7243b5ebadb05df3d8d0eb8578a20a9909c8cb , you won't need to re-test games you already tested.

This automatically preserves the through mode bit, so no need to toggle it in the settings.

sum2012 commented 10 years ago

Cong @Bigpet