Mega Bezel Reflection Shader! - Feedback and Updates

No problem :slight_smile:

This is good to hear :slight_smile:

I don’t think I’m aware of what this issue is, is it unrelated to the mega bezel? Or is it that when vertical overscan is ON that it messes up the scaling the mega bezel does?

That was what you said about this issue some time ago:

2 Likes

@HyperspaceMadness Here are my settings for a 1080 screen. If you want this work in 4k change scale_x18, scale_y18 from a value of 1.0 to .5. You could change the mask scale to 4 put halving the resolution has the benefit of making it run faster. It looks nice on sd videos as well. Again, awesome shader, thank you for making it.

shaders = "26"
shader0 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-prep-initial-debug-avgluma-afterglow.slang"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "AvgLumPass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
shader1 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass0.slang"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = ""
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
shader2 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass1.slang"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = ""
float_framebuffer2 = "false"
srgb_framebuffer2 = "false"
shader3 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass2.slang"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = ""
float_framebuffer3 = "false"
srgb_framebuffer3 = "false"
shader4 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass3.slang"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "false"
srgb_framebuffer4 = "false"
shader5 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-mdapt/hsm-mdapt-pass4.slang"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = ""
float_framebuffer5 = "false"
srgb_framebuffer5 = "false"
shader6 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-gtu/hsm-gtu-pass1.slang"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-gtu/hsm-gtu-pass2.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/stock.slang"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
shader9 = "shaders_slang/stock.slang"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
shader10 = "shaders_slang/stock.slang"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
shader11 = "shaders_slang/crt/shaders/guest/lut/lut.slang"
filter_linear11 = "false"
wrap_mode11 = "clamp_to_border"
mipmap_input11 = "false"
alias11 = ""
float_framebuffer11 = "false"
srgb_framebuffer11 = "false"
scale_type_x11 = "source"
scale_x11 = "1.000000"
scale_type_y11 = "source"
scale_y11 = "1.000000"
shader12 = "shaders_slang/crt/shaders/guest/color-profiles.slang"
filter_linear12 = "true"
wrap_mode12 = "clamp_to_border"
mipmap_input12 = "false"
alias12 = ""
float_framebuffer12 = "false"
srgb_framebuffer12 = "false"
scale_type_x12 = "source"
scale_x12 = "1.000000"
scale_type_y12 = "source"
scale_y12 = "1.000000"
shader13 = "shaders_slang/crt/shaders/guest/d65-d50.slang"
filter_linear13 = "true"
wrap_mode13 = "clamp_to_border"
mipmap_input13 = "false"
alias13 = "WhitePointPass"
float_framebuffer13 = "false"
srgb_framebuffer13 = "false"
scale_type_x13 = "source"
scale_x13 = "1.000000"
scale_type_y13 = "source"
scale_y13 = "1.000000"
shader14 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-guest/hsm-guest-linearize.slang"
filter_linear14 = "false"
wrap_mode14 = "clamp_to_border"
mipmap_input14 = "false"
alias14 = "LinearizePass"
float_framebuffer14 = "true"
srgb_framebuffer14 = "false"
scale_type_x14 = "source"
scale_x14 = "1.000000"
scale_type_y14 = "source"
scale_y14 = "1.000000"
shader15 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-guest/hsm-guest-blur_horiz.slang"
filter_linear15 = "false"
wrap_mode15 = "clamp_to_border"
mipmap_input15 = "false"
alias15 = ""
float_framebuffer15 = "true"
srgb_framebuffer15 = "false"
scale_type_x15 = "source"
scale_x15 = "1.000000"
scale_type_y15 = "source"
scale_y15 = "1.000000"
shader16 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-guest/hsm-guest-blur_vert.slang"
filter_linear16 = "false"
wrap_mode16 = "clamp_to_border"
mipmap_input16 = "false"
alias16 = "GlowPass"
float_framebuffer16 = "true"
srgb_framebuffer16 = "false"
scale_type_x16 = "source"
scale_x16 = "1.000000"
scale_type_y16 = "source"
scale_y16 = "1.000000"
shader17 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-guest/hsm-guest-linearize_scanlines.slang"
filter_linear17 = "true"
wrap_mode17 = "clamp_to_border"
mipmap_input17 = "false"
alias17 = ""
float_framebuffer17 = "true"
srgb_framebuffer17 = "false"
scale_type_x17 = "source"
scale_x17 = "1.000000"
scale_type_y17 = "source"
scale_y17 = "1.000000"
shader18 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-guest/hsm-crt-guest-dr-venom-with-scaling.slang"
filter_linear18 = "true"
wrap_mode18 = "mirrored_repeat"
mipmap_input18 = "true"
alias18 = "BR_CRTPass"
float_framebuffer18 = "true"
srgb_framebuffer18 = "false"
scale_type_x18 = "viewport"
scale_x18 = "1.000000"
scale_type_y18 = "viewport"
scale_y18 = "1.000000"
shader19 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-curvature-mapping.slang"
filter_linear19 = "true"
wrap_mode19 = "clamp_to_border"
mipmap_input19 = "true"
alias19 = "BR_MappingPass"
float_framebuffer19 = "true"
srgb_framebuffer19 = "false"
scale_type_x19 = "viewport"
scale_x19 = "1.000000"
scale_type_y19 = "viewport"
scale_y19 = "1.000000"
shader20 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-linearize-crt.slang"
filter_linear20 = "true"
wrap_mode20 = "mirrored_repeat"
mipmap_input20 = "true"
alias20 = "BR_MirrorLowResPass"
float_framebuffer20 = "true"
srgb_framebuffer20 = "false"
scale_type_x20 = "absolute"
scale_x20 = "800"
scale_type_y20 = "absolute"
scale_y20 = "600"
shader21 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-blur-outside-screen-horiz.slang"
filter_linear21 = "true"
wrap_mode21 = "mirrored_repeat"
mipmap_input21 = "true"
alias21 = ""
float_framebuffer21 = "true"
srgb_framebuffer21 = "false"
shader22 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-blur-outside-screen-vert.slang"
filter_linear22 = "false"
wrap_mode22 = "mirrored_repeat"
mipmap_input22 = "false"
alias22 = "BR_MirrorBlurredPass"
float_framebuffer22 = "true"
srgb_framebuffer22 = "false"
scale_type_x22 = "source"
scale_x22 = "1.000000"
scale_type_y22 = "source"
scale_y22 = "1.000000"
shader23 = "shaders_slang/blurs/blur9x9.slang"
filter_linear23 = "true"
wrap_mode23 = "mirrored_repeat"
mipmap_input23 = "true"
alias23 = "BR_MirrorReflectionDiffusedPass"
float_framebuffer23 = "true"
srgb_framebuffer23 = "false"
scale_type_x23 = "absolute"
scale_x23 = "128"
scale_type_y23 = "absolute"
scale_y23 = "128"
shader24 = "shaders_slang/blurs/blur9x9.slang"
filter_linear24 = "true"
wrap_mode24 = "mirrored_repeat"
mipmap_input24 = "true"
alias24 = "BR_MirrorFullscreenGlowPass"
float_framebuffer24 = "true"
srgb_framebuffer24 = "false"
scale_type_x24 = "absolute"
scale_x24 = "12"
scale_type_y24 = "absolute"
scale_y24 = "12"
shader25 = "shaders_slang/crt/shaders/HyperspaceMadness/hsm-mega-bezel-reflection.slang"
filter_linear25 = "true"
wrap_mode25 = "clamp_to_border"
mipmap_input25 = "true"
alias25 = ""
float_framebuffer25 = "false"
srgb_framebuffer25 = "false"
scale_type_x25 = "viewport"
scale_x25 = "1.000000"
scale_type_y25 = "viewport"
scale_y25 = "1.000000"
parameters = "hmss_mega_screen_scale_on;hmss_screen_scale_debug;hmss_rotate_crt_image;hmss_aspect_ratio_mode;hmss_screen_aspect_ratio;hmss_integer_scale_mode;hmss_non_integer_scale;hmss_int_scale_multiple_offset;hmss_int_scale_border_min_height;hmss_scanline_direction;hmss_position_offset_x;hmss_position_offset_y;hmss_crop_overscan_top;hmss_crop_overscan_bottom;hmss_crop_overscan_left;hmss_crop_overscan_right;hmss_curvature_mode;hmss_curvature_3D_radius;hmss_curvature_3D_view_dist;hmss_curvature_3D_tilt_angle_x;hmss_curvature_3D_tilt_angle_y;hmss_curvature_2D_long_axis;hmss_curvature_2D_short_axis;hmss_curvature_post_scale_x;hmss_curvature_post_scale_y;hmss_corner_radius;hmss_screen_edge_sharpness;hmss_screen_vignette;hmss_pre_crt_black_level;hmss_pre_crt_gamma;hmss_post_crt_gamma;hmss_negative_crop_brightness;hmss_afterglow_amount;hmss_tube_black_edge_thickness;hmss_tube_black_edge_curvature_scale;hmbz_tube_glass_image_opacity;hmbz_tube_edge_shadow;hmbz_background_image_opacity;hmbz_background_image_scale_mode;hmbz_background_image_aspect_ratio;hmbz_background_image_tube_height;hmbz_background_image_vignette_opacity;hmbz_bezel_color_hue;hmbz_bezel_color_saturation;hmbz_bezel_color_value;hmbz_bezel_color_blend_with_image;hmbz_bezel_opacity;hmbz_bezel_width;hmbz_bezel_height;hmbz_bezel_inner_corner_radius_scale;hmbz_bezel_outer_corner_radius_scale;hmbz_bezel_inner_edge_thickness;hmbz_bezel_brightness;hmbz_bezel_highlight;hmbz_bezel_noise;hmbz_frame_opacity;hmbz_frame_thickness;hmbz_frame_outer_corner_radius;hmbz_frame_pos_y_offset;hmbz_frame_shadow_opacity;hmbz_frame_shadow_width;hbl_blur_num_samples;hbl_blur_min;hbl_blur_max;hbr_noise_amount;hbr_noise_samples;hbr_noise_sample_distance;hbr_global_amount;hbr_global_gamma_adjust;hbr_inner_edge_reflection;hbr_inner_edge_fullscreen_glow;hbr_direct_reflection;hbr_diffused_reflection;hbr_fullscreen_glow;hbr_fullscreen_glow_gamma;hbr_fade_amount;hbr_radial_fade_width;hbr_radial_fade_height;hbr_lateral_outer_fade_position;hbr_lateral_outer_fade_distance;hbr_corner_fade;hbr_corner_fade_distance;hbr_corner_inner_spread;hbr_corner_outer_spread;hbr_corner_spread_falloff;dedithering_on;VL;gtu_on;compositeConnection;signalResolution;TNTC;CP;CS;WP;wp_saturation;GLOW_FALLOFF_H;GLOW_FALLOFF_V;brightboost;brightboost1;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;h_sharp;s_sharp;glow;shadowMask;masksize;vertmask;slotmask;slotwidth;double_slot;slotms;mcut;maskDark;maskLight;CGWG;spike;inter;interm;bloom;scans"
hmss_mega_screen_scale_on = "1.000000"
hmss_screen_scale_debug = "0.000000"
hmss_rotate_crt_image = "0.000000"
hmss_aspect_ratio_mode = "0.000000"
hmss_screen_aspect_ratio = "1.333300"
hmss_integer_scale_mode = "0.000000"
hmss_non_integer_scale = "98.169312"
hmss_int_scale_multiple_offset = "0.000000"
hmss_int_scale_border_min_height = "5.500000"
hmss_scanline_direction = "2.000000"
hmss_position_offset_x = "0.000000"
hmss_position_offset_y = "0.000000"
hmss_crop_overscan_top = "0.000000"
hmss_crop_overscan_bottom = "0.000000"
hmss_crop_overscan_left = "0.000000"
hmss_crop_overscan_right = "0.000000"
hmss_curvature_mode = "3.000000"
hmss_curvature_3D_radius = "2.000000"
hmss_curvature_3D_view_dist = "2.000000"
hmss_curvature_3D_tilt_angle_x = "0.000000"
hmss_curvature_3D_tilt_angle_y = "0.000000"
hmss_curvature_2D_long_axis = "0.000000"
hmss_curvature_2D_short_axis = "0.000000"
hmss_curvature_post_scale_x = "100.000000"
hmss_curvature_post_scale_y = "100.000000"
hmss_corner_radius = "10.000000"
hmss_screen_edge_sharpness = "0.400000"
hmss_screen_vignette = "0.000000"
hmss_pre_crt_black_level = "0.000000"
hmss_pre_crt_gamma = "2.099998"
hmss_post_crt_gamma = "1.000000"
hmss_negative_crop_brightness = "0.000000"
hmss_afterglow_amount = "0.070000"
hmss_tube_black_edge_thickness = "0.300000"
hmss_tube_black_edge_curvature_scale = "1.000000"
hmbz_tube_glass_image_opacity = "0.000000"
hmbz_tube_edge_shadow = "0.700000"
hmbz_background_image_opacity = "0.000000"
hmbz_background_image_scale_mode = "2.000000"
hmbz_background_image_aspect_ratio = "1.770000"
hmbz_background_image_tube_height = "69.000000"
hmbz_background_image_vignette_opacity = "0.500000"
hmbz_bezel_color_hue = "0.000000"
hmbz_bezel_color_saturation = "0.000000"
hmbz_bezel_color_value = "10.000000"
hmbz_bezel_color_blend_with_image = "1.000000"
hmbz_bezel_opacity = "0.000000"
hmbz_bezel_width = "79.999352"
hmbz_bezel_height = "79.999352"
hmbz_bezel_inner_corner_radius_scale = "0.500000"
hmbz_bezel_outer_corner_radius_scale = "1.000000"
hmbz_bezel_inner_edge_thickness = "0.900000"
hmbz_bezel_brightness = "40.000000"
hmbz_bezel_highlight = "1.000000"
hmbz_bezel_noise = "30.000000"
hmbz_frame_opacity = "1.000000"
hmbz_frame_thickness = "8.000000"
hmbz_frame_outer_corner_radius = "5.000000"
hmbz_frame_pos_y_offset = "0.000000"
hmbz_frame_shadow_opacity = "1.000000"
hmbz_frame_shadow_width = "10.000000"
hbl_blur_num_samples = "20.000000"
hbl_blur_min = "0.000000"
hbl_blur_max = "0.950000"
hbr_noise_amount = "0.500000"
hbr_noise_samples = "0.000000"
hbr_noise_sample_distance = "0.200000"
hbr_global_amount = "0.400000"
hbr_global_gamma_adjust = "1.200000"
hbr_inner_edge_reflection = "0.700000"
hbr_inner_edge_fullscreen_glow = "0.400000"
hbr_direct_reflection = "1.500000"
hbr_diffused_reflection = "0.500000"
hbr_fullscreen_glow = "75.000000"
hbr_fullscreen_glow_gamma = "3.000000"
hbr_fade_amount = "1.000000"
hbr_radial_fade_width = "70.000000"
hbr_radial_fade_height = "100.000000"
hbr_lateral_outer_fade_position = "-18.000000"
hbr_lateral_outer_fade_distance = "20.000000"
hbr_corner_fade = "10.000000"
hbr_corner_fade_distance = "100.000000"
hbr_corner_inner_spread = "500.000000"
hbr_corner_outer_spread = "160.000000"
hbr_corner_spread_falloff = "50.000000"
dedithering_on = "0.000000"
VL = "0.000000"
gtu_on = "1.000000"
compositeConnection = "0.000000"
signalResolution = "432.000000"
TNTC = "0.000000"
CP = "0.000000"
CS = "2.000000"
WP = "0.000000"
wp_saturation = "1.100000"
GLOW_FALLOFF_H = "1.000000"
GLOW_FALLOFF_V = "1.000000"
brightboost = "1.400000"
brightboost1 = "1.150000"
gsl = "0.000000"
scanline1 = "6.000000"
scanline2 = "8.000000"
beam_min = "0.800000"
beam_max = "0.800000"
beam_size = "0.000000"
h_sharp = "5.250000"
s_sharp = "0.400000"
glow = "0.200000"
shadowMask = "7.000000"
masksize = "2.000000"
vertmask = "0.000000"
slotmask = "0.400000"
slotwidth = "6.000000"
double_slot = "1.000000"
slotms = "1.000000"
mcut = "0.000000"
maskDark = "0.000000"
maskLight = "1.500000"
CGWG = "0.500000"
spike = "1.000000"
inter = "0.000000"
interm = "3.000000"
bloom = "0.000000"
scans = "0.500000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;BackgroundImage;BackgroundVertImage;TubeGlassImage;OverlayImage;OverlayVertImage"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
BackgroundImage = "shaders_slang/crt/shaders/HyperspaceMadness/textures/BackgroundImage_3840x2160.png"
BackgroundImage_wrap_mode = "clamp_to_border"
BackgroundImage_mipmap = "false"
BackgroundVertImage = "shaders_slang/crt/shaders/HyperspaceMadness/textures/BackgroundImage_3840x2160.png"
BackgroundVertImage_wrap_mode = "clamp_to_border"
BackgroundVertImage_mipmap = "false"
TubeGlassImage = "shaders_slang/crt/shaders/HyperspaceMadness/textures/TubeGlassOverlayImage_3840x2160.png"
TubeGlassImage_wrap_mode = "clamp_to_border"
TubeGlassImage_mipmap = "false"
OverlayImage = "shaders_slang/crt/shaders/HyperspaceMadness/textures/OverlayImage_OverReflection_3840x2160.png"
OverlayImage_wrap_mode = "clamp_to_border"
OverlayImage_mipmap = "false"
OverlayVertImage = "shaders_slang/crt/shaders/HyperspaceMadness/textures/OverlayImage_OverReflection_3840x2160.png"
OverlayVertImage_wrap_mode = "clamp_to_border"
OverlayVertImage_mipmap = "false"
1 Like

