1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-06-30 08:24:05 +00:00
Commit Graph

2284 Commits

Author SHA1 Message Date
Sergey Lipskiy
e09d153233 Do not test values of 8bit buffer before write them to RDRAM.
Fixed copy of 8bit aux buffers to RDRAM.

refs #2461
2021-02-21 15:41:56 +07:00
fzurita
35554dabf0 Fix N64 Depth compare with Adreno 2021-02-17 16:58:28 +07:00
Sergey Lipskiy
442d4ed894 Fix near-palne clipping for GLES.
Fixes #2449 Cruis'n world invisible car
2021-02-14 01:00:10 +07:00
s2s
090b38e2d3 Optimize coverage computation algorithm 2021-02-13 15:26:25 +07:00
Sergey Lipskiy
7a0dd7ff1a Fixes in software clipping:
fixed culling when viewport is negative.

Fixed Graphical issues in Diddy Kong Racing #2447
2021-02-07 18:47:12 +07:00
fzurita
f48b158c0d Fix usage of GL extension GL_EXT_draw_elements_base_vertex 2021-02-07 11:39:19 +07:00
fzurita
dc6340bfff Fix issue where the barycoords vertex attribute was not being disabled 2021-02-04 20:06:43 +07:00
fzurita
c92d13c094 Improve the draw elemenets base vertex check 2021-02-04 20:05:13 +07:00
Rosalie Wanders
31b38a7a2b GLideNHQ: add wildcard support 2021-02-02 17:55:14 +07:00
Sergey Lipskiy
88e606de95 Another fix for texrect lower y. Follow-up 1e915af.
Fixed #2402 Wave race, black lines in texrects [Regression].
2021-01-31 21:25:27 +07:00
Sergey Lipskiy
7d237650ef Correct texture coordinates calculation in gSPSprite2DBase.
Fixed WipEout 64 Texture Pack #2423
2021-01-24 19:40:47 +07:00
fzurita
85ad11bbdd GLideN64 soft vertex clipping performance improvement for Adreno GPUs 2021-01-22 15:14:46 +07:00
fzurita
e129d66c22 Compile shader from keys if shader storage binary is invalid 2021-01-20 22:47:33 +07:00
Sergey Lipskiy
402cf6f8b6 Implement software vertex clipping. 2021-01-20 17:07:23 +07:00
fzurita
8b75b5dc96 Fix incorrect width used for sync color buffer reads with EGLImage 2021-01-20 16:42:35 +07:00
S2S
eb8ac40136 Revert 538674d
Fixes Oak's Check with CopyColorFromRDRAM enabled
2021-01-08 23:00:42 +07:00
Sergey Lipskiy
1c7b8914bc Revert cmake version back to 2.6 for GLideNHQ because it don't compile on Mac with 3.9 2021-01-06 12:30:42 +07:00
Sergey Lipskiy
a44b58add1 Fix warnings.
refs #2428
2021-01-05 14:17:58 +07:00
fzurita
2aa18a8ac7 Fix recently introduced GLES 2.0 GLSL compilation errors 2021-01-05 13:40:47 +07:00
Sergey Lipskiy
ad272060f7 Disable coverage by default.
Fixes #2426
2021-01-03 21:55:08 +07:00
Rosalie Wanders
66051912c5 TextDrawer::drawText: add setScissor 2020-12-31 11:44:45 +07:00
Sergey Lipskiy
955c2f3b17 Add isHWLSupported bit to CombinerKey.
A game may use several microcodes, where some microcodes support HW lighting and others are not.
The same combiner can be used for both cases. isHWLSupported bit helps to resolve that problem.
2020-12-28 16:18:18 +07:00
Sergey Lipskiy
f9ef2bd8fb Remove old LLE code. 2020-12-27 21:48:45 +07:00
Jj0YzL5nvJ
1ccdec39af Avoid more problems with spaces and drop AWK 2020-12-27 15:56:32 +07:00
oddMLan
af0b9382fe [UI-wtl] Fix texture dir saving
Also: Attempt to mkdir directory if typed/copied to the edit field (ported from 6d47fa5c48)

Fixes issue #2330
2020-12-27 15:51:02 +07:00
oddMLan
3d5311d180 Add pixel coverage checkbox to GLideN64-wtl 2020-12-27 13:11:38 +07:00
Sergey Lipskiy
ca68dc3675 Do not fail if indices of barycoords attributes are greater or equal to max vertex attributes. 2020-12-27 13:11:32 +07:00
S2S
2f8372c113 Cleanup coverage calculation 2020-12-27 12:20:46 +07:00
S2S
a214ab822e Standarize the number of barycentric coordinate vertex attributes.
Use only two coordinates as vertex attributes for triangles to match the number of coordinates rectangles use. The third one can be computed in the vertex shader.
2020-12-27 12:20:42 +07:00
Sergey Lipskiy
47054eabc0 Add enableCoverage setting.
Not implemented for GLideNUI-wtl yet.
2020-12-27 12:20:39 +07:00
Sergey Lipskiy
2233cf9f04 Support 'barycoords' vertex attribute in unbuffered drawer. 2020-12-27 12:20:35 +07:00
S2S
61172283c1 Update blender to use coverage 2020-12-27 12:20:19 +07:00
S2S
fa848dc3f9 Fix issue with dual source blending 2020-12-27 12:01:16 +07:00
S2S
fdf3bc4f21 Compute coverage value 2020-12-27 12:01:16 +07:00
S2S
486cf59614 Load barycentric coordinates as vertex attributes 2020-12-27 12:01:16 +07:00
Sergey Lipskiy
192317955e Limit maxMSAALevel by 16. 2020-12-26 10:24:00 +07:00
Rosalie Wanders
ddec3866a7 Implement cross-platform max MSAA level detection 2020-12-26 10:23:54 +07:00
Sergey Lipskiy
f04ac8296d Implement max MSAA level detection.
Zilmar spec and Windows only.

