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:
parent
5a296525ea
commit
175ab35971
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user