the royal preset does eliminate the issue, but it fails when i try to save it for some reason :frowning:

2 Likes

When you try to save it through retroarch it fails?


Edit: I’m not sure, but perhaps it might be related to this:

Hey guys!

2 Likes

Excuse my ignorance but what is MDAPT and GTU?

They’re shaders that handle dithering. MDAPT uses pattern detection and blends the colors, while GTU uses blurring.

2 Likes

Is there a way to remove the moire effect when having a curved screen…

Also how do you go about getting more pronounced scanlines on N64, i guess the 480p resolution makes them less noticable?

1 Like

You could try Royale, it seems to have less issues with Moire. Also try running at integer scale if you can.

If you are trying to get more pronounced scanlines with curvature at that 480p you are likely to get even more Moire.

EDIT: I just clued into the fact that you are using the glass preset which is currently guest venom, I’ll make a preset for royale next update.

2 Likes

Sonic’s waterfall with GTU, and lowering the resolution of it a bit:

MDAPT doesn’t seem to do it here:

3 Likes

@BendBombBoom helped me figure out what was wrong here. The defaults for mdapt I put in are too strict, so I’m going to expose more relaxed modes, which are able to do something nice with this example.

Here’s what it looks like with mdapt and more relaxed parameters

7 Likes

@HyperspaceMadness I’m curious if you think it’s possible to fix this. I’m playing the greatest Zelda game ever made, CDi’s Zelda: The Wand of Gamelon and as you can see I get these big bars on the top and bottom. If I use the crop settings either I have to elongate the image or zoom in way to far. Is there a way to scale the frame over the game screen to crop it correctly?

