Duimon - HSM Mega Bezel Graphics and Presets - Feedback and Updates

That Sony with the brown frame is classic. Do you redraw these, or just hunt down good photos?

1 Like

I redraw everything as vector art in Adobe Illustrator. A good photo as source is really helpful.

5 Likes

Congratulations! Amazing milestone!

4 Likes

Hey Duimon, hope all is well on your end. Congratulations on finishing up the main list, excited to see some new TVs in the future! I just have a quick question, which i may have asked before a while ago and just forgot if there was a fix for it or not. Some games, noticeably snes, and n64, sometimes psx…have a ugly black border i cant get rid of. I know you told me before that those consoles switch to other resolution and that’s what causes it but wasn’t sure if i can crop it out somehow for some games that suffer from it pretty heavily. Duke Nukem 64 for example is pretty bad.

2 Likes

You can use the [ CROPPING CORE IMAGE ]: parameter group to get rid of the black border.

You can try CROP BLACK ONLY

and

Crop Zoom %

I find that

CROP ANY

and individual Top, Bottom, Left, and Right works the best. (Some systems. such as the Coleco Adam, had a very consistent border, but most are fairly random.)

Make sure to save a “Game” preset when you have it the way you want it.

4 Likes

Thank you Duimon, that’s exactly what i needed to know. I’ll be sure to remember this time, i get lost in all those settings. Having it all cropped makes the screenshots look soooo nice, the backgrounds are spectacular…almost as if somebody put their heart and soul into making them :wink:

Now, It’s time to kick ass and chew bubble gum…

5 Likes

OK. I thought the Batocera decorations would take me weeks.

After having some constructive conversations with @TheNamec I decided to use the built-in Mega Bezel tools for overlay generation, instead of my traditional time consuming Photoshop composition method.

This decision, combined with some new templates and script magic, allowed me to finish the decorations in just three days. (Much of that time was spent setting up the workflow.)

For CRT systems it is a solid and efficient way of generation a large number of overlays.

For smaller projects and a variety of handheld system aspects I still have my Photoshop actions and styles.

I think the whole method would make for a great guide. I will create one when I get around to that part of the journey.

@TheNamec is working on adding code to his reference boilerplate that will make adding a custom bezel a matter of just defining a single reference . (Or some such magic.)

I will wait to dive into the boilerplate until he has finished his work.


So I guess I have some free time. :grin:

I think I may work on getting new screenshots for my GitHub pages site. (The new ambient lighting really requires doing a whole new set.)

I may also set up a video rendering workflow to get some videos on YouTube.

7 Likes

BTW. I took the time to extract all the Mega Bezel parameters and default values, it makes for an impressive list that opens a small window into the world of @HyperspaceMadness. Keep in mind that any actual CRT parameters (i.e. Guest Advance or Grade.) aren’t even in the list.

