Marcel Szewczyk
7869a84f88
Additional fixes/cleanup
2019-02-10 01:10:51 +01:00
Flyinghead
66dc13b376
gui: help tooltips
2019-02-09 22:15:08 +01:00
Flyinghead
ee1caeb6c2
gui: improve layout and touch device ux
2019-02-09 21:20:03 +01:00
Marcel Szewczyk
8893f97435
Handle odd screen resolution (POCOPHONE fix)
2019-02-08 22:20:02 +01:00
Marcel Szewczyk
a65436cc6c
Handle dynamic resolution change during emulation (LRR mode)
2019-02-08 22:15:45 +01:00
flyinghead
3cdd39170d
win32: call os_DoEvents on the emu/main thread and other fixes
2019-02-07 19:20:10 +01:00
Flyinghead
82f156f143
Gamepad support to GUI. Wire evdev, SDL and windows
...
Allow dc_stop() to work even when the emu is paused
2019-02-07 16:59:24 +01:00
Flyinghead
598ea65c16
Android: use boolean prefs when possible. OSX build fix
...
Use jboolean instead of jint
Fix crash when navigating UI with popup keyboard's next button
Remove unused UI (PVR rendering)
OSX fixes
2019-02-06 22:28:04 +01:00
Flyinghead
1802c022fd
UI with ImGui
2019-02-06 19:57:13 +01:00
Flyinghead
78fd92f95a
No custom textures if no threads
2019-02-06 18:50:56 +01:00
Marcel Szewczyk
b26b12054b
Merge branch 'master' of https://github.com/reicast/reicast-emulator into mar753/render-to-texture-with-options
2019-02-06 17:39:12 +01:00
Flyinghead
2ff6d1b819
Fix render to texture buffer alpha channel for 1555
...
Saturate alpha when strictly greater than threshold, not >=
Don't put rendered texture in cache if rendering to texture buffer
(VRAM)
Fixes Skies of Arcadia start menu
Restore VRAM lock if null
2019-02-03 17:53:02 +01:00
Marcel Szewczyk
377fb6ace0
rend.ResolutionPercentage acceptable values are now from 1 to 100; naming fix
2019-01-25 16:43:46 +01:00
Marcel Szewczyk
aa3475738a
Revert "LRR: Support for OpenGL 2 added"
...
This reverts commit c33c0cade8
.
2019-01-20 11:05:53 +01:00
Marcel Szewczyk
88b9debc89
Revert "RTT: Support for OpenGL 2 added"
...
This reverts commit 86339c337d
.
2019-01-20 11:03:30 +01:00
Marcel Szewczyk
86339c337d
RTT: Support for OpenGL 2 added
2019-01-18 19:46:46 +01:00
Marcel Szewczyk
c33c0cade8
LRR: Support for OpenGL 2 added
2019-01-18 18:42:46 +01:00
Marcel Szewczyk
f0c4fe6fdc
Additional improvements/fixes
2019-01-18 18:39:48 +01:00
flyinghead
ed3f866835
win32 build fix
2019-01-16 17:42:36 +01:00
Marcel Szewczyk
77d997401b
RTT: Performance improved for DC RGB565 and ARGB4444 textures - glReadPixels() removed
2019-01-14 20:42:48 +01:00
Marcel Szewczyk
6499a82513
RTT: Additional small fixes
2019-01-14 19:32:56 +01:00
Marcel Szewczyk
a9affb8ac2
RTT: Stencil support for full OpenGL >= 3.0 added
2019-01-13 19:04:33 +01:00
Marcel Szewczyk
82bbe690b1
Stencil support for OpenGL added - requires OpenGL >= 3
2019-01-13 17:33:23 +01:00
Marcel Szewczyk
27360a1c41
Lgtm warnings fixed
2019-01-12 13:17:43 +01:00
Marcel Szewczyk
7e900a4e86
Merge branch 'master' of https://github.com/reicast/reicast-emulator into lowering_rendering_resolution_option
2019-01-09 00:01:03 +01:00
Marcel Szewczyk
e285d7f9ba
Additional improvements to lowering rendering resolution feature
2019-01-08 23:35:48 +01:00
Marcel Szewczyk
8571be39fd
Rendering resolution lowering (horizontal and vertical) is possible from the configuration menu
2019-01-07 23:55:43 +01:00
Marcel Szewczyk
2aadb3cdd4
RTT: Stencil support added (extension required)
2019-01-07 21:37:16 +01:00
Marcel Szewczyk
7e26a172f4
Changing screen resolution: Rendering quad created
2019-01-06 22:16:21 +01:00
Flyinghead
15fa475f8a
Move DumpTexture() to CustomTexture and other fixes
2019-01-02 09:33:19 +01:00
Flyinghead
ecb689051f
Custom textures fixes
2018-12-30 22:23:23 +01:00
Flyinghead
9a3dd1c2d1
build fix
2018-12-30 19:44:18 +01:00
Flyinghead
3f98c2ba3c
Don't delete a texture when async load is pending
2018-12-30 19:19:27 +01:00
Flyinghead
e7fee139e4
build fix
2018-12-30 18:50:24 +01:00
Flyinghead
dd280ee24d
Custom textures loading and dumping
2018-12-30 18:42:55 +01:00
Marcel Szewczyk
302bfcd582
Merge branch 'master' into mar753/render-to-texture-with-options
2018-12-30 18:26:31 +01:00
Marcel Szewczyk
7450c247d3
Minor formatting fixes
2018-12-30 12:17:39 +01:00
Marcel Szewczyk
127072ec8d
RTT: Fixed slow rendering of RGBA5551 framebuffer format on Adreno 506
2018-12-30 12:16:34 +01:00
Marcel Szewczyk
0761ee713e
RTT: glReadPixels() functions are now compatible with OpenGL ES 2.0
2018-12-30 12:13:45 +01:00
Marcel Szewczyk
e981dd14f8
Render to texture full multipass support added; RTT stride textures support added
2018-12-30 12:08:51 +01:00
Flyinghead
655d36a719
Convert vertex indices to u16 wih GLES2
...
GLES2 doesn't support 32-bit indexes so convert them to u16 when needed
2018-12-13 22:26:25 +01:00
Flyinghead
5664bfb9b6
pvr: use u32 for vertex indices to avoid overflow
...
Fixes alpilot glitches
2018-12-13 10:57:51 +01:00
Flyinghead
9fe13e20e8
Clip high z vertices
...
Fixes Soul Calibur intro bogus triangles
2018-12-06 20:46:23 +01:00
Flyinghead
93436c5ec1
Partially revert previous commit as it causes problems with RTT
2018-11-30 18:15:47 +01:00
Flyinghead
284dcf35a7
Add StrideSel to texture cache key as well
2018-11-30 18:06:32 +01:00
Flyinghead
63337d5178
Add ScanOrder to texture cache key
...
Fixes corrupted title screen in Grandia II
2018-11-30 17:56:57 +01:00
Flyinghead
7dc5fef352
Use xxhash for palette hashing
...
15 us -> 6 us
2018-11-30 15:24:04 +01:00
Flyinghead
2ef90152c9
GL: add #if in shader for trilinear filtering
2018-11-23 22:33:51 +01:00
Flyinghead
eef297706c
Bogus triangles due to huge negative z
...
Per-pixel only
Fixes vathlete
2018-11-19 15:38:44 +01:00
Marcel Szewczyk
4d39c10c91
Build fixes
2018-11-11 23:22:17 +01:00
Marcel Szewczyk
5f19eb7ae8
Rtt menu options are now handled by GLES
2018-11-11 22:01:18 +01:00
Marcel Szewczyk
4fd9de54ce
Added rtt menu options
2018-11-11 17:55:18 +01:00
Flyinghead
4bce2bbbbf
OSX wants GLSL 1.4 or later
2018-10-30 11:48:44 +01:00
Flyinghead
6177a5b33a
Clear texture cache on exit
2018-10-29 18:02:47 +01:00
Flyinghead
ffb72cd0b6
Texture-based fog table
2018-10-29 00:31:24 +01:00
Flyinghead
96157de639
Enable log2 depth at runtime when supported (GL, GLES 3)
...
Fix issues with pixel scaling and scissoring.
Wacky Races should not be playable.
2018-10-28 22:09:36 +01:00
Marcel Szewczyk
f309a59fac
Render to texture single pass implemented
2018-10-28 20:16:45 +01:00
Flyinghead
77fae1ef09
Backport changes from libretro
2018-10-05 15:07:30 +02:00
Flyinghead
124f920170
Backport GL 2.0 support from libretro core
2018-10-04 22:37:35 +02:00
Flyinghead
8116072f7e
Refactor shader selection/compilation. Avoid using glcache for texture
...
in GL4 renderer.
2018-10-04 15:55:41 +02:00
Flyinghead
7203681202
Less code dup
2018-10-04 14:49:20 +02:00
Flyinghead
3a929aeeb1
Terminate A-buffers cleanly. Call renderer Term() at shutdown.
...
Less code dup.
2018-10-04 14:04:15 +02:00
Flyinghead
b8ae998252
If GL4 renderer is not supported, fall back to default. Fix SDL GL init.
2018-10-04 13:37:45 +02:00
Flyinghead
0260b00c00
Less code dup
2018-10-04 12:32:26 +02:00
Flyinghead
1dfc9902b7
Share scale_x and scale_y between GL and GL4 renderers. Don't use
...
ShaderUniforms in OSD.
2018-10-04 12:03:00 +02:00
flyinghead
ef5e8593fa
GL4: Initialize atomic buffer correctly. Limit size of pixel buffer.
...
SetupMainVBO should be static
2018-10-04 10:58:33 +02:00
Flyinghead
3f791d6f04
Merge OIT renderer into master
2018-10-04 10:29:23 +02:00
Flyinghead
0627530e33
GL: avoid white lines on the screen sides due to rounding
2018-10-02 12:28:42 -04:00
Flyinghead
5d8d1bd107
GL: Partial redraws. OSD fixes
...
EGL: Request the surface to be preserved between two rendering
Clear the sides of the screen when not rendering widescreen.
Do not re-create GL resources multiple times (android)
2018-09-30 12:39:47 +02:00
Flyinghead
9de8379434
GL: clear gl framebuffer before drawing a direct FB write
2018-09-29 18:10:43 +02:00
Flyinghead
407a579bfc
GL: take pixel scaling into account for OSD buttons and text coords
...
Fixes OSD with Wacky Races and JoJo's Bizarre Adventure
2018-09-29 14:48:18 +02:00
Flyinghead
c49e6c17d0
gl: isinf() issues with GLES3. Use it with GL only
...
Fixes black screen in PSO and Sonic Adventure 2 on Android
2018-09-27 21:45:03 +02:00
Flyinghead
48225e7516
Don't serialize uneeded stuff. Fix windows build.
2018-09-20 22:00:03 +02:00
Flyinghead
f355dda6a4
savestates: build fixes
2018-09-20 20:06:54 +02:00
Flyinghead
7ce4fccb37
Merge remote-tracking branch 'origin/master' into fh/mymaster
2018-09-20 17:28:41 +02:00
Flyinghead
df61073c39
Clip textures that extend past the end of VRAM.
...
Only load the valid portion of it.
Fixes Shenmue Space Harrier mini-arcade game.
Disable verify on non-square twiddled textures for Quake 3.
2018-09-18 12:01:16 +02:00
Flyinghead
663b77cee6
Fix OpenGL compile error with VMWare WS14 driver
2018-09-17 13:02:07 +02:00
Flyinghead
2a8591798f
Only clamp color if tsp.ColorClamp is set. Thanks p1pkin
2018-09-12 17:50:42 +02:00
Flyinghead
e54ac36544
Texture cache optimization for frequent palette updates
...
Some old 2D games change palettes very frequently, which causes the
texture to be updated for each render.
This change uses a hash of the palette to detect changes, and include
the palette type in the cache key to distinguish textures of different
depth.
2018-09-06 12:11:55 +02:00
Flyinghead
4a08856775
Render-to-texture upscaling must be accounted for when clipping
2018-09-05 15:07:30 +02:00
Christoph "baka0815" Schwerdtfeger
d3de815a0a
Softrend: clean up if/else
2018-09-04 21:01:03 +02:00
Christoph "baka0815" Schwerdtfeger
f96e0f1e5d
Softrend: Error if no softrenderer backend found
2018-09-04 20:41:25 +02:00
Christoph "baka0815" Schwerdtfeger
981eb1b5ef
Softrend: works only with X11
...
If X11 support is not there, reicast doesn't compile because the softrenderer needs it.
Use #ifdef to do X11 only if SUPPORT_X11 is set.
2018-09-04 19:08:39 +02:00
Flyinghead
f202b3b143
Add new ExtraDepthScale setting to scale huge Z values.
...
Use 1e26 for Samurai Shodown 6 (NAOMI)
2018-09-04 18:37:59 +02:00
Flyinghead
239e178226
Simplify framebuffer drawing and fix OSD
2018-09-03 15:05:37 +02:00
Flyinghead
228b40136f
Only do color clamp when fog is on
2018-09-02 22:57:59 +02:00
Flyinghead
96e9bce0e0
(Fog) Color clamping support
2018-09-01 12:56:37 +02:00
Flyinghead
e59d7eaf3d
Direct framebuffer writes support
2018-08-26 16:58:10 +02:00
Ender's Games
75215ec0d1
Core: Address some obvious lgtm issues
2018-08-21 02:52:03 -04:00
Abandoned Cart
62837f4db0
Merge pull request #1235 from reicast/fh/alpha-pt-rounding-fix
...
Float math in alpha calculation causes some punch-through textures to…
2018-08-21 00:09:06 -04:00
Flyinghead
ba78184461
Fix per-polygon sort option
2018-08-20 15:51:55 +02:00
Ender's Games
8d9d40dffc
Core: Changes provided by Android NDK compiler
2018-08-19 01:54:15 -04:00
Flyinghead
ffb25a470d
Fix Wacky Races missing half screen
2018-08-17 18:33:24 +02:00
Flyinghead
f3bbb06d8c
GL: Missing float precision qualifier in Bump Map calc
2018-08-13 18:21:52 +02:00
Flyinghead
65a759b3fe
Merge branch 'fh/mymaster' of https://github.com/reicast/reicast-emulator into fh/mymaster
2018-08-07 09:45:10 +02:00
Flyinghead
c0c06ed8ff
Renderer: select shader at runtime based on the GL context version
...
The GL renderer now detects the version of the current GL context and
compiles the shaders accordingly. Supports GLES2, GLES3 and desktop GL.
Android: use 8,8,8 framebuffer instead of 5,6,5. Requests a 8-bit
stencil buffer (modifier volumes)
2018-08-07 09:44:52 +02:00
Flyinghead
7ff93f9256
OSX: disable OpenMP as it's not available. Time to deprecate Apple...
2018-08-04 19:10:53 +02:00
Flyinghead
fddf56c5a2
Fix TA overrun detection. Bump up verts to 2 MB, idx to 120K and TR
...
polys to 8K
2018-08-03 09:55:53 +02:00
Flyinghead
feaca43b25
Build fixes
2018-08-02 18:44:51 +02:00
Flyinghead
85781e96ec
Use OpenMP instead of ctpl for multithreading
2018-08-02 17:31:38 +02:00
Flyinghead
3a7a08f3fb
Do not clear the framebuffer before rendering. Fix scissoring coords.
...
The framebuffer is cleared by the background plane using global clipping
coordinates. This allows multiple rendering to different locations on
the framebuffer.
Fixes flashing menus in Vanishing Point, loading screens in Test Drive
Le Mans and Vigilante 8.
Better rear view mirror in Metropolis Street Racer.
2018-08-02 17:20:18 +02:00
Flyinghead
31d8c1f091
Backport texture upscaling with xBRZ
2018-08-01 19:43:01 +02:00
Flyinghead
1533091151
Clipping: do pixel scaling only when not rendering to a texture
2018-07-30 18:57:32 +02:00
Flyinghead
63a70e0f62
isinf not available in GLES 2
2018-07-29 19:24:14 +02:00
Flyinghead
0e881254ef
Fix clipping when pixel_double is on.
...
Fixes 4 Wheel Thunder split screen issue.
2018-07-29 17:31:14 +02:00
Flyinghead
b1686a8f6a
Do not allow inf z value in the vertex shader. Clamp w to a very small value.
...
Fixes ground triangles clipping in Soulcalibur intro sequence.
2018-07-24 16:55:48 +02:00
Flyinghead
07a36ee256
avoid named struct initializers
2018-07-24 11:22:56 +02:00
Flyinghead
2e08d7a6c9
round() not available in GLES2. Using floor() instead
2018-07-23 20:55:53 +02:00
Flyinghead
86235bb4a3
Float math in alpha calculation causes some punch-through textures to have alpha noise.
2018-07-23 15:15:05 +02:00
Flyinghead
4b5e863aa7
Use log2 depth scaling in fragment shader when available.
...
Currently a compile time option (!GLES). Fixes many depth issues (Dynamite Cop, Cannon Spike, etc.)
2018-07-23 10:25:55 +02:00
Flyinghead
09eab8cb03
Saturate alpha channel for YUV textures
2018-07-18 22:35:55 +02:00
Flyinghead
e637dcf8f9
reinstate line deleted by previous commit
2018-07-18 16:07:17 +02:00
Flyinghead
cc8569fcf8
Fix 8888 high-quality textures on GLES/arm
...
GLES doesn't support uint 8888 so bytes must be swapped on little endian
architecture.
2018-07-18 16:01:40 +02:00
Flyinghead
dc835dd64d
Dump shaders source if compile fails
2018-07-16 16:52:11 +02:00
Flyinghead
0284d635d2
Upscale rendered-to textures
...
Increase the size of RTT textures by a given integer factor. Defaults to
1.
This gives much better quality textures, particularly visible when used
fullscreen for transition or pause screens.
2018-07-16 16:28:48 +02:00
Flyinghead
bb2d860902
Use red channel for fog table in GL but continue using alpha channel in
...
GLES. Alpha channel is supported only in GL compat mode, not core.
2018-07-14 10:48:16 +02:00
Flyinghead
87f8c5194f
Better fix for texture cache key needing StrideSel
...
StrideSel and ScanOrder are no longer part of the texture cache key
since that breaks RTT texture matching. But they are updated at lookup
time so they will be used if the tex is updated later.
Fixes RTT-based xfade screens in Skies of Arcadia.
2018-07-11 22:08:10 +02:00
Flyinghead
d5d711cf32
Clipping scissor fix: x offset must only be added once
2018-07-11 20:06:43 +02:00
Flyinghead
1be4203ffe
Far plane is at depth 0 in classic renderer.
2018-07-09 23:25:18 +02:00
Flyinghead
c035635341
Clipping scissor Y coordinates must be inverted when rendering to screen
...
Fixes top of screen missing in San Francisco Rush 2049
2018-07-09 23:22:13 +02:00
Flyinghead
889f722e73
Fix PAL4 textures
2018-07-09 19:20:33 +02:00
Flyinghead
18b2d8273f
Improve paletted and YUV texture quality.
...
Paletted textures using a 32-bit palette and YUV textures are now
converted to 8888 format, which results in a lossless conversion.
Fixes background texture quality in Alone in the Dark.
2018-07-09 14:59:53 +02:00
Flyinghead
a89ff1e432
Ignore depth func for autosort TR polys.
...
This was a remain of the previous Always depth hack.
2018-07-07 08:46:29 +02:00
Flyinghead
e067534f26
When sorting translucent triangle, keep the third vertex in place.
...
In flat shading mode, the third vertex of a triangle defines its color
so we must maintain its index.
Fixes the remaining color polygons seen in Evolution - The World of
Sacred Device.
2018-07-06 20:02:43 +02:00
Flyinghead
a1997637bb
Trilinear filtering limited implementation.
...
Fixes lighter field areas in NFL 2K2
2018-07-03 20:36:13 +02:00
Flyinghead
3c4913a35a
Merge remote-tracking branch 'upstream/master'
2018-07-03 15:46:25 +02:00
Flyinghead
69263eddc0
Bump mapping support
2018-07-02 15:23:47 +02:00
Flyinghead
295395c680
Flat shading support
2018-07-01 20:25:06 +02:00
Flyinghead
3ddcc272bf
Fix autosort/presort mode selection. Per render pass sort mode.
...
The previous algorithm to determine the sort mode for TR polys was
faulty. And the sort mode can vary between passes for multipass
rendering. This also removes the need for the hack to support Always
depth mode with autosorted TR polys. Should fix the Resident Evil 3 menu
problem.
2018-06-30 12:33:11 +02:00
Flyinghead
7ecd384612
StrideSel is now part of the texture cache and must be set by RTT
2018-06-29 19:03:43 +02:00
Flyinghead
f18aa63a67
Add stride and scan order to texture cache key as they are used to update the texture
...
Fixes glitchy FMV title screen in Bomberman Online
2018-06-29 11:59:48 +02:00
Flyinghead
a94f01ee78
Force autosort TR triangles using depth func Always to be drawn on top of others
...
When autosorting triangles, ignore the depth of triangles using the depth func Always and force
them to be on top. Seems to help Psyvariar 2.
2018-06-28 13:21:40 +02:00
Flyinghead
6871061ca0
Modifier Volumes: summing up with triangles is faster than using a quad.
2018-06-26 15:38:55 +02:00
Flyinghead
7c93727b5e
Improve modifier volume parsing and drawing logic.
...
Parse modifier volumes similarily to other polys (first, count, params).
Draw all triangles in one shot and use quad to sum up instead of
redrawing entire strip. Use OR operation for open volumes/quads
(Soulcalibur).
2018-06-26 14:45:58 +02:00
Flyinghead
846d02d9d2
Optimize RTT to VRAM. Add US version of THPS2 to per-game settings.
2018-06-25 16:55:22 +02:00
Flyinghead
3256e02813
Workaround for Virtua Tennis ball color problem.
...
There's a texture corruption of the tennis ball and other textures,
notably the players' bags in the first intro sequence. The corruption is
due to render to texture squashing existing textures. Not sure what's
going on but this avoids the texture corruption. The original problem
remains.
2018-06-25 15:53:28 +02:00
Flyinghead
08b8d30589
Implement clipping. Enabled by default.
2018-06-09 18:11:47 +02:00
Flyinghead
7640a35720
Draw modifier volumes only if enabled in settings (defaults to true)
2018-06-09 17:22:01 +02:00
Flyinghead
2fdcf0d821
Use float constants in GLSL
2018-06-07 18:26:02 +02:00
Flyinghead
b9fe9332cf
GLES 2 fix for fog table: use float only for vars and consts
2018-06-05 13:36:49 +02:00
Flyinghead
828990b926
Texture based fog table
2018-06-05 12:18:09 +02:00
Flyinghead
a345fcc4c7
Draw modifier volumes after punch-through so they can be shadowed as
...
well.
2018-05-23 14:31:11 +02:00
Flyinghead
2f9dcfabd8
Use FPU_SHAD_SCALE.scale_factor for shadow intensity instead of
...
hardcoded value.
2018-05-23 12:26:24 +02:00
Flyinghead
bccfb5b70c
Faster implementation for translucent polys depth pass. Disabled by
...
default. Auto-enabled for Cosmic Smash.
2018-05-22 15:47:02 +02:00
Flyinghead
23a2af0a28
Add setting for THPS2. Move RenderToTextureBuffer option to rend
...
section.
2018-05-22 15:34:33 +02:00
Flyinghead
4c7ffeb520
Per-pixel fog shading. Shaders cleanup.
2018-05-22 13:04:21 +02:00
Flyinghead
8d01bbe145
Increase Z scaling factor to 100k (fixes background menu in VR2). Set
...
depth mask before clearing buffers.
2018-05-21 16:44:18 +02:00
Flyinghead
9098fd5a22
Autosort poly: Write to the depth buffer in a second pass, and only if
...
multipass rendering.
2018-05-20 21:41:31 +02:00
Flyinghead
2d904372a9
Multipass issues: depth mask must be enabled for autosorted tr poly.
...
Depth buffer must NOT be cleared b/w passes, same for stencil I guess.
2018-05-20 14:16:43 +02:00
Flyinghead
c35aa4262c
Fix OpenGL errors with modvols and multipass
2018-05-19 18:51:30 +02:00