Sergey Lipskiy
32e8f9187d
Fix vertex color set for fillrect.
...
Fixed fillrect in Mahjong Hourouki Classic, issue #138
2015-05-13 10:20:46 +06:00
Sergey Lipskiy
3fd958431a
Fix tile load via gDPLoadBlock when amount of tile data is over TMEM size.
...
Fixed Tom & Jerry / PPG CHEMICAL X: texture issues #183
2015-05-13 10:20:45 +06:00
Sergey Lipskiy
5ccf6ee60a
Correct CheckForFrameBufferTexture:
...
if found buffer is CFB - remove it. Buffers renderd by CPU can't be used as texture frame buffer.
Fixed excitebike64: black textures (regression) #345
2015-05-13 10:20:40 +06:00
Sergey Lipskiy
cd6e918001
Code cleanup: remove reduntant gDP.changed update in gDPLoadBlock()
2015-05-13 10:20:26 +06:00
Sergey Lipskiy
04062925d3
Don't copy depth buffer to RDRAM if it was not cleared completly.
...
Fixed hangs in Roadsters, issue #330
2015-05-13 10:20:22 +06:00
Sergey Lipskiy
5c605a130c
Rewrite gSPSetOtherMode_H and gSPSetOtherMode_L
2015-05-13 10:20:16 +06:00
Sergey Lipskiy
cbae8d686a
Use Adler32 instead of CRC32 for frame buffer checksum calculation.
2015-05-13 10:20:10 +06:00
Sergey Lipskiy
0131b37f54
Replace color uniforms by uniform block ColorsBlock.
2015-05-13 10:19:56 +06:00
Sergey Lipskiy
9fc26ef775
Remove CHANGED_COMBINE_COLORS usage.
2015-05-13 10:19:53 +06:00
Sergey Lipskiy
d68e9ed13a
Correct gDPFillRDRAM: don't write buffer address at start of the buffer.
2015-05-13 10:19:46 +06:00
Sergey Lipskiy
cc4b8a88e6
Correct gSPSetOtherMode_L.
...
Fixed blending issue in Bomberman Hero, #225
2015-05-13 10:19:44 +06:00
Sergey Lipskiy
10239fe610
Fix out of RDRAM check in gDPLoadTile.
...
Fixed crash in BIO Freaks, issue #278
2015-05-13 10:19:36 +06:00
Sergey Lipskiy
f5ca94b1ef
Remove frame buffer validity check by buffer address written at the origin
...
of the buffer in RDRAM. This is unreliable method.
2015-05-13 10:19:32 +06:00
Sergey Lipskiy
4fd545225b
Remove hack from gDPSetTile
2015-05-13 10:19:29 +06:00
Sergey Lipskiy
d65cdbdefe
Correct validity check for 8bit frame buffers.
...
Buffer is valid if number of wrong pixels is less than 1%
That is made for Jet Force Gemini, which writes to the area of auxilary buffers,
so strict check does not work.
2015-05-13 10:19:27 +06:00
Sergey Lipskiy
66f7af5a59
Always correct height for auxilary buffers.
2015-05-13 10:19:24 +06:00
Sergey Lipskiy
dfabb7d105
Replace FrameBufferList::isFboMode() check by FrameBufferList::getCurrent() != NULL
2015-05-13 10:19:19 +06:00
Sergey Lipskiy
f4e1afa30c
Split hack_noDepthFrameBuffers on two options:
...
hack_noDepthFrameBuffers and hack_blurPauseScreen.
hack_blurPauseScreen is for games, which copy color buffer into depth buffer area,
blur it and use as background image. Examples: Conker BFD, Mickey USA
hack_noDepthFrameBuffers is for games, which never use depth buffer area as texture
Example: F-1 Pole Position, Mario Golf.
2015-05-13 10:19:18 +06:00
Sergey Lipskiy
2f83ab8963
Correct code for 'noDepthBuffers' situation.
...
Enable 'noDepthBuffers' for "MICKEY USA".
Fixed pause screen in "MICKEY USA"
2015-05-13 10:19:16 +06:00
Sergey Lipskiy
4a9e7cdc1f
New FB validity check based on checksum of RDRAM content.
2015-05-13 10:19:14 +06:00
Sergey Lipskiy
1e5b7def3d
Replace DEPTH_CLEAR_COLOR constant by game dependant variable.
...
Several games use non-standart value for depth buffer clear.
This value must be known beforehand for correct emulation.
Fixed NFL Quarterback Club 2000: gfx screwed up #148
2015-05-13 10:19:02 +06:00
Sergey Lipskiy
503612b99e
Fix tile load when it is out of TMEM.
...
Fixed texture load in Bomberman 64 - The Second Attack, #122
2015-05-13 10:18:58 +06:00
Sergey Lipskiy
88e751b13b
Implement FBO height correction. Fixed replays in 1080.
2015-05-13 10:18:54 +06:00
Sergey Lipskiy
1b2b9f9865
Replace gDP.colorImage.changed by FrameBuffer::m_changed
2015-05-13 10:18:53 +06:00
Sergey Lipskiy
eb42f8fe46
Code cleanup: remove unused gDP.texRect struct and related code.
2015-05-13 10:18:50 +06:00
Sergey Lipskiy
f266e91981
Remove textures coordinates swap in case of lower coordinate is larger than higher one.
...
It is legacy code. Not sure which issue it intended to fix.
2015-05-13 10:18:49 +06:00
Sergey Lipskiy
bc34838db6
Fix pause screen in Conker BFD.
...
How it work:
- content of previous main frame buffer is copied into depth buffer area.
- CPU applies blur to th eimage in depth buffer area.
- Depth buffer is used as background texture for pause screen.
Solution:
1. Do not use depth buffer FBO as texture. Image must be load from RDRAM.
2. If current color image is depth image and previous color buffer is used as
texture for it, copy content of color image in RDRAM to depth image area.
2015-05-13 10:18:45 +06:00
Sergey Lipskiy
d06befb4eb
Add a hack for Mario Golf replays.
...
Replays works only if depth buffer FBO is NOT used as texture
because CPU copies color frame buffer for replays into depth buffer area.
Pause screen in Zelda OOT is copied into depth buffer area and it works only
id depth buffer FBO IS used as texture. Thus it is impossible to write general code
for both situations.
2015-05-13 10:18:42 +06:00
Sergey Lipskiy
3c9ad5f730
Correct frame buffer - texture bounds intersection check.
...
Fixed bottom of background image in Dr.Mario
2015-05-13 10:18:29 +06:00
Sergey Lipskiy
6f40fa430b
Fix frame buffer content check in CheckForFrameBufferTexture.
...
Frame buffer area is cleared in FrameBufferList::saveBuffer.
If scissor does not equal to frame buffer size, clear is incorrect.
Solution: clear frame buffer area without scissoring.
Fixed background in Dr.Mario
2015-05-13 10:18:26 +06:00
Sergey Lipskiy
b353028969
Fixed fillrect drawing.
2015-05-13 10:18:24 +06:00
Sergey Lipskiy
f946a82e38
Fix replay in Mario Golf:
...
replay is copied to a area, which is used for depth buffer.
Added check that found frame buffer is not depth buffer.
2015-05-13 10:18:24 +06:00
Sergey Lipskiy
d6b6204959
Code cleanup in gDPSetColorImage
2015-05-13 10:18:13 +06:00
Sergey Lipskiy
0197bfa104
Correct depth_compare_shader.
...
Add primDeltaZ support.
2015-05-13 10:17:16 +06:00
Sergey Lipskiy
626fdf8f2f
Fix texture bytes calculation for CheckForFrameBufferTexture in gDPLoadTile.
...
Fixed last rects of pause screen Banjo Tooie.
2015-05-13 10:17:06 +06:00
Sergey Lipskiy
163d8a1505
Code cleanup in gDPLoadTile.
2015-05-13 10:16:55 +06:00
Sergey Lipskiy
d55c95d671
Fix gDPLoadTile: fixed bytes per line calculation.
...
Fixed Scars: wrong sky #200 .
2015-05-13 10:16:54 +06:00
Sergey Lipskiy
6e3c1ec76f
Skip degenerate rects.
...
Fixed scars europe: wrong position bar in game #221
2015-05-13 10:16:54 +06:00
Sergey Lipskiy
7cabb325ba
Correct bytes calculation in loadblock broken in commit fd6a64997.
2015-05-13 10:16:40 +06:00
Sergey Lipskiy
8b7106ed38
Fix gDPSetPrimDepth for the case when viewport is not set.
...
Fixed logos in Mario Tennis.
2015-05-13 10:16:37 +06:00
Sergey Lipskiy
1bdc3cb1ed
Rewrite SetOtherMode_H and SetOtherMode_L.
...
Fixed Paper Mario.
2015-05-13 10:16:36 +06:00
Sergey Lipskiy
40d99fd9ca
Ignore degenerate texrects.
...
Fixed issues in Daikatana and Rat Attack.
2015-05-13 10:16:31 +06:00
Sergey Lipskiy
fbefc49c15
Fix bytes calculation in loadblock.
...
Fix Bettle adv racing: incorrect shadow project for map in menu #100
2015-05-13 10:16:29 +06:00
Sergey Lipskiy
9408d4b16d
Fix gDPSetPrimDepth(). Z is in range [-1, 1];
2015-05-13 10:16:28 +06:00
Sergey Lipskiy
aafebd1676
Fix depth problem in Elmo's Letter Adventure and Taz Express.
...
issue #155
2015-05-13 10:16:17 +06:00
Sergey Lipskiy
337f0f1bf1
Fix gDPLoadTileInfo fill in gDPLoadTile and gDPLoadBlock.
2015-05-13 10:16:13 +06:00
Sergey Lipskiy
59869483fc
Fix texrect flip.
2015-05-13 10:16:09 +06:00
Sergey Lipskiy
048a1576fb
Set minimal texrect height to 1.0
...
Fixed horisontal strips in GE intro background taxtures, #157
2015-05-13 10:16:08 +06:00
Sergey Lipskiy
89250a0751
Fix fillrect when gamma correction is on.
2015-05-13 10:15:59 +06:00
Sergey Lipskiy
c984298b7b
Implement search for hires texture. WIP
2015-05-13 10:15:41 +06:00