HSM_RESOLUTION_DEBUG_ON = "1"
GAMMA_INPUT = "2.4"
gamma_out = "2.4"
post_br = "1"
post_br_affect_black_level = "100"
HSM_CACHE_GRAPHICS_ON = "1"
HSM_CACHE_UPDATE_INDICATOR_MODE = "2"
HSM_GLOBAL_GRAPHICS_BRIGHTNESS = "100"
HSM_STATIC_LAYERS_GAMMA = "1"
HSM_AMBIENT_LIGHTING_OPACITY = "0"
HSM_AMBIENT1_OPACITY = "100"
HSM_AMBIENT2_OPACITY = "100"
HSM_AMBIENT_LIGHTING_SWAP_IMAGE_MODE = "0"
HSM_VIEWPORT_ZOOM = "100"
HSM_VIEWPORT_ZOOM_MASK = "0"
HSM_VIEWPORT_POSITION_X = "0"
HSM_VIEWPORT_POSITION_Y = "0"
HSM_FLIP_VIEWPORT_VERTICAL = "0"
HSM_FLIP_VIEWPORT_HORIZONTAL = "0"
HSM_FLIP_CORE_VERTICAL = "0"
HSM_FLIP_CORE_HORIZONTAL = "0"
HSM_ROTATE_CORE_IMAGE = "0"
HSM_ASPECT_RATIO_ORIENTATION = "0"
HSM_ASPECT_RATIO_MODE = "0"
HSM_ASPECT_RATIO_EXPLICIT = "1.3333"
HSM_INT_SCALE_MODE = "0"
HSM_VERTICAL_PRESET = "0"
HSM_INT_SCALE_MAX_HEIGHT = "89"
HSM_INT_SCALE_MULTIPLE_OFFSET = "0"
HSM_INT_SCALE_MULTIPLE_OFFSET_LONG = "0"
HSM_NON_INTEGER_SCALE = "82.97"
HSM_USE_PHYSICAL_SIZE_FOR_NON_INTEGER = "0"
HSM_PHYSICAL_MONITOR_ASPECT_RATIO = "1.77"
HSM_PHYSICAL_MONITOR_DIAGONAL_SIZE = "27"
HSM_PHYSICAL_SIM_TUBE_DIAGONAL_SIZE = "18.1"
HSM_USE_IMAGE_FOR_PLACEMENT = "0"
HSM_PLACEMENT_IMAGE_USE_HORIZONTAL = "0"
HSM_PLACEMENT_IMAGE_MODE = "0"
HSM_NON_INTEGER_SCALE_OFFSET = "100"
HSM_USE_SNAP_TO_CLOSEST_INT_SCALE = "0"
HSM_SNAP_TO_CLOSEST_INT_SCALE_TOLERANCE = "20"
HSM_SCREEN_POSITION_X = "0"
HSM_SCREEN_POSITION_Y = "0"
HSM_CROP_MODE = "2"
HSM_CROP_PERCENT_ZOOM = "0"
HSM_CROP_PERCENT_TOP = "0"
HSM_CROP_PERCENT_BOTTOM = "0"
HSM_CROP_PERCENT_LEFT = "0"
HSM_CROP_PERCENT_RIGHT = "0"
HSM_CROP_BLACK_THRESHOLD = "0"
HSM_SCANLINE_DIRECTION = "0"
C_FILTER_MODE = "0"
HSM_CORE_RES_SAMPLING_MULT_SCANLINE_DIR = "100"
HSM_DOWNSAMPLE_BLUR_SCANLINE_DIR = "0"
HSM_CORE_RES_SAMPLING_MULT_OPPOSITE_DIR = "100"
HSM_DOWNSAMPLE_BLUR_OPPOSITE_DIR = "0"
HSM_CORE_RES_SAMPLING_SHIFT_OPPOSITE_DIR = "0"
SHARPEN = "0"
CONTR = "0.05"
DETAILS = "1"
HSM_INTERLACE_TRIGGER_RES = "650"
HSM_INTERLACE_MODE = "4"
HSM_INTERLACE_EFFECT_SMOOTHNESS_INTERS = "0"
HSM_INTERLACE_SCANLINE_EFFECT = "20"
iscans = "0.25"
HSM_FAKE_SCANLINE_MODE = "2"
HSM_FAKE_SCANLINE_OPACITY = "0"
HSM_FAKE_SCANLINE_RES_MODE = "1"
HSM_FAKE_SCANLINE_RES = "240"
HSM_FAKE_SCANLINE_INT_SCALE = "1"
HSM_FAKE_SCANLINE_ROLL = "0"
HSM_FAKE_SCANLINE_CURVATURE = "0"
HSM_FAKE_SCANLINE_BRIGHTNESS_CUTOFF = "3"
HSM_USE_GEOM = "0"
HSM_CURVATURE_MODE = "1"
HSM_CURVATURE_2D_SCALE_LONG_AXIS = "100"
HSM_CURVATURE_2D_SCALE_SHORT_AXIS = "100"
HSM_CURVATURE_2D_SHAPE = "0.25"
HSM_CURVATURE_3D_RADIUS = "200"
HSM_CURVATURE_3D_VIEW_DIST = "150"
HSM_CURVATURE_3D_TILT_ANGLE_X = "0"
HSM_CURVATURE_3D_TILT_ANGLE_Y = "0"
HSM_CRT_CURVATURE_SCALE = "100"
HSM_ANTI_FLICKER_ON = "0"
HSM_ANTI_FLICKER_THRESHOLD = "25"
HSM_AB_COMPARE_SHOW_MODE = "0"
HSM_AB_COMPARE_AREA = "0"
HSM_AB_COMPARE_SPLIT_POSITION = "50"
HSM_AB_COMPARE_FREEZE_CRT_TUBE = "0"
HSM_AB_COMPARE_FREEZE_GRAPHICS = "0"
HSM_SCREEN_VIGNETTE_ON = "1"
HSM_SCREEN_VIGNETTE_DUALSCREEN_VIS_MODE = "0"
HSM_SCREEN_VIGNETTE_STRENGTH = "40"
HSM_SCREEN_VIGNETTE_POWER = "26"
HSM_SCREEN_VIGNETTE_IN_REFLECTION = "100"
HSM_MONOCHROME_MODE = "0.0"
HSM_MONOCHROME_BRIGHTNESS = "100"
HSM_MONOCHROME_GAMMA = "1.0"
HSM_MONOCHROME_HUE_OFFSET = "0"
HSM_MONOCHROME_SATURATION = "100"
HSM_MONOCHROME_DUALSCREEN_VIS_MODE = "0"
HSM_TUBE_DIFFUSE_MODE = "0"
HSM_TUBE_DIFFUSE_IMAGE_AMOUNT = "100"
HSM_TUBE_DIFFUSE_IMAGE_DUALSCREEN_VIS_MODE = "0"
HSM_TUBE_DIFFUSE_IMAGE_COLORIZE_ON = "0"
HSM_TUBE_DIFFUSE_IMAGE_HUE = "0"
HSM_TUBE_DIFFUSE_IMAGE_SATURATION = "100"
HSM_TUBE_DIFFUSE_IMAGE_BRIGHTNESS = "20"
HSM_TUBE_DIFFUSE_IMAGE_GAMMA = "1"
HSM_TUBE_DIFFUSE_IMAGE_AMBIENT_LIGHTING = "100"
HSM_TUBE_DIFFUSE_IMAGE_AMBIENT2_LIGHTING = "0"
HSM_TUBE_DIFFUSE_IMAGE_SCALE = "140"
HSM_TUBE_DIFFUSE_IMAGE_SCALE_X = "100"
HSM_TUBE_DIFFUSE_IMAGE_ROTATION = "0"
HSM_TUBE_DIFFUSE_FORCE_ASPECT = "1"
HSM_TUBE_EXPLICIT_ASPECT = "1.3333"
HSM_TUBE_EMPTY_THICKNESS = "0"
HSM_TUBE_EMPTY_THICKNESS_X_SCALE = "100"
HSM_SCREEN_CORNER_RADIUS_SCALE = "100"
HSM_TUBE_SHADOW_IMAGE_ON = "1"
HSM_TUBE_SHADOW_IMAGE_OPACITY = "60"
HSM_TUBE_SHADOW_IMAGE_POS_X = "0"
HSM_TUBE_SHADOW_IMAGE_POS_Y = "9"
HSM_TUBE_SHADOW_IMAGE_SCALE_X = "122"
HSM_TUBE_SHADOW_IMAGE_SCALE_Y = "130"
HSM_TUBE_SHADOW_CURVATURE_SCALE = "300"
HSM_TUBE_STATIC_REFLECTION_IMAGE_ON = "0"
HSM_TUBE_STATIC_REFLECTION_IMAGE_DUALSCREEN_VIS_MODE = "0"
HSM_TUBE_STATIC_REFLECTION_IMAGE_OPACITY = "16"
HSM_TUBE_STATIC_OPACITY_DIFFUSE_MULTIPLY = "25"
HSM_TUBE_STATIC_BLACK_LEVEL = "25"
HSM_TUBE_STATIC_AMBIENT_LIGHTING = "60"
HSM_TUBE_STATIC_AMBIENT2_LIGHTING = "0"
HSM_TUBE_STATIC_SCALE = "120"
HSM_TUBE_STATIC_SCALE_X = "100"
HSM_TUBE_STATIC_POS_X = "10"
HSM_TUBE_STATIC_POS_Y = "10"
HSM_TUBE_STATIC_SHADOW_OPACITY = "0"
HSM_TUBE_STATIC_DITHER_SAMPLES = "0"
HSM_TUBE_STATIC_DITHER_DISTANCE = "5"
HSM_TUBE_STATIC_DITHER_AMOUNT = "0.6"
HSM_TUBE_OPACITY = "100"
HSM_CRT_BLEND_MODE = "1"
HSM_CRT_BLEND_AMOUNT = "100"
HSM_TUBE_COLORED_GEL_IMAGE_ON = "0"
HSM_TUBE_COLORED_GEL_IMAGE_SCALE = "100"
HSM_TUBE_COLORED_GEL_IMAGE_FLIP_HORIZONTAL = "0"
HSM_TUBE_COLORED_GEL_IMAGE_FLIP_VERTICAL = "0"
HSM_TUBE_COLORED_GEL_IMAGE_DUALSCREEN_VIS_MODE = "0"
HSM_TUBE_COLORED_GEL_IMAGE_MULTIPLY_AMOUNT = "90"
HSM_TUBE_COLORED_GEL_IMAGE_ADDITIVE_AMOUNT = "0"
HSM_TUBE_COLORED_GEL_IMAGE_NORMAL_AMOUNT = "15"
HSM_TUBE_COLORED_GEL_IMAGE_TRANSPARENCY_THRESHOLD = "23"
HSM_TUBE_COLORED_GEL_IMAGE_NORMAL_BRIGHTNESS = "100"
HSM_TUBE_COLORED_GEL_IMAGE_NORMAL_VIGNETTE = "0"
HSM_TUBE_COLORED_GEL_IMAGE_FAKE_SCANLINE_AMOUNT = "0"
HSM_TUBE_COLORED_GEL_IMAGE_AMBIENT_LIGHTING = "100"
HSM_TUBE_COLORED_GEL_IMAGE_AMBIENT2_LIGHTING = "0"
HSM_SHOW_CRT_ON_TOP_OF_COLORED_GEL = "0"
HSM_GLOBAL_CORNER_RADIUS = "10"
HSM_TUBE_BLACK_EDGE_CORNER_RADIUS_SCALE = "100"
HSM_TUBE_BLACK_EDGE_SHARPNESS = "70"
HSM_TUBE_BLACK_EDGE_CURVATURE_SCALE = "100"
HSM_TUBE_BLACK_EDGE_THICKNESS = "100"
HSM_TUBE_BLACK_EDGE_THICKNESS_X_SCALE = "100"
HSM_DUALSCREEN_MODE = "0"
HSM_DUALSCREEN_CORE_IMAGE_SPLIT_MODE = "1"
HSM_DUALSCREEN_CORE_IMAGE_SWAP_SCREENS = "0"
HSM_DUALSCREEN_CORE_IMAGE_SPLIT_OFFSET = "0"
HSM_2ND_SCREEN_SIDES_CROP = "0"
HSM_DUALSCREEN_VIEWPORT_SPLIT_LOCATION = "0"
HSM_DUALSCREEN_SHIFT_POSITION_WITH_SCALE = "1"
HSM_DUALSCREEN_POSITION_OFFSET_BETWEEN_SCREENS = "0"
HSM_2ND_SCREEN_ASPECT_RATIO_MODE = "0"
HSM_2ND_SCREEN_INDEPENDENT_SCALE = "0"
HSM_2ND_SCREEN_SCALE_OFFSET = "100"
HSM_2ND_SCREEN_POS_X = "0"
HSM_2ND_SCREEN_POS_Y = "0"
HSM_2ND_SCREEN_CROP_PERCENT_ZOOM = "0"
HSM_2ND_SCREEN_CROP_PERCENT_TOP = "0"
HSM_2ND_SCREEN_CROP_PERCENT_BOTTOM = "0"
HSM_2ND_SCREEN_CROP_PERCENT_LEFT = "0"
HSM_2ND_SCREEN_CROP_PERCENT_RIGHT = "0"
HSM_SCREEN_REFLECTION_FOLLOW_DIFFUSE_THICKNESS = "0"
HSM_SCREEN_REFLECTION_SCALE = "100"
HSM_SCREEN_REFLECTION_POS_X = "0"
HSM_SCREEN_REFLECTION_POS_Y = "0"
HSM_AMBIENT1_HUE = "0"
HSM_AMBIENT1_SATURATION = "100"
HSM_AMBIENT1_VALUE = "120"
HSM_AMBIENT1_CONTRAST = "100"
HSM_AMBIENT1_SCALE_KEEP_ASPECT = "1"
HSM_AMBIENT1_SCALE_INHERIT_MODE = "2"
HSM_AMBIENT1_SCALE = "250"
HSM_AMBIENT1_SCALE_X = "100"
HSM_AMBIENT1_ROTATE = "0"
HSM_AMBIENT1_MIRROR_HORZ = "0"
HSM_AMBIENT1_POS_INHERIT_MODE = "1"
HSM_AMBIENT1_POSITION_X = "0"
HSM_AMBIENT1_POSITION_Y = "0"
HSM_AMBIENT2_HUE = "0"
HSM_AMBIENT2_SATURATION = "100"
HSM_AMBIENT2_VALUE = "100"
HSM_AMBIENT2_CONTRAST = "100"
HSM_AMBIENT2_SCALE_KEEP_ASPECT = "0"
HSM_AMBIENT2_SCALE_INHERIT_MODE = "1"
HSM_AMBIENT2_SCALE = "100"
HSM_AMBIENT2_SCALE_X = "100"
HSM_AMBIENT2_ROTATE = "0"
fHSM_AMBIENT2_MIRROR_HORZ = "0"
HSM_AMBIENT2_POS_INHERIT_MODE = "1"
HSM_AMBIENT2_POSITION_X = "0"
HSM_AMBIENT2_POSITION_Y = "0"
HSM_BZL_USE_INDEPENDENT_SCALE = "0"
HSM_BZL_INDEPENDENT_SCALE = "82.97"
HSM_BZL_USE_INDEPENDENT_CURVATURE = "0"
HSM_BZL_INDEPENDENT_CURVATURE_SCALE_LONG_AXIS = "100"
HSM_BZL_INDEPENDENT_CURVATURE_SCALE_SHORT_AXIS = "100"
HSM_BZL_OPACITY = "100"
HSM_BZL_BLEND_MODE = "1"
HSM_BZL_WIDTH = "125"
HSM_BZL_HEIGHT = "100"
HSM_BZL_SCALE_OFFSET = "100"
HSM_BZL_INNER_CURVATURE_SCALE = "100"
HSM_BZL_INNER_CORNER_RADIUS_SCALE = "80"
HSM_BZL_INNER_EDGE_THICKNESS = "110"
HSM_BZL_INNER_EDGE_SHARPNESS = "95"
HSM_BZL_OUTER_POSITION_Y = "0"
HSM_BZL_OUTER_CURVATURE_SCALE = "0"
HSM_BZL_OUTER_CORNER_RADIUS_SCALE = "60"
HSM_BZL_NOISE = "30"
HSM_BZL_INNER_EDGE_SHADOW = "70"
HSM_BZL_BRIGHTNESS = "30"
HSM_BZL_BRIGHTNESS_MULT_TOP = "50"
HSM_BZL_BRIGHTNESS_MULT_BOTTOM = "200"
HSM_BZL_BRIGHTNESS_MULT_SIDES = "100"
HSM_BZL_BRIGHTNESS_MULT_SIDE_LEFT = "100"
HSM_BZL_BRIGHTNESS_MULT_SIDE_RIGHT = "100"
HSM_BZL_HIGHLIGHT = "1"
HSM_BZL_COLOR_HUE = "0"
HSM_BZL_COLOR_SATURATION = "0"
HSM_BZL_COLOR_VALUE = "10"
HSM_BZL_AMBIENT_LIGHTING_MULTIPLIER = "100"
HSM_BZL_AMBIENT2_LIGHTING_MULTIPLIER = "0"
HSM_FRM_USE_INDEPENDENT_COLOR = "0"
HSM_FRM_COLOR_HUE = "0"
HSM_FRM_COLOR_SATURATION = "0"
HSM_FRM_COLOR_VALUE = "10"
HSM_FRM_OPACITY = "100"
HSM_FRM_BLEND_MODE = "1"
HSM_FRM_TEXTURE_OPACITY = "1.5"
HSM_FRM_TEXTURE_BLEND_MODE = "2"
HSM_FRM_NOISE = "30"
HSM_FRM_INNER_EDGE_THICKNESS = "100"
HSM_FRM_THICKNESS = "100"
HSM_FRM_THICKNESS_SCALE_X = "100"
HSM_FRM_OUTER_POS_Y = "0"
HSM_FRM_OUTER_CURVATURE_SCALE = "0"
HSM_FRM_OUTER_CORNER_RADIUS = "5"
HSM_FRM_OUTER_EDGE_THICKNESS = "100"
HSM_FRM_OUTER_EDGE_SHADING = "50"
HSM_FRM_SHADOW_OPACITY = "100"
HSM_FRM_SHADOW_WIDTH = "100"
HSM_REFLECT_CORNER_FADE = "10"
HSM_REFLECT_CORNER_FADE_DISTANCE = "100"
HSM_REFLECT_CORNER_INNER_SPREAD = "500"
HSM_REFLECT_CORNER_OUTER_SPREAD = "160"
HSM_REFLECT_CORNER_ROTATION_OFFSET_TOP = "0"
HSM_REFLECT_CORNER_ROTATION_OFFSET_BOTTOM = "0"
HSM_REFLECT_CORNER_SPREAD_FALLOFF = "100"
HSM_REFLECT_GLOBAL_AMOUNT = "40"
HSM_REFLECT_GLOBAL_GAMMA_ADJUST = "1.2"
HSM_REFLECT_DIRECT_AMOUNT = "150"
HSM_REFLECT_DIFFUSED_AMOUNT = "50"
HSM_REFLECT_FULLSCREEN_GLOW = "75"
HSM_REFLECT_FULLSCREEN_GLOW_GAMMA = "3"
HSM_REFLECT_BEZEL_INNER_EDGE_AMOUNT = "130"
HSM_REFLECT_BEZEL_INNER_EDGE_FULLSCREEN_GLOW = "40"
HSM_REFLECT_FRAME_INNER_EDGE_AMOUNT = "50"
HSM_REFLECT_FRAME_INNER_EDGE_SHARPNESS = "90"
HSM_REFLECT_FADE_AMOUNT = "100"
HSM_REFLECT_RADIAL_FADE_WIDTH = "100"
HSM_REFLECT_RADIAL_FADE_HEIGHT = "100"
HSM_REFLECT_LATERAL_OUTER_FADE_POSITION = "-18"
HSM_REFLECT_LATERAL_OUTER_FADE_DISTANCE = "20"
HSM_REFLECT_BLUR_NUM_SAMPLES = "12"
HSM_REFLECT_BLUR_MIN = "0"
HSM_REFLECT_BLUR_MAX = "95"
HSM_REFLECT_BLUR_FALLOFF_DISTANCE = "100"
HSM_REFLECT_NOISE_AMOUNT = "50"
HSM_REFLECT_NOISE_SAMPLES = "1"
HSM_REFLECT_NOISE_SAMPLE_DISTANCE = "100"
HSM_GLASS_BORDER_ON = "0"
HSM_REFLECT_VIGNETTE_AMOUNT = "0"
HSM_REFLECT_VIGNETTE_SIZE = "100"
//HSM_BG_OPACITY = "100" 
//HSM_BG_BLEND_MODE = "1"
HSM_BG_LAYER_ORDER = "0"
HSM_VIEWPORT_VIGNETTE_LAYER_ORDER = "1"
HSM_LED_LAYER_ORDER = "2"
HSM_DEVICE_LAYER_ORDER = "3"
HSM_DEVICELED_LAYER_ORDER = "4"
HSM_CRT_LAYER_ORDER = "5"
HSM_DECAL_LAYER_ORDER = "7"
HSM_CAB_GLASS_LAYER_ORDER = "9"
HSM_TOP_LAYER_ORDER = "12"
HSM_CUTOUT_ASPECT_MODE = "4"
HSM_CUTOUT_EXPLICIT_ASPECT = "1.33333"
HSM_CUTOUT_FOLLOW_LAYER = "0"
HSM_CUTOUT_FOLLOW_FULL_USES_ZOOM = "1"
HSM_CUTOUT_KEEP_ASPECT = "1"
HSM_CUTOUT_SCALE = "100"
HSM_CUTOUT_SCALE_X = "100"
HSM_CUTOUT_POS_X = "0"
HSM_CUTOUT_POS_Y = "0"
HSM_CUTOUT_CORNER_RADIUS = "0"
HSM_LAYERING_DEBUG_MASK_MODE = "-1"
HSM_BG_OPACITY = "100"
HSM_BG_COLORIZE_ON = "0"
HSM_BG_HUE = "0"
HSM_BG_SATURATION = "100"
HSM_BG_BRIGHTNESS = "100"
HSM_BG_GAMMA = "1"
HSM_BG_AMBIENT_LIGHTING_MULTIPLIER = "0"
HSM_BG_AMBIENT2_LIGHTING_MULTIPLIER = "100"
HSM_BG_APPLY_AMBIENT_IN_ADD_MODE = "0"
HSM_BG_BLEND_MODE = "1"
HSM_BG_SOURCE_MATTE_TYPE = "0"
HSM_BG_MIPMAPPING_BLEND_BIAS = "0"
HSM_BG_MASK_MODE = "0"
HSM_BG_CUTOUT_MODE = "0"
HSM_BG_DUALSCREEN_VIS_MODE = "0"
HSM_BG_FOLLOW_LAYER = "0"
HSM_BG_FOLLOW_MODE = "0"
HSM_BG_FOLLOW_FULL_USES_ZOOM = "1"
HSM_BG_SCALE_KEEP_ASPECT = "1"
HSM_BG_FILL_MODE = "0"
HSM_BG_SPLIT_PRESERVE_CENTER = "0"
HSM_BG_SPLIT_REPEAT_WIDTH = "0"
HSM_BG_SCALE = "100"
HSM_BG_SCALE_X = "100"
HSM_BG_POS_X = "0"
HSM_BG_POS_Y  = "0"
HSM_BG_MIRROR_WRAP = "1"
HSM_VIEWPORT_VIGNETTE_OPACITY = "0"
HSM_VIEWPORT_VIGNETTE_MASK_MODE = "5"
HSM_VIEWPORT_VIGNETTE_CUTOUT_MODE = "0"
HSM_VIEWPORT_VIGNETTE_FOLLOW_LAYER = "0"
HSM_VIEWPORT_VIGNETTE_SCALE = "100"
HSM_VIEWPORT_VIGNETTE_SCALE_X = "100"
HSM_VIEWPORT_VIGNETTE_POS_X = "0"
HSM_VIEWPORT_VIGNETTE_POS_Y = "0"
HSM_LED_OPACITY = "100"
HSM_LED_COLORIZE_ON = "0"
HSM_LED_HUE = "0"
HSM_LED_SATURATION = "100"
HSM_LED_BRIGHTNESS = "100"
HSM_LED_GAMMA = "1"
HSM_LED_AMBIENT_LIGHTING_MULTIPLIER = "100"
HSM_LED_AMBIENT2_LIGHTING_MULTIPLIER = "0"
HSM_LED_APPLY_AMBIENT_IN_ADD_MODE = "0"
HSM_LED_BLEND_MODE = "2"
HSM_LED_SOURCE_MATTE_TYPE = "0"
HSM_LED_MASK_MODE = "0"
HSM_LED_MIPMAPPING_BLEND_BIAS = "0"
HSM_LED_CUTOUT_MODE = "0"
HSM_LED_DUALSCREEN_VIS_MODE = "0"
HSM_LED_FOLLOW_LAYER = "3"
HSM_LED_FOLLOW_MODE = "0"
HSM_LED_FOLLOW_FULL_USES_ZOOM = "1"
HSM_LED_SCALE_KEEP_ASPECT = "1"
HSM_LED_FILL_MODE = "0"
HSM_LED_SPLIT_PRESERVE_CENTER = "0"
HSM_LED_SPLIT_REPEAT_WIDTH = "0"
HSM_LED_SCALE = "100"
HSM_LED_SCALE_X = "100"
HSM_LED_POS_X = "0"
HSM_LED_POS_Y = "0"
HSM_DEVICE_OPACITY = "100"
HSM_DEVICE_COLORIZE_ON = "0"
HSM_DEVICE_HUE = "0"
HSM_DEVICE_SATURATION = "100"
HSM_DEVICE_BRIGHTNESS = "100"
HSM_DEVICE_GAMMA = "1"
HSM_DEVICE_AMBIENT_LIGHTING_MULTIPLIER = "100"
HSM_DEVICE_AMBIENT2_LIGHTING_MULTIPLIER = "0"
HSM_DEVICE_APPLY_AMBIENT_IN_ADD_MODE = "0"
HSM_DEVICE_BLEND_MODE = "1"
HSM_DEVICE_SOURCE_MATTE_TYPE = "0"
HSM_DEVICE_MASK_MODE = "0"
HSM_DEVICE_MIPMAPPING_BLEND_BIAS = "0"
HSM_DEVICE_CUTOUT_MODE = "0"
HSM_DEVICE_DUALSCREEN_VIS_MODE = "0"
HSM_DEVICE_FOLLOW_LAYER = "1"
HSM_DEVICE_FOLLOW_MODE = "0"
HSM_DEVICE_FOLLOW_FULL_USES_ZOOM = "1"
HSM_DEVICE_SCALE_KEEP_ASPECT = "1"
HSM_DEVICE_FILL_MODE = "0"
HSM_DEVICE_SPLIT_PRESERVE_CENTER = "0"
HSM_DEVICE_SPLIT_REPEAT_WIDTH = "0"
HSM_DEVICE_SCALE = "100"
HSM_DEVICE_SCALE_X = "100"
HSM_DEVICE_POS_X = "0"
HSM_DEVICE_POS_Y = "0"
HSM_DEVICELED_OPACITY = "100"
HSM_DEVICELED_COLORIZE_ON = "0"
HSM_DEVICELED_HUE = "0"
HSM_DEVICELED_SATURATION = "100"
HSM_DEVICELED_BRIGHTNESS = "100"
HSM_DEVICELED_GAMMA = "1"
HSM_DEVICELED_AMBIENT_LIGHTING_MULTIPLIER = "100"
HSM_DEVICELED_AMBIENT2_LIGHTING_MULTIPLIER = "0"
HSM_DEVICELED_APPLY_AMBIENT_IN_ADD_MODE = "0"
HSM_DEVICELED_BLEND_MODE = "2"
HSM_DEVICELED_SOURCE_MATTE_TYPE = "0"
HSM_DEVICELED_MASK_MODE = "0"
HSM_DEVICELED_MIPMAPPING_BLEND_BIAS = "0"
HSM_DEVICELED_CUTOUT_MODE = "0"
HSM_DEVICELED_DUALSCREEN_VIS_MODE = "0"
HSM_DEVICELED_FOLLOW_LAYER = "4"
HSM_DEVICELED_FOLLOW_MODE = "1"
HSM_DEVICELED_FOLLOW_FULL_USES_ZOOM = "1"
HSM_DEVICELED_SCALE_KEEP_ASPECT = "1"
HSM_DEVICELED_FILL_MODE = "0"
HSM_DEVICELED_SPLIT_PRESERVE_CENTER = "0"
HSM_DEVICELED_SPLIT_REPEAT_WIDTH = "0"
HSM_DEVICELED_SCALE = "100"
HSM_DEVICELED_SCALE_X = "100"
HSM_DEVICELED_POS_X = "0"
HSM_DEVICELED_POS_Y = "0"
HSM_DECAL_OPACITY = "100"
HSM_DECAL_COLORIZE_ON = "0"
HSM_DECAL_HUE = "0"
HSM_DECAL_SATURATION = "100"
HSM_DECAL_BRIGHTNESS = "100"
HSM_DECAL_GAMMA = "1"
HSM_DECAL_AMBIENT_LIGHTING_MULTIPLIER = "100"
HSM_DECAL_AMBIENT2_LIGHTING_MULTIPLIER = "0"
HSM_DECAL_APPLY_AMBIENT_IN_ADD_MODE = "0"
HSM_DECAL_BLEND_MODE = "1"
HSM_DECAL_SOURCE_MATTE_TYPE = "0"
HSM_DECAL_MIPMAPPING_BLEND_BIAS = "0"
HSM_DECAL_MASK_MODE = "0"
HSM_DECAL_CUTOUT_MODE = "0"
HSM_DECAL_DUALSCREEN_VIS_MODE = "0"
HSM_DECAL_FOLLOW_LAYER = "0"
HSM_DECAL_FOLLOW_MODE = "0"
HSM_DECAL_FOLLOW_FULL_USES_ZOOM = "1"
HSM_DECAL_SCALE_KEEP_ASPECT = "1"
HSM_DECAL_FILL_MODE = "0"
HSM_DECAL_SPLIT_PRESERVE_CENTER = "0"
HSM_DECAL_SPLIT_REPEAT_WIDTH = "0"
HSM_DECAL_SCALE = "100"
HSM_DECAL_SCALE_X = "100"
HSM_DECAL_POS_X = "0"
HSM_DECAL_POS_Y = "0"
HSM_CAB_GLASS_OPACITY = "100"
HSM_CAB_GLASS_COLORIZE_ON = "0"
HSM_CAB_GLASS_HUE = "0"
HSM_CAB_GLASS_SATURATION = "100"
HSM_CAB_GLASS_BRIGHTNESS = "100"
HSM_CAB_GLASS_GAMMA = "1"
HSM_CAB_GLASS_AMBIENT_LIGHTING_MULTIPLIER = "100"
HSM_CAB_GLASS_AMBIENT2_LIGHTING_MULTIPLIER = "0"
HSM_CAB_GLASS_APPLY_AMBIENT_IN_ADD_MODE = "0"
HSM_CAB_GLASS_BLEND_MODE = "1"
HSM_CAB_GLASS_SOURCE_MATTE_TYPE = "0"
HSM_CAB_GLASS_MIPMAPPING_BLEND_BIAS = "0"
HSM_CAB_GLASS_MASK_MODE = "0"
HSM_CAB_GLASS_CUTOUT_MODE = "0"
HSM_CAB_GLASS_DUALSCREEN_VIS_MODE = "0"
HSM_CAB_GLASS_FOLLOW_LAYER = "0"
HSM_CAB_GLASS_FOLLOW_MODE = "0"
HSM_CAB_GLASS_FOLLOW_FULL_USES_ZOOM = "1"
HSM_CAB_GLASS_SCALE_KEEP_ASPECT = "1"
HSM_CAB_GLASS_FILL_MODE = "0"
HSM_CAB_GLASS_SPLIT_PRESERVE_CENTER = "0"
HSM_CAB_GLASS_SPLIT_REPEAT_WIDTH = "0"
HSM_CAB_GLASS_SCALE = "100"
HSM_CAB_GLASS_SCALE_X = "100"
HSM_CAB_GLASS_POS_X = "0"
HSM_CAB_GLASS_POS_Y = "0"
HSM_TOP_OPACITY = "100"
HSM_TOP_COLORIZE_ON = "0"
HSM_TOP_HUE = "0"
HSM_TOP_SATURATION = "100"
HSM_TOP_BRIGHTNESS = "100"
HSM_TOP_GAMMA = "1"
HSM_TOP_AMBIENT_LIGHTING_MULTIPLIER = "100"
HSM_TOP_AMBIENT2_LIGHTING_MULTIPLIER = "0"
HSM_TOP_APPLY_AMBIENT_IN_ADD_MODE = "0"
HSM_TOP_BLEND_MODE  = "1"
HSM_TOP_SOURCE_MATTE_TYPE = "0"
HSM_TOP_SCALE_KEEP_ASPECT = "1"
HSM_TOP_FILL_MODE = "0"
HSM_TOP_SPLIT_PRESERVE_CENTER = "0"
HSM_TOP_SPLIT_REPEAT_WIDTH = "0"
HSM_TOP_SCALE = "100"
HSM_TOP_SCALE_X = "100"
HSM_TOP_POS_X = "0"
HSM_TOP_POS_Y = "0"
HSM_TOP_MIRROR_WRAP = "1"
HSM_RENDER_SIMPLE_MODE = "0"
HSM_INTRO_WHEN_TO_SHOW = "1"
HSM_INTRO_SPEED = "100"
HSM_INTRO_LOGO_BLEND_MODE = "1"
HSM_INTRO_LOGO_FLIP_VERTICAL = "0"
HSM_INTRO_LOGO_OVER_SOLID_COLOR = "1"
HSM_INTRO_LOGO_HEIGHT = "42.86"
HSM_INTRO_LOGO_PLACEMENT = "0"
HSM_INTRO_LOGO_POS_X = "0"
HSM_INTRO_LOGO_POS_Y = "2"
HSM_INTRO_LOGO_WAIT = "20"
HSM_INTRO_LOGO_FADE_IN = "20"
HSM_INTRO_LOGO_HOLD = "130"
HSM_INTRO_LOGO_FADE_OUT = "80"
HSM_INTRO_SOLID_COLOR_BLEND_MODE = "1"
HSM_INTRO_SOLID_COLOR_HUE = "0"
HSM_INTRO_SOLID_COLOR_SAT = "0"
HSM_INTRO_SOLID_COLOR_VALUE = "100"
HSM_INTRO_SOLID_COLOR_HOLD = "40"
HSM_INTRO_SOLID_COLOR_FADE_OUT = "40"
HSM_INTRO_NOISE_BLEND_MODE = "1"
HSM_INTRO_NOISE_HOLD = "80"
HSM_INTRO_NOISE_FADE_OUT = "120"
HSM_INTRO_SOLID_BLACK_HOLD = "0"
HSM_INTRO_SOLID_BLACK_FADE_OUT = "0"

