Commit Graph

138 Commits

Author SHA1 Message Date
ImJezze
ff77b7897b Cleanup (nw)
- renamed shadow_mask_type to shadow_mask_tile_mode
- renamed bloom_type to bloom_blend_mode
- implemented "Source" shadow mask tile mode for artwork_support/post.fx
2015-12-26 12:27:07 +01:00
ImJezze
1b373eb812 Extended Shadow Mask and Bloom functionality
- added shadow mask type option to choose between "Screen" and "Source"
tile mode ("Screen" is the default as before)
- added bloom type option to choose between "Addition" and "Darken"
blend mode ("Addition" is the default as before)
- the alpha channel of a shadow mask is now filled with the background
color of the screen by the amount of the inverted alpha value
- added monochrome-matrix.png which can be used in combination with
"Source" tile mode and "Darken" blend mode to simulate a STN LCD, for
example
2015-12-25 20:02:47 +01:00
ImJezze
099f547d05 Fixed HLSL for LCD screen type
- fixed wrong detection of vector screen, which meant that a LCD screen
was also detected as vector screen
- re-enabled scan-line and other CRT related sliders for LCD screens
2015-12-24 14:06:01 +01:00
ImJezze
b1f1300517 Made defocus strength equal for x/y and independent from screen size
- defocus is now independent from screen size and ratio
- horizontal and vertical defocus now have the same strength
- replaced asymmetric defocus kernel by a symmetric kernel
- defocus is now limited to a maximum of 10
- added shader uniforms for orientation and rotation settings
2015-12-20 13:57:28 +01:00
ImJezze
0095c77163 Cleanup (nw)
- removed some tabs at line ends
2015-11-18 18:09:09 +01:00
ImJezze
d5c6dc78e9 Cleanup
- fixed not used HLSL settings from <custom>.ini if MAME was started
without driver parameter
- removed default values from HLSL sliders, the defaults here are more
like null values to hint when an effect would be disable
- slightly changed default HLSL settings
2015-11-18 18:01:01 +01:00
ImJezze
8be53c28f0 Changed screen adjustment for HLSL
- screen adjustment (scale, offset) can now be handled by the respective
render API itself (default behavior is as before)
- D3D (if HLSL) is activated handles screen adjustment by itself within
the shader, which fixes the odd behavior of some effects (e.g. round
corners) when screen scale and offset is used
2015-11-17 19:37:56 +01:00
ImJezze
2a3bd8b8d0 Cleanup
- removed duplicate prescale fields
- made visibility of HLSL options depending on screen type
- disabled scanlines for LCD screen type
2015-11-07 12:03:36 +01:00
ImJezze
21b577483b Cleanup
- some renamings
- reverted one unwanted change in vector.fx
2015-10-26 19:49:17 +01:00
ImJezze
0ad0e5548e Fixed Vector Intensity and Flicker
- fixed vector intensity in vector.fx
- fixed vector flicker in vector.c
- change range of vector flicker option from 0 - 100 to 0.00 - 1.00
2015-10-25 11:02:52 +01:00
ImJezze
4610935e79 Small Fixes
- fixed position of reflection effect for vector graphics
- fixed size of rounded corners
- fixed very small black border
2015-10-20 20:07:38 +02:00
ImJezze
cd7de43b13 Fixed Aspect Ratios
- fixed aspect ratios in special post.fx shader for artwork support
2015-10-19 19:03:56 +02:00
ImJezze
7eb83c31a5 Artwork Support
- added special post.fx and distortion.fx shader, which support enabled
artworks, but they cannot apply some of the previously implemented
corrections (e.g. bloom staircase artifacts when screen is curved,
elliptic rounded corners when aspect ratio is not 4:3)
2015-10-18 19:16:46 +02:00
ImJezze
2577b29602 Cleanup
- changed default values of curvature, vignetting, reflection, round
corner and smooth border to 0
- reverted compute_size_subroutine() back to non static
- removed some test code
2015-10-18 14:35:46 +02:00
ImJezze
534cd86c17 Bloom Overdrive
- added experimental bloom overdrive effect and options, this effect
allows to overdrive pure colors like red, green and blue to become more
brighter
- added lcd.ini to parse_standard_inis()
2015-10-10 17:02:51 +02:00
ImJezze
81c15decf8 Smooth Borders
- enabled smooth border effect and added option, its amount is limited
by the amount of rounded corners
- added raster.ini to parse_standard_inis()
- merged vector and raster bloom options, use vector.ini or raster.ini
to distinguish
2015-10-09 18:49:39 +02:00
ImJezze
5addcdd2da Small fixes
- fixed defocus strength with difference prescales
- removed default screen ratio of 4:3, ratio is now based on the screen
quad size
- reverted some space to tab changes
2015-10-04 15:57:07 +02:00
ImJezze
062e6e0383 Refactoring, Fixes and Cleanup
- added distortion pass, which is applied after the bloom pass
- moved vignetting, curvature, round corners and reflection effect to
distortion pass
- disabled distortion pass for multi screens and activated artworks due
to not yet fixed misalignments
- disabled scanlines for vector rendering in post pass shader
- removed prescale knowledge from downsample, bloom and post pass shader
- fixed half pixel offset in most shaders
- fixed position of reflection effect when screen is rotated or flipped
- fixed roundness of round corners in any aspect ratio
- fixed shadow mask bleeding (nearly completly)
- added bounds() and screen_bounds() getter to layout_view
- added current_view() getter to render_target
- some cleanup and refactoring
2015-09-26 18:22:51 +02:00
ImJezze
37f6ff0b65 Refactoring and Fixes
- removed position offset in post.fx
- fixed texture offset caused by 0th level of bloom.fx
- fixed texture offset caused by focus.fx
- changed Passthrough parameter in phosphor.fx to boolean
- simplified defocus pass function and calling it twice
- removed CU_PHOSPHOR_IGNORE (Passthrough) uniform, which was only used
in phosphor pass function and is now directly set
- added CU_TARGET_DIMS (TargetDims) uniform based on the current render
target
- fixed missing Prescal parameter in downsample pass function
- some code cleanup
2015-08-02 17:31:54 +02:00
ImJezze
d132946c6f Vector curvature correction
- corrected vector curvature on x-axis when screen dims and render
target dims differ (there is still a difference on y-axis)
2015-07-19 12:28:51 +02:00
ImJezze
9ce2864141 Post Pass effects for Vector rendering
- added support for post pass effects for vector rendering (does not
work properly in full screen mode, yet)
- made texture_info::compute_size_subroutine() function public static
2015-07-12 23:28:38 +02:00
ImJezze
6e5f7f5d94 Refactoring
- separated downsample pass and bloom pass into two function calls
- removed/replaced simple.fx by using primary.fx to render on screen
- changed PostPass parameter of primary.fx to boolean
- simplified bloom.fx and downsample.fx, Prescale parameter is now set
correctly from outside depending on raster/vector rendering
2015-07-11 20:01:24 +02:00
ImJezze
be2590932b Fixed misaligned scanlines with odd resolutions
- fixed misaligned scanline with odd resolutions caused by centered
coordinates
2015-05-30 15:38:19 +02:00
David Haywood
8745daaca2 Merge pull request #190 from ImJezze/master
Changed vignetting and fixed rounded corners
2015-05-27 15:12:52 +01:00
ImJezze
fe71f92dd2 Quick fix
- something was messed up on the last commit
2015-05-24 17:46:34 +02:00
ImJezze
4c04a362e2 Fixed roundness of rouned corners
- fixed roundness of rounded corners; the default aspect ratio of 4:3
should not be stretched anymore when the source has another ratio
- disabled blurring of rounded corners
- some cleanup
2015-05-24 17:23:38 +02:00
Miodrag Milanovic
7a2ac30275 update in agreement with ImJezze (nw) 2015-05-24 14:53:26 +02:00
ImJezze
0fa1503782 Changed vignetting simulation
- removed screen ratio influence
- changed radius, blur and intensity
2015-05-22 18:56:30 +02:00
ImJezze
a7e221a4a7 Fixed black border
- fixed black border on the right and bottom side of the screen, caused
by the previously added rounded corners
2015-05-15 19:54:52 +02:00
Miodrag Milanovic
54e5245846 added licenses to hlsl files (nw) 2015-05-12 09:18:09 +02:00
ImJezze
3f3647eeef Fixed Curvature zoom
- fixed curvature zoom to fit the screen size in any aspect ratio
2015-05-10 15:05:19 +02:00
ImJezze
871900fe1e Fixed automatic Shadow Mask rotation
- added missing RotationSwapXY shader paramter
2015-05-09 11:51:06 +02:00
ImJezze
f940c884a0 Fixed automatic Shadow Mask rotation
- fixed usage of OrientationSwapXY shader parameter
- added RotationSwapXY shader parameters to consider the user defined
screen rotation
2015-05-09 11:40:23 +02:00
ImJezze
a70198a5fb HLSL shader improvements
- changed shadow mask implementation, shadow count XY now represent the
number of pixel the shadow UV sized tiles will take on the screen
- implemented rotation of the shadow mask texture depending on the
default landscape or portrait view of the screen
- removed prescale and pixel border of the shadow mask texture
- added option to change the shadow UV offset, to reduce the color
bleeding of the shadow mask
- adjusted presets to work with the changed mask implementation
- reduced defocus offset
- improved downsampling for better blurring
- improved alignment of bloom layers (raster and vector)
- applied bloom effect to the render output of screenshot and AVI
recording
- changed curvature effect to fit screen size
- changed scanlines to be not rendered into bloom layers
- changed shadow mask to be not rendered into bloom layers
- changed color floor to not light the bloom layers
- changed shadow mask to not dark the color floor
- added image vignetting simulation and option
- added round screen corner simulation and option
- added screen light reflection simulation and option
- made usage of unused brightness offset (additive)
- removed unused pincushion option
- removed duplicate shadow count Y options
- removed artwork/adapture.png
- added artwork/adapture-grill.png
- added artwork/shadow-mask.png
- added artwork/slot-mask.png
- added hlsl/simple.fx
- removed unused shaders::blit() function
- added shaders::screen_pass() function, which handles the
(raster-)rendering on screen, into screenshot and AVI recording
- added effect:set_bool() function
2015-05-03 14:41:05 +02:00
Ryan Holtz
c3f1015d14 - Fixed bloom misalignment with HLSL. [MooglyGuy] 2014-04-08 18:34:47 +00:00
Scott Stone
aa896515a0 This revert (r26927), as requested by author, fixes the regression of missing graphics for vector games using HLSL. Also reverted patch in code (r27063) to deal with "roundf" for pre-vs2013 compilers - which is no longer needed. (nw) 2014-01-24 00:30:29 +00:00
Ryan Holtz
3312b67f93 - Fix for pixel gaps between multi-screen games in HLSL mode. [MooglyGuy] 2014-01-04 03:17:31 +00:00
Jonathan Gevaryahu
6815ef2958 Reduce smearing on hlsl prescale [MooglyGuy] 2013-11-24 20:58:21 +00:00
Ryan Holtz
8f613c115b more HLSL cleanup, part e of pi (nw) 2013-08-30 01:05:13 +00:00
Ryan Holtz
ac119a8e15 uniform consolidation, nw 2013-08-29 00:56:33 +00:00
Ryan Holtz
a86d35158c minor shader cleanup, nw 2013-08-28 00:36:02 +00:00
Ryan Holtz
37ce180567 -Restructured NTSC encode/decode shaders for better readability. [MooglyGuy] 2013-08-25 20:49:37 +00:00
Ryan Holtz
b224b1f5ed Fix raster_bloom_scale and vector_bloom_scale, nw 2013-05-22 22:25:23 +00:00
Ryan Holtz
1fcfec449f fix composite ntsc shaders, nw 2013-05-22 08:03:01 +00:00
Ryan Holtz
35ef098e64 MAME Testers bugs fixed: 5201, 5202
- HLSL changes: [MooglyGuy]
 * Upped vertex buffer size to 64k verts, fixes assert in
   starwars and alphaone, please include the printed error
   message in any subsequent encounterings of the assert.
 * Improved vector rendering (beam width 1.5 suggested)
 * Ducked raster bloom default to 0.225 to reduce washout