Fixes #2216 MSAA max not 16x in UI
2020-12-26 09:51:32 +07:00
Rosalie Wanders
deb84826e4 Implement linux support for OSD font settings 2020-12-25 20:19:54 +07:00
Rosalie Wanders
6d47fa5c48 GLideNUI: attempt to mkdir texture pack directories 2020-12-25 20:03:52 +07:00
Rosalie Wanders
1833971dc5 GLideNUI: correct macro in saveCustomRomSettings 2020-12-25 19:59:42 +07:00
Sergey Lipskiy
8d028a9eaf Add debug option to force enable unbuffred drawer. 2020-12-23 17:09:55 +07:00
fzurita
3b6aa38b14 Disable "draw_elements_base_vertex" extension if renderer is PowerVR and
GLES is < 3.2
2020-12-21 12:02:04 +07:00
fzurita
c39df6b8c2 Fix issues with post processing and scaling changes 2020-12-20 18:38:20 +07:00
fzurita
8f387f2d08 Enable blast corps hack for frame buffer fetch blending 2020-12-20 18:26:58 +07:00
fzurita
02e6ccb3ef Fix missing check for frame buffer fetch in unemulated blending modes 2020-12-20 18:26:58 +07:00
fzurita
895401f981 Cleanup unneeded code 2020-12-17 17:57:37 +07:00
Sergey Lipskiy
8500bc08e2 Add hotkey for "force gamma correction" setting.
Fixed #2318 Request: Keyboard shortcut to enable Custom Gamma Correction Levels
2020-12-05 17:35:02 +07:00
Sergey Lipskiy
22842a56fc Disable all hotkey by default.
Fixes #2394 Can't disable or change default hotkeys for GLideN64
2020-12-05 16:02:06 +07:00
Sergey Lipskiy
93524b65f7 Fix compilation of GLideNUI-WTL.
Hotkeys are not supported in wtl ui yet.
2020-12-02 18:14:08 +07:00
Rosalie Wanders
1e07bbcbb0 osal_keys_unix: add linux support 2020-12-02 18:14:08 +07:00
Sergey Lipskiy
abb9108f14 Implement configurable hotkeys. 2020-12-02 18:14:08 +07:00
Sergey Lipskiy
7a38e80448 Correct TxFilter::TxFilter - remove colon in rom name. 2020-11-25 16:58:48 +07:00
dankcushions
cb76d2f39d Added check for GL_EXT_draw_elements_base_vertex 2020-11-25 12:49:27 +07:00
dankcushions
0e228e9109 Removed GLES version check for glBufferStorage, allowing for any device that supports it. 2020-11-25 12:47:03 +07:00
Rosalie Wanders
3df9b2c312 DisplayWindowMupen64plus: disable WithRate function on any failure 2020-11-23 14:51:28 +07:00
Rosalie Wanders
07ce8f7bcb FrameBuffer: don't resolve multisampled texture when m_pResolveTexture is null 2020-11-23 14:48:58 +07:00
Rosalie Wanders
5f1803ab29 Introduce pluginNameWithRevision 2020-11-19 16:50:32 +07:00
S2S
bb05409c16 Disable clamping for special textures 2020-11-16 10:40:47 +07:00
fzurita
e89f5fedcc Fix build error and warning with Android 2020-11-16 10:39:10 +07:00
Sergey Lipskiy
78c89fbbfd Fix some of PVS-Studio warnings. 2020-11-14 20:00:19 +07:00
Sergey Lipskiy
46c65776a0 Code refactor and cleanup:
* type cast fixes
* signed/unsigned fixes
* code formatting fixes
* class members initialization fixes
2020-11-14 16:54:28 +07:00
Sergey Lipskiy
ddd93673d8 Fixed some undefined behaviour errors found in #2364 2020-11-14 16:50:50 +07:00
gizmo98
ec02cc722f Spread bayer matrix
Multiplay matrix values with 2.0f so values are better spread between
1.0 and 0.0.
2020-11-13 10:08:04 +07:00
gizmo98
93ddc890e2 Use angrylion's magic square matrix
We use a precalculated matrix for float color values. It’s angrylion’s
matrix divided bei 16.0f * 2.0f.
2020-11-13 10:08:04 +07:00
fzurita
9aec59056f Fix some shader compilation issues 2020-11-11 13:34:45 +07:00
S2S
ff62e3cf18 Cleanup blending code
Abstract extension specific code to fragment shader header
2020-11-11 13:34:45 +07:00
fzurita
f01405bc75 Implement N64 blending using framebuffer fetch extensions 2020-11-11 13:34:45 +07:00
fzurita
d509758b6f Disable dual source blending for Adreno, it causes GPU driver crashes 2020-11-11 13:34:45 +07:00
fzurita
1b70d5b145 Fix shader compilation errors with Adreno GPUs with hybrid filter 2020-11-11 13:34:45 +07:00
Sergey Lipskiy
e81022ad71 Correct _calculateCRC:
tile tmem address can be set to a value greater than 512, that is above TMEM size.
It should be used with proper mask for tileTmemInBytes calculation.