That is a lot of parameters. :exploding_head:

3 Likes

I don’t know anything about this process, but would it be feasible for a person to use this to convert the basic MAME .lay files to Megabezel?

3 Likes

That’s not really what it for. It is for creating overlays with custom Bezels using the Mega Bezel to place the artwork and render the bezel.

Arcade layouts use a variety of screen aspects and positions. There is no easy way to do what you ask. It would , for now, have to be done one by one. I am unfamiliar with the overlay conversion tool suggested on the other thread but unless it creates a core config also, it would still be time consuming. MAME *.LAYs contain coordinates. Retroarch overlay *.CFGs do not.

In the future, HSM is going to try and introduce some “tokens” or “variables” we can use in the image path parameters so that you can have one shader that uses different backgrounds, depending on the rom name.

This combined with some creativity and the use of the Image Placement, Mega Bezel feature, should make it possible.

There are other changes that take precedence, it will probably not happen anytime soon.

I personally think there is no reason to not use standalone MAME with another front end, and use the standard MAME artwork.


If you really want to use the MAME core, since the MAME layouts use the same name as the roms, it should be possible to create game configs for each game using a search and replace tool that supports filename variables. (Such as PowerGREP.) Then use the RA layout feature.

2 Likes

Sorry, what I meant was to take the basic image (from the .lay packages) and use it as the background for a Megabezel shader and then you could position and resize it inside the shader parameters. I can see how, like you said, it would be time consuming, because there are so many… I have just kind of been thinking about getting those basic bezels into a shader file so they would be really configurable in RA. Obviously, my understanding of the whole thing isn’t very good, so I’m just thinking out loud. Thanks for humoring me, though. :smiley:

