trunk/src/osd/modules/render/d3d/d3dhlsl.cpp
| r250296 | r250297 | |
| 72 | 72 | // shader manager constructor |
| 73 | 73 | //============================================================ |
| 74 | 74 | |
| 75 | | shaders::shaders(): |
| 75 | shaders::shaders() : |
| 76 | 76 | d3dintf(NULL), machine(NULL), d3d(NULL), num_screens(0), curr_screen(0), curr_frame(0), write_ini(false), read_ini(false), hlsl_prescale_x(0), hlsl_prescale_y(0), bloom_count(0), |
| 77 | 77 | vecbuf_type(), vecbuf_index(0), vecbuf_count(0), avi_output_file(NULL), avi_frame(0), avi_copy_surface(NULL), avi_copy_texture(NULL), avi_final_target(NULL), avi_final_texture(NULL), |
| 78 | 78 | black_surface(NULL), black_texture(NULL), render_snap(false), snap_rendered(false), snap_copy_target(NULL), snap_copy_texture(NULL), snap_target(NULL), snap_texture(NULL), |
| 79 | 79 | snap_width(0), snap_height(0), lines_pending(false), backbuffer(NULL), curr_effect(NULL), default_effect(NULL), prescale_effect(NULL), post_effect(NULL), distortion_effect(NULL), |
| 80 | 80 | focus_effect(NULL), phosphor_effect(NULL), deconverge_effect(NULL), color_effect(NULL), yiq_encode_effect(NULL), yiq_decode_effect(NULL), bloom_effect(NULL), |
| 81 | 81 | downsample_effect(NULL), vector_effect(NULL), fsfx_vertices(NULL), curr_texture(NULL), curr_render_target(NULL), curr_poly(NULL) |
| 82 | | |
| 83 | 82 | { |
| 84 | 83 | master_enable = false; |
| 85 | 84 | vector_enable = true; |
| r250296 | r250297 | |
| 102 | 101 | |
| 103 | 102 | shaders::~shaders() |
| 104 | 103 | { |
| 105 | | last_options = *options; |
| 106 | | |
| 104 | if (options != NULL) |
| 105 | { |
| 106 | last_options = *options; |
| 107 | } |
| 107 | 108 | options = NULL; |
| 108 | 109 | |
| 109 | 110 | cache_target *currcache = cachehead; |
| r250296 | r250297 | |
| 653 | 654 | |
| 654 | 655 | void shaders::init(base *d3dintf, running_machine *machine, d3d::renderer *renderer) |
| 655 | 656 | { |
| 657 | if (&machine->system() == &GAME_NAME(___empty)) |
| 658 | { |
| 659 | return; |
| 660 | } |
| 661 | |
| 656 | 662 | if (!d3dintf->post_fx_available) |
| 657 | 663 | { |
| 658 | 664 | return; |
| r250296 | r250297 | |
| 2696 | 2702 | return slider_set(&(((hlsl_options*)arg)->bloom_level10_weight), 0.01f, "%1.2f", str, newval); |
| 2697 | 2703 | } |
| 2698 | 2704 | |
| 2699 | | hlsl_options shaders::last_options; |
| 2705 | hlsl_options shaders::last_options = { false }; |
| 2700 | 2706 | |
| 2701 | 2707 | shaders::slider_desc shaders::s_sliders[] = |
| 2702 | 2708 | { |
| 2703 | | { "Vector Length Attenuation", 0, 80, 100, 1, 2, slider_vector_attenuation }, |
| 2709 | { "Vector Length Attenuation", 0, 50, 100, 1, 2, slider_vector_attenuation }, |
| 2704 | 2710 | { "Vector Attenuation Length Limit", 1, 500, 1000, 1, 2, slider_vector_length_max }, |
| 2705 | 2711 | { "Shadow Mask Darkness", 0, 0, 100, 1, 7, slider_shadow_mask_alpha }, |
| 2706 | | { "Shadow Mask X Count", 1, 6, 1024, 1, 7, slider_shadow_mask_x_count }, |
| 2707 | | { "Shadow Mask Y Count", 1, 6, 1024, 1, 7, slider_shadow_mask_y_count }, |
| 2708 | | { "Shadow Mask Pixel Count X", 1, 6, 64, 1, 7, slider_shadow_mask_usize }, |
| 2709 | | { "Shadow Mask Pixel Count Y", 1, 6, 64, 1, 7, slider_shadow_mask_vsize }, |
| 2712 | { "Shadow Mask X Count", 1, 1, 1024, 1, 7, slider_shadow_mask_x_count }, |
| 2713 | { "Shadow Mask Y Count", 1, 1, 1024, 1, 7, slider_shadow_mask_y_count }, |
| 2714 | { "Shadow Mask Pixel Count X", 1, 1, 64, 1, 7, slider_shadow_mask_usize }, |
| 2715 | { "Shadow Mask Pixel Count Y", 1, 1, 64, 1, 7, slider_shadow_mask_vsize }, |
| 2710 | 2716 | { "Shadow Mask Offset X", -100, 0, 100, 1, 7, slider_shadow_mask_uoffset }, |
| 2711 | 2717 | { "Shadow Mask Offset Y", -100, 0, 100, 1, 7, slider_shadow_mask_voffset }, |
| 2712 | 2718 | { "Screen Curvature", 0, 0, 100, 1, 7, slider_curvature }, |
| r250296 | r250297 | |
| 2714 | 2720 | { "Screen Smooth Border", 0, 0, 100, 1, 7, slider_smooth_border }, |
| 2715 | 2721 | { "Screen Reflection", 0, 0, 100, 1, 7, slider_reflection }, |
| 2716 | 2722 | { "Image Vignetting", 0, 0, 100, 1, 7, slider_vignetting }, |
| 2717 | | { "Scanline Darkness", 0, 100, 100, 1, 1, slider_scanline_alpha }, |
| 2723 | { "Scanline Darkness", 0, 0, 100, 1, 1, slider_scanline_alpha }, |
| 2718 | 2724 | { "Scanline Screen Height", 1, 20, 80, 1, 1, slider_scanline_scale }, |
| 2719 | 2725 | { "Scanline Indiv. Height", 1, 20, 80, 1, 1, slider_scanline_height }, |
| 2720 | 2726 | { "Scanline Brightness", 0, 20, 40, 1, 1, slider_scanline_bright_scale }, |
| r250296 | r250297 | |
| 2722 | 2728 | { "Scanline Jitter", 0, 0, 40, 1, 1, slider_scanline_offset }, |
| 2723 | 2729 | { "Defocus X", 0, 0, 64, 1, 3, slider_defocus_x }, |
| 2724 | 2730 | { "Defocus Y", 0, 0, 64, 1, 3, slider_defocus_y }, |
| 2725 | | { "Red Position Offset X", -1500, 3, 1500, 1, 3, slider_red_converge_x }, |
| 2731 | { "Red Position Offset X", -1500, 0, 1500, 1, 3, slider_red_converge_x }, |
| 2726 | 2732 | { "Red Position Offset Y", -1500, 0, 1500, 1, 3, slider_red_converge_y }, |
| 2727 | 2733 | { "Green Position Offset X", -1500, 0, 1500, 1, 3, slider_green_converge_x }, |
| 2728 | | { "Green Position Offset Y", -1500, 3, 1500, 1, 3, slider_green_converge_y }, |
| 2729 | | { "Blue Position Offset X", -1500, 3, 1500, 1, 3, slider_blue_converge_x }, |
| 2730 | | { "Blue Position Offset Y", -1500, 3, 1500, 1, 3, slider_blue_converge_y }, |
| 2734 | { "Green Position Offset Y", -1500, 0, 1500, 1, 3, slider_green_converge_y }, |
| 2735 | { "Blue Position Offset X", -1500, 0, 1500, 1, 3, slider_blue_converge_x }, |
| 2736 | { "Blue Position Offset Y", -1500, 0, 1500, 1, 3, slider_blue_converge_y }, |
| 2731 | 2737 | { "Red Convergence X", -1500, 0, 1500, 1, 3, slider_red_radial_converge_x }, |
| 2732 | 2738 | { "Red Convergence Y", -1500, 0, 1500, 1, 3, slider_red_radial_converge_y }, |
| 2733 | 2739 | { "Green Convergence X", -1500, 0, 1500, 1, 3, slider_green_radial_converge_x }, |
| r250296 | r250297 | |
| 2743 | 2749 | { "Blue Output from Red Input", -400, 0, 400, 5, 7, slider_blue_from_r }, |
| 2744 | 2750 | { "Blue Output from Green Input", -400, 0, 400, 5, 7, slider_blue_from_g }, |
| 2745 | 2751 | { "Blue Output from Blue Input", -400, 0, 400, 5, 7, slider_blue_from_b }, |
| 2746 | | { "Saturation", 0, 140, 400, 1, 7, slider_saturation }, |
| 2752 | { "Saturation", 0, 100, 400, 1, 7, slider_saturation }, |
| 2747 | 2753 | { "Red DC Offset", -100, 0, 100, 1, 7, slider_red_offset }, |
| 2748 | 2754 | { "Green DC Offset", -100, 0, 100, 1, 7, slider_green_offset }, |
| 2749 | 2755 | { "Blue DC Offset", -100, 0, 100, 1, 7, slider_blue_offset }, |
| 2750 | | { "Red Scale", -200, 95, 200, 1, 7, slider_red_scale }, |
| 2751 | | { "Green Scale", -200, 95, 200, 1, 7, slider_green_scale }, |
| 2752 | | { "Blue Scale", -200, 95, 200, 1, 7, slider_blue_scale }, |
| 2753 | | { "Red Gamma", -80, 16, 80, 1, 7, slider_red_power }, |
| 2754 | | { "Green Gamma", -80, 16, 80, 1, 7, slider_green_power }, |
| 2755 | | { "Blue Gamma", -80, 16, 80, 1, 7, slider_blue_power }, |
| 2756 | | { "Red Floor", 0, 5, 100, 1, 7, slider_red_floor }, |
| 2757 | | { "Green Floor", 0, 5, 100, 1, 7, slider_green_floor }, |
| 2758 | | { "Blue Floor", 0, 5, 100, 1, 7, slider_blue_floor }, |
| 2759 | | { "Red Phosphor Life", 0, 40, 100, 1, 7, slider_red_phosphor_life }, |
| 2760 | | { "Green Phosphor Life", 0, 40, 100, 1, 7, slider_green_phosphor_life }, |
| 2761 | | { "Blue Phosphor Life", 0, 40, 100, 1, 7, slider_blue_phosphor_life }, |
| 2762 | | { "Bloom Scale", 0, 250, 2000, 5, 7, slider_bloom_scale }, |
| 2763 | | { "Bloom Red Overdrive", 0, 250, 2000, 5, 7, slider_bloom_red_overdrive }, |
| 2764 | | { "Bloom Green Overdrive", 0, 250, 2000, 5, 7, slider_bloom_green_overdrive }, |
| 2765 | | { "Bloom Blue Overdrive", 0, 250, 2000, 5, 7, slider_bloom_blue_overdrive }, |
| 2756 | { "Red Scale", -200, 100, 200, 1, 7, slider_red_scale }, |
| 2757 | { "Green Scale", -200, 100, 200, 1, 7, slider_green_scale }, |
| 2758 | { "Blue Scale", -200, 100, 200, 1, 7, slider_blue_scale }, |
| 2759 | { "Red Gamma", -80, 0, 80, 1, 7, slider_red_power }, |
| 2760 | { "Green Gamma", -80, 0, 80, 1, 7, slider_green_power }, |
| 2761 | { "Blue Gamma", -80, 0, 80, 1, 7, slider_blue_power }, |
| 2762 | { "Red Floor", 0, 0, 100, 1, 7, slider_red_floor }, |
| 2763 | { "Green Floor", 0, 0, 100, 1, 7, slider_green_floor }, |
| 2764 | { "Blue Floor", 0, 0, 100, 1, 7, slider_blue_floor }, |
| 2765 | { "Red Phosphor Life", 0, 0, 100, 1, 7, slider_red_phosphor_life }, |
| 2766 | { "Green Phosphor Life", 0, 0, 100, 1, 7, slider_green_phosphor_life }, |
| 2767 | { "Blue Phosphor Life", 0, 0, 100, 1, 7, slider_blue_phosphor_life }, |
| 2768 | { "Bloom Scale", 0, 0, 2000, 5, 7, slider_bloom_scale }, |
| 2769 | { "Bloom Red Overdrive", 0, 0, 2000, 5, 7, slider_bloom_red_overdrive }, |
| 2770 | { "Bloom Green Overdrive", 0, 0, 2000, 5, 7, slider_bloom_green_overdrive }, |
| 2771 | { "Bloom Blue Overdrive", 0, 0, 2000, 5, 7, slider_bloom_blue_overdrive }, |
| 2766 | 2772 | { "Bloom Level 0 Scale", 0, 100, 100, 1, 7, slider_bloom_lvl0_scale }, |
| 2767 | | { "Bloom Level 1 Scale", 0, 21, 100, 1, 7, slider_bloom_lvl1_scale }, |
| 2768 | | { "Bloom Level 2 Scale", 0, 19, 100, 1, 7, slider_bloom_lvl2_scale }, |
| 2769 | | { "Bloom Level 3 Scale", 0, 17, 100, 1, 7, slider_bloom_lvl3_scale }, |
| 2770 | | { "Bloom Level 4 Scale", 0, 15, 100, 1, 7, slider_bloom_lvl4_scale }, |
| 2771 | | { "Bloom Level 5 Scale", 0, 14, 100, 1, 7, slider_bloom_lvl5_scale }, |
| 2772 | | { "Bloom Level 6 Scale", 0, 13, 100, 1, 7, slider_bloom_lvl6_scale }, |
| 2773 | | { "Bloom Level 7 Scale", 0, 12, 100, 1, 7, slider_bloom_lvl7_scale }, |
| 2774 | | { "Bloom Level 8 Scale", 0, 11, 100, 1, 7, slider_bloom_lvl8_scale }, |
| 2775 | | { "Bloom Level 9 Scale", 0, 10, 100, 1, 7, slider_bloom_lvl9_scale }, |
| 2776 | | { "Bloom Level 10 Scale", 0, 9, 100, 1, 7, slider_bloom_lvl10_scale }, |
| 2773 | { "Bloom Level 1 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl1_scale }, |
| 2774 | { "Bloom Level 2 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl2_scale }, |
| 2775 | { "Bloom Level 3 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl3_scale }, |
| 2776 | { "Bloom Level 4 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl4_scale }, |
| 2777 | { "Bloom Level 5 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl5_scale }, |
| 2778 | { "Bloom Level 6 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl6_scale }, |
| 2779 | { "Bloom Level 7 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl7_scale }, |
| 2780 | { "Bloom Level 8 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl8_scale }, |
| 2781 | { "Bloom Level 9 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl9_scale }, |
| 2782 | { "Bloom Level 10 Scale", 0, 0, 100, 1, 7, slider_bloom_lvl10_scale }, |
| 2777 | 2783 | { NULL, 0, 0, 0, 0, 0, NULL }, |
| 2778 | 2784 | }; |
| 2779 | 2785 | |
trunk/src/osd/windows/winmain.cpp
| r250296 | r250297 | |
| 280 | 280 | { WINOPTION_HWSTRETCH ";hws", "1", OPTION_BOOLEAN, "enables hardware stretching" }, |
| 281 | 281 | |
| 282 | 282 | // post-processing options |
| 283 | | { NULL, NULL, OPTION_HEADER, "DIRECT3D POST-PROCESSING OPTIONS" }, |
| 284 | | { WINOPTION_HLSL_ENABLE";hlsl", "0", OPTION_BOOLEAN, "enables HLSL post-processing (PS3.0 required)" }, |
| 285 | | { WINOPTION_HLSLPATH, "hlsl", OPTION_STRING, "path to hlsl files" }, |
| 286 | | { WINOPTION_HLSL_PRESCALE_X, "0", OPTION_INTEGER, "HLSL pre-scale override factor for X (0 for auto)" }, |
| 287 | | { WINOPTION_HLSL_PRESCALE_Y, "0", OPTION_INTEGER, "HLSL pre-scale override factor for Y (0 for auto)" }, |
| 288 | | { WINOPTION_HLSL_WRITE, NULL, OPTION_STRING, "enables HLSL AVI writing (huge disk bandwidth suggested)" }, |
| 289 | | { WINOPTION_HLSL_SNAP_WIDTH, "2048", OPTION_STRING, "HLSL upscaled-snapshot width" }, |
| 290 | | { WINOPTION_HLSL_SNAP_HEIGHT, "1536", OPTION_STRING, "HLSL upscaled-snapshot height" }, |
| 291 | | { WINOPTION_SHADOW_MASK_ALPHA";fs_shadwa(0.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask alpha-blend value (1.0 is fully blended, 0.0 is no mask)" }, |
| 292 | | { WINOPTION_SHADOW_MASK_TEXTURE";fs_shadwt(0.0-1.0)", "aperture.png", OPTION_STRING, "shadow mask texture name" }, |
| 293 | | { WINOPTION_SHADOW_MASK_COUNT_X";fs_shadww", "6", OPTION_INTEGER, "shadow mask tile width, in screen dimensions" }, |
| 294 | | { WINOPTION_SHADOW_MASK_COUNT_Y";fs_shadwh", "6", OPTION_INTEGER, "shadow mask tile height, in screen dimensions" }, |
| 295 | | { WINOPTION_SHADOW_MASK_USIZE";fs_shadwu(0.0-1.0)", "0.1875", OPTION_FLOAT, "shadow mask texture width, in U/V dimensions" }, |
| 296 | | { WINOPTION_SHADOW_MASK_VSIZE";fs_shadwv(0.0-1.0)", "0.1875", OPTION_FLOAT, "shadow mask texture height, in U/V dimensions" }, |
| 297 | | { WINOPTION_SHADOW_MASK_UOFFSET";fs_shadwou(-1.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask texture offset, in U direction" }, |
| 298 | | { WINOPTION_SHADOW_MASK_VOFFSET";fs_shadwov(-1.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask texture offset, in V direction" }, |
| 299 | | { WINOPTION_CURVATURE";fs_curv(0.0-1.0)", "0.0", OPTION_FLOAT, "screen curvature amount" }, |
| 300 | | { WINOPTION_ROUND_CORNER";fs_rndc(0.0-1.0)", "0.0", OPTION_FLOAT, "screen round corner amount" }, |
| 301 | | { WINOPTION_SMOOTH_BORDER";fs_smob(0.0-1.0)", "0.0", OPTION_FLOAT, "screen smooth border amount" }, |
| 302 | | { WINOPTION_REFLECTION";fs_ref(0.0-1.0)", "0.0", OPTION_FLOAT, "screen reflection amount" }, |
| 303 | | { WINOPTION_VIGNETTING";fs_vig(0.0-1.0)", "0.0", OPTION_FLOAT, "image vignetting amount" }, |
| 283 | { NULL, NULL, OPTION_HEADER, "DIRECT3D POST-PROCESSING OPTIONS" }, |
| 284 | { WINOPTION_HLSL_ENABLE";hlsl", "0", OPTION_BOOLEAN, "enables HLSL post-processing (PS3.0 required)" }, |
| 285 | { WINOPTION_HLSLPATH, "hlsl", OPTION_STRING, "path to hlsl files" }, |
| 286 | { WINOPTION_HLSL_PRESCALE_X, "0", OPTION_INTEGER, "HLSL pre-scale override factor for X (0 for auto)" }, |
| 287 | { WINOPTION_HLSL_PRESCALE_Y, "0", OPTION_INTEGER, "HLSL pre-scale override factor for Y (0 for auto)" }, |
| 288 | { WINOPTION_HLSL_WRITE, NULL, OPTION_STRING, "enables HLSL AVI writing (huge disk bandwidth suggested)" }, |
| 289 | { WINOPTION_HLSL_SNAP_WIDTH, "2048", OPTION_STRING, "HLSL upscaled-snapshot width" }, |
| 290 | { WINOPTION_HLSL_SNAP_HEIGHT, "1536", OPTION_STRING, "HLSL upscaled-snapshot height" }, |
| 291 | { WINOPTION_SHADOW_MASK_ALPHA";fs_shadwa(0.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask alpha-blend value (1.0 is fully blended, 0.0 is no mask)" }, |
| 292 | { WINOPTION_SHADOW_MASK_TEXTURE";fs_shadwt(0.0-1.0)", "shadow-mask.png", OPTION_STRING, "shadow mask texture name" }, |
| 293 | { WINOPTION_SHADOW_MASK_COUNT_X";fs_shadww", "6", OPTION_INTEGER, "shadow mask tile width, in screen dimensions" }, |
| 294 | { WINOPTION_SHADOW_MASK_COUNT_Y";fs_shadwh", "4", OPTION_INTEGER, "shadow mask tile height, in screen dimensions" }, |
| 295 | { WINOPTION_SHADOW_MASK_USIZE";fs_shadwu(0.0-1.0)", "0.1875", OPTION_FLOAT, "shadow mask texture width, in U/V dimensions" }, |
| 296 | { WINOPTION_SHADOW_MASK_VSIZE";fs_shadwv(0.0-1.0)", "0.25", OPTION_FLOAT, "shadow mask texture height, in U/V dimensions" }, |
| 297 | { WINOPTION_SHADOW_MASK_UOFFSET";fs_shadwou(-1.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask texture offset, in U direction" }, |
| 298 | { WINOPTION_SHADOW_MASK_VOFFSET";fs_shadwov(-1.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask texture offset, in V direction" }, |
| 299 | { WINOPTION_CURVATURE";fs_curv(0.0-1.0)", "0.0", OPTION_FLOAT, "screen curvature amount" }, |
| 300 | { WINOPTION_ROUND_CORNER";fs_rndc(0.0-1.0)", "0.0", OPTION_FLOAT, "screen round corner amount" }, |
| 301 | { WINOPTION_SMOOTH_BORDER";fs_smob(0.0-1.0)", "0.0", OPTION_FLOAT, "screen smooth border amount" }, |
| 302 | { WINOPTION_REFLECTION";fs_ref(0.0-1.0)", "0.0", OPTION_FLOAT, "screen reflection amount" }, |
| 303 | { WINOPTION_VIGNETTING";fs_vig(0.0-1.0)", "0.0", OPTION_FLOAT, "image vignetting amount" }, |
| 304 | 304 | /* Beam-related values below this line*/ |
| 305 | | { WINOPTION_SCANLINE_AMOUNT";fs_scanam(0.0-4.0)", "1.0", OPTION_FLOAT, "overall alpha scaling value for scanlines" }, |
| 306 | | { WINOPTION_SCANLINE_SCALE";fs_scansc(0.0-4.0)", "1.0", OPTION_FLOAT, "overall height scaling value for scanlines" }, |
| 307 | | { WINOPTION_SCANLINE_HEIGHT";fs_scanh(0.0-4.0)", "1.0", OPTION_FLOAT, "individual height scaling value for scanlines" }, |
| 308 | | { WINOPTION_SCANLINE_BRIGHT_SCALE";fs_scanbs(0.0-2.0)", "1.0", OPTION_FLOAT, "overall brightness scaling value for scanlines (multiplicative)" }, |
| 309 | | { WINOPTION_SCANLINE_BRIGHT_OFFSET";fs_scanbo(0.0-1.0)", "0.0", OPTION_FLOAT, "overall brightness offset value for scanlines (additive)" }, |
| 310 | | { WINOPTION_SCANLINE_OFFSET";fs_scanjt(0.0-4.0)", "0.0", OPTION_FLOAT, "overall interlace jitter scaling value for scanlines" }, |
| 311 | | { WINOPTION_DEFOCUS";fs_focus", "0.0,0.0", OPTION_STRING, "overall defocus value in screen-relative coords" }, |
| 312 | | { WINOPTION_CONVERGE_X";fs_convx", "0.3,0.0,-0.3",OPTION_STRING, "convergence in screen-relative X direction" }, |
| 313 | | { WINOPTION_CONVERGE_Y";fs_convy", "0.0,0.3,-0.3",OPTION_STRING, "convergence in screen-relative Y direction" }, |
| 314 | | { WINOPTION_RADIAL_CONVERGE_X";fs_rconvx", "0.0,0.0,0.0",OPTION_STRING, "radial convergence in screen-relative X direction" }, |
| 315 | | { WINOPTION_RADIAL_CONVERGE_Y";fs_rconvy", "0.0,0.0,0.0",OPTION_STRING, "radial convergence in screen-relative Y direction" }, |
| 305 | { WINOPTION_SCANLINE_AMOUNT";fs_scanam(0.0-4.0)", "1.0", OPTION_FLOAT, "overall alpha scaling value for scanlines" }, |
| 306 | { WINOPTION_SCANLINE_SCALE";fs_scansc(0.0-4.0)", "1.0", OPTION_FLOAT, "overall height scaling value for scanlines" }, |
| 307 | { WINOPTION_SCANLINE_HEIGHT";fs_scanh(0.0-4.0)", "1.0", OPTION_FLOAT, "individual height scaling value for scanlines" }, |
| 308 | { WINOPTION_SCANLINE_BRIGHT_SCALE";fs_scanbs(0.0-2.0)", "1.0", OPTION_FLOAT, "overall brightness scaling value for scanlines (multiplicative)" }, |
| 309 | { WINOPTION_SCANLINE_BRIGHT_OFFSET";fs_scanbo(0.0-1.0)", "0.0", OPTION_FLOAT, "overall brightness offset value for scanlines (additive)" }, |
| 310 | { WINOPTION_SCANLINE_OFFSET";fs_scanjt(0.0-4.0)", "0.0", OPTION_FLOAT, "overall interlace jitter scaling value for scanlines" }, |
| 311 | { WINOPTION_DEFOCUS";fs_focus", "1.0,0.0", OPTION_STRING, "overall defocus value in screen-relative coords" }, |
| 312 | { WINOPTION_CONVERGE_X";fs_convx", "0.25,0.00,-0.25", OPTION_STRING, "convergence in screen-relative X direction" }, |
| 313 | { WINOPTION_CONVERGE_Y";fs_convy", "0.0,0.25,-0.25", OPTION_STRING, "convergence in screen-relative Y direction" }, |
| 314 | { WINOPTION_RADIAL_CONVERGE_X";fs_rconvx", "0.0,0.0,0.0", OPTION_STRING, "radial convergence in screen-relative X direction" }, |
| 315 | { WINOPTION_RADIAL_CONVERGE_Y";fs_rconvy", "0.0,0.0,0.0", OPTION_STRING, "radial convergence in screen-relative Y direction" }, |
| 316 | 316 | /* RGB colorspace convolution below this line */ |
| 317 | | { WINOPTION_RED_RATIO";fs_redratio", "1.0,0.0,0.0",OPTION_STRING, "red output signal generated by input signal" }, |
| 318 | | { WINOPTION_GRN_RATIO";fs_grnratio", "0.0,1.0,0.0",OPTION_STRING, "green output signal generated by input signal" }, |
| 319 | | { WINOPTION_BLU_RATIO";fs_bluratio", "0.0,0.0,1.0",OPTION_STRING, "blue output signal generated by input signal" }, |
| 320 | | { WINOPTION_SATURATION";fs_sat(0.0-4.0)", "1.4", OPTION_FLOAT, "saturation scaling value" }, |
| 321 | | { WINOPTION_OFFSET";fs_offset", "0.0,0.0,0.0",OPTION_STRING, "signal offset value (additive)" }, |
| 322 | | { WINOPTION_SCALE";fs_scale", "0.95,0.95,0.95",OPTION_STRING, "signal scaling value (multiplicative)" }, |
| 323 | | { WINOPTION_POWER";fs_power", "0.8,0.8,0.8",OPTION_STRING, "signal power value (exponential)" }, |
| 324 | | { WINOPTION_FLOOR";fs_floor", "0.05,0.05,0.05",OPTION_STRING, "signal floor level" }, |
| 325 | | { WINOPTION_PHOSPHOR";fs_phosphor", "0.4,0.4,0.4",OPTION_STRING, "phosphorescence decay rate (0.0 is instant, 1.0 is forever)" }, |
| 317 | { WINOPTION_RED_RATIO";fs_redratio", "1.0,0.0,0.0", OPTION_STRING, "red output signal generated by input signal" }, |
| 318 | { WINOPTION_GRN_RATIO";fs_grnratio", "0.0,1.0,0.0", OPTION_STRING, "green output signal generated by input signal" }, |
| 319 | { WINOPTION_BLU_RATIO";fs_bluratio", "0.0,0.0,1.0", OPTION_STRING, "blue output signal generated by input signal" }, |
| 320 | { WINOPTION_SATURATION";fs_sat(0.0-4.0)", "1.4", OPTION_FLOAT, "saturation scaling value" }, |
| 321 | { WINOPTION_OFFSET";fs_offset", "0.0,0.0,0.0", OPTION_STRING, "signal offset value (additive)" }, |
| 322 | { WINOPTION_SCALE";fs_scale", "0.95,0.95,0.95", OPTION_STRING, "signal scaling value (multiplicative)" }, |
| 323 | { WINOPTION_POWER";fs_power", "0.8,0.8,0.8", OPTION_STRING, "signal power value (exponential)" }, |
| 324 | { WINOPTION_FLOOR";fs_floor", "0.05,0.05,0.05", OPTION_STRING, "signal floor level" }, |
| 325 | { WINOPTION_PHOSPHOR";fs_phosphor", "0.4,0.4,0.4", OPTION_STRING, "phosphorescence decay rate (0.0 is instant, 1.0 is forever)" }, |
| 326 | 326 | /* NTSC simulation below this line */ |
| 327 | | { NULL, NULL, OPTION_HEADER, "NTSC POST-PROCESSING OPTIONS" }, |
| 328 | | { WINOPTION_YIQ_ENABLE";yiq", "0", OPTION_BOOLEAN, "enables YIQ-space HLSL post-processing" }, |
| 329 | | { WINOPTION_YIQ_CCVALUE";yiqcc", "3.59754545",OPTION_FLOAT, "Color Carrier frequency for NTSC signal processing" }, |
| 330 | | { WINOPTION_YIQ_AVALUE";yiqa", "0.5", OPTION_FLOAT, "A value for NTSC signal processing" }, |
| 331 | | { WINOPTION_YIQ_BVALUE";yiqb", "0.5", OPTION_FLOAT, "B value for NTSC signal processing" }, |
| 332 | | { WINOPTION_YIQ_OVALUE";yiqo", "1.570796325",OPTION_FLOAT, "Outgoing Color Carrier phase offset for NTSC signal processing" }, |
| 333 | | { WINOPTION_YIQ_PVALUE";yiqp", "1.0", OPTION_FLOAT, "Incoming Pixel Clock scaling value for NTSC signal processing" }, |
| 334 | | { WINOPTION_YIQ_NVALUE";yiqn", "1.0", OPTION_FLOAT, "Y filter notch width for NTSC signal processing" }, |
| 335 | | { WINOPTION_YIQ_YVALUE";yiqy", "6.0", OPTION_FLOAT, "Y filter cutoff frequency for NTSC signal processing" }, |
| 336 | | { WINOPTION_YIQ_IVALUE";yiqi", "1.2", OPTION_FLOAT, "I filter cutoff frequency for NTSC signal processing" }, |
| 337 | | { WINOPTION_YIQ_QVALUE";yiqq", "0.6", OPTION_FLOAT, "Q filter cutoff frequency for NTSC signal processing" }, |
| 338 | | { WINOPTION_YIQ_SCAN_TIME";yiqsc", "52.6", OPTION_FLOAT, "Horizontal scanline duration for NTSC signal processing (in usec)" }, |
| 339 | | { WINOPTION_YIQ_PHASE_COUNT";yiqp", "2", OPTION_INTEGER, "Phase Count value for NTSC signal processing" }, |
| 340 | | { WINOPTION_YIQ_SCAN_TIME";yiqsc", "52.6", OPTION_FLOAT, "Horizontal scanline duration for NTSC signal processing (in usec)" }, |
| 341 | | { WINOPTION_YIQ_PHASE_COUNT";yiqp", "2", OPTION_INTEGER, "Phase Count value for NTSC signal processing" }, |
| 327 | { NULL, NULL, OPTION_HEADER, "NTSC POST-PROCESSING OPTIONS" }, |
| 328 | { WINOPTION_YIQ_ENABLE";yiq", "0", OPTION_BOOLEAN, "enables YIQ-space HLSL post-processing" }, |
| 329 | { WINOPTION_YIQ_CCVALUE";yiqcc", "3.59754545", OPTION_FLOAT, "Color Carrier frequency for NTSC signal processing" }, |
| 330 | { WINOPTION_YIQ_AVALUE";yiqa", "0.5", OPTION_FLOAT, "A value for NTSC signal processing" }, |
| 331 | { WINOPTION_YIQ_BVALUE";yiqb", "0.5", OPTION_FLOAT, "B value for NTSC signal processing" }, |
| 332 | { WINOPTION_YIQ_OVALUE";yiqo", "1.570796325", OPTION_FLOAT, "Outgoing Color Carrier phase offset for NTSC signal processing" }, |
| 333 | { WINOPTION_YIQ_PVALUE";yiqp", "1.0", OPTION_FLOAT, "Incoming Pixel Clock scaling value for NTSC signal processing" }, |
| 334 | { WINOPTION_YIQ_NVALUE";yiqn", "1.0", OPTION_FLOAT, "Y filter notch width for NTSC signal processing" }, |
| 335 | { WINOPTION_YIQ_YVALUE";yiqy", "6.0", OPTION_FLOAT, "Y filter cutoff frequency for NTSC signal processing" }, |
| 336 | { WINOPTION_YIQ_IVALUE";yiqi", "1.2", OPTION_FLOAT, "I filter cutoff frequency for NTSC signal processing" }, |
| 337 | { WINOPTION_YIQ_QVALUE";yiqq", "0.6", OPTION_FLOAT, "Q filter cutoff frequency for NTSC signal processing" }, |
| 338 | { WINOPTION_YIQ_SCAN_TIME";yiqsc", "52.6", OPTION_FLOAT, "Horizontal scanline duration for NTSC signal processing (in usec)" }, |
| 339 | { WINOPTION_YIQ_PHASE_COUNT";yiqp", "2", OPTION_INTEGER, "Phase Count value for NTSC signal processing" }, |
| 340 | { WINOPTION_YIQ_SCAN_TIME";yiqsc", "52.6", OPTION_FLOAT, "Horizontal scanline duration for NTSC signal processing (in usec)" }, |
| 341 | { WINOPTION_YIQ_PHASE_COUNT";yiqp", "2", OPTION_INTEGER, "Phase Count value for NTSC signal processing" }, |
| 342 | 342 | /* Vector simulation below this line */ |
| 343 | | { NULL, NULL, OPTION_HEADER, "VECTOR POST-PROCESSING OPTIONS" }, |
| 344 | | { WINOPTION_VECTOR_LENGTH_SCALE";veclength", "0.8", OPTION_FLOAT, "How much length affects vector fade" }, |
| 345 | | { WINOPTION_VECTOR_LENGTH_RATIO";vecsize", "500.0", OPTION_FLOAT, "Vector fade length (4.0 - vectors fade the most at and above 4 pixels, etc.)" }, |
| 343 | { NULL, NULL, OPTION_HEADER, "VECTOR POST-PROCESSING OPTIONS" }, |
| 344 | { WINOPTION_VECTOR_LENGTH_SCALE";veclength", "0.5", OPTION_FLOAT, "How much length affects vector fade" }, |
| 345 | { WINOPTION_VECTOR_LENGTH_RATIO";vecsize", "500.0", OPTION_FLOAT, "Vector fade length (4.0 - vectors fade the most at and above 4 pixels, etc.)" }, |
| 346 | 346 | /* Bloom below this line */ |
| 347 | | { NULL, NULL, OPTION_HEADER, "BLOOM POST-PROCESSING OPTIONS" }, |
| 348 | | { WINOPTION_BLOOM_SCALE, "0.25", OPTION_FLOAT, "Intensity factor for bloom" }, |
| 349 | | { WINOPTION_BLOOM_OVERDRIVE, "0.0,0.0,0.0",OPTION_STRING, "Overdrive factor for bloom" }, |
| 350 | | { WINOPTION_BLOOM_LEVEL0_WEIGHT, "1.0", OPTION_FLOAT, "Bloom level 0 (full-size target) weight" }, |
| 351 | | { WINOPTION_BLOOM_LEVEL1_WEIGHT, "0.21", OPTION_FLOAT, "Bloom level 1 (half-size target) weight" }, |
| 352 | | { WINOPTION_BLOOM_LEVEL2_WEIGHT, "0.19", OPTION_FLOAT, "Bloom level 2 (quarter-size target) weight" }, |
| 353 | | { WINOPTION_BLOOM_LEVEL3_WEIGHT, "0.17", OPTION_FLOAT, "Bloom level 3 (.) weight" }, |
| 354 | | { WINOPTION_BLOOM_LEVEL4_WEIGHT, "0.15", OPTION_FLOAT, "Bloom level 4 (.) weight" }, |
| 355 | | { WINOPTION_BLOOM_LEVEL5_WEIGHT, "0.14", OPTION_FLOAT, "Bloom level 5 (.) weight" }, |
| 356 | | { WINOPTION_BLOOM_LEVEL6_WEIGHT, "0.13", OPTION_FLOAT, "Bloom level 6 (.) weight" }, |
| 357 | | { WINOPTION_BLOOM_LEVEL7_WEIGHT, "0.12", OPTION_FLOAT, "Bloom level 7 (.) weight" }, |
| 358 | | { WINOPTION_BLOOM_LEVEL8_WEIGHT, "0.11", OPTION_FLOAT, "Bloom level 8 (.) weight" }, |
| 359 | | { WINOPTION_BLOOM_LEVEL9_WEIGHT, "0.10", OPTION_FLOAT, "Bloom level 9 (.) weight" }, |
| 360 | | { WINOPTION_BLOOM_LEVEL10_WEIGHT, "0.09", OPTION_FLOAT, "Bloom level 10 (1x1 target) weight" }, |
| 347 | { NULL, NULL, OPTION_HEADER, "BLOOM POST-PROCESSING OPTIONS" }, |
| 348 | { WINOPTION_BLOOM_SCALE, "0.25", OPTION_FLOAT, "Intensity factor for bloom" }, |
| 349 | { WINOPTION_BLOOM_OVERDRIVE, "1.0,1.0,1.0", OPTION_STRING, "Overdrive factor for bloom" }, |
| 350 | { WINOPTION_BLOOM_LEVEL0_WEIGHT, "1.0", OPTION_FLOAT, "Bloom level 0 (full-size target) weight" }, |
| 351 | { WINOPTION_BLOOM_LEVEL1_WEIGHT, "0.64", OPTION_FLOAT, "Bloom level 1 (half-size target) weight" }, |
| 352 | { WINOPTION_BLOOM_LEVEL2_WEIGHT, "0.32", OPTION_FLOAT, "Bloom level 2 (quarter-size target) weight" }, |
| 353 | { WINOPTION_BLOOM_LEVEL3_WEIGHT, "0.16", OPTION_FLOAT, "Bloom level 3 (.) weight" }, |
| 354 | { WINOPTION_BLOOM_LEVEL4_WEIGHT, "0.08", OPTION_FLOAT, "Bloom level 4 (.) weight" }, |
| 355 | { WINOPTION_BLOOM_LEVEL5_WEIGHT, "0.04", OPTION_FLOAT, "Bloom level 5 (.) weight" }, |
| 356 | { WINOPTION_BLOOM_LEVEL6_WEIGHT, "0.04", OPTION_FLOAT, "Bloom level 6 (.) weight" }, |
| 357 | { WINOPTION_BLOOM_LEVEL7_WEIGHT, "0.02", OPTION_FLOAT, "Bloom level 7 (.) weight" }, |
| 358 | { WINOPTION_BLOOM_LEVEL8_WEIGHT, "0.02", OPTION_FLOAT, "Bloom level 8 (.) weight" }, |
| 359 | { WINOPTION_BLOOM_LEVEL9_WEIGHT, "0.01", OPTION_FLOAT, "Bloom level 9 (.) weight" }, |
| 360 | { WINOPTION_BLOOM_LEVEL10_WEIGHT, "0.01", OPTION_FLOAT, "Bloom level 10 (1x1 target) weight" }, |
| 361 | 361 | |
| 362 | 362 | // full screen options |
| 363 | 363 | { NULL, NULL, OPTION_HEADER, "FULL SCREEN OPTIONS" }, |