1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00

VI_UpdateSize() : correct width/height calculation in interlaced mode.

Still hackish.

Fixed Star Wars Episode One Racer Flicker and Black Screen with Frame Buffer Emulation #1119
Fixed Top Gear Overdrive black screen #1122
This commit is contained in:
Sergey Lipskiy 2016-09-12 21:27:38 +07:00
parent 5a296525ea
commit 175ab35971

View File

@ -39,9 +39,10 @@ void VI_UpdateSize()
VI.width = *REG.VI_WIDTH;
VI.interlaced = (*REG.VI_STATUS & 0x40) != 0;
const bool bCFB = (gDP.changed&CHANGED_CPU_FB_WRITE) == CHANGED_CPU_FB_WRITE;
if (VI.interlaced && !bCFB) {
f32 fullWidth = 640.0f*xScale;
if (VI.interlaced) {
f32 fullWidth = 640.0f;
if ((*REG.VI_X_SCALE) % 512 == 0)
fullWidth *= xScale;
if (*REG.VI_WIDTH > fullWidth) {
const u32 scale = (u32)floorf(*REG.VI_WIDTH / fullWidth + 0.5f);
VI.width /= scale;