2 Likes

No worries. Some layouts use multiple layered images. Some with different blending modes. It can also generate primitives of various shapes and colors. It is not as easy as just using a background image.

Thus my reason for suggesting a front end and MAME standalone or generating game overrides.

3 Likes

Thanks again. I’ve used MAMEui for a long time, so that’s probably my best bet, to just keep using that… but I will see if I can figure out making a set of game cfg’s like you suggested.

2 Likes

If it helps, the override would be in the MAME config folder (e.g. Retroarch/config/MAME/puckman.cfg)

and contain these lines…

video_driver = "gl"
input_overlay_enable = "false"    
video_layout_directory = ":\layouts"
video_layout_enable = "true"
video_layout_path = ":\layouts\puckman.zip"

So if you create one and copy it to a hundred, use a mass renaming tool that supports manual lists (Like the one built into the Altap Salamander file manager.) to rename the hundred to a list of romnames with the cfg extension.

You could use the %FILENAMENOEXT% variable in PowerGREP to search and replace.

Search: puckman

Replacement: %FILENAMENOEXT%

3 Likes

@Drybonz

As much as I encourage a little blood and sweat, I realized what would take me less than a minute might not be as easy for some.

I created overrides for all the existing MAME artwork/layouts and added them to my Front-End-Assets repo.

