Commit Graph

6126 Commits

Author SHA1 Message Date
rogerman 669487ff05 Cocoa Port: Eliminate the old colorspace conversion functions from utilities.c in favor of the new colorspace handler functions. 2017-01-10 23:45:06 -08:00
rogerman 858d14b5fe Cocoa Port: Transition display views from using an NSOpenGLContext to using a CAOpenGLLayer. 2017-01-10 21:45:09 -08:00
rogerman ee306a9f07 Cocoa Port: Disable the default clipping feature in display views as a micro optimization. 2017-01-10 10:42:08 -08:00
zeromus 522a4e25d1 merge latest rthreads.c from libretro-common, and improve sthread_isself to null check argument (fixes crash in winport's single-core codepaths when lua window is open) 2017-01-09 16:51:02 -06:00
rogerman 9c573370f3 Cocoa Port: Oops! Revert a little test code that snuck in from the last commit. 2017-01-09 14:00:20 -08:00
rogerman 34656d977c Cocoa Port: Simplify OpenGL context handling. 2017-01-09 13:57:59 -08:00
rogerman 91f2bb9ee5 Cocoa Port: Even more display view refactoring work.
- Move Mac-specific OpenGL code to its own file.
- Eliminate the CocoaDSDisplayDelegate and CocoaDSDisplayVideoDelegate
protocols. Instead, call ClientDisplay3DView class methods directly.
2017-01-09 11:20:25 -08:00
zeromus a5b4df2038 bring softrasterizer shadow rendering up to modern standards. 2017-01-08 15:25:47 -06:00
rogerman f1558bf4e6 Cocoa Port: More display view refactoring work. 2017-01-08 00:21:19 -08:00
rogerman c7c472673f Cocoa Port: Fix a few more issues caused by commit cffc343.
- Fix bug where restored windows would fail to update properly if the
window size would be the same as the one set in user defaults.
(Regression from commit cffc343.)
- Fix bug where changing the rotation to be exactly 180 degrees
different from the old rotation would cause the view to render the
screens with a vertical offset. (Regression from commit cffc343.)
- OGLDisplayLayer respects its own _needUpdateRotationScale and
_needUpdateVertices flags once again, preventing it from repeatedly
uploading already established data to the GPU. (Regression from commit
cffc343.)
2017-01-07 15:54:23 -08:00
rogerman 6eca2163f7 Cocoa Port: Fix bug where switching the display mode to Main or Touch would fail to work correctly.
Also do some misc. code cleanup.

(The bug is a regression from commit cffc343.)
2017-01-06 17:22:02 -08:00
rogerman 34df91f412 Merge remote-tracking branch 'origin/master' 2017-01-06 15:23:43 -08:00
rogerman cffc343496 Cocoa Port: Continue refactoring of the display view code to reduce port-specific dependence. 2017-01-06 15:23:26 -08:00
zeromus ce044f3700 remove rewind code completely (it wasnt hooked up to the UI and it was worthless anyway) 2017-01-06 16:53:46 -06:00
rogerman 616962f0b7 Cocoa Port: Standardize display rotations to always assume a left-handed Cartesian coordinate system (clockwise rotation). 2017-01-03 03:31:35 -08:00
rogerman a6cb37901f Cocoa Port: Eliminate dsPointFromEvent:inputID: method. 2017-01-03 00:25:24 -08:00
rogerman eed334f999 Cocoa Port: Change "Display Orientation" to "Display Layout".
Also change the name of “Hybrid (3:2)” to “Hybrid (2:1)”. The display
ratio was incorrectly identified as 3:2, when in fact it is 2:1.
2017-01-02 23:01:31 -08:00
rogerman ce494a2eaa Cocoa Port: Begin refactoring display view code to reduce the dependence on port-specific code. 2017-01-02 22:39:25 -08:00
rogerman 207a3b2e9e Cocoa Port: New feature -- add Hybrid display orientations.
- The new Hybrid display orientations show three NDS screens — the top
and bottom screens on the left side, and a larger major screen on the
right side. This feature is intended to better use the widescreen
resolution of most users’ host displays, which are usually 16:9 or
16:10. Three different Hybrid orientations are provided (3:2, 16:9, and
16:10) so that users can choose the display size ratio that they prefer.
- Horizontal display orientation no longer uses the display separation
setting.
- Do some additional code cleanup.
2016-12-31 18:10:48 -08:00
rogerman cf8f021b30 OpenGL Renderer: Don't force backface culling when drawing shadow polygons.
Do note that we need to do this for SoftRasterizer as well, but
SoftRasterizer will need some additional rework on shadow polygon
handling to get all the test cases to work.

Fixes issue #21.
2016-12-30 11:04:35 -08:00
rogerman c9d5d69c06 GPU: Fix graphical inconsistencies with BG extended layers using custom VRAM.
(Regression from commit 36e03fe.)
2016-12-29 17:36:31 -08:00
rogerman 000efb1095 GPU: Fix bug where native-sized lines would be improperly blended with non-native-sized lines during display capture.
Fixes a graphical issue in Golden Sun: Dark Dawn whenever a battle
sequence begins when using a custom framebuffer size.
2016-12-29 14:12:23 -08:00
rogerman 36e03fefa5 GPU: Disable the use of custom VRAM for extended BG layers whenever they are scaled or rotated.
Fixes the zoom-in effect whenever entering buildings in Pokemon
Black/White. (Regression from r5371.)
2016-12-29 10:26:24 -08:00
zeromus ae37e1259e winport: fix crash with HD prescale and --num-cores 1. OSD is messed up in this case. Not going to fix that now since --num-cores 1 is a very old quirks hack anyway. Fixes #20 2016-12-28 17:25:12 -06:00
rogerman 1213deb102 OpenGL Renderer: Fix various bugs when running OpenGL 2.1 and earlier.
Fixes regressions from commits 8fab805 and 7b13501.
2016-12-28 14:07:06 -08:00
zeromus 4710cf7e37 fix errors in ogl old 3d driver (recent changes from ogl 3.2 not fully ported) 2016-12-27 21:09:08 -06:00
rogerman 8159da3f0c GFX3D: Save the opaque polygon count in POLYLIST. 2016-12-26 14:19:45 -08:00
rogerman f50f9d38fd OpenGL Renderer: Reduce OGLRENDER_MAX_MULTISAMPLES from 16 to 8.
Now that framebuffer sizes can be greater than 256x192, using MSAAx16
is excessive and consumes too much bandwidth. We’re reducing the
maximum sample size of MSAA to 8 since it will significantly reduce
bandwidth consumption at the larger framebuffer sizes while remaining
mostly visually equivalent to MSAAx16.
2016-12-26 12:37:22 -08:00
rogerman 4e96cc8b6e Cocoa Port: Simplify some code in the OpenGL blitter. 2016-12-24 11:08:17 -08:00
rogerman fa971e3d63 GPU: Make updating the 3D renderer FPS into its own method. 2016-12-23 09:56:55 -08:00
rogerman 922a7ac6f6 GPU: Consolidate applying the master brightness into one place. 2016-12-22 22:16:56 -08:00
rogerman dfd23f6ba3 GPU: Fix bug where the master brightness would be incorrectly applied in some instances when a custom framebuffer size is used.
(Regression from commit 65d7568.)
2016-12-22 21:12:15 -08:00
rogerman 7b1350127d OpenGL Renderer: Fix instances where the transparent fragments of A3I5 and A5I3 textures would fail to render correctly.
Fixes issue #19.
2016-12-22 00:58:13 -08:00
rogerman 528513118a OpenGL Renderer: Greatly improve the accuracy of rendering shadow polygons. 2016-12-21 15:28:21 -08:00
rogerman 8fab80596b OpenGL Renderer: Minor rework on handling shadow polygons.
- Determining the depth write state is now handled purely within the
fragment shader.
- Color and depth write states are now handled more consistently across
fixed-function and fragment shader.
- Force backface culling when drawing shadow polygons.
2016-12-19 09:48:52 -08:00
rogerman 49309fb053 OpenGL Renderer: Allow all opaque non-shadow polygons to write to the depth buffer, making polygon opacity a priority state.
Fixes issue #13. (Regression from r5372.)
2016-12-16 13:00:32 -08:00
zeromus efcdd320f8 winport: attempt to make vsync work on opengl display method (see #14) 2016-12-16 01:00:47 -06:00
rogerman e6b352c73a GPU: When rendering the 3D layer, prioritize color blending over the window color effect flag.
Fixes color blending in the dialogue boxes of Front Mission.
(Regression from r5285.)
2016-12-14 17:04:07 -08:00
rogerman a80fa6d4de MMU: Only report writing to undefined registers when the value being written is non-zero. 2016-12-13 14:31:45 -08:00
rogerman ce4f61eaf6 texcache.cpp: Silence some compiler warnings. 2016-12-13 11:36:06 -08:00
rogerman 0628cb5756 Silence some debug messages related to the MASTER_BRIGHT register.
- Now that Mega Man Zero Collection has proven that it is perfectly
legal to set MASTER_BRIGHT within V-blank, remove the related debug
message.
- Properly silence the texture memory debug message when the
MASTER_BRIGHT intensity is 0.
2016-12-13 11:22:06 -08:00
zeromus f230067524 dont make tex deposterize and text smoothing default enabled on winport (bugged from e0f8e5a). fixes #10 2016-12-13 01:39:28 -06:00
rogerman de4f1c9c69 Colorspace Handler: Fix pixel alignment bug in ColorspaceConvert555To8888_AVX2() and ColorspaceConvert555To6665_AVX2().
Fixes issue #8.
2016-12-12 21:30:14 -08:00
zeromus 1cc8cb6fc6 fix lua print() on some systems, due to mistaken use of printf %Lg instead of just plain %g
(fix ported from fceux)
2016-12-12 16:26:21 -06:00
zeromus 5cfb407f35 winport: tidy some things required to make AVX2 support compile, apparently (see github #8) 2016-12-11 19:05:30 -06:00
rogerman 1787081fca GPU: Fix BG layer 3 when reading VRAM with a BMPAddress that maps exactly to the head of the VRAM blank region.
Fixes a possible graphical glitch during the Arangoa Prelude in Golden
Sun: Dark Dawn.
2016-12-10 21:26:30 -08:00
rogerman cf3758ff3f Command Line: Allow --disable-sound and --disable-limiter options on Windows.
These two options are, in fact, supported on Windows, so make them
universally available.
2016-12-10 13:39:29 -08:00
rogerman 1b3825a100 Command Line: Allow texture post-processing options on non-Windows platforms.
The —3d-texture-deposterize-enable, —3d-texture-upscale and —3d-texture-smoothing-enable options work independently of the frontend, and so it should be safe to make these options universally available.
2016-12-10 12:17:11 -08:00
rogerman 60e71ce823 Command Line: Add command line options for accessing the custom framebuffer sizing and texture postprocessing features.
--3d-texture-deposterize-enable
--3d-texture-upscale N [1|2|4]
--3d-texture-smoothing-enable
--gpu-resolution-multiplier N [1|2|3|4|5]
2016-12-09 16:52:56 -08:00
zeromus be11b35df9 winport: fix occasional garbage subscreen rect in one LCD mode (fix #6) 2016-12-09 05:56:06 -06:00