3 Likes

You sir are brave man for playing this game. Braver than me.

1 Like

Is anyone experiencing heavy flickering with Flycast when using latest HSM-Bezel-Royale shader ?

1 Like

What core are you using? I only know mame (native) or retrarch-mame to emulate CD-i in a convenient way. When using mame you can access the menu with |TAB]. Here you can switch between different displays. One of them is without the extra information on top. So it’s not an retroardch or shader option, you use the interal option gui of the emulator. I used this option when playing “the apprentice”.

I think the same applies for the retroarch mame core. You can enter the internal gui options with [TAB] as well, afaik. Maybe you have to enable or disalbe internal keypresses with [SCROLL-LOCK] first.

1 Like

So I think the thing you will want to do this is use the cropping to remove the black bars, then change the aspect ratio in the shader to match the proper aspect ratio of the resulting cropped image then change the scale to reduce the image size to the size you want to view it on the screen.

So in this case it looks like the aspect ratio of the image after cropping would be something like 1.77, then to have it appear the same size on the screen as you see here the non-integer scale would probably be something like 60%

Keep in mind that the cropping is not working on all shaders yet, I think it works 100% on easymode and partially on guest-venom (has problems with bottom cropping), and it’s not implemented yet on royale or guest-sm.

Were you using it with no flickering before, and now it is showing flickering?

Just a guess but it be that the interlacing is being turned on by the resolution and that is what looks flickery. If it’s the interlacing you can try turning “Interlacing - Toggle” to 0…

3 Likes

Yes, that was it ! Thanks a lot !

@frenki I’m using the mame core. I can get the CD-I logo to go away but those awesome Zelda games have black bars on the top and bottom. (For that true cinema effect.) Doing what @HyperspaceMadness suggested worked. (And for real games too like Vagrant Story.) I can finally play the zelda classics they way Phillips intended them to be played.

3 Likes