Fixed #2360 Castlevania 64 Crash
2020-11-10 15:41:35 +07:00
Sergey Lipskiy
b6e030c8b8 [Code cleanup] Fix spaces. 2020-10-31 15:40:03 +07:00
gizmo98
e5d59a6394 Use angrylion's bayer matrix
https://github.com/gonetz/GLideN64/issues/2359

We use a precalculated matrix for float color values. It’s angrylion’s
matrix divided bei 16.0f.
https://github.com/project64/angrylion-rdp/blob/093754a4a53437925824317a
b22ce6a56748fe14/n64video.cpp#L2509
2020-10-31 13:55:10 +07:00
purplemarshmallow
909cf172b9 correct "remove hack_texrect_shade_alpha"
fix regression  #2369
2020-10-31 12:18:57 +07:00
gizmo98
4981503bfc Code refactor: add vi status constants 2020-10-29 16:55:37 +07:00
Logan
cf7b3c84ce Protect against addressing nullptr 2020-10-29 16:51:27 +07:00
fzurita
c7144d0775 Fix issues with EGL image with Intel GPUs 2020-10-18 12:23:45 +07:00
Logan McNaughton
42c196c30a Update xxHash to 0.8.0 2020-10-12 13:25:53 +07:00
S2S
5fa66762b3 Define STVEC in an Intel friendly way. 2020-10-12 12:58:14 +07:00
Jj0YzL5nvJ
b5a6b3b1e2 Avoid problem with spaces 2020-10-12 12:56:14 +07:00
Rosalie Wanders
b200b33b84 DisplayWindow: introduce _restart()
DisplayWindowMupen64plus: m_resize{Width,Height} moved from _resizeWindow() to _restart()
2020-10-08 16:13:24 +07:00
purplemarshmallow
9a69fe8e58 remove hack_texrect_shade_alpha 2020-10-08 15:57:35 +07:00
Rosalie Wanders
00dac336f8 GLideNUI: detect application instance dynamically 2020-10-02 17:08:31 +07:00
Rosalie Wanders
4f5a763666 getRevision: silence error if Revision.h doesn't exist 2020-10-01 18:09:20 +07:00
Rosalie Wanders
80ecddd574 GLideNUI: Fix sprintf deprecation warning 2020-10-01 18:06:44 +07:00
Sergey Lipskiy
3dfa0e7622 [Code cleanup] Fix code formatting in mupen64plus_DisplayWindow.cpp in accordance with the rest of the code. 2020-10-01 18:05:24 +07:00
Rosalie Wanders
3179b37e8a Fix _resizeWindow for M64P_GLIDENUI 2020-10-01 18:00:30 +07:00
Rosalie Wanders
1f5f9874d9 Correctly implement FindPluginPath for Windows 2020-09-19 21:53:24 +07:00
Rosalie Wanders
229a6bc788 Correctly implement FindPluginPath for Linux 2020-09-16 19:05:17 +07:00
Rosalie Wanders
366ff85de3 Allow GLideNUI to work with mupen64plus
* Update the mupen64plus API headers
  * Add the new video extension functions in the opengl wrappers
  * Pull new headers from upsteam mupen64plus-core

* Modify CMakeLists.txt
  * Add GLideNUI source files
  * Expose new MUPENPLUSAPI_GLIDENUI option
    * This allows you to compile GLideN64 for mupen64plus with GLideNUI
    * NOTE that this only works with front-ends which call PluginConfig

* Move src/windows/Config_windows.cpp to src/GLideNUI/Config_GLideNUI.cpp
  * This makes more sense because it's not windows-exclusive anymore

* Add src/GLideNUI/fullscreenresolutions_mupen64plus.cpp
  * This allows GLideNUI to enumerate the fullscreen refresh rates and resolutions

* Modify src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp
  * This modification allows mupen64plus with GLideNUI to use the selected fullscreen resolution and refresh rates

* Expose a new PluginConfig function which calls Config_DoConfig()
  * NOTE that this only works with front-ends which call this function
  * NOTE that this technically breaks the mupen spec
