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

Correct VI.width calculation for interlaced mode.

Fixed crash in Topgear hyper bike #256
This commit is contained in:
Sergey Lipskiy 2015-03-19 19:35:30 +06:00
parent d68e9ed13a
commit e5c452530a

4
VI.cpp
View File

@ -38,9 +38,9 @@ void VI_UpdateSize()
VI.width = *REG.VI_WIDTH;
VI.interlaced = (*REG.VI_STATUS & 0x40) != 0;
if (VI.interlaced) {
u32 fullWidth = (u32)(640.0f*xScale);
f32 fullWidth = 640.0f*xScale;
if (*REG.VI_WIDTH > fullWidth) {
const u32 scale = *REG.VI_WIDTH / fullWidth;
const u32 scale = (u32)floorf(*REG.VI_WIDTH / fullWidth + 0.5f);
VI.width /= scale;
VI.real_height *= scale;
}