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

126 Commits

Author SHA1 Message Date
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