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

138 Commits

Author SHA1 Message Date
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
Sergey Lipskiy
8733c2b3e7 Set m_drawBuffer = GL_BACK in FrameBufferList::destroy().
Fixed crash on rom reset.
2015-05-13 10:13:10 +06:00