Sergey Lipskiy
24885907d8
Add hack_ZeldaCamera to fix camera in Zelda MM, #577
...
The game copies current frame buffer to the area, which initially allocated for depth buffer.
Game read camera data from that area, not from normal frame buffer.
That's why 'copy color buffer to RDRAM' option does not help there.
Special code needed to process that. Looks ugly, but works.
2015-09-27 10:10:05 +06:00
Sergey Lipskiy
1fb78594c8
Fix buffer end address calculation in FrameBuffer::reinit.
...
Fixed regression in Pokemon Stadium 2: the bottom of the portraits is cut off, see #415
2015-09-25 12:21:20 +06:00
Sergey Lipskiy
a73b8dddbd
Fix bug in FrameBufferList::saveBuffer :
...
corrent end address for auxiliary buffer only if it was not corrected by correctHeight().
2015-09-20 20:28:05 +06:00
Sergey Lipskiy
702a0d8203
Correct FrameBufferList::saveBuffer :
...
disable draw to FBO if new buffer can't be saved because of wrong buffer size
2015-09-20 20:12:52 +06:00
Sergey Lipskiy
6ad1d1d3a5
Correct FrameBufferList::correctHeight() :
...
do not change buffer if new buffer height is the same as the current one.
2015-09-20 20:09:59 +06:00
Sergey Lipskiy
22a1e6a39f
Revert "Correct frame buffer end address calculation in FrameBufferList::saveBuffer."
...
Seems to be not needed anymore.
This reverts commit bb6a9b3549
.
2015-09-20 20:02:22 +06:00
Sergey Lipskiy
3d6a897c97
Fix GL error when CopyToRDRAM a buffer with zero width or height.
2015-09-20 15:31:39 +06:00
purplemarshmallow
f487225b48
Optimize Perfect Dark framebuffer effects
...
We only check once per frame. ~100% performance boost in deep sea with
infrared vision.
2015-09-19 18:45:32 +06:00
purplemarshmallow
1fcb64ca79
Revert "Don't discard frame buffers creation when _height == 0"
...
This reverts commit de32176303
.
This commit causes regressions:
In Pokemon Stadium when starting a battle one portrait can be missing
failed assertion in framebuffer.cpp Line:580 Expression checkFBO()
2015-09-04 10:09:00 +06:00
purplemarshmallow
2847606877
Always reinit buffer after its height correction.
...
This fixes pokemons library in Pokemon Stadium 2.
2015-09-03 20:52:12 +06:00
purplemarshmallow
8e096a8db9
remove fill RDRAM functionality
...
fix m_fingerprint usage
fix code formatting
2015-08-27 19:43:00 +06:00
Sergey Lipskiy
5eddea5baf
Add workaround for Adreno issue with glBlitFramebuffer.
...
Thanks fzurita for problem investigation and found solution.
2015-08-27 19:20:26 +06:00
purplemarshmallow
de32176303
Don't discard frame buffers creation when _height == 0
2015-08-26 20:43:09 +06:00
purplemarshmallow
97468d8e2a
enable validity checking if copyFromRDRAM option is on
2015-08-26 19:42:43 +06:00
Sergey Lipskiy
57e88cb800
Remove unused code. Fix code formatting.
2015-08-17 21:57:01 +06:00
purplemarshmallow
8463c0347f
fix regression in Mario Tennis
2015-08-17 21:57:00 +06:00
purplemarshmallow
0735bd0372
modify fingerprint validity checking method
...
In Zelda OOT the CPU applies a filter on the framebuffer texture. If we
write a small amount of data at the beginning the CPU won't change our
specific values
2015-08-17 21:56:59 +06:00
purplemarshmallow
e0face5f86
use unique values as fingerprint
...
this works much better
But sometimes Zelda writes values not only under but also over the
fingerprint, Link's model is lost again
2015-08-17 21:56:58 +06:00
purplemarshmallow
e617177958
fix problem with validity ckecking in Zelda OOT
...
problem: the game writes data below our fingerprint
solution: just check if the fingerprint is still there and ignore the
data below
2015-08-17 21:56:58 +06:00
Sergey Lipskiy
cbbd5d17de
Fix crash when fb emulation enabled/disabled during gameplay, issue #601
2015-07-23 21:55:30 +06:00
Gillou68310
40da41d953
Fix framebuffer texture rectangle coordinate in GLES2
2015-07-02 10:45:52 +06:00
Sergey Lipskiy
7936e02066
Enable hack_subscreen for GLES2.
2015-06-26 19:20:44 +06:00
Sergey Lipskiy
b897c449a1
Fix shader texture uniforms update for GLES2.
...
Fixed issue #586 .
Thanks Gillou68310 for the hint.
2015-06-23 22:19:11 +06:00
Sergey Lipskiy
68941f6cbe
Optimize frame buffer copy to RDRAM:
...
read from pixel buffer one time per pixel.
Old code does 4 reads from the pixel buffer per pixel.
The optimization makes color buffer read circa 4 times faster.
Thanks Lars Bishop for finding the sources of the problem and for suggested solution.
2015-06-16 19:43:15 +06:00
Sergey Lipskiy
7ee974f213
Remove debug calls of isGLError() from FrameBufferToRDRAM::CopyToRDRAM.
2015-06-16 19:40:56 +06:00
Sergey Lipskiy
eb23f38934
New fix for issue #563 . It does not break CBFD work.
2015-06-14 23:29:33 +06:00
Sergey Lipskiy
48959f0702
Revert "Correct coronas emulation in Perfect Dark."
...
This reverts commit 36fbcd5eac
.
Reverted commits causes issues in CBFD. Need another approach.
2015-06-14 22:57:53 +06:00
Sergey Lipskiy
36fbcd5eac
Correct coronas emulation in Perfect Dark.
...
Fixed issue #563 .
2015-06-04 22:17:04 +06:00
Sergey Lipskiy
a25c85b3f2
Hack depth buffer attachment for GLES2. Need proper fix.
2015-06-02 18:57:54 +06:00
Sergey Lipskiy
1653069329
Correct FBO texture formats for different GL versions.
2015-06-02 18:57:24 +06:00
Sergey Lipskiy
9a991ba550
Correct FrameBufferList::renderBuffer for GLES2
2015-06-01 23:58:57 +06:00
Sergey Lipskiy
6b67ba3a57
Fix 3point texture filtering for GLES2.
2015-05-31 14:13:27 +06:00
Sergey Lipskiy
910c5de1bf
Enable post-processor for GLES2.
2015-05-30 22:40:14 +06:00
Sergey Lipskiy
19c9e80b70
Correct frame buffer texture format for GLES2.
2015-05-18 13:51:16 +06:00
Sergey Lipskiy
b16dedd3f9
Fix compilation error in FrameBufferList::renderBuffer.
2015-05-18 13:51:10 +06:00
Sergey Lipskiy
7cbca30197
Disable resolveMultisampledTexture() for system without GL_MULTISAMPLING_SUPPORT
2015-05-18 13:51:10 +06:00
Sergey Lipskiy
b219997c80
Always show cfb until first dlist:
...
- move flag CHANGED_CPU_FB_WRITE from gSP to gDP (code refactor)
- enable CHANGED_CPU_FB_WRITE on video init.
- disable CHANGED_CPU_FB_WRITE in process display list.
many pd roms and demos use cpu rendering only
now they are supported with default settings
also detectCFB=1 now isn't needed anymore for some games
Commit is based on changes made by purplemarshmallow in #536
2015-05-18 12:55:42 +06:00
Sergey Lipskiy
d46ed98804
Fix wrong set of CHANGED_TEXTURE flag.
2015-05-13 10:22:32 +06:00
Sergey Lipskiy
49efba0ce6
Correct RDRAMtoFrameBuffer::CopyFromRDRAM -
...
need to update combiner's FBInfo before use.
2015-05-13 10:22:28 +06:00
Sergey Lipskiy
eabbd252f8
Change CachedTexture::frameBufferTexture type to enum.
...
Need to separate one-sampled frame buffer textures from multosampled ones.
2015-05-13 10:22:27 +06:00
Sergey Lipskiy
dbbb7da427
Move _isMarioTennisScoreboard() from FrameBufferList to FrameBuffer.
2015-05-13 10:22:26 +06:00
Sergey Lipskiy
663a0d76f1
Implement multisampled textures fetch in shaders.
...
Thanks mudlord for the idea.
Fixed Perfect Dark frame buffer effects do not work when FSAA is on. #244
2015-05-13 10:22:26 +06:00
Sergey Lipskiy
b728ab97a7
Disable multisampling related code for GLES below 3.1
2015-05-13 10:22:25 +06:00
Sergey Lipskiy
09b78ea577
Replace define GLES3 by GLES3_1 since current code is GLES3.1 compatible.
...
GLES3 is different.
2015-05-13 10:22:18 +06:00
Sergey Lipskiy
243e186ba2
Correct internal format for DepthBufferToRDRAM color texture.
2015-05-13 10:22:17 +06:00
Sergey Lipskiy
d3f6754cff
Correct depth texture intarnal format for GLES3
2015-05-13 10:22:16 +06:00
Sergey Lipskiy
107a81d079
Don't init from/to RDRAM objects when frame buffer emulation is off.
2015-05-13 10:22:14 +06:00
Sergey Lipskiy
01807a0499
Fix FrameBuffer_CopyDepthBuffer: return false for GLES2 case.
2015-05-13 10:22:10 +06:00
Sergey Lipskiy
a02d284645
Use glTexStorage2DMultisample instead of glTexImage2DMultisample in case of GLSE3
2015-05-13 10:22:05 +06:00
Sergey Lipskiy
70b1b9ad03
Replace glMapBuffer by GLES3 compatible glMapBufferRange.
2015-05-13 10:22:04 +06:00