Sergey Lipskiy
975b54810f
Emulate VI manipulations with REG.VI_H_START register.
...
This emulates horizontal slide effect in Top Gear Overdrive menu.
Fixed issue #17
2015-05-13 10:18:17 +06:00
Sergey Lipskiy
db649b5341
Fix FrameBufferToRDRAM::CopyToRDRAM:
...
copy to provided address, not to the cached one.
Fixed Top Gear Hyper Bike with FB to RDRAM on.
2015-05-13 10:18:15 +06:00
Sergey Lipskiy
bb6a9b3549
Correct frame buffer end address calculation in FrameBufferList::saveBuffer.
...
Fixed gfx not showing with fb emulation on in Top Gear Hyper Bike #45
2015-05-13 10:18:15 +06:00
Sergey Lipskiy
34d638a0a3
Don't copy depth buffer if it was not cleared.
...
Uncleared depth buffer most likely is used as auxilary color buffer.
Fix pause screen in Mickey USA when copy depth to RDRAM is enabled, issue #85 .
2015-05-13 10:18:14 +06:00
Sergey Lipskiy
b9257e33b1
Fix RDRAMtoFrameBuffer::CopyFromRDRAM.
...
Fixed flicker in StarCraft64 logos.
2015-05-13 10:18:12 +06:00
Sergey Lipskiy
47e4f4e8e4
Switch from shader based pseudo-random simplex noise to texture based one.
2015-05-13 10:18:09 +06:00
Sergey Lipskiy
7ed2ed1365
Use VI.real_height to make copy to RDRAM more safe.
...
VI.height can be larger than actual buffer height. Example: The New Tetris.
2015-05-13 10:18:06 +06:00
Sergey Lipskiy
8c0aa1c804
Fix FrameBufferToRDRAM::CopyToRDRAM when multisampling is enabled.
2015-05-13 10:18:00 +06:00
Sergey Lipskiy
06c7877208
Fix vOffset calculation in FrameBufferList.
2015-05-13 10:17:57 +06:00
Sergey Lipskiy
17b2db7031
Workaround for Mupen64Plus issue with initialization
2015-05-13 10:17:54 +06:00
Sergey Lipskiy
8b570cb273
Fix multisampling.
2015-05-13 10:17:48 +06:00
Sergey Lipskiy
10c4fb801c
Implement FBO multisampling.
2015-05-13 10:17:47 +06:00
Sergey Lipskiy
501e8a44b0
Fix FBO in DepthBufferToRDRAM.
2015-05-13 10:17:26 +06:00
Sergey Lipskiy
5af3ed1197
Implement multi-pass bloom post-processing effect.
2015-05-13 10:17:23 +06:00
Sergey Lipskiy
4f1a636c20
Implement PostProcessor class for image post processing effects.
2015-05-13 10:17:22 +06:00
Sergey Lipskiy
fca44abb5f
Do not create DepthImageTexture when N64DepthCompare option is off.
2015-05-13 10:17:20 +06:00
Sergey Lipskiy
6ab92eac4f
Move zLUT initialization to DepthBufferList::init().
2015-05-13 10:17:18 +06:00
Sergey Lipskiy
cd758aed08
Rewrite DepthBufferToRDRAM
2015-05-13 10:17:18 +06:00
Sergey Lipskiy
afe91d47d9
Switch to depth texture
2015-05-13 10:17:17 +06:00
Sergey Lipskiy
5460cb32f6
Don't allocate frame buffer with zero height.
2015-05-13 10:17:10 +06:00
Sergey Lipskiy
99b0bc1e59
Fix fb texture offsetS.
...
Fixed IR scanner in Perfect Dark.
2015-05-13 10:17:08 +06:00
Sergey Lipskiy
17f2195801
Remove combiner update from FrameBufferList::attachDepthBuffer().
...
WEIRD:
If new combiner is created on CombinerInfo::get().update(), it than
works incorrect. Example: pause screen in Banjo Tooie.
!!!
2015-05-13 10:17:06 +06:00
Sergey Lipskiy
ac5159fe68
Fix RDRAMtoFrameBuffer::CopyFromRDRAM :
...
restore CHANGED_CPU_FB_WRITE flag after the draw.
Fixed CFB mode.
2015-05-13 10:17:04 +06:00
Sergey Lipskiy
3f6e52b62a
Fix flicker in interlaced mode.
2015-05-13 10:16:01 +06:00
Sergey Lipskiy
887504c301
Switch to non-POT textures.
2015-05-13 10:15:25 +06:00
Sergey Lipskiy
99e3869056
Fix drawTexturedRect usage for alternative FrameBufferList::renderBuffer
2015-05-13 10:15:01 +06:00
Sergey Lipskiy
6e01ed9a34
Pass parameters to OGLRender::drawTexturedRect via special structure TexturedRectParams.
2015-05-13 10:14:21 +06:00
Sergey Lipskiy
bc1a5a1f1f
Fix frame buffer allocation again.
...
Check for all possible intersections of frame buffers address space,
remove all buffers, intersected with the new one.
2015-05-13 10:14:18 +06:00
Sergey Lipskiy
ea713f8e0c
Remove assync depth copy functionality.
...
It is important to copy current depth buffer to RDRAM.
Otherwise coronas in PD does not work when in movement.
2015-05-13 10:14:12 +06:00
Sergey Lipskiy
a3d702a4dd
Fix detection of frame buffers address space intersection.
...
Fixed problem of growing frame buffers number.
2015-05-13 10:14:11 +06:00
Sergey Lipskiy
efdfa31eda
Make FrameBuffer_CopyDepthBuffer() return bool.
2015-05-13 10:14:09 +06:00
Sergey Lipskiy
c3a8148d0e
Fix DepthBufferToRDRAM::CopyToRDRAM - limit max value by 0xfffc.
2015-05-13 10:14:08 +06:00
Sergey Lipskiy
39cbd870ff
Add check for NULL pointers in FrameBuffer_ActivateBufferTexture.
2015-05-13 10:14:07 +06:00
Sergey Lipskiy
a6a8d810fb
Fix CopyToRDRAM.
...
Need to set scissor off before using glBlitFramebuffer.
2015-05-13 10:14:05 +06:00
Sergey Lipskiy
7835cfb180
Fix color image height detection for height = 1.
2015-05-13 10:14:02 +06:00
Sergey Lipskiy
3a27056759
Don't write buffer address to RDRAM for CFB buffers.
2015-05-13 10:14:01 +06:00
Sergey Lipskiy
09eea95270
Add separate define for ImageTextures.
...
Set it on for platforms, which support this functionality.
2015-05-13 10:13:55 +06:00
Sergey Lipskiy
94c381f734
Fix code duplication in FrameBuffer.cpp
2015-05-13 10:13:54 +06:00
Sergey Lipskiy
72ce00157b
Code cleanup: Fix class members initialization order in ctors.
2015-05-13 10:13:54 +06:00
Sergey Lipskiy
17479ccbe4
Rewrite FrameBufferList::renderBuffer
...
Use new method for destination coordinates calculation.
2015-05-13 10:13:47 +06:00
Sergey Lipskiy
0d35f461df
Fix integer-float mismatch in FrameBuffer.cpp
2015-05-13 10:13:46 +06:00
Sergey Lipskiy
b31b4cc3f6
Correct renderBuffer usage in FrameBuffer_ActivateBufferTexture.
2015-05-13 10:13:34 +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
e21f455686
Don't call glBindImageTexture if it is not supported.
2015-05-13 10:13:28 +06:00
Sergey Lipskiy
768430a234
Implement screen aspect ratio support.
2015-05-13 10:13:26 +06:00
Sergey Lipskiy
6bf0302f19
Fix errors found by code analizer.
2015-05-13 10:13:19 +06:00
Sergey Lipskiy
7548922cfd
Add CombinerInfo::update().
...
Call it in FrameBufferList::attachDepthBuffer() before currentCombiner()->updateDepthInfo
to avoid glError caused by wrong shader program set.
Fixed glError with MarioTennis character selection.
2015-05-13 10:13:18 +06:00
Sergey Lipskiy
805cef4225
Correct isLowerField calculation in FrameBufferList::renderBuffer.
...
It did not work correct for Donkey Kong (E).
2015-05-13 10:13:14 +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
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