2020-09-16 19:02:46 +07:00
Sergey Lipskiy
35567da2ad Modifications for mip-mapped textures load.
Treat specail case for Southern Swamp grass texture, Zelda MM, #2315
2020-09-16 18:50:55 +07:00
Sergey Lipskiy
1e915af002 Correct gDPTextureRectangle:
use ceil(lry) instead of max(lry, uly + 1.0f)
It fixes the issue with zero height rectangles,
which often contain a garbage, see #2157
2020-09-16 18:49:53 +07:00
Sergey Lipskiy
15cbdc6593 [Code refactor] Remove redundant code. 2020-08-31 11:53:50 +07:00
Sergey Lipskiy
76d72f77b7 [Code refactor] Correct TextureCache::_load:
add RAII holder for texture data.
2020-08-31 11:53:41 +07:00
oddMLan
1111a7636c Add missing settings to Zilmar-spec from Mupen-spec
This allow testing these settings more easily with a Zilmar-spec emulator by just editing the ini
2020-08-14 17:29:04 +07:00
oddMLan
38fd50414f Fix downscaling aliasing caused by 2f5280c 2020-08-14 17:29:04 +07:00
oddMLan
d7d68c4667 GLideN64.sln: Add TinyXML++ and ts2lang projects
This will allow seamless translation from .ts to .Lang files compatible with the WTL GUI
2020-07-17 21:44:08 +07:00
oddMLan
e808510b86 [GLideNUI-wtl] Always use internal English strings (ignore gliden64_en.Lang) 2020-07-17 21:44:08 +07:00
oddMLan
1f4912469a [GLideNUI-wtl] Update Language class 2020-07-17 21:44:08 +07:00
oddMLan
18dd3ad662 [GLideNUI-wtl] m_Gama -> m_Gamma 2020-07-17 21:44:08 +07:00
oddMLan
2dc2810408 [GLideN64-wtl] Move util.h to util/util.h 2020-07-17 21:44:08 +07:00
S2S
d13a3d7890 Perform hdRatio division with floating point precision. Allows non-integer scaled HD textures, but their use is discouraged. 2020-07-17 20:26:32 +07:00
S2S
65ad89ae3a Delay texcoord correction until multiplying by hdratio 2020-07-17 20:26:32 +07:00
Sergey Lipskiy
2f5280c8ac Correct texture filters in rendering frame buffer to main color buffer. 2020-07-01 22:01:14 +07:00
Sergey Lipskiy
5907cff6c7 FrameBufferList::renderBuffer(): fix dstScaleX when overscan enabled in native-res mode. 2020-07-01 21:59:51 +07:00
Sergey Lipskiy
30e7b83e43 Correct GraphicsDrawer::_updateScreenCoordsViewport
Fixed starcraft intro movie in OnePiece bg mode.
2020-06-28 18:22:21 +07:00
Sergey Lipskiy
80b219effa Correct vertex Z calculation in GraphicsDrawer::_drawThickLine
Note: viewport transformation of Z coordinate performed in fragment shader.

Fixed #2237 Mario Artist - Polygon Studio: line3D bug (HLE)
2020-06-28 17:36:20 +07:00
Sergey Lipskiy
1b36d5740b Debug dump cmd in LLE mode. 2020-06-28 11:06:37 +07:00
Sergey Lipskiy
7b6e304d84 Fix OSD info in fullscreen mode.
It was broken by commit 156171be.
2020-06-25 16:30:11 +07:00
Sergey Lipskiy
0a755614a0 Correct UTextureEngine::update() for background textures.
Fixed #2251 Zelda: OnePiece backgrounds broken
2020-06-21 18:15:53 +07:00
oddMLan
cbc0dfd90e Toggle AA state like Qt GUI 2020-06-16 16:59:44 +07:00
oddMLan
9bf9202c47 Fix profile load when GLideN64.ini doesn't exist The logic looked incorrect here, but Qt loaded the profile correctly somehow. I tested this change and it doesn't change anything in the Qt version (which is good) 2020-06-16 16:59:44 +07:00
oddMLan
d00cf9f214 Fix profile load when GLideN64.ini doesn't exist 2020-06-16 16:59:44 +07:00
oddMLan
32dbfe1d1f Language: Escape quotes 2020-06-16 16:59:43 +07:00
oddMLan
91287c2e4c Reload config on SaveSettings 2020-06-16 16:59:43 +07:00
oddMLan
71afc19427 Separate "Dump" and "Reload" options Continuation of commit 7228d0d5db 2020-06-16 16:59:43 +07:00
Sergey Lipskiy
f7b6f158b3 Up shader storage version. 2020-06-16 16:59:43 +07:00
Sergey Lipskiy
0c5d036395 Correct _calculateCRC:
calculated texture size in bytes can be too large to fit TMEM.
It leads to out-of-bounds reads in checksum calculations and thus random checksum.
Example:

Fixed Unplayable performance with any kind of texture enhancement. #2279
2020-06-16 16:57:47 +07:00
Sergey Lipskiy
7228d0d5db Separate "Dump" and "Reload" options. 2020-06-14 15:52:09 +07:00
Sergey Lipskiy
156171bebd Set viewport in TextDrawer::drawText
Fixed text messages not shown in some games.
2020-06-14 15:52:05 +07:00
Sergey Lipskiy
ed1648c438 Disable dual blending in Texrect Drawer Mode. 2020-06-14 11:51:33 +07:00
S2S
c48841cfeb Implement dual source blending.
Fixes Donkey Kong 64: Gate textures change from a distance. #585
Fixes Pokemon Stadium wrong transparency in warning sign #728
2020-06-14 11:51:33 +07:00
S2S
3df3df9964 Make glBlendFuncSeparate() available 2020-06-14 11:51:33 +07:00
paradadf
4c8a40c6d8 Fix type cast error for 64bit compilation
RSP_LoadMatrixX86.cpp:92:28: error: cast from 'u8* {aka unsigned char*}' to 'int' loses precision [-fpermissive]
2020-06-14 11:50:57 +07:00
M4xw
4f58d66e96 Fix regressions in GLES 2.0 support introduced by a405ad8
- IOS compiler also doesn't like the vec2 as return Type, thus it's made a out param
2020-05-31 21:07:48 +07:00
S2S
46d170e5fb Fix error introduced by c14ae30 2020-05-19 11:51:13 +07:00
S2S
c14ae30c6d Fix out of bounds texel fetch. Remove Mario Tennis workaround. 2020-05-17 20:39:47 +07:00
Sergey Lipskiy
4974f64a56 Correct precision in shaders. Follow up 1a9d37053 2020-05-13 09:32:20 +07:00
S2S
1a9d370530 fix floating point precision issue 2020-05-13 09:21:53 +07:00
Sergey Lipskiy
499ba7dc1a Set inverted Y to false for Vivid Dolls microcode.
Fixed #2238 vivid dolls: upside down gfx (HLE)
2020-05-12 18:03:41 +07:00
S2S
f5ee3523ef Fix out of bounds texel fetch issues.
Fixes #2257 Dark Rift background issue
2020-05-12 10:44:54 +07:00
Sergey Lipskiy
2616ba9587 Code cleanup. 2020-05-11 18:17:46 +07:00
Sergey Lipskiy
be2f2244a2 Correct UTextureEngine::Update for special textures.
Fixed #2258 space silicon valley: first screen does not show
2020-05-11 17:48:18 +07:00
Sergey Lipskiy
edf5f9ac30 Fix load of 16bit RGBA textures when TLUT mode is TT_IA16
Fixed #2218 Taz express: little bug
2020-05-10 20:14:53 +07:00
Sergey Lipskiy
b505d29838 [Debugger] Fix textures display. 2020-05-10 19:34:21 +07:00
Sergey Lipskiy
3f9911ab9d Up shader storage version.
Fix some compilation warnings.
2020-05-10 16:40:20 +07:00
S2S
bb2221d55f Preliminary GLES2 implementation 2020-05-10 16:24:29 +07:00
S2S
d3720145e3 Add workaround for issue with Mario Tennis Intro 2020-05-10 16:24:29 +07:00
S2S
4834359ec1 Delay texture coordinate normalization. Adapt texture filter to texture engine. 2020-05-10 16:24:28 +07:00
S2S
a405ad8659 Create Texture Engine unit 2020-05-10 16:22:36 +07:00
Sergey Lipskiy
a140f0a989 Disable cull_face in GraphicsDrawer::drawScreenSpaceTriangle
It was removed by mistake in 0bc6cf7a11

