mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Correct VI.width calculation for interlaced mode.
Fixed crash in Topgear hyper bike #256
This commit is contained in:
parent
d68e9ed13a
commit
e5c452530a
4
VI.cpp
4
VI.cpp
|
@ -38,9 +38,9 @@ void VI_UpdateSize()
|
||||||
VI.width = *REG.VI_WIDTH;
|
VI.width = *REG.VI_WIDTH;
|
||||||
VI.interlaced = (*REG.VI_STATUS & 0x40) != 0;
|
VI.interlaced = (*REG.VI_STATUS & 0x40) != 0;
|
||||||
if (VI.interlaced) {
|
if (VI.interlaced) {
|
||||||
u32 fullWidth = (u32)(640.0f*xScale);
|
f32 fullWidth = 640.0f*xScale;
|
||||||
if (*REG.VI_WIDTH > fullWidth) {
|
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.width /= scale;
|
||||||
VI.real_height *= scale;
|
VI.real_height *= scale;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user