Space Invaders backdrop resolution (mame2003-plus)
-
I can not figure this out. Whatever I do to my
invaders.zip
artwork file, my backdrop is always low resolution. I have tried the old Mr Do's backdrop (which I quite like), but also some much higher rez ones. It always ends up looking to be rendered at the same resolution as the game. Messing with the 'position' in theinvaders.art
file is also completely out of my depth. I just don't understand the logic of how it does what it does.This sent me down a rabbit hole of years-old threads on here as well as Github, but I just can't get close to a solution. I also tried messing with UDb23's backdrop calculator to get the right position, but I also don't really know what I'm doing there. It's all just a lot of tinkering and seeing what happens, but after three days of messing about, I'm running in circles.
Does anybody know how to get a crisp backdrop in Space Invaders with Mame2003-plus?
-
@WeirdH I think I can help, but it will take some time.
First...how are you starting your arcade games, and how are you telling mame what artwork to pull?
Are you familiar with the file system of RetroPie? Can you get into your arcade roms folder?
2nd... To do this right. Each rom requires a "partner" file that sets the resolution and background if any as well as using a bezel and all that. It's not a quick thing to do, but once you set one up, you'll understand. Do you have these files in your room folder as well?
So... Go with what I asked first, then I'll explain more.
-
@jamrom2 said in Space Invaders backdrop resolution (mame2003-plus):
2nd... To do this right. Each rom requires a "partner" file
Depends, as the OP mentioned Mr.Do's side, my guess would be he is using mame artwork, whereas you are refering to RA overlays...
@WeirdH what core? what artwork exactly?
-
@jamrom2 said:
@WeirdH So... Go with what I asked first, then I'll explain more.
Thanks for replying. I forgot to mention in the first post that I am on a Pi 3B+, so that might limit things...
First...how are you starting your arcade games,
I don't quite understand what you mean by how I am starting. All games are stored in
/home/pi/RetroPie/roms/arcade
and get launched from Emulationstation. Each rom has an accompanying .cfg-file for assigning the bezel and shader.For instance,
invaders.zip.cfg
contains the following:input_overlay = /opt/retropie/emulators/retroarch/overlays/MAME-Vertical.cfg input_overlay_enable = true input_overlay_opacity = 1.000000 input_overlay_scale = 1.000000 video_shader = "/opt/retropie/emulators/retroarch/shader/JH_Vertical.glslp"
and how are you telling mame what artwork to pull?
There's an
invaders.zip
file in/home/pi/RetroPie/BIOS/mame2003-plus/artwork
. When unzipped, it reveals aninvaders.art
file, along with some artwork png's. The .art-file is where I fiddled with the position that I can't seem to understand.
Are you familiar with the file system of RetroPie? Can you get into your arcade roms folder?
I'd say I know enough to find my way around, but I'm no expert who can do a lot of things from memory. Access to the folder is no problem.
2nd... To do this right. Each rom requires a "partner" file that sets the resolution and background if any as well as using a bezel and all that. It's not a quick thing to do, but once you set one up, you'll understand. Do you have these files in your room folder as well?
I do believe you're referring to the .cfg-files? If so: yes, I do.
@Ashpool said:
@WeirdH what core? what artwork exactly?
Mame2003-plus. The artwork I'm having trouble with is the backdrop. (Taito or Midway moon)
-
@Ashpool he's definitely using Mame artwork. I was going to segway into using the new bezels and artwork. I have Mame artwork running on Boothill, Frogs and a few other older games. I have to bootup my system, it's been a while.
-
@jamrom2 Right...
@WeirdH The asteroid.zip that comes with mame2k3+ is, as you may have noticed via the .art config, of the legacy mame artwork format. Mame artwork and RA overlays are totally different context , and at the moment I am unsure how i can explain the differences properly (maybe you can grasp/understand it by having a brief look at my asteroid mame/RA-overlay thread). Mame artwork ain't needing the libretro/RA config (*.zip.cfg) and any RA.cfg messing with/definition of the display/screen-size for the core/rom is defining the "space" that is to be used by mame (mame provides a "screen" which incorporates its own artwork, retroarchs overlay is on top of that).
Edit: with the provided/or downloaded from Mr.Do's Side mame artwork, you don't want/have to edit anything (be it .lay or .art config)! The coordinates therein are in regards to mames "viewport", they are defining the "screen/display" area to be used by mame within the surroundings (bezel/etc.) and evtl. over a backdrop (and with more modern cores interactive/variable elements like LEDs/pressed buttons/etc.).
-
@Ashpool said in Space Invaders backdrop resolution (mame2003-plus):
Edit: with the provided/or downloaded from Mr.Do's Side mame artwork, you don't want/have to edit anything (be it .lay or .art config)! The coordinates therein are in regards to mames "viewport", they are defining the "screen/display" area to be used by mame within the surroundings (bezel/etc.)
Yes, I initially saw that. However, I didn't want the bezel, just the backdrop. So I thought I'd do some tinkering. I deleted all the bezel-related png's (and removed their mention in
invaders.art
) and messed around with the position. That's where I hit my dead end, as the backdrop never gets as crisp as it does here.Mind you, if there is a better way of getting a hi-res backdrop I'd also be up for that. I don't know if FBNeo offers backdrop functionality? I'm not married tot Mame2003-plus, I just thought it was the only core that could "easily" do backdrop art.
-
@WeirdH said in Space Invaders backdrop resolution (mame2003-plus):
Mind you, if there is a better way of getting a hi-res backdrop I'd also be up for that.
How about these? (I hope this doesn't break the forum's rules.)
- https://www.arcadeartwork.org/picture.php?/13206/search/9563
- https://www.arcadeartwork.org/picture.php?/13214/search/9563
- https://www.arcadeartwork.org/picture.php?/13215/search/9563
https://www.arcadeartwork.org/picture.php?/13216/search/9563
I don't know if FBNeo offers backdrop functionality?
You could ask that in https://retropie.org.uk/forum/topic/19741/goodbye-fbalpha-welcome-fbneo.
-
@Clyde Thanks, I found that Midway moon already. The issue is that when I use it in my
invaders.zip
artwork file, it renders in low resolution, almost like it's part of the game.My RetroPie is set at 1280x960 (4x3 monitor). With this, my bezel with custom artwork and my customized zfast scanline shader both look sharp. It's the backdrop that doesn't want to play ball, regardless of which image I use.
EDIT: to make the issue clearer, below is a screenshot with the scanline shader disabled. This is a 1280x960 image with the old Mr. Do background. That original image has a resolution of 1142x1046. Should the outline of the moon even be this jaggy?
-
@WeirdH I fear that's the quality the source is offering, the modern/updated mame artwork (layfile format) may be of a better quality - don't have the time to look at it atm, but maybe a less jaggy backdrop could be created for the old artwork format from it (would need some blending/merging of the various layer (moon/backdrop/?) into a single backdrop image). If I find the time, I will give it a try this evening.
@Clyde Nope, lr-FBNeo relies on RA overlays, it never had (AFAIK) it's own artwork cababilities.
P.S.: It would be really great if RA would come up with it's own backdrop support in addition to overlays!
-
@Ashpool said in Space Invaders backdrop resolution (mame2003-plus):
@WeirdH I fear that's the quality the source is offering, the modern/updated mame artwork (layfile format) may be of a better quality
That's what I thought too, but here is a screenshot with a backdrop with a 2236x2981 resolution, sourced from Clyde's earlier post. That should be plenty to alleviate some jagginess, right?
But it still does the same thing all backdrops did for me so far. I figured it had to be something I'm doing wrong in the
invaders.art
file. -
@WeirdH Yup, that's what happens if the machines screen is projected/positioned upon the (fractional) resized artwork and the whole 'vertical' mame-display is then rotated (for mame2k3+ that would be via retroarch AFAIK and not by mame itself) and most possible further "squeezed" by that process. I have an idea and will try to create an old artwork format backdrop aimed at your display/resolution -> Source Resolution: Oops... that changed during it's mame-history the resolution in Mame0.125u2 and onward is listed as 260×224@59.541985 Hz, previously it was 224×240@60 Hz ↺90° (sometimes 270 for the rotation). Nevertheless, according to the artwork definitions, the gamescreen is smaller then the backdrop area and considering that for crts the number of scanlines (vertical, or in this case (rotated monitor) horizontal) is known, width of scanlines depends on frequency/and|or whatsoever, personally i would prefer an integer scaling of the "reference"-axis -> so for 1280x960 and a DAR of 0.75, the "invader" screen would be 672x896 (Edit: (now) verified from within mame with a unicoloured backdrop positioned 0,0,1,1 and RA-menu integer scaling set). But from your screenshot it appears, that you are prefering the gamescreen to be 720x960. Mh... well, I think I make both variants now (work-draft or however you may call it) and we may see how they turn out.
P.S.: Real Backdrops shouldn't be part of the shader (they won't be curved, aren't build up by scannlines (so no gaps on 'em), etc.), that's why in such cases RA/libretro shaders are messing it up (and also thats why RA is in need of its own backdrop capability) and it would be better to use mame's own shaders (for mameecores able to do so, that would still be a nogo on the raspi (performance wise)). Citing from Wikipedia: Space Invaders
In the upright cabinets, the game graphics are generated on a hidden CRT monitor and reflected toward the player using a semi-transparent mirror, behind which is mounted a plastic cutout of a moon bolted against a painted starry background. The backdrop is visible through the mirror and thus appears "behind" the graphics.
Edit: Damned, old artwork format - fractional coordinates, problems I encountered in my linked thread above (asteroid mameart/RA overlay) ... Backdrop Area=Game Screen is less troublesome for now (if the backdrop shall be larger, the workaround of incorporating the "outer" part of the backdrop into an RA Overlay would be easier to do).
For completeness sake -> here is a croped screenshot from current mame (WIN) with HLSL effects enabled (scannline gaps only on the projected game screen, not on the backdrop/bezel)
-
@WeirdH Well, I fear that without an backdrop image that eventually is better suited for this, it won't get any better (even if some prefiltering/bluring will be applied to the image). Based on the backdrop starfield & moon from Mr.Do's current ingame artwork file, composed by layering both in complience to the positions given within the .lay file and then the merged backdrop grafix croped to the game-screen (DAR honoured) ending in 2016x1512 (| resized to 960x720) -> this is the result from this quick mashup:
I think one factor to be considered here is, that with the fully fledged mame artwork files, mame is actually rendering the gamefield in a really small area within a much larger artwork dimension based on the bezel(/+control pannel) and what we are seeing here is the enlarged/zoomed into pure gamefield proportion of that.
-
@Ashpool question... Have you tried using another version of Mame? Mame2003+ is not only old, but is a "best fit" for RetroPie. You can try other versions like 2010, 2015, 2016. You just need to check the rom versions. For Space Invaders it might work. If not Google is your friend for the proper version. See if that works. Just dump the artwork in the same folder after you finish loading the version into RetroPie. You don't have to change the ini file either. Just point runcommand at the new version.
I've been super busy around the house with Memorial Day weekend plans. Sorry I haven't answered much.
-
@jamrom2 said in Space Invaders backdrop resolution (mame2003-plus):
Have you tried using another version of Mame?
So far just on windows to see how Mr.Do's current artwork looks, but if @WeirdH wants to use any libretro shaders with it, newer (counting m2k3+ among old here) mame cores are a nogo due to the way they are dealing with the screens rotation (rotation done in mame and reporting the game as beeing horizontal towards RA).
Edit: But I haven't taken a look (was unaware of it) into issue #360: Use libretro screen rotation so far, so maybe that ain't such a problem anymore (?). -
@Ashpool said in Space Invaders backdrop resolution (mame2003-plus):
@WeirdH -> this is the result from this quick mashup:
Ah, so it's not just me. Still, isn't it weird that a hi-res image gets pixelated like that? What causes that? Like I said, I initially thought it had to be something in the .art-file that I was messing up, but it seems not. Is it the core? Is it Retroarch? Something in the artwork? Or all of the above?
And even then, regardless of the cause, why does it seem to work correctly for Clyde in this thread (see post #5)?
I think one factor to be considered here is, that with the fully fledged mame artwork files, mame is actually rendering the gamefield in a really small area within a much larger artwork dimension based on the bezel(/+control pannel)
Yeah, I had also considered that, but even images that are easily four times the resolution of my entire screen get like this. I don't think the gamefields in fully bezeled configurations are actually over four times smaller than fullscreen, right? Maybe I'm wrong, but it just doesn't make a lot of sense to me. Then again, I'm by no means an expert, so feel free to take all of my assumptions with multiple grains of salt. ;)
-
@WeirdH said in Space Invaders backdrop resolution (mame2003-plus):
And even then, regardless of the cause, why does it seem to work correctly for Clyde in this thread (see post #5)?
I am not sure that it does, but before i come to that some further thought about the basics ;p
even if the souce images are highres, that doesn't mean they aren't jagged or pixelated and the taito_moon clyde used is somewhat better in this regards then it is with the midway one.
furthermore, clyde squeezed the left/right boundaries of that backdrop. Here is a (top/bottom black borders croped) screenshot (on a 1280x960 display) from current lr-mame with everything removed from the layfiles view but the backdrop and screen, together with the brightness raised within mame (to highlight the actual gamescreen):Compare that to the backdrop clyde used and you see that the moons width was squeezed by him to fit his 1600x1200 display. Next is a comparission of 3 settings used on my next mashup using that taito moon (also squeezed in width, though not to the extent clyde had used):
Top: crt-pi-vertical shader, no bilinear filtering; Middle: Bilinear Filtering enabled in RA menu; Bottom: pure backdrop [mame2k3+].
The screenshot @Clyde used was also with a scanline(gap)-filter, and IMHO that one is pretty much masking the pixelation/jagginess - so, my guess would be that his backdrop would also turn out pixelated without the shader used ;]Edit: Oops, actually the shader is only used on one of his images. You can try his artwork - just use the 1200x1600 image he posted together with the artfile definition mentioned in that thread (or to be sure, resize it to 960x1280 and use the backdrop definition from my mashup below) ;)P.S.: that backdrop/artfile i've used above is aimed at 1280x960 (outer boundaries for the artfile calculation/coordinates) and bloody floats, again the resulting gamearea is 671x892 instead of 672x892 (which is the screen resolution the coordinates where calculated from), the backdrop image itself is 2016x2688 (3:4).
backdrop: file = moon_squeezed.png layer = backdrop priority = -2 visible = 1 position = -0.017857,-0.452361,1.053571,1.452381
-
@WeirdH said in Space Invaders backdrop resolution (mame2003-plus):
I don't think the gamefields in fully bezeled configurations are actually over four times smaller than fullscreen, right?
Wouldn't bet on it... here is a resized screenshot (windowed mode, resized to 65%) from current mame on my win PC (monitor: 1920x1200), the actual game screen is somewhat around ~+- 340x450 on that (windowed), ~360x470 (Fullscreen) [Edit: so x4 resolution (x2 on 2 axes) would be ~720x940], resolution/artwork file is from Mr.Do's. (so the Bezel is 4000x4133, the control pannel 3999x1151, starfield 4000x1828 and moon 3420x1279). I guess that is clearly to be used in tate mode with a rotated display :] Don't know what mame is using as filtering method for up/downsizing (assuming that m2k3+ is offering bilinear as an option i would guess that the base resize is nearest neighbour), but welcome to the world of things like nearest neighbour/bilinear/bicubic/lanczos/etc. and the problem how to squeeze n-base pixels into m(<n)-target pixel or how to enlarge n--base px into m(>n)-target px ;>
-
Man, that is a lot to process ;) I do appreciate you taking the time to mess around with it and explain in such detail. Some of the calculations go over my head (not a calculations guy, really), but it all makes sense at least, thank you.
@Ashpool said in Space Invaders backdrop resolution (mame2003-plus):
You can try his artwork - just use the 1200x1600 image he posted together with the artfile definition mentioned in that thread (or to be sure, resize it to 960x1280 and use the backdrop definition from my mashup below) ;)
I will toy around with this. If all else fails, my Space Invaders will just have a regular old black background with nothing in it and even less on it.
-
@WeirdH
Here is an archive of some of the files of my mashups using the taito moon: invaders_testfiles.7z.
For quick artwork tests in (lr-)mame: remember that the artwork don't need to be in an archive, instead of invaders.zip you can just create a folder "invaders" within the artwork-folder and put the artwork files in there.
files included: 2x. artwork.art files (one for fullscreen BD, the other one for the 720x960 ones), 2 images for a fullscreen backdrop (original moon, slightly squeezed moon) and another 2 for a backdrop area of (rotated on 4:3) 720x960 (same as above). For the second one, the calculated coordinates are resulting in a 672x896 gamescreen, so no pixels missing/added from that one ;]
Please report back and say that you either downloaded it, or aren't interested in it. I just created a (temporary) directory for it in a forked repo and want to remove it from thereagainasap (don't want that one to be included by my next pull request) ;>Edit: What you may try, and I haven't tested so far, is to downscale the artwork png file in question to the actual dimension it would occupy on your display and by using a resize filter of your choice (1). As we can't even count on the WYSIWYG from an imager viewer/graphics_app_of_our_choice :/, but have to see what the (retropie)-core used is making of it, it could be worth to try to put in a source with exact targeted px-dimension.
1: (old school rule of thumbs was bicubic for upscaling, bilinear for downscaling - but that was in times before lanczos and other more modern resize filters came to be) - sadly due to the vertical into horizontal display rotation cannot be avoided, and by downscaling (in older legacy artwork this could also include upscaling), this would still mean that the artwork source image would be processed by mame and are not 1:1 identical to the source we put into it.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.