Fixed #2251 Zelda: OnePiece backgrounds broken
2020-05-10 15:56:47 +07:00
zilmar
5f816d2a3d GLideNUI-wtl: fix read game prilfe setting in init 2020-05-10 15:56:44 +07:00
zilmar
64c7af548a GLideNUI-wtl: OnFullScreenChanged selects the last refresh rate, manually add refresh rates and select the correct one 2020-05-10 15:56:41 +07:00
Sergey Lipskiy
af906c8419 Use FILTER_NEAREST if enableHybridFilter is disabled
follow up ee0de5e66ce
2020-05-10 15:56:38 +07:00
oddMLan
4532209d43 Use FILTER_NEAREST if enableHybridFilter is disabled
Bilinear by itself looks ugly and it's only necessary to use it for the hybrid filter
2020-05-10 15:56:36 +07:00
oddMLan
d62a653e83 Replace if statements in hybridFilter
if statements are bad for performance in GLSL
2020-05-10 15:56:33 +07:00
oddMLan
2b42e02e69 Fix shader compilation errors in GLSL ES
-Added missing precisions
-Removed explicit floats
-Explicit cast get_texture_size to vec2
2020-05-10 15:56:30 +07:00
oddMLan
8b5509bb8f GLideNUI-wtl: Implement hiding MSAA Depth Warning 2020-05-10 15:56:25 +07:00
oddMLan
591d5d586d GLideNUI-wtl: Fix Fbinfo 2020-05-10 15:56:20 +07:00
oddMLan
c43cee1c03 GLideNUI-wtl: Focus Save and Close button
This makes it so you can press enter to save
2020-05-10 15:56:17 +07:00
Sergey Lipskiy
1cfdb4787d Use hybrid filter for upscale buffer copy and plain bilinear filter for downscale one.
Related to PR #2242
2020-05-10 15:56:09 +07:00
oddMLan
438bcc460f Update Hybrid Shader
This version doesn't use texel_fetch, hopefully fixes any slowdowns in mobile devices.
Also it offloads the bilinear filtering to the hardware.
2020-05-05 11:56:02 +07:00
Sergey Lipskiy
03b404bd4e Use noperspective shade color only for triangles with screen-space coordinates.
noperspective works incorrect for polygons, which are partially out of view.

Fixed #2240 SM64 strange green textures
2020-05-04 20:20:58 +07:00
Sergey Lipskiy
d494806186 Revert "Rewrite fog coordinate calculation:"
This reverts commit 7d4d0f282e.
2020-05-04 19:47:57 +07:00
Sergey Lipskiy
7d4d0f282e Rewrite fog coordinate calculation:
move it from vertex shaders to fragment ones.

Fixed #2234 SM64 Weird Shading on sand texture in Joly Roger Bay
2020-05-03 18:41:20 +07:00
Sergey Lipskiy
87274437cb [Debugger] Fix display of vertex alpha in HLE mode. 2020-05-03 15:14:25 +07:00
Sergey Lipskiy
c8cbafff71 Use the second color section of the Light structure for vertices with odd index (1, 3, ...).
Both color sections of the Light structure must store the same color,
but it is not so for SM64.

Fixed #2212 SM64 koopa's shorts are not correct in hle
2020-05-03 12:10:09 +07:00
zilmar
f525f8fdc0 GLideNUI-wtl: Return current font if fonts are not selected 2020-04-30 18:06:03 +07:00
zilmar
4750a268ae GLideNUI-wtl: Set config.font.name to arial if empty on load 2020-04-30 18:06:03 +07:00
zilmar
3acf3b6f75 Make sure config.font.name is not empty 2020-04-30 18:06:03 +07:00
zilmar
e692509f6e Reset g_face and g_ft 2020-04-30 18:06:03 +07:00
zilmar
47013e2473 Set buffer to nullptr after free 2020-04-28 15:50:37 +07:00
Sergey Lipskiy
a3af1a88e2 Correct LLETriangle ctor 2020-04-27 17:05:43 +07:00
Sergey Lipskiy
415cde8c52 LLETriangle: use m_flushed flag properly. 2020-04-27 17:05:43 +07:00
Sergey Lipskiy
acaa0d9fba Correct LLETriangle::start - set gSP.texture.tile to tile set for the triangle.
It is necessary since texture loading code uses gSP.texture.tile.

