[$470] Support MAME-style backdrop, screen, bezel, overlay "artwork"

Actually, I’m going to amend my feedback, because it looks like there may be an issue combining the video_overlay with some glsl shaders…not an issue with the shaders themselves.

Here is my setup:

  • Latest Ubuntu 18.04
  • Nvidia GTX 960 with latest Nvidia driver (430)
  • Resolution set to [email protected]
  • RetroArch 1.8.0, default settings, all assets freshly pulled via online updater
  • gl driver is enabled
  • video layout is enabled

Test Case:

  • MAME 2003 Plus core with puckman.zip ROM
  • Layout file from https://mrdo.mameworld.info/artwork/puckman.zip
  • Layout selected view is 0 (but same behavior or any view)
  • Shader file is ~/.config/retroarch/shaders/shaders_glsl/crt/crt-royale.glslp

In this case, the artwork is displayed, but the game contents are not.

If I disable the video layout setting, the artwork disappears, and the game content reappears with the selected shader.

If I leave video layout enabled, and switch to different shader (for example, crt-geom), I am able to see both artwork and game.

While I haven’t done an exhaustive test of all the CRT shaders, it looks like many/all of the ‘royale’ variants are showing a blank screen with the video layout enabled, while many of the others are working. These shaders work fine when video layout is disabled.

Not sure if anyone can diagnose the behavior, but hopefully this info helps.

1 Like

It looks like multipass shaders are having some conflicts with it, which isn’t too surprising. I guess it’s related to the framebuffer not being the size it’s expecting.

Sorry for the late response i wasnt aware there had been any replies. Here is the 1941 bezel i am using.

Thanks for taking a look.

A post was split to a new topic: MAME 1 frame additional latency

Figured out why only one of the views is working! It seems that Retroarch is currently unable to parse xml attribute strings with spaces in them. I’ve submitted this as an issue. https://github.com/libretro/RetroArch/issues/9703

1 Like

Oh wow, good find! Hopefully this won’t be too hard to fix.

The gl driver is kind of a reference implementation. I did try to get gl-core working too but was unable to do so in time.

The shaders are a difficult one. How it currently works (that I understand) is each driver implements everything itself. They provide a function-based interface, but that’s all. There probably is a need for a central compositing system that feeds drivers more basic commands like

gfx_set_viewport(&rect);
gfx_set_blend_mode(BLEND_MULTIPLY);
gfx_render_screen(screen_index);

Something like that. However, every graphics driver would need to be updated to support this and the project leaders would have to manage as well as even greenlight such a task. So don’t count on shaders working properly any time soon. <:)

Well that’s good news i guess, at least it wasn’t me being a dumbass :smile: Thanks for taking a look and submitting the issue, hopefully it’s not to difficult a fix to implement. Thanks again.

Since no one was paying attention to the issue, I couldn’t resist and have submitted a fix myself.

Hopefully it’ll get merged without too much resistance.

1 Like

Hey, sorry for not putting any replies on github. We’ve been discussing it in our discord channels, and I tried a few things to get it to parse spaces, but no luck.

Twinaphex was reluctant to add another dependency, but I think he’s coming around. IMO, it’s better to have a fairly widely used library than our own NIH thing, all else equal (including license, small size/lightweight, etc.).

So, yeah, just wanted to let you know that we are working on it, despite the lack of acknowledgement on github, and I/we appreciate your action on this. :slight_smile:

Thanks for the info!

The PR passes all of the integration tests now, but as I don’t get paid for this one, I have no stakes in getting it merged :smiley:

The free labor is very much appreciated!

1 Like

No problem! And it looks like it’s merged, yay.

1 Like

Just want to add a reply here and say thanks. I downloaded a nightly the other day and tested my bezels, they are all now working as i originally expected them to. So thanks to @hunterk and @huwpascoe for taking the time to look and check that i wasnt going mad, bring up, fix, and merge a fix, it really is much appreciated. :smile:

Thanks again guys.

1 Like