https://github.com/Duimon/Front-End-Assets

They can be found in “Front-End-Assets\MAME RA Layout overrides”.

There is a ___Readme.txt with instructions.

BTW. It literally took me less than a minute. :innocent:

Also BTW… this is the exact method The Bezel Project uses for overlays.

2 Likes

I have started gathering screenshots for my GitHub Pages site.

To speed things up I am using my Mega Bezel test image as content.

I will need to create some custom images for some cores.

Nintendo_NDS

This will take me considerably more that a minute. :grin:

5 Likes

As when I did my overlays using this method, getting screenshots forces me to load each and every preset. It is a great way to find hidden bugs that have crept in, and I have found a few already.

I will do a subversion update when I am finished.

4 Likes

Here is an example to show the power of MAME layouts vs standard Retroarch overlays.

Here is a shot of my Turbo layout from my Arcade Originals project.

And here is the layout contents.

<!-- turbo.lay -->

<mamelayout version="2">
	<element name="digit" defstate="10">
		<led7seg>
			<color red="1.0" green="0.3" blue="0.0" />
		</led7seg>
	</element>
	<element name="turbo_tach">
		<image file="turbo_tach.png" />
	</element>
	<element name="turbo_tach_mask">
		<image file="turbo_tach_mask.png" />
	</element>
	<element name="bezel">
		<image file="bezel.png" />
	</element>
	<element name="tach" defstate="0">
		<image file="tach_01.png" state="1" />
		<image file="tach_01.png" state="2" />
		<image file="tach_01.png" state="3" />
		<image file="tach_02.png" state="4" />
		<image file="tach_02.png" state="5" />
		<image file="tach_02.png" state="6" />
		<image file="tach_03.png" state="7" />
		<image file="tach_03.png" state="8" />
		<image file="tach_03.png" state="9" />
		<image file="tach_04.png" state="10" />
		<image file="tach_04.png" state="11" />
		<image file="tach_04.png" state="12" />
		<image file="tach_05.png" state="13" />
		<image file="tach_05.png" state="14" />
		<image file="tach_05.png" state="15" />
		<image file="tach_06.png" state="16" />
		<image file="tach_06.png" state="17" />
		<image file="tach_06.png" state="18" />
		<image file="tach_07.png" state="19" />
		<image file="tach_07.png" state="20" />
		<image file="tach_07.png" state="21" />
		<image file="tach_08.png" state="22" />
		<image file="tach_08.png" state="23" />
		<image file="tach_08.png" state="24" />
		<image file="tach_09.png" state="25" />
		<image file="tach_09.png" state="26" />
		<image file="tach_09.png" state="27" />
		<image file="tach_10.png" state="28" />
		<image file="tach_10.png" state="29" />
		<image file="tach_10.png" state="30" />
		<image file="tach_11.png" state="31" />
		<image file="tach_11.png" state="32" />
		<image file="tach_11.png" state="33" />
		<image file="tach_12.png" state="34" />
		<image file="tach_12.png" state="35" />
		<image file="tach_12.png" state="36" />
		<image file="tach_13.png" state="37" />
		<image file="tach_13.png" state="38" />
		<image file="tach_13.png" state="39" />
		<image file="tach_14.png" state="40" />
		<image file="tach_14.png" state="41" />
		<image file="tach_14.png" state="42" />
		<image file="tach_15.png" state="43" />
		<image file="tach_15.png" state="44" />
		<image file="tach_15.png" state="45" />
		<image file="tach_16.png" state="46" />
		<image file="tach_16.png" state="47" />
		<image file="tach_16.png" state="48" />
		<image file="tach_17.png" state="49" />
		<image file="tach_17.png" state="50" />
		<image file="tach_17.png" state="51" />
		<image file="tach_18.png" state="52" />
		<image file="tach_18.png" state="53" />
		<image file="tach_18.png" state="54" />
		<image file="tach_19.png" state="55" />
		<image file="tach_19.png" state="56" />
		<image file="tach_19.png" state="57" />
		<image file="tach_20.png" state="58" />
		<image file="tach_20.png" state="59" />
		<image file="tach_20.png" state="60" />
	</element>
	<element name="speed" defstate="0">
		<rect state="1">
			<bounds x="0" y="0" width="17" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="2">
			<bounds x="0" y="0" width="34" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="3">
			<bounds x="0" y="0" width="51" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="4">
			<bounds x="0" y="0" width="68" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="5">
			<bounds x="0" y="0" width="85" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="6">
			<bounds x="0" y="0" width="102" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="7">
			<bounds x="0" y="0" width="119" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="8">
			<bounds x="0" y="0" width="136" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="9">
			<bounds x="0" y="0" width="153" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
		<rect state="10">
			<bounds x="0" y="0" width="170" height="7" />
			<color red="1.0" green="0.0" blue="0.0" />
		</rect>
	</element>
	<element name="shifter" defstate="0">
		<image file="Shift_Low.png" state="0"/>
		<image file="Shift_High.png" state="1"/>
	</element>
	<view name="Upright_Artwork">
		<screen index="0">
			<bounds x="731" y="248" width="630" height="687" />
		</screen>		
		<bezel element="bezel">
			<bounds x="0" y="0" width="1920" height="1080" />
		</bezel>
		<bezel name="digit27" element="digit">
			<bounds x="591" y="756" width="27" height="35" />
		</bezel>
		<bezel name="digit28" element="digit">
			<bounds x="561" y="756" width="27" height="35" />
		</bezel>
		<bezel name="digit29" element="digit">
			<bounds x="530" y="756" width="27" height="35" />
		</bezel>
		<bezel name="digit30" element="digit">
			<bounds x="500" y="756" width="27" height="35" />
		</bezel>
		<bezel name="digit31" element="digit">
			<bounds x="465" y="756" width="27" height="35" />
		</bezel>
		<bezel name="digit2" element="digit">
			<bounds x="606" y="608" width="19" height="23" />
		</bezel>
		<bezel name="digit3" element="digit">
			<bounds x="585" y="608" width="19" height="23" />
		</bezel>
		<bezel name="digit4" element="digit">
			<bounds x="563" y="608" width="19" height="23" />
		</bezel>
		<bezel name="digit5" element="digit">
			<bounds x="541" y="608" width="19" height="23" />
		</bezel>
		<bezel name="digit6" element="digit">
			<bounds x="519" y="608" width="19" height="23" />
		</bezel>
		<bezel name="digit7" element="digit">
			<bounds x="606" y="572" width="19" height="23" />
		</bezel>
		<bezel name="digit8" element="digit">
			<bounds x="585" y="572" width="19" height="23" />
		</bezel>
		<bezel name="digit9" element="digit">
			<bounds x="563" y="572" width="19" height="23" />
		</bezel>
		<bezel name="digit10" element="digit">
			<bounds x="541" y="572" width="19" height="23" />
		</bezel>
		<bezel name="digit11" element="digit">
			<bounds x="519" y="572" width="19" height="23" />
		</bezel>
		<bezel name="digit12" element="digit">
			<bounds x="606" y="535" width="19" height="23" />
		</bezel>
		<bezel name="digit13" element="digit">
			<bounds x="585" y="535" width="19" height="23" />
		</bezel>
		<bezel name="digit14" element="digit">
			<bounds x="563" y="535" width="19" height="23" />
		</bezel>
		<bezel name="digit15" element="digit">
			<bounds x="541" y="535" width="19" height="23" />
		</bezel>
		<bezel name="digit16" element="digit">
			<bounds x="519" y="535" width="19" height="23" />
		</bezel>
		<bezel name="digit17" element="digit">
			<bounds x="606" y="501" width="19" height="23" />
		</bezel>
		<bezel name="digit18" element="digit">
			<bounds x="585" y="501" width="19" height="23" />
		</bezel>
		<bezel name="digit19" element="digit">
			<bounds x="563" y="501" width="19" height="23" />
		</bezel>
		<bezel name="digit20" element="digit">
			<bounds x="541" y="501" width="19" height="23" />
		</bezel>
		<bezel name="digit21" element="digit">
			<bounds x="519" y="501" width="19" height="23" />
		</bezel>
		<bezel name="digit22" element="digit">
			<bounds x="606" y="465" width="19" height="23" />
		</bezel>
		<bezel name="digit23" element="digit">
			<bounds x="585" y="465" width="19" height="23" />
		</bezel>
		<bezel name="digit24" element="digit">
			<bounds x="563" y="465" width="19" height="23" />
		</bezel>
		<bezel name="digit25" element="digit">
			<bounds x="541" y="465" width="19" height="23" />
		</bezel>
		<bezel name="digit26" element="digit">
			<bounds x="519" y="465" width="19" height="23" />
		</bezel>
		<bezel element="shifter" inputtag="INPUT" inputmask="0x04">
			<bounds x="0" y="0" width="1920" height="1080" />
		</bezel>
		<bezel element="turbo_tach">
			<bounds x="436" y="845" width="216" height="125" />
		</bezel>
		<bezel name="tachometer" element="tach">
			<bounds x="436" y="845" width="216" height="125" />
		</bezel>
		<bezel name="speed" element="speed">
			<bounds x="458" y="939" width="171" height="7" />
		</bezel>
		<bezel element="turbo_tach_mask">
			<bounds x="436" y="845" width="216" height="125" />
		</bezel>
	</view>
</mamelayout>

It uses 25 images, some layout generated 7 segment LEDs, The speedometer LEDs are generated and animated, and the shifter is animated. It’s also possible to animate the steering wheel but I chose not to.

Full disclosure… I only modified a very good layout to fit my graphic. I’m not quite that fluent. :innocent:

The shifter graphic is mine though. :wink: (I also modified the original bezel a lot.)

The full collection for 122 games can be found in my Arcade-Originals repo.

Only the 92 MAME layouts can be used without the help of Rocketlauncher and other standalone emulators.

3 Likes

Awesome! Does that mean these could be combined with Mega Bezel similar to how Orionsangel creates his?

Nope… it means the opposite. There are 25 images, many of which have states and are animated. Not even the Mega Bezel can do that.

Turns out the Retroarch layout feature can’t either. It is limited to simple layouts like overlays.

1 Like