Fixed textures load in Supercross 2000.
2020-04-27 17:05:43 +07:00
Sergey Lipskiy
5b765ba874 LLETriangle : force flush triangles if tile is changed.
Fixed wrong textures is C&C intro.
2020-04-27 17:05:43 +07:00
Sergey Lipskiy
e3f0354565 LLETriangle::draw: correct Z for G_ZS_PRIM mode. 2020-04-27 17:05:43 +07:00
Sergey Lipskiy
0d0c47fb84 Replace doubles by 32bit floats in LLETriangle::draw. 2020-04-27 17:05:42 +07:00
Sergey Lipskiy
1d5fdf123e LLE triangle: set vertex depth to 0 when triangle command does not use depth.
Fixed depth compare issue with snow in Polaris SnoCross
2020-04-27 17:05:42 +07:00
Sergey Lipskiy
0bc6cf7a11 New LLE render. 2020-04-27 17:05:42 +07:00
oddMLan
84e92d1240 GLideNUI-wtl: Fix MSAA saving and Dithering checkboxes 2020-04-27 17:05:09 +07:00
oddMLan
01a1e05432 GLideNUI-wtl: Fix save to custom ini 2020-04-27 17:05:09 +07:00
zilmar
115399aa4b GLideNUI-wtl: Do not flush on each change, so turn off auto flush 2020-04-27 11:48:51 +07:00
zilmar
29bd0d10ab GLideNUI-wtl: Save to custom.ini 2020-04-27 11:41:26 +07:00
zilmar
bc69499b62 GLideNUI-wtl: fix white space 2020-04-27 11:41:15 +07:00
zilmar
bea0403d2c GLideNUI-wtl: Make sure clearing of selected font on load 2020-04-27 11:41:15 +07:00
zilmar
1934062d65 GLideNUI-wtl: in loading language, replacing new line was only replacing \ 2020-04-27 11:27:53 +07:00
oddMLan
0d68c25143 GLideNUI-wtl: Fix a couple oversights 2020-04-27 09:32:31 +07:00
oddMLan
3dc78e8852 GLideN64-wtl: Fix MSAA 2020-04-27 09:32:31 +07:00
oddMLan
93659a2207 GLideNUI-wtl: Fix windowed resolution handling 2020-04-27 09:32:31 +07:00
oddMLan
f326715bf8 Update project files
-Added N64PluginsDir-wtl and N64PluginsDir-wtl_x64 environment variables for zilmar-spec-wtl
-Updated appveyor.yml to support wtl configurations
 -Split artifacts into individual 7z files for each configuration instead of a single archive holding them all together
-Move icons to Resources folder to avoid duplicate assets
 -Updated icon.qrc
 -Updated GLideNUI.rc
-Update GLideN64.sln
 -Fix very serious overlook in x64 builds

This should fix AppVeyor issues
Use variable names from 3fe5f50
2020-04-25 23:26:17 +07:00
oddMLan
a97b387c68 GLideN64-wtl: Add English entry to Language combobox when translation file list is empty 2020-04-25 23:26:17 +07:00
oddMLan
311433749c GlideNUI-wtl: Increase Tooltip delay 2020-04-22 21:14:17 +07:00
oddMLan
4f5963b2f2 GLideNUI-wtl: Fix mistakes in translation files 2020-04-22 21:14:17 +07:00
oddMLan
29e0da3eb6 GLideNUI-wtl: Lazy load Fonts treeview of OSD tab
Speeds up dialog creation a little bit.
Fix bug in which creating a new profile would give a font with zeroed parameters
2020-04-22 21:14:17 +07:00
zilmar
b0cf0ede8e GLideNUI-wtl: Move overscan control to top because it was not being displayed 2020-04-22 21:14:17 +07:00
oddMLan
d153645b11 GLideNUI: Hide Debug tab in Release builds 2020-04-22 21:14:17 +07:00
oddMLan
af1ed549f4 GLideNUI: Add custom windowed resolution by editable combobox
Also fixed bug in which switching profiles would cause the Windowed resolution list to load more than once.
2020-04-22 21:14:17 +07:00
zilmar
5caa533580 GLideNUI-wtl: Change spaces to tabs 2020-04-22 21:14:16 +07:00
zilmar
5a1569f7bc GLideNUI-wtl: Add translation to about 2020-04-22 21:14:16 +07:00
zilmar
c7049dad42 GlideNUI-wtl: Add debug tab language 2020-04-22 21:14:16 +07:00
zilmar
d83a06a75e GlideNUI-wtl: Add On-screen display tab 2020-04-22 21:14:16 +07:00
zilmar
ba7a84c2d1 GLideNUI-wtl: Add language for texture tab 2020-04-22 21:14:16 +07:00
zilmar
e2bb100244 GLideNUI-wtl: Add language for frame buffer 2020-04-22 21:14:16 +07:00
zilmar
dc5ac40007 GLideNUI-wtl: Add language translation for emulation tab 2020-04-22 21:14:16 +07:00
zilmar
c185cecb01 GLideNUI-wtl: Add language translation to config-video 2020-04-22 21:14:16 +07:00
zilmar
6c4b18266e GLideNUI-wtl: Generate Screen shot 2020-04-22 21:14:16 +07:00
zilmar
02fcbf9b88 GLideNUI-wtl: Handle changing/adding/removing profile 2020-04-22 21:14:15 +07:00
zilmar
512544ca67 GLideNUI-wtl: change resolution to a combo box 2020-04-22 21:14:15 +07:00
zilmar
f802d0fd51 GLideNUI-wtl: Add dithering options 2020-04-22 21:14:15 +07:00
zilmar
f6bc760e28 GLideNUI-wtl: dpi is not a pointer 2020-04-22 21:14:15 +07:00
oddMLan
14edd21541 GLideNUI-wtl: Match Qt GUI 1:1
Based on commit c168f53d12
With some minor improvements/differences over Qt GUI
- Fully DPI aware
- Dithering is in the Video tab instead of Emulation, some wording differences

