1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00
Commit Graph

77 Commits

Author SHA1 Message Date
Sergey Lipskiy
43b7488ec8 Clear buffers when depth buffer width != VI.width.
Fixed Star Soldier Vanishing Earth - Cutted Screen #374
2015-05-13 10:21:04 +06:00
Sergey Lipskiy
752ca93765 Correct VI_UpdateSize() for pal games.
Fixed Donkey Kong (E), issue #355
2015-05-13 10:20:59 +06:00
Sergey Lipskiy
42e75032fb Correct previous width calculation in VI_UpdateSize().
Now buffers removed when old and new VI width is not zero.

Fixed knockout 2000, issue #294
2015-05-13 10:20:38 +06:00
Sergey Lipskiy
d11f7e0b5e Remove glFinish() from VI_UpdateScreen(). 2015-05-13 10:20:30 +06:00
Sergey Lipskiy
64b5c834a7 Rename ignoreCFB to detectCFB.
Up settings version.
2015-05-13 10:19:53 +06:00
Sergey Lipskiy
61e6eb268c Correct condition for buffers removal in VI_UpdateSize() :
remove buffers when interlace mode changed or when main buffer width changed.
2015-05-13 10:19:51 +06:00
Sergey Lipskiy
e5c452530a Correct VI.width calculation for interlaced mode.
Fixed crash in Topgear hyper bike #256
2015-05-13 10:19:47 +06:00
Sergey Lipskiy
8945e13e76 Correct VI.width calculation.
Fixed screen distortion in Excite Bike 64
2015-05-13 10:19:28 +06:00
Sergey Lipskiy
51ea2868d5 Correct condition for buffers removal in VI_UpdateSize() :
remove buffers only when interlace mode changed.

Fixed wrong buffers removal in Pokemon Stadium.
2015-05-13 10:19:23 +06:00
Sergey Lipskiy
4ff13a30e6 Correct FrameBufferList::removeBuffers : remove all buffers with given width.
Fixed issue with Pokemon Stadium, which set zero VI height before
interlace mode switch.
2015-05-13 10:19:23 +06:00
Sergey Lipskiy
4e7a5a6b9e Do not remove auxilary color buffers on interlaced mode switch.
Fixed removal of color buffers with pokemon portraits in Pokemon Stadium 2.
2015-05-13 10:19:21 +06:00
Sergey Lipskiy
0d8b4e89fa Limit calculated VI.height by maximal value.
Fixed screen size in Lode Runner, #186
2015-05-13 10:19:11 +06:00
Sergey Lipskiy
61b079c53e Rewrite VI width and height calculation.
Fixed NFL Quarterback Club 2000. More testing needed.
2015-05-13 10:19:02 +06:00
Sergey Lipskiy
c22de119e5 Revert "Correct VI.real_height calculation in interlaced mode."
This change cause crash in Top Gear Overdrive menu, because hEnd == hStart
at some point.

This reverts commit 61f9389656bd26b49c43394b701a3a7e31737b3c.
2015-05-13 10:18:57 +06:00
Sergey Lipskiy
97c9fecd8c Correct VI.width calculation when hEnd is zero.
Corrected commit 42fe2ddf09 since it brokes background in F1 Pole Position, #263
2015-05-13 10:18:56 +06:00
Sergey Lipskiy
1b2b9f9865 Replace gDP.colorImage.changed by FrameBuffer::m_changed 2015-05-13 10:18:53 +06:00
Sergey Lipskiy
46e6f3c28c Correct VI.width calculation when hEnd is zero. 2015-05-13 10:18:40 +06:00
Sergey Lipskiy
2d099dda4c Correct VI.real_height calculation in interlaced mode. 2015-05-13 10:18:39 +06:00
Sergey Lipskiy
b085593d2a Major fixes in RDRAMtoFrameBuffer::CopyFromRDRAM.
Fixed Dr.Mario pills
2015-05-13 10:18:28 +06:00
Sergey Lipskiy
cd0ec661ba Corrected bNeedUpdate condition in VI_UpdateScreen()
Fixed Quake II underwater, issue #229
2015-05-13 10:18:26 +06:00
Sergey Lipskiy
65b6de3f19 Correct VI.height calculation - make it even.
Fixed New Tetris work with FB on.
2015-05-13 10:18:22 +06:00
Sergey Lipskiy
27d4a73590 Correct VI.width calculation. 2015-05-13 10:18:16 +06:00
Sergey Lipskiy
b7460648be Fix CFB detection.
Fixed intro logos in StarCraft64
2015-05-13 10:18:13 +06:00
Sergey Lipskiy
17b2db7031 Workaround for Mupen64Plus issue with initialization 2015-05-13 10:17:54 +06:00
Sergey Lipskiy
5b8986874a Make VI height zero if vStart >= vEnd. 2015-05-13 10:17:07 +06:00
Sergey Lipskiy
13366a9c02 Set init value for VIInfo::lastOrigin to -1.
0 is valid origin value, so wrong buffer clear may occur.
2015-05-13 10:17:03 +06:00
Sergey Lipskiy
97c43d07c7 Correct VI_UpdateScreen(): avoid multiple calls of VI_UpdateSize(). 2015-05-13 10:17:02 +06:00
Sergey Lipskiy
949508d652 Correct VI_UpdateSize() cast float to u32. 2015-05-13 10:17:02 +06:00
Sergey Lipskiy
1c232c6a4e Correct VI_UpdateScreen(). 2015-05-13 10:17:00 +06:00
Sergey Lipskiy
e0d71c78c0 Fix VI.width for non-interlaced mode.
Fixed vertical black bar in Mario Tennis.
2015-05-13 10:16:48 +06:00
Sergey Lipskiy
4a349c09d7 Fix VI height calculation again. 2015-05-13 10:16:00 +06:00
Sergey Lipskiy
e2e75a81be Move call to VI_UpdateSize() from RSP_ProcessDList() to VI_UpdateScreen(). 2015-05-13 10:15:59 +06:00
Sergey Lipskiy
698f49ed40 Move VI_UpdateSize() from RDP_ProcessRDPList() to VI_UpdateScreen()
in order to avoid too often calls of that function.
2015-05-13 10:15:23 +06:00
Sergey Lipskiy
01fc74b3c9 Workaround for Mupen64Plus issue with initialization. 2015-05-13 10:15:23 +06:00
Sergey Lipskiy
3e65749241 Don't fix zero VI.width and VI.height
If these values are zero, it is for purpose.

