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
XFB Scaling #977
XFB Scaling #977
Conversation
Seems to make sense, not sure completely correct. |
http://gdurl.com/Wx_i |
Should this depend on m_HorizontalScaling.HS_EN (// Enable Horizontal Scaling) I'm not sure if it should scale it up to the full fbwidth or WPL_16_0x100/m_HorizontalScaling.STP or similar. Probably should do some hardware tests to check behaviour... |
This PR fixes TMNT (SX7E52) being offset to the left when RealXFB is enabled. |
Fixes Zelda Collector's Edition GameCube NES game doubling/incorrect stretching, fixes same thing in Animal Crossing's GameCube NES games, probably some other games that I'm forgetting about that are offset or broken. |
@@ -201,7 +201,7 @@ void VideoSoftware::Video_Prepare() | |||
} | |||
|
|||
// Run from the CPU thread (from VideoInterface.cpp) | |||
void VideoSoftware::Video_BeginField(u32 xfbAddr, u32 fbWidth, u32 fbHeight) | |||
void VideoSoftware::Video_BeginField(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight) | |||
{ |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
Mostly LGTM, as @booto says not sure if that's an appropriate fix, but it seems to make sense at least. Please address that comment about the sw renderer and stride. If that's not a TODO or a bug, please add a comment in the code to explain why fbStride is not copied. |
@JMC47 Zelda Collector's Edition is fixed only with Open gl and real xfb while with D3D it is still broken. Also https://code.google.com/p/dolphin-emu/issues/detail?id=6555&can=4 seems not affected at all, D3D has a lot of xfb issues still. |
D3D also has issues with EFB Access to CPU, likely the same problem? |
Btw here is a pic of Zelda Collector's Edition with real xfb after this change with Zelda Collector's Edition and D3D http://prntscr.com/4jv8am. Seems like interlancing issue or something? Anyway hope it helps. |
@Linktothepast Not interlacing, but an issue with stride being unimplemented. Looks like this branch only implements FB stride in the OGL backend. |
This PR doesn't seem to break anything, it actually makes RealXFB work better in a ton of games. I need to actually go back through and record my examples this time >.> |
At the very least, we need TODO comments in the software and dx backends. |
Oh yeah, the other games I found out it fixed: Animal Crossing (RealXFB had mirroring on the right side, NES games were already mentioned), Nintendo Puzzle Collection (Garbage on bottom right, mirroring on right side of screen) I don't remember what else I found, maybe it's just games that worked on both? |
A description would be nice... |
Trying to remember why this wasn't ready. If I recall correctly, there wasn't really anything wrong with it... but the data should probably get passed around in some sort of struct, and the variable names are a bit misleading because of the hack we use to read the XFB in interlaced modes. |
949fcab
to
c5f9301
Compare
Not my branch, but I want comments on this since it fixes bunch of issues
Fixes Cubivore image scaled incorrectly(Issue 7618)
JMC has more things it fixes.