Observations:
- "Windowed resolution" is an editable combobox now. Need to parse custom resolution as well suggest some default ones
- "Enable noise" has been removed since it's permanently enabled in latest master
- Need to sync with upstream to connect the Dithering stuff with the config system
- Warning under Antialiasing section needs to hide if N64-depth compare is disabled, but might be difficult to do

Further suggestions:
- "Save" button should be an "Apply" button that applies the settings to current game without pausing. Might be out of the scope of this refactor though.
- Need to test GUI in Windows XP, Windows Vista/7/8.1 to make sure nothing looks out of place
2020-04-22 21:14:15 +07:00
oddMLan
66175d82de GLideNUI-wtl: Add DPI-aware icon handling code
Other: Minor layout fixes
2020-04-22 21:14:15 +07:00
zilmar
5cb23ede3a GLideNUI-wtl: Start to add code for handling profiles 2020-04-22 21:14:15 +07:00
zilmar
5f61dd12a5 GLideNUI: make Gliden64 have rc files 2020-04-22 21:14:15 +07:00
zilmar
f2e32892a3 Add GLideNUI-wtl 2020-04-22 21:13:33 +07:00
Logan
686fa7d108 FlappyBird64 requires CopyFromRDRAM
Fixed #2197 FlappyBird HUD elements not displayed
2020-04-17 19:11:52 +07:00
Sergey Lipskiy
50dd3ed2e0 Set clip ratio to 1 when render image from DRARM.
Fixed #2211 Duplicate image in Dr. Mario
2020-04-16 17:28:07 +07:00
Logan McNaughton
7ef3be1cab Mask VI_ORIGIN address 2020-04-15 11:12:42 +07:00
Sergey Lipskiy
9eddde6e0f Fix "division by zero" issue in gSPObjSprite.
Fixed #2192 Unknown memory action on Magical Tetris Challenge
2020-04-11 14:57:50 +07:00
fzurita
fbd1ad1a5a Fix broken Android compilation with updated xxHash 2020-04-09 15:33:56 +07:00
Sergey Lipskiy
d8f031294a Use linear equation for LOD calculation,
as proposed by standard-two-simplex in #2203
2020-04-09 15:06:59 +07:00
Sergey Lipskiy
a73da69e10 Always use clip ratio 1 for rects and screen-space triangles. 2020-04-06 20:01:54 +07:00
Sergey Lipskiy
2ebfabaf8e Revert "Set clip ratio to 1 in TexrectDrawer."
This reverts commit cd9b5e1c93f0a01a9648982f8ecffcc08919e6f2.
2020-04-06 20:01:54 +07:00
Sergey Lipskiy
2169384245 Set default clip ratio to
- 2 for F3DEX2 and .Rej,
- 1 for F3DEX and other fast3d ucodes, except .Rej
2020-04-06 20:01:54 +07:00
Sergey Lipskiy
aeabfd3912 Set clip ratio to 1 in TexrectDrawer. 2020-04-06 20:01:53 +07:00
Sergey Lipskiy
a2d731b4db Update viewport on clip ratio change. 2020-04-06 20:01:53 +07:00
Sergey Lipskiy
0b8f10f9d6 Set gSP.clipRatio default value to 1 for all ucodes but Rej ones, where it is 2. 2020-04-06 20:01:53 +07:00
S2S
2c51fb096f Magnify clipping space by ClipRatio.
Fixed #190 Cruis'n World: wrong logo
2020-04-06 20:01:53 +07:00
Sergey Lipskiy
0cca2fa2fe Change type for BlueNoiseItem fields from char to signed char.
It should fix compilation on ARM.
2020-04-06 19:58:57 +07:00
Logan McNaughton
c168f53d12 Fix bug introduced by 85a8635952 2020-04-05 11:06:58 +07:00
gizmo98
a96853d559 Dithering settings: add tooltip text 2020-04-05 10:54:12 +07:00
Sergey Lipskiy
827b69816f Add support in GUI 2020-04-02 16:10:08 +07:00
Sergey Lipskiy
219019a39b Enable dithering quantization by default. 2020-04-02 14:53:06 +07:00
Sergey Lipskiy
5ff3ef9649 Dithering shader: correct read threshold value from matrices. 2020-03-31 18:31:44 +07:00
Sergey Lipskiy
a0991dc9cf Refactor shader dithering code: replace mix by switch..case 2020-03-31 18:31:44 +07:00
Sergey Lipskiy
beee2bc368 Use enableHiresNoiseDithering setting. 2020-03-31 18:31:43 +07:00
Sergey Lipskiy
d7e3b4c84b Some dithering shaders refactoring. 2020-03-31 18:31:43 +07:00
Sergey Lipskiy
897fc35d51 Remove ditheringMode and bufferDitheringMode settings.
Add new settings:
- enableHiresNoiseDithering
- enableDitheringPattern
- enableDitheringQuantization
- rdramImageDitheringMode

