Adam Sampson
d74ab529a7
Linux Port: Fix missing semicolon.
...
This was lost in 0869afded6315fb14d2265e8b3872b36ccc3fdce's refactoring.
2017-10-25 14:40:28 +01:00
rogerman
0869afded6
GPU: All GPU settings are now staged. Pending settings are applied only right before the GPU actually renders.
...
- Of note, initialization of the 3D rendering engine is also staged, where the pending engine is initialized prior to applying the 3D rendering settings. However, only ports that support this behavior will do this. Ports that do not support this behavior will work the same way as before (initialize the 3D engine immediately).
2017-10-24 09:40:56 -07:00
rogerman
3ca9e871e8
Colorspace Handler: Fix some pixel alignment issues in ColorspaceConvertBuffer555XTo888_AVX2() and ColorspaceConvertBuffer888XTo888_AVX2(). (Related to commit 858b05d.)
...
- Also do some additional optimizations while we're at it.
2017-10-23 15:51:39 -07:00
rogerman
1be210271b
Windows Port: AVI RGB888 color conversions are now multithreaded, and are also vectorized for SSSE3 and AVX2. (Fixes #105.)
2017-10-23 12:21:42 -07:00
rogerman
4c950d2a37
Colorspace Handler: Oops! Fix compiling in colorspacehandler_AVX2.cpp. (Related to commit 858b05d
. Fixes #111.)
2017-10-23 11:11:49 -07:00
rogerman
8e16b618a7
Colorspace Handler: Fix bug where RB-swapping in ColorspaceConvert555XTo888() would cancel itself out, leaving RB unswapped in all cases. (Related to commit 858b05d.)
2017-10-22 23:31:24 -07:00
rogerman
858b05df79
Colorspace Handler: Add new functions for converting 16-bit RGBA5551 and 32-bit RGBA8888 color buffers to 24-bit RGB888.
...
- Also improve the performance of RGB555-to-RGBA6665 and RGB555-to-RGBA8888 conversions.
2017-10-22 22:14:05 -07:00
rogerman
2bc3be0711
Cocoa Port: Bottom-tier GPUs running an OpenGL display presenter now use faster (but less accurate) shaders for Bicubic B-Spline and Bicubic Michell-Netravali.
2017-10-22 22:08:41 -07:00
rogerman
d9394594bf
Cocoa Port: Fix bug where touch locations were being improperly calculated on Retina displays. (Regression from commit 059ea51
. Fixes #110.)
2017-10-20 14:21:47 -07:00
rogerman
97525d94d7
Colorspace Handler: Properly maintain the alpha value when applying intensity to an RGBA5551 color buffer.
2017-10-20 13:03:03 -07:00
rogerman
64d32dca0e
Cocoa Port: In the Screenshot Capture Tool, users can now assign the save directory by drag-and-dropping a folder onto the NSTextField.
2017-10-20 13:02:06 -07:00
rogerman
70d6df40d6
Cocoa Port: Enable Lua's ability to use dynamic-linked libraries.
2017-10-20 12:50:48 -07:00
rogerman
45572fb277
Render3D: Assume the initial states of the 3D rendering instead of initializing them with CommonSettings. Most notably, assume that _enableTextureDeposterize = false in order to force it to create its buffer later on. Fixes a potential crashing bug whenever Texture Deposterization is enabled. (Regression from commit 15a19ba
. Fixes #109.)
2017-10-19 16:11:55 -07:00
rogerman
711115921b
Cocoa Port: Begin setting up support for LUA.
2017-10-19 11:06:05 -07:00
rogerman
15a19ba02f
Render3D: All 3D rendering settings are now staged. Pending settings are applied only right before the 3D renderer actually renders.
2017-10-18 15:45:46 -07:00
rogerman
8be15113e2
Linux Port (GTK-Glade): Fix screen drawing for GTK-GL. (Regression from commit f5c9a36.)
2017-10-17 23:31:00 -07:00
rogerman
43e740c661
GPU: Fix the clear color on big-endian systems when running RGB666 and RGB888.
...
- Also endian swap the BGnX and BGnY values on big-endian systems. This is a non-functional change, and is only meant to show that the endian swaps are indeed the correct choice for big-endian.
2017-10-17 18:49:05 -07:00
rogerman
f5ead86d89
Cocoa Port: Fix various presentation issues, focusing mostly on the OpenGL presenter and the Screenshot Capture Tool.
...
- Changing the display video source now updates the display window properly while the emulator is paused.
- Fix bug in the Screenshot Capture Tool where screenshots would have incorrect colors if taken on a PowerPC Mac.
- Fix bug in the Screenshot Capture Tool where screenshots would be completely black if a CPU-based pixel scaler on OpenGL was used.
- The OpenGL presenter's GPU tiering system has been changed to be more strict. This effectively pushes many older GPUs into lower tiers.
- The following pixel scalers now require at least a Low-Tier GPU (previously only required Bottom-Tier): 2xSaI, Super2xSaI, SuperEagle, HQ3x, HQ3xS, HQ4x, HQ4xS
- The following pixel scalers now require at least a Mid-Tier GPU (previously only required Low-Tier): 2xBRZ, 3xBRZ
- Due to the new changes to the GPU tiering system and allowed pixel scalers per tier, the Screenshot Capture Tool running OpenGL now allows pixel upscaling on the GPU instead of disabling it completely.
2017-10-17 13:45:55 -07:00
rogerman
e8e3200a23
GFX3D: Fix bug where 3D would fail to render on big-endian systems. (Regression from commit c6a5740.)
2017-10-16 17:38:37 -07:00
rogerman
ba6e8e0bab
Cocoa Port: Fix a bunch of HUD coloring issues on PowerPC Macs.
...
- Also fix a display backlight intensity issue on big-endian systems.
2017-10-16 17:03:01 -07:00
rogerman
c31a5717ab
Cocoa Port: Whenever attempting to take a screenshot using the Screenshot Capture Tool, simply cancel the operation altogether if the target directory does not exist or is not writable.
2017-10-16 12:11:57 -07:00
rogerman
7d2c70b7a8
Cocoa Port: Fix some issues with the Screenshot Capture Tool.
...
- Fix potential crashing bug that may occur if the target directory
isn’t found when clicking the Take Screenshot button.
- In the Display Layout dropdown panel, reposition the Display
Separation menu to be in the center section instead of in the leftmost
section.
2017-10-16 11:56:24 -07:00
rogerman
649587fcb1
Cocoa Port: Change CommandAttributes, now renamed ClientCommandAttributes, to call a C function pointer instead of an Objective-C selector when dispatching its command function.
2017-10-16 11:35:49 -07:00
zeromus
5c9fbdfb06
winport-fix some screenshots
2017-10-15 16:07:28 -05:00
rogerman
baef8b3fda
Cocoa Port: In the Screenshot Capture Tool, allow users to override the default display scale (calculated from GPU Scaling Factor) with their own user-defined display scale.
2017-10-14 17:29:59 -07:00
rogerman
73b5074313
OpenGL Renderer: Bring back support for handling the transparent polygon ID check. This fixes many graphical glitches involving transparent polygons in many games. (Regression from r5372. Fixes #74 and fixes #24.)
2017-10-13 18:35:05 -07:00
rogerman
9bfbaf23b8
GFX3D: Correct some notes about the POLYGON_ATTR Mode attribute.
2017-10-13 17:30:00 -07:00
rogerman
5f0c4ecf52
OpenGL Renderer: Shadow polygons doing the polygon ID check should only update the stencil buffer once instead of twice.
2017-10-11 12:45:29 -07:00
rogerman
8e94926072
OpenGL Renderer: Fix bug where translucent fragments drawing on top of zero-alpha fragments were not overwriting the destination fragment color as intended. (Regression from commit 2a1aaf7.)
2017-10-10 17:43:43 -07:00
rogerman
47a71941ac
OpenGL Renderer: Add true support for the depth-equals test by properly emulating the tolerance value. This fixes many longstanding bugs related to missing polygons, Z-fighting glitches, and other misc. graphical glitches in many games.
2017-10-10 11:25:16 -07:00
rogerman
2a1aaf727e
OpenGL Renderer: Reduce the number of stencil bits needed to emulate the shadow volume mask from 2 to 1.
2017-10-09 14:05:53 -07:00
rogerman
c9025e81cb
OpenGL Renderer: The fragment depth calculation now works more like how SoftRasterizer does it.
...
- Also update some comments in gfx3d.h.
2017-10-09 11:05:56 -07:00
rogerman
c6a5740665
GFX3D: Rework polygon attributes and texture parameters using the latest coding style. Also improve the performance of SoftRasterizer while we’re at it.
2017-10-06 17:13:08 -07:00
rogerman
e7d63e6cd2
GFX3D: Reduce the memory requirement of the vertex lists to one-third of its previous size.
...
- Has the positive side-effect of improving the OpenGL renderer's performance when many vertices are used.
- Also fix the vertex list double-buffering so that it actually works as intended.
2017-10-04 16:55:08 -07:00
rogerman
f4c01c4b57
GPU: Fix bug where the backlight intensity would be incorrectly averaged if frameskipping is enabled. (Regression from commit f5c9a36.)
2017-10-04 00:32:43 -07:00
rogerman
6ca2dbe6d0
Cocoa Port: Fix a crash and a potential deadlock that may occur when responding to host display changes. (Regression from commit 4957d7b.)
2017-10-03 23:49:18 -07:00
rogerman
addb17b660
Fix a bug where games would almost always start up with the main screen at low brightness and touch screen completely off. (Regression from commit f5c9a36.)
2017-10-03 17:28:33 -07:00
rogerman
ff4a3e0a5c
Linux Port (CLI and GTK-Glade): Add support for rendering the backlight intensity on the CPU-based display methods. (Related to commits f5c9a36
and 74ba49e.)
2017-10-03 15:16:18 -07:00
rogerman
a3a577f2e9
Windows Port: Replace the backlight kludge in the DirectDraw display method with the new ColorspaceApplyIntensityToBuffer32(). (Related to commits f5c9a36
, 3a000b6
and 74ba49e.)
...
- Also fixes a build problem in MSVC. (Regression from commit 74ba49e.)
2017-10-03 14:26:36 -07:00
rogerman
74ba49e168
Colorspace Handler: Add dedicated functions ColorspaceApplyIntensityToBuffer16() and ColorspaceApplyIntensityToBuffer32() for applying an RGB intensity value to a framebuffer.
2017-10-03 13:54:51 -07:00
zeromus
174dcc11bb
Merge pull request #102 from atsampson/master
...
Fix broken option list in POSIX frontend
2017-10-03 01:56:59 -05:00
Adam Sampson
ecbcb3c821
Fix broken option list in POSIX frontend
...
f5c9a36930
tried to remove an entry from
the list of options, but only deleted half of it.
2017-10-03 07:52:39 +01:00
zeromus
3a000b68fd
re #59 - abuse accelerated masterbrightness processor to crudely implement LCD backlight for DD display methods
2017-10-02 14:55:50 -05:00
rogerman
f5c9a36930
GPU: NDSDisplayInfo now reports the backlight intensity for each display. The LMNTS demo now properly fades the backlights in and out, but only on frontends that support this feature. (Fixes #59.)
...
- Note: The backlight intensity is only emulated on frontends with 3D-based display methods, such as OpenGL and Metal. CPU-based display methods, such as DirectDraw, SDL and Cairo, are currently unsupported.
2017-10-02 11:39:40 -07:00
rogerman
059ea519bc
Cocoa Port: Vastly improve the ability to take screenshots of the NDS displays.
...
- The old Tools > Save Screenshot As has been replaced with the new Screenshot Capture Tool.
- The new Screenshot Capture Tool allows screenshots to be configured to render with the same layout features as a display view.
- Screenshot captures now both render and save to file on their own independent threads.
- Screenshots are now captured using the Take Screenshot button, and files are now automatically named based on ROM name and timestamp.
- All of these features means that users can now rapidly take screenshots with their own custom layouts, all with little to no slowdown to the emulation.
- Also do a bunch of code cleanup and refactoring as a side-effect of adding these new features.
2017-09-30 23:54:05 -07:00
zeromus
2c1360dec5
fix #97 - increasing matrix stack cursor size to 6bits caused garbage to get masked into GXSTAT since there had been no &31 to select only the needed 5 bits
2017-09-29 14:47:15 -05:00
rogerman
d37ef1ff95
Cocoa Port: Copying the contents of the display window via Edit > Copy now copies the actual contents of the display window instead of directly copying the NDS screens with a generic vertical layout.
2017-09-25 21:21:51 -07:00
rogerman
70c69a46d3
OpenGL Renderer: Fix a bug where the behavior of translucent polygons can become undefined if the frame contains nothing but translucent polygons. Fixes a graphical glitch in Grey's intro scene in Mega Man ZX Advent. (Regression from commit 1742114.)
2017-09-23 21:32:34 -07:00
rogerman
1742114fcd
OpenGL Renderer: Reset the current polygon's OpenGL states to the last opaque polygon whenever the zero-destination-alpha-pass is performed. Fixes a graphical bug in MegaMan ZX Advent, where the explosions from the boss in Grey's first level will render incorrectly. (Regression from commit eea54a7.)
2017-09-22 17:25:01 -07:00
rogerman
f521ab1164
Cocoa Port: Refactor the hardware mic stuff out of CocoaDSController and into ClientInputHandler.
2017-09-21 00:33:28 -07:00