2013-05-22 01:58:38 +00:00
Ryan Holtz
daa3ae3b10 fix incorrect bloom functionality in fullscreen mode, nw 2013-05-20 01:20:22 +00:00
Ryan Holtz
675796fe23 fix vector bloom, nw 2013-05-19 21:53:08 +00:00
Ryan Holtz
e028e20476 - "And he did give them CRT bloom, and it scorched their eyes so; and they wept
openly, for there was nothing left to see with" [MooglyGuy]
  * Enabled vector bloom and associated .ini controls
  * Added raster bloom and associated .ini controls, each bloom "level" is the
    linear weight of successively half-sized render targets
  * Removed D3D8 mode
  * Mass renaming in D3D renderer to use namespaces, initial planning step to
    HAL-based renderer implementation on Windows (i.e., GL on Windows)
  * Converted d3d_info, d3d_poly_info, and d3d_texture_info into classes
  * Added batching of vectors for possible speed increase
  * Minor cleanup of shader state setting
2013-05-19 16:21:26 +00:00
Ryan Holtz
aa19b2633c (nw) Fixed sliders and phosphor offset 2013-02-28 05:22:14 +00:00
Ryan Holtz
d157249cb7 d3dhlsl.c: Add preliminary vector post-processing. [MooglyGuy] 2013-01-21 02:40:48 +00:00
Ryan Holtz
7e652d13c5 - render.c: Added new PRIMFLAG macros pertaining to vectors, to be used by the
OSD. [MooglyGuy]