Fixed depth buffer write in PD intro.
2015-05-13 10:14:12 +06:00
Sergey Lipskiy
92c3283ff7 Fix min and max usage. 2015-05-13 10:13:38 +06:00
Sergey Lipskiy
f637e91f22 Replace _SHIFTR( *REG.VI_H_START, 0, 10 ) == 0 check by VI.width == 0 one
Fixed glError in Knockout Kings 2000. The game sets h_start==h_end at start,
thus VI.width is zero but *REG.VI_H_START is not.
2015-05-13 10:13:32 +06:00
Sergey Lipskiy
75bf4004cb Correct VI width calculation.
Fixed VI width in Cyber Tiger.
2015-05-13 10:13:32 +06:00
Sergey Lipskiy
ebedf49240 Correct VI height calculation. 2015-05-13 10:13:30 +06:00
Sergey Lipskiy
3b97ca2d7c Fix float/int mismatch in VI_UpdateSize(). 2015-05-13 10:13:28 +06:00
Sergey Lipskiy
c96b62adaf Implement window resize for MupenPlus. 2015-05-13 10:13:24 +06:00
Sergey Lipskiy
5ac66b83fe Clear frame and depth buffers lists when VI width, height or interlaced mode is changed. 2015-05-13 10:13:17 +06:00
Sergey Lipskiy
9305d46c94 Roundup calculated VI.width and VI.height.
Fixed Charlie Blast.
2015-05-13 10:13:16 +06:00
Sergey Lipskiy
fb1a28c6db Clear frame and depth buffers lists when interlace mode is changed,
because new mode makes old buffers invalid.
2015-05-13 10:13:13 +06:00
Sergey Lipskiy
2454f70568 Don't call gDPFillRDRAM for frame buffers created in VI_UpdateScreen(),
because VI_ORIGIN is not correct address of frame buffer start.
2015-05-13 10:13:12 +06:00
Sergey Lipskiy
4a568c984d Change VI height correction constant for PAL games.
Fixed Armorines (E).
2015-05-13 10:13:12 +06:00
Sergey Lipskiy
5eac0797f0 Remove VI emulation code, which can't be tested for now.
Star Wars Ep. 1 Racer (E) is fixed.
2015-05-13 10:13:11 +06:00
Sergey Lipskiy
c0e0df2551 Fix allocation of new frame buffer in VI_UpdateScreen().
Need to compare buffer width with calculated VI.width, not with *REG.VI_WIDTH.

This fixes wrong allocations in Star Wars Ep.1 Racer.
2015-05-13 10:13:10 +06:00
Sergey Lipskiy
c551230a8e Double VI.height in interlaced mode when yScale = 1.
This fixes frame buffer height for Star Wars Ep.1 Racer.
Not sure that this solution is correct!
2015-05-13 10:13:09 +06:00
Sergey Lipskiy
400f674409 Revert VI.height calculation. Add flag VI.interlaced for interlaced mode. 2015-05-13 10:13:05 +06:00