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

1879 Commits

Author SHA1 Message Date
Sergey Lipskiy
d5412d30e1 Add support for software depth render to OGLRender::drawDMATriangles 2016-09-27 21:51:12 +07:00
Sergey Lipskiy
39da91bb93 Move gDPFillRDRAM to FrameBufferList::fillRDRAM
Correct FrameBuffer::isValid()
Code cleanup.

Fixed Mickey Speedway USA is broken again. #1132
2016-09-27 21:43:28 +07:00
Sergey Lipskiy
f426d61881 Correct depth buffer attachment.
Fixed Link's portrait is missing in the pause screen #1134
2016-09-26 17:15:47 +07:00
Sergey Lipskiy
16406bb1b0 Fixed Majora's mask in-game pictures look incorrect with software depth buffer #1131 2016-09-23 12:05:48 +07:00
Sergey Lipskiy
8ea44cac8e Code cleanup: remove unused data fields from OGLRender::triangles 2016-09-23 11:39:21 +07:00
Sergey Lipskiy
d6dbfad902 Correct fix for #977 2016-09-23 10:57:44 +07:00
Sergey Lipskiy
3567dc6bf0 Add hack for WinBack to remove gray rectangle in HLE mode.
The hack removes weird texrect, which appears only in HLE mode.

Fixed The famous winback square bug #63
Fixed operation winback: sky doesn't move (regression) #578
2016-09-22 22:11:01 +07:00
Sergey Lipskiy
38ff9e97d5 Reset texture mode to normal in gSPSetSpriteTile.
Fixed Nushi Zuri 64 incorrect gfx #977
2016-09-22 20:50:51 +07:00
Sergey Lipskiy
3db8c102fb Move string arrays from convert.h to convert.cpp
Make UnswapCopyWrap and DWordInterleaveWrap not inline.
2016-09-22 16:17:37 +07:00
Sergey Lipskiy
aadd94ccc4 Implement thick line drawing.
OpenGL has limitation on line thickness. N64 can use really thick lines.

Fixed Flygin dragon: wrong gfx bands and then crash under mupenplus (but not emu related bug?) #171
2016-09-21 15:27:35 +07:00
Sergey Lipskiy
91f03c70bc Use dmaVertices when draw with drawScreenSpaceTriangle. 2016-09-21 15:24:15 +07:00
Sergey Lipskiy
77d0c9aada Code refactor: rename drawLLETriangle to drawScreenSpaceTriangle. 2016-09-20 16:21:54 +07:00
Sergey Lipskiy
6f3f21667e Call texrect drawer before drawing a line.
Fixed flickering/misssing gfx in jeremy mcgrath 2000 with render texrec in native res #1114
2016-09-19 15:33:59 +07:00
Sergey Lipskiy
b5163ca048 Drop cfb flag when buffer changed. 2016-09-19 15:32:24 +07:00
Sergey Lipskiy
8dad84cc39 Fix set current depth buffer.
Fixed depth issues in Toy Story 2.
2016-09-19 11:50:05 +07:00
Sergey Lipskiy
e28bebd17e Add validity check for background fb textures.
Fixed Nushi Zuri 64: fb background doesn't work anymore #1115

Problem: The game normally uses color and depth buffers.
When it needs to show rectangle with text, CPU copies current color buffer
by depth buffer address. This buffer rendered as background, text rendered over.
Plugin detects buffer usage and tries to use depth buffer as background texture.
That buffer in video memory has no color information, because data copied by CPU and contained in RDRAM.

Solution: check that found frame buffer is valid.
In this case validity check will fail because RDRAM content modified by CPU,
and background will be read from RDRAM.
2016-09-16 17:09:25 +07:00
orbea
f7576185cc Fix Texture Cache slow down and crashes 2016-09-15 15:44:55 -07:00
gizmo98
04a1faa689 Remove old arm assembler.
GCC replaces (value << 8) | (value >> 8) with __builtin_bswap16 if -Os,
-O1 or higher is used. __builtin_bswap16 is as fast as the assembler
declaration.
2016-09-13 09:34:01 +07:00
Logan McNaughton
6c3b3feb58 Fix Image Textures on OpenGL < 4.3 2016-09-12 09:32:26 -06:00
Sergey Lipskiy
175ab35971 VI_UpdateSize() : correct width/height calculation in interlaced mode.
Still hackish.

Fixed Star Wars Episode One Racer Flicker and Black Screen with Frame Buffer Emulation #1119
Fixed Top Gear Overdrive black screen #1122
2016-09-12 21:27:38 +07:00
Sergey Lipskiy
5a296525ea FrameBufferList::renderBuffer : correct condition for Xoffset. 2016-09-12 21:26:37 +07:00
Sergey Lipskiy
9d2d8f481e Code cleanup 2016-09-11 18:08:09 +07:00
Sergey Lipskiy
32172d30af Fix depth buffer clear for aux buffers. 2016-09-11 18:08:03 +07:00
Sergey Lipskiy
21ef068f2a Fix typo in FrameBuffer::getTexture 2016-09-11 15:27:59 +07:00
Sergey Lipskiy
49dd8ff796 Correct render to depth buffer when N64 depth compare enabled. 2016-09-09 21:49:52 +07:00
Sergey Lipskiy
b033cb2ecf Fix depth buffer render when fb emulation disabled. 2016-09-09 12:39:41 +07:00
Sergey Lipskiy
06188bddd4 Force disable fragment depth write option for GLES2. 2016-09-09 10:26:20 +07:00
Logan McNaughton
926e6c9225 Changes to support mingw 2016-09-09 10:07:47 +07:00
Sergey Lipskiy
9faeb2bfb9 Force clear depth buffer for aux buffers.
Fixed uncleaned depth buffer problem when depth buffer cleared partially via fillrect.
2016-09-08 22:29:12 +07:00
gizmo98
a471b130e7 CRC.cpp: add ARMv8 crc intrinsics
Speedup:
CRC_Calculate() up to 11x
CRC_CalculatePalette() up to 4x