New settings are not implemented in GUI yet.
2020-03-31 18:31:43 +07:00
Sergey Lipskiy
2600a6bc90 Remove "Enable noise" oprion. Emulation of noise is always enabled. 2020-03-31 18:31:42 +07:00
Sergey Lipskiy
41ecf66e80 Add blue-noise dithering, http://momentsingraphics.de/BlueNoise.html 2020-03-31 18:31:42 +07:00
Sergey Lipskiy
f566c1bc59 Support dithering mode in GUI. 2020-03-31 18:31:41 +07:00
Sergey Lipskiy
d621eb4d34 Add enum DitheringMode for better readability.
Few fixes.
2020-03-31 18:31:41 +07:00
gizmo98
350d791596 -Remove enableDithering setting and use ditheringMode for everything
-Dithering Modes:
0 disabled
1 noise dithering
2 noise dithering with 5Bit quantitzation
3 noise and ordered grid dithering
4 noise and ordered grid dithering with 5Bit quantitzation
-Quantize dithered alpha (5Bit). Removes white remnants in SF Lylat
Wars.
2020-03-31 18:31:40 +07:00
gizmo98
1a6f83aa6c Disable RDRAM dithering if nativeResFactor = 1 and dithering is enabled
Don’t dither twice.
2020-03-31 18:31:40 +07:00
gizmo98
0597632f8a Add dithering options and better color noise dithering
-Add enableDithering option: true - dithering enabled; false -
dithering disabled
-Add ditheringMode option: quantize noise or ordered grid dithered
content like original hardware would do it. true - quantize to 16Bit
colors, false 32Bit colors.
-Add snoiseRGB() and snoiseA() functions. Color dithering needs
different noiese values for r, g and b.
-snoiseRGB() and snoiseA() „double“ noise resolution if uScreenscale is
>= 2.0. So noise not so blocky but still grainy at higher resolutions.
-Increase config version to 28U
2020-03-31 18:31:40 +07:00
gizmo98
6bdcaa0bfa Add RDRAM dithering: Dither image if RGBA16 is written to RDRAM
ColorbufferToRDRAM RGBA to RGBA16 conversion produces color banding.
Implement dithering according to n64 documentation to hide color
banding.
2020-03-31 18:31:39 +07:00
Logan McNaughton
85a8635952 Update to XXH3 for CRC_OPT 2020-03-30 21:16:59 +07:00
Logan
3f55f30ea2 Mask RDRAM address in ProcessRDPList
Avoids a crash in Donkey Kong 64 (U) [f2]
2020-03-29 18:12:16 +07:00
Sergey Lipskiy
225f1414dc Set NoN (no near clipping) flag for all .Rej ucodes.
Fixed wrongly clipped polygons in RE2, Ada's locket cutscene, #2152
2020-03-22 14:00:00 +07:00
Sergey Lipskiy
022b375614 RE2 related fixes:
* fixed gSPModifyVertex for case when primitive depth enabled
* fixed GraphicsDrawer::isRejected for case when coordinates of vertex set by gSPModifyVertex
* fixed writeDepth() shader for RE2

Fixed various issues mentioned in #2152
2020-03-18 14:50:45 +07:00
Logan
be78f2d324 Fix IPO build on Linux 2020-03-18 11:53:00 +07:00
Sergey Lipskiy
8a9d52b41b Fix static noise on screens in Space Station Silicon Valley.
Problem: the static on the screens is the result of alpha test with a random threshold.
The screens use 2 cycle combiner. First cycle for alpha uses "combined" input.
A value for this input is not set yet in the first cycle, so the result of alpha test is usually wrong.

Solution: replace "combined" input in the first cycle by special "half" input.

Fixed #1764
2020-03-08 23:28:54 +07:00
Sergey Lipskiy
1fdd028bc6 Fix conditions to activate texturedRectDepthBufferCopy.
Fixed #2101 Multiplayer camera rotation issue in Conkers Bad Fur Day
2020-03-07 18:27:32 +07:00
Sergey Lipskiy
a28292846c Remove on_n64DepthCompareCheckBox_toggled
Fixed #2185 GLideNUI warning.
2020-03-06 18:51:48 +07:00
fzurita
d053f16bb0 Fix CMake warnings presented by Android Studio 2020-02-26 17:04:05 +07:00
fzurita
0a5216f8e1 Make the hybrid texture filter optional through configuration 2020-02-12 11:51:04 +07:00
Sergey Lipskiy
0692abea4a Re-implement slower N64 depth compare synchronization method,
which requires only core OpenGL 4.2 without shader_interlock extensions.

Fixed N64 depth compare with older AMD GPU.
2020-02-09 19:03:53 +07:00
Logan McNaughton
3d93752b61 Update xxHash 2020-02-06 17:48:13 +07:00
Sergey Lipskiy
495d9f959e Simplify aTexScale calculation in UClampWrapMirrorTex::update 2020-01-12 19:52:42 +07:00