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

yeah, they fulfilled the bounty and then vanished, which is unfortunate but to be expected to happen sometimes. We haven’t reached out to see whether they would be open to bugfixing.

The real hope is that someone will take this working feature and run with it, polishing it up for things like automatic loading by filename match, extending it to other video drivers, etc.

2 Likes

Im just testing this here as well and i cant get the bezels to show period. Windows 10 64bit, Ryzen 7 1700x, GTX 1060 6GB. I have set the MAME core driver to GL but i cant get bezels to show. The game shows just fine, just no bezel.

This was with my daily install, so i downloaded a completely fresh 1.8.0 to test there and i get exactly the same results as my daily build, any ideas?

If it’s not black-screening, is it scaling the screen like it should? to make room for the artwork?

OK i have been doing some more testing with a different game, and i can get it to sort of work. I tested with 1941 and pointed to my 1941.zip bezel. I also unzipped my 1941 bezel to check its contents. i have 9 different bezels in the zip.

Retroarch shows that there are multiple different bezels in the UI, it goes up to 8. However only bezel “4” actually shows in game, and that is in fact a bezel made up of 3 seperate images named inst_1, inst_2 and inst_3, as seen in my first image, and here it is working as bezel 4. So it seems to be ignoring all the other bezels in the zip for some reason even though it see’s them as demonstrated by the UI going up to 8. The previous game i was testing was Guwange, with which i have four images in the bezel zip, but none of those will show for me, the UI shows “4” but none actually show when cycling through them.

2 Likes

Just been notified about this by hizzlekizzle on github.

Please could you send me a link to that 1941 bezel? I’d like to test it.

This is working well for me on a Ubuntu Nvidia GTX960 system, validated against a couple of MAME layouts (puckman, invaders). Thank you!

I recognize that this was developed for the gl driver, but was wondering if it is a heavy lift to extend it to glcore? Could glcore be enabled with some ifdef changes, or is it significantly different from the regular gl driver? I’m not sure how close the drivers are from a code perspective.

The reason I ask is that I would like combine official MAME artwork with RetroArch shaders. However, I find that many glsl shaders fail to work reliably, but their slang counterparts work fine. Unfortunately, using slang on Linux requires glcore (to the best of my knowledge). Im guess I’m trying to have the best of most worlds!

Regardless, this feature is great - thanks again!

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