Will be only used if the right compiler flags are set.
rpi3: -march=armv8-a+crc -mtune=cortex-a53

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0801f/pge
1427897662265.html

If CRC32 can be replaced with CRC32C SSE4.2 CRC32C intrinsics could be
added as well.
https://github.com/gonetz/GLideN64/pull/1056#issuecomment-244530166
2016-09-07 21:34:19 +07:00
Sergey Lipskiy
4049bfc53b Do not add blending mux variables to shader when legacy blending enabled. 2016-09-07 21:13:00 +07:00
Sergey Lipskiy
d289d4c65a Correct conditions when render to depth buffer can be enabled. 2016-09-07 21:11:31 +07:00
Sergey Lipskiy
7dca7f8f4d Implement depth buffer copy for Mario Golf.
Fix Mario Golf: Animated effects render in front of course #312
2016-09-06 19:37:11 +07:00
Sergey Lipskiy
bbcd0be949 Remove unused code. 2016-09-05 16:21:29 +07:00
Sergey Lipskiy
27cdae1e33 Correct condition for depth buffer clear again.
Fixed Body Harvest graphics missing (Regression) #1107
2016-09-05 12:14:51 +07:00
Sergey Lipskiy
669337f5ab Correct condition for depth buffer rendering:
games may draw in depth buffer in fill mode too.

Correct condition for depth buffer clear.

Fixed Mario Tennis 64's Versus Screen Issue #771
2016-09-04 20:26:41 +07:00
Sergey Lipskiy
3794a2bf66 Fix native res texrects when uniform set is used.
Fixed Everything looks yellow with Native Res Texrects #1102
2016-09-04 20:21:22 +07:00
Sergey Lipskiy
50720e1dfc Correct msvc project files. 2016-09-04 19:51:10 +07:00
Sergey Lipskiy
1a5e971eea Minor code cleanup in gSPModifyVertex. 2016-09-02 11:05:38 +07:00
Sergey Lipskiy
4c226bcc95 Do not show rightmost pixels in frame buffer when AA and divots elimination enabled in VI.
Problem: Some games have strange glitch, which looks like vertical line of
pixels outside of right bound of the image. Examples: JFG title screen,
both Zelda games when new game started. Software plugin has the same issue,
but when image passes VI stage, the problem disappears. Most likely
VI filters somehow eat the rightmost pixels. I suspect that it is result of
divots elimination. Thus, the fix works like this:
when divot flag is set the rightmost column of pixels is not shown.
2016-08-29 18:32:16 +07:00
Sergey Lipskiy
d80bd636e2 Emulate crazy way of shifting image horizontally, which bottom of the 9th uses.
Fixed bottom of the 9th: screen not centered #862
2016-08-28 18:22:44 +07:00
Sergey Lipskiy
1bdce5c579 Fix ColorBufferToRDRAM::_prepareCopy: blit current buffer if its scale is not 1.0
Fixed 640x480 framebuffer bug Perfect Dark (U) #844
2016-08-28 16:53:07 +07:00
Sergey Lipskiy
3bfebd0910 Remove allocated frame buffer if its color depth is less then necessary.
Fixed Majora's Mask screen turns red #790

Problem description:
the game allocates 8bit aux frame buffer when enter to subscreen.
When screen shrink effect started, the game allocates 16bit buffer on the same address.
Since plugin already had buffer allocated, it reused that buffer. Since the buffer's
texture had only red component, whole screen turned red.

Fix: create new buffer if color depth of existing buffer is less than necessary.
2016-08-28 16:00:50 +07:00
Sergey Lipskiy
69870ad397 Do not use software depth render when fb emulation is off. 2016-08-28 15:22:07 +07:00
Sergey Lipskiy
a5d3ff9393 Do not correct VI width and height in CFB mode.
Fixed MAME64 incorrect menu #861
2016-08-28 14:56:10 +07:00
orbea
e16e485bcf LICENCE is spelled LICENSE 2016-08-27 10:58:30 -07:00
Sergey Lipskiy
232d35d182 Do not update noise texture when it is not initialized. 2016-08-27 18:45:49 +07:00
Sergey Lipskiy
10c8878a34 Correct GUI options names and tooltips.
Update translation files.
2016-08-27 13:05:00 +07:00
Sergey Lipskiy
1fca5c5187 Correct MSVS project files. 2016-08-27 12:00:42 +07:00
Logan McNaughton
05d2f150da GLSL Improvements 2016-08-24 15:16:53 +07:00