- d3dhlsl.c: Began laying the groundwork for vector post-processing, disabled
            by default. [MooglyGuy]
2012-12-31 21:29:02 +00:00
Ryan Holtz
4523bfa2d0 HLSL "Hurricain't Keep A Good Dev Down" Bugfix Extravaganza: [Ryan Holtz, Bat
Country Entertainment]
- Created two flags, -hlsl_ini_write and -hlsl_ini_read. The former enables
  custom HLSL INI writing explicitly, the other enables loading of the same.
- Fixed disappearing aperture effect when using custom INI files.
- Fixed diagonal seam on some games, for serious real this time
- Fixed phosphor simulation, now works as expected
2011-08-28 09:10:53 +00:00
Jonathan Gevaryahu
1246cde58c Fix hlsl phosphor decay [nimitz] 2011-07-29 15:08:32 +00:00
Ryan Holtz
80d66bb1d6 HLSL Cleanup, no whatsnew:
- Fixed set_vector functionality and simplified shaders as a result
- Fixed HLSL presets, 0 to 3, in increasing level of terribleness
- Reduced options footprint from RGB triplets

Next plan: Separate INI writing.
2011-06-11 23:46:24 +00:00
Ryan Holtz
1ec454197a HLSL Updates: [Ryan Holtz, Bat Country Entertainment, austere]
- Reworked default shadow mask settings, eliminating rainbow banding and matching reference shots more closely
- Moved color power to occur after shadow mask, as it is intended to simulate nonlinear phosphor response
- Added a variable-width notch filter to the Y channel in NTSC post-processing, eliminating luma banding on e.g. CoCo 2 and Apple II
2011-06-06 21:25:38 +00:00
Ryan Holtz
771b77142f Fix for performance regression and slider regression in HLSL, also re-enabling pixel prescaling in yiq_encode.fx. No whatsnew. 2011-06-03 14:38:59 +00:00
Ryan Holtz
844296b795 Split HLSL code into a separate file, d3dhlsl.c/.h. Also split drawd3d.c into a couple of headers. [Ryan Holtz, Bat Country Entertainment] 2011-06-02 06:22:09 +00:00
Ryan Holtz
61eda625cb NWN: Fixing the NTSC codec. Oops. 2011-05-31 14:43:47 +00:00
Ryan Holtz
f42b5ccda0 No whatsnew
Attempting to fix the HLSL 'blurriness' reported by a few people. Now HLSL will auto-prescale to the nearest texture size that is greater than the target screen size on both axes and is also an even multiple of the raw bitmap's size.
2011-05-31 13:53:25 +00:00
Ryan Holtz
ed6689e2d4 Fixed scanlines, nwn. This took much longer to fix than it should have. :[ 2011-05-31 05:02:17 +00:00
Ryan Holtz
37e8c1d7e4 Fixing some scanline-alignment issues. 2011-05-31 02:04:28 +00:00
Ryan Holtz
773e35d79b Moved "color floor" functionality to occur after scanlines but before shadow mask. Scanlines look much better and no longer cut black lines through the shadow mask. No whatsnew. 2011-05-30 21:40:25 +00:00
Ryan Holtz
796e691522 HLSL Updates: [Ryan Holtz, Bat Country Entertainment, austere, SoltanGris42]
- Added the ability to render screenshots at arbitrary resolutions.
- Added the ability to record AVI videos (albeit with no audio) at arbitrary resolutions.
- Added a 43-tap-wide FIR-based NTSC filter with tunable Y, I and Q frequency response.
- Updated scanlines to have a user-tunable pixel-height ratio in addition to the current screen-height ratio.
- Fixed a VRAM leak that was causing many dynamic-resolution drivers to run out of memory mid-run.
2011-05-30 21:10:23 +00:00
Ryan Holtz
95a156958b nwn, HLSL: Fixing an odd texture banding issue reported by John IV. Odd because both he and I have ATI cards, but it didn't happen for me. 2011-05-28 19:25:14 +00:00
Ryan Holtz
244eb4cf24 No whatnsew: Really, really, really fixed the remaining pixel alignment and UV clamping issues. Tested Gradius, Pac-Man, Mr. Do, and Stompin' with no observed issues. Gradius, in particular, is a good test case as the bottom row of its "Credits" readout lies on the bottom row of pixels, and the scrolling starfield allows visual verification of the X extents as they scroll on and off. 2011-05-28 14:14:05 +00:00
Ryan Holtz
a8919fa63b Fixing clamping on the bottom/right edge, nwn 2011-05-28 00:51:24 +00:00
Ryan Holtz
59d38593e8 MAMETesters bugs fixed:
- 04361: all: When using HLSL screen size not correct 

nwn: Frickin' finally...
2011-05-28 00:49:22 +00:00
Ryan Holtz
3e437e09f0 HLSL updates, nwn:
- Favor bilinear sampling on X and point sampling on Y. Best of both worlds.
2011-05-27 23:24:53 +00:00
Ryan Holtz
3f4046b146 Restored abs() around scanline sin() to increase scanline furrow sharpness and decrease scanline furrow width, no whatsnew 2011-05-27 10:14:26 +00:00
Ryan Holtz
c8ef077d5b HLSL Updates: [Ryan Holtz, Bat Country Entertainment]
- Switched to point-sampling through most of the shader chain to avoid non-intentional pixel smearing
- Corrected alignment and scaling on the shadow mask and scanlines; dramatically reduces rainbow banding at non-oversampled resolutions.
2011-05-27 10:07:11 +00:00
Ryan Holtz
e97aa6b56d Internal HLSL cleanup - removed aux texcoords, restored software vertex processing due to low-end cards not doing hardware vertex processing, removed unnecessary tristrip->trilist splitting. Restores D3D functionality on integrated chipsets and marginal cards. [Ryan Holtz, Ashura-X] 2011-05-24 18:28:54 +00:00
Ryan Holtz
6760f6a40c HLSL bugfxes, nwn 2011-05-24 00:23:40 +00:00
Ryan Holtz
f8a449539a Hopefully fixing the HLSL UV issue once and for all, nw 2011-05-23 15:49:50 +00:00
Ryan Holtz
ae9fbbe44d NTSC fixes, nw 2011-05-23 01:53:35 +00:00
Ryan Holtz
93ea1ba81c NTSC fix, nwn 2011-05-23 01:31:32 +00:00
Ryan Holtz
41d1d2acdc TortoiseSVN indicates these didn't get updated, this should finally nail down the texture border pixel stretching issue, nwn 2011-05-22 03:48:13 +00:00
Ryan Holtz
53e20c168f Fixing multiscreen games, nwn 2011-05-22 02:27:31 +00:00
Ryan Holtz
99dffc122e HLSL: Added adjustable color carrier in YIQ processing mode. [Ryan Holtz, Bat Country Entertainment]
HLSL: Fixed resolution-change crash and likely D3D performance regression with -nohlsl on low-spec cards [Ryan Holtz, Bat Country Entertainment]
2011-05-22 01:30:55 +00:00
Ryan Holtz
76962a2081 Dot crawl tweak. nw 2011-05-21 07:51:50 +00:00
Ryan Holtz
a47bd09534 HLSL Improvements: [Ryan Holtz, Bat Country Entertainment]
- Added magnet deconvergence via a shader uniform
- Improved phosphorescence
- Improved YIQ codec
2011-05-21 06:47:56 +00:00
Ryan Holtz
62f733b938 Removing outdated performance-tuned HLSL shaders now that better performance tuning is available, nw 2011-05-20 22:20:49 +00:00
Ryan Holtz
a0e44c0b00 Fixing a duplicated-texel issue in the HLSL shaders, nw 2011-05-20 22:18:39 +00:00
Ryan Holtz
0235cef534 Fix for -noyiq issues, nw 2011-05-20 07:51:59 +00:00
Ryan Holtz
fd7a110eba HLSL Updates [Ryan Holtz, Bat Country Entertainment]
- Re-worked render target handling to align pixels better, reducing unintentional blurring
- Made major fixes to CVBS simulation, significantly increasing color saturation
2011-05-20 07:37:34 +00:00
Ryan Holtz
cfd6731fa8 HLSL Post-Processing Updates: [Ryan Holtz, Bat Country Entertainment, cgwg]
- The defocus pass is now switched off when defocus_x and defocus_y are zero, allowing finer-grained performance tuning.
- Removed YIQ convolution from the main color-convolution shader and replaced it with a full composite encode/decode pass. This is slower, but looks amazing(ly like a terrible TV) and can be turned off.
- More authentic NTSC dot crawl and bandwidth limiting.
2011-05-19 19:14:20 +00:00
Ryan Holtz
df5254338f Fixed chroma subsampling in color_heavy.fx and color.fx, nw 2011-05-18 02:17:31 +00:00
Ryan Holtz
2820e31451 HLSL Updates [Ryan Holtz, Bat Country Entertainment]
- Potential fix for some crashing reported by John IV
- Split color convolution and deconvergence into separate shaders for potential GPU savings down the line
- Added light and heavy variants of the color convolution shader, the former with YIQ colorspace removed
- Re-worked defocus to occur prior to shadow mask application, as it would be on a real monitor.
- Removed Edge Detection, as it was just for fun and can easily be added in by users if desired.
- Split "pincushion" into "Pincushion" and "Screen Curvature", the former affecting the only the displayed image and the latter only affecting the shadow mask.
2011-05-18 00:35:16 +00:00
Ryan Holtz
f3d341a544 Initial shader import (nw)
Focus: 8-sample blur that averages 7 samples around a center sample.
Phosphor: Not currently used, treated as a pass-through by drawd3d.c, but could be used to implement additional convolutions in a second pass.
Pincushion: Used (when commented in in drawd3d.c) to pincushion an entire full-screen texture but not otherwise apply any convolutions.
Post: The meat and potatoes. It does scanlines, it does aperture masking, it does dot crawl, it does chroma subsampling, it does YIQ colorspace convolution, it does RGB colorspace convolution, it does pincushioning, it walks, it talks, it does the dishes, it'll screw your wife for you, and if you don't have a wife it will find one for you, get you married to her, and screw her for you, IT IS THAT GOOD, LADIES AND GENTLEMEN.
Primary: Simple passthrough for UI and artwork.
2011-05-16 16:55:34 +00:00