Backdrops in mame2003-plus
-
@Riverstorm I tested a bit more with the different settings for beam width (BW) and vector multiplier (VM). Here are the results: https://imgur.com/a/nntJwhJ
It's rather obvious that the VM has a heavy impact on the quality of both the beams as the backdrop. Maybe your VM is too low? But I also noticed that a higher VM puts more strain on the game's speed and jerkiness. On my system (Pi 3B without "+", not overclocked), VM 3 has the best balance between picture quality and performance in my opinion.
That said, modern TVs are infamous for messing with the picture and/or responsiveness of games. Not without reason, there is a section about speed issues with TVs in the Retropie Docs, and some more tips regarding TVs in the FAQ. I can't help you more with that, because I don't have a TV for more than 10 years now.
What I don't understand is why my monitor should have any impact on the quality of my screenshots, since I make them from within RetroArch and not as photos from my monitor screen. Furthermore, I have disabled EDID via a line
hdmi_ignore_edid=0xa5000080
in my/boot/config.txt
because I had issues with the HDMI splitter that I use to mirror my cabinet's picture on my video projector. So as I understand it, my Pi shouldn't even know what monitor it is connected to.As for my Omega Race (OR), I now decided to use @UDb23's UV2 backdrop at 0.30 brightness. Even with white vectors, I like it a bit more than the UV version with yellow elements. I also shrunk the game area to 1400x1050 (the next common 4:3 resolution below 1600x1200), because the original OR machines also had a smaller game area than their backdrop, as you can see on the video and the image posted by me and @UDb23.
My beam width remains 2 and my vector multiplier is still 3.
You can see the result here: https://imgur.com/JeE2aqs (A link to Imgur, because I want to reduce my image-spamming here ab bit. 😇 )
edit: typo
-
the screenshots arent degraded they where taken on a laptop 720p with a 1x res. I dont use vector games much what seeting you want the screenshot taken with on the pi?
-
@Clyde - Your answers are well written and helpful, thanks. I was referring mainly to the shader altering the frame and not so much the display, except the final output might look nicer on that old NEC Multisync.
I haven't heard that name (NEC) in years. One of my first PC monitors was a company named Packard Bell beyond that the old Tandy line from Radio Shack. Before that the old VIC-20 and 64. Anyway thinking I guess you're using RA so your snaps are "true" to what's generated.
The one area I haven't put time into is my TV and you have given me another avenue to explore. Let me check it's settings for a game mode and other processing but also at the back of my thoughts AdvMAME does look correct but I have hope that something here might be the cause.
I had wondered before about it and glad others do too. Here's my take on it. Beyond a small information exchange (between the TV and Pi--like mode and resolution) the Pi has no idea what "post frame processing" the TV is doing like upscaling, smoothing, color, tint, etc. It also has no information on the pixels dimensions like square or rectangular. If you used h/v sync to stretch or compress an image, etc. A lot of things can happen once it hits the display that the Pi basically has no control over.
So basically screenshots in RA are exactly how the Pi processes them before they even get sent to the TV and then the TV further processes them. I think what we see on screen and how frames are generated are slightly different in appearance.
You could take a RA generated screenshot and actual TV/monitor photo to see the differences.
AdvMAME is that way. It takes the screenshot before any filter effects are applied. Step 1 - generate frame, Step 2 - apply filter effects, Step 3 - send frame to tv.
AdvMAME takes the screenshot between steps 1 and 2 whereas RA between 2 and 3.
I duplicated your all your settings except I made my beam width 1 vs 2. Two looks to wide on my HD TV. The comparison shot above was with a BW of 1.
Since you removed that "feature" do you specify every games resolution manually?
You have given me some good information to work with thank you.
Wow, no TV for 10 years, that's impressive. The TV was like a surrogate parent for me growing up. Even when I don't watch it I have it on for the background noise. I think better with it on or as my wife says; I'm wasting electricity.
-
retroarch has two ways of taking a screen shot go to video->settings
gpu enable screenshot. You really shouldnt limit yourself to retropie when testing install in on windows or linux youll have access to more driver choices
-
One of the other downsides of not having backdrop artwork support in RetroArch yet is that there is another layer of scaling introduced. Because vector rendering also happens within the core and depends on resolution upscaling to look good on a digital that is another layer of scaling.
That means you have scaling potentially happening four times:
- vector rendering in the core
- artwork rendering in the core
- video rendering in the frontend (retroarch in this case)
- television rendering the signal
People on the same emulator platform should be able to synchronize their settings for the first three and produce identical screenshots. However to get good results across a variety of connection types and displays might require trial and error changes to settings for the first three layers -- if that makes any sense.
-
I dont think the artwork is anything to do with it in this case. Does your rendering improve when you disable the artwork if not is scaling somewhere between the tv or the gpu. Im not sure how retropie deals with overscan ect.
for lg i get my scaling working properly for 90% of things by picking aspect ratio-> just scan form the quick menu
-
not really sure what good it will do posting screenshots from the pi but here you go
-
@grant2258 - Thanks, that answers my question. When I get some extra time I am going approach it from a new image with Plus only. Adding one change at a time and see if I can figure out what's taking precedence over my vector settings as my values match what Clyde posted. Can I ask what is your monitor resolution, basically what's your Core Provided resolution on these screenshots?
-
resolution is 1080 this works fine ons 720p laptop monitor as well. Download the image and click properties it will give you the resolution used in the details tab
1440 x 1080 which is 4:3 aspect in 1080 (core provided)
mame2003-plus-dcs-speedhack = "enabled" mame2003-plus-samples = "enabled" mame2003-plus-skip_disclaimer = "enabled" mame2003-plus_art_resolution = "1" mame2003-plus_brightness = "1.0" mame2003-plus_cheat_input ports = "disabled" mame2003-plus_core_save_subfolder = "enabled" mame2003-plus_core_sys_subfolder = "enabled" mame2003-plus_crosshair_enabled = "enabled" mame2003-plus_dcs_speedhack = "enabled" mame2003-plus_dialsharexy = "disabled" mame2003-plus_display_artwork = "enabled" mame2003-plus_display_setup = "disabled" mame2003-plus_dual_joysticks = "disabled" mame2003-plus_enable_backdrop = "enabled" mame2003-plus_four_way_emulation = "enabled" mame2003-plus_frameskip = "0" mame2003-plus_gamma = "1.1" mame2003-plus_input_interface = "retroarch" mame2003-plus_machine_timing = "enabled" mame2003-plus_mame_remapping = "enabled" mame2003-plus_mouse_device = "mouse" mame2003-plus_neogeo_bios = "default" mame2003-plus_nvram_bootstraps = "enabled" mame2003-plus_rstick_to_btns = "enabled" mame2003-plus_sample_rate = "48000" mame2003-plus_skip_disclaimer = "disabled" mame2003-plus_skip_warnings = "disabled" mame2003-plus_tate_mode = "disabled" mame2003-plus_use_alt_sound = "enabled" mame2003-plus_vector_antialias = "enabled" mame2003-plus_vector_beam_width = "1" mame2003-plus_vector_flicker = "20" mame2003-plus_vector_intensity = "1.5" mame2003-plus_vector_resolution_multiplier = "3" mame2003-plus_vector_translucency = "enabled"
-
@Riverstorm said in Backdrops in mame2003-plus:
I duplicated your all your settings except I made my beam width 1 vs 2. Two looks to wide on my HD TV. The comparison shot above was with a BW of 1.
Since you removed that "feature" do you specify every games resolution manually?
I don't know what you mean by removing "that feature". Could you please rephrase that?
No, I am not specify the resolutions manually. As far as I remember, I left all of the settings at their default values. See my
video
options from myretroarch.cfg
:video_adaptive_vsync = "false" video_allow_rotate = "true" video_aspect_ratio = "-1.000000" video_aspect_ratio_auto = "true" video_black_frame_insertion = "false" video_context_driver = "" video_crop_overscan = "true" video_disable_composition = "false" video_driver = "gl" video_filter = "" video_filter_dir = "default" video_font_enable = "true" video_font_path = "" video_font_size = "12.000000" video_force_aspect = "true" video_force_srgb_disable = "false" video_frame_delay = "0" video_fullscreen = "false" video_fullscreen_x = "0" video_fullscreen_y = "0" video_gpu_record = "false" video_gpu_screenshot = "true" video_hard_sync = "false" video_hard_sync_frames = "0" video_max_swapchain_images = "3" video_message_color = "ffff00" video_message_pos_x = "0.050000" video_message_pos_y = "0.050000" video_monitor_index = "0" video_msg_bgcolor_blue = "0" video_msg_bgcolor_enable = "false" video_msg_bgcolor_green = "0" video_msg_bgcolor_opacity = "1.000000" video_msg_bgcolor_red = "0" video_post_filter_record = "false" video_record_config = "" video_record_quality = "4" video_record_scale_factor = "1" video_refresh_rate = "59.940060" video_rotation = "0" video_scale = "3.000000" video_scale_integer = "false" video_shader = "~/.config/retroarch/shaders/presets/MAME 2010/MAME 2010.glslp" video_shader_dir = "~/.config/retroarch/shaders" video_shader_enable = "true" video_shader_watch_files = "false" video_shared_context = "false" video_smooth = "false" video_stream_config = "" video_stream_port = "56400" video_stream_quality = "6" video_stream_scale_factor = "1" video_stream_url = "" video_swap_interval = "1" video_threaded = "true" video_vsync = "true" video_window_opacity = "100" video_window_show_decorations = "true" video_window_x = "0" video_window_y = "0" video_windowed_fullscreen = "true"
@Riverstorm said in Backdrops in mame2003-plus:
Wow, no TV for 10 years, that's impressive. The TV was like a surrogate parent for me growing up. Even when I don't watch it I have it on for the background noise. I think better with it on or as my wife says; I'm wasting electricity.
Haha. :) Well, in the times of YouTube etc. I don't miss my TV at all. Also, in Germany we have a good number of public broadcasters that provide many of their transmissions in online "Mediatheken" (plural of Mediathek). And with a nifty tool called MediathekView, I can watch or even record all public station in one GUI.
-
I have disabled EDID via a line hdmi_ignore_edid=0xa5000080 in my /boot/config.txt because I had issues with the HDMI splitter that I use to mirror my cabinet's picture on my video projector. So as I understand it, my Pi shouldn't even know what monitor it is connected to
@Clyde - The line above is why I was asking. I always thought the "handshake" between the Pi and display is how the Pi determines the display resolution and then calculates the Core Provided resolution for the display used. The thought being if the Pi has no idea what type of monitor is connected, whether be 1920 x 1080 or 1600 x 1200 how is the Pi calculating your Core Provided resolutions. Hopefully that makes better sense.
Ah, yes I know many folks that use strictly streaming for TV now but I do know a few that don't use any TV at al!. I guess they count on reading for current and world events. It's not totally a lost art I read every night. :)
@grant2258 - Your resolution is a perfect 1440 x 1080? I always seem to lose some pixels at different resolutions if a BD is loaded so I was curious what your actual Core Provided values are showing. Different BD's change the values also, like stars vs cockpit. I have some interesting values for each one and to help with troubleshooting I was hoping to get your actual values? If they actually show a perfect 1440 x 1080 my setup is really hosed.
-
@grant2258 Just checked and actually I got the same resolution issues as @Riverstorm.
I never changed any of the default settings in my current config; 1080p tv, screen res is at 1080p (1440x1080 for omega race). Latest mame2003plus: omega race w white lines.
Used your settings but still no good image. As you can see from pictures below the issue is related to diagonals drawing. It seems lines are calculated at low res and then pixels are upscaled.
See letter R or M
This is advancemame's output (star castle):
letters
game
Same PI3b+ on same TV (game mode).
Tested also w BD disabled and has no impact on vector games quality (at least for me)
I'm quite clueless at this point.
-
Also tested higher resolution multiplier, even with 6 still these ugly diagonals.
-
have you put bi-linear filtering on pretty sure advance mame will be doing this. also make sure the artwork scaling is 1x mark put it to two for some reason wont matter for vector games right enough its will set it back to one for them
-
@Udb23 - Thank you for testing. Those issues in your screenshots are exactly what I am seeing too. With or without a BD. I've tried everything I could think and then verified and reverified the settings. When Grant posted perfect screenshots on a HD monitor I figured I must be the only one seeing issues. Now if Grant can share how he did we would be set, waves small banner, in Grant we trust! ;)
-
settings->video->bi-linear filtering is the only other option i have on I always have this on by default.
and on the pi i set my default monitor res on raspi-config
-
@grant2258 said in Backdrops in mame2003-plus:
settings->video->bi-linear filtering is the only other option i have on I always have this on by default.
That DID IT !!
Thanks a lot. I was not aware of this setting.In general should this be always on ? Does it affect performance? Is it good also for raster based games ?
-
@UDb23 it does help games yes smooths them out its my personal preference. Its no very cpu intensive it been used in emulation for years
-
@Riverstorm said in Backdrops in mame2003-plus:
@Clyde - The line above is why I was asking. I always thought the "handshake" between the Pi and display is how the Pi determines the display resolution and then calculates the Core Provided resolution for the display used. The thought being if the Pi has no idea what type of monitor is connected, whether be 1920 x 1080 or 1600 x 1200 how is the Pi calculating your Core Provided resolutions. Hopefully that makes better sense.
I think you may have an error in reasoning there. Maybe @grant2258 and @markwkidd can say more about it, but I think that without manual set resolution, RA will just use the resolution of the system's framebuffer. Next to disabling the EDID on my Retropie, I also set a screen resolution of 1600x1200 in my
/boot/config.txt
:hdmi_group=2 hdmi_mode=51
See https://www.raspberrypi.org/documentation/configuration/config-txt/video.md about these options, as well as https://retropie.org.uk/docs/Video-Issues/#show-and-set-the-current-video-mode on how to test them in a running Retropie.
Ah, yes I know many folks that use strictly streaming for TV now but I do know a few that don't use any TV at al!. I guess they count on reading for current and world events. It's not totally a lost art I read every night. :)
The main difference to a normal TV is that you choose what you watch on a per-broadcast basis, and you don't tend to leave it on as background noise (the latter brought me to the idea of remove my TV in the first place). You are also spared from commercial breaks, at least if you use an ad blocker in your web browser. 😇 Since I mostly watch documentaries, Mediathekview is a wonderful source for them, as public stations tend to make very good ones without the excessive drama that private stations tend to put into them.
Thumbs up for reading regularly. I love books, but I only manage to read them on the train to work, which I only use in winter and during bad weather. The greater part of the year I go to work by bycicle, and that makes reading a little bit difficult. 😉 But I still manage to finish a couple of them over the year.
Oh, and for YouTube I can strongly recommend Kodi with its YT addon. It will let you control your streaming in a convenient way (I'm using one of my Wii U Pro gamepads with it) and you'll get rid of YT advertisements along the way.
@grant2258 @UDb23 My bi-linear filtering is disabled, by the way. Just FYI with regard to my screenshots.
-
I dont know much how retropie deals with video resolution in all honestly i just use raspi-config. You would need to ask @dankcushions or @mitu about that. I usually use retro-arch in its default env and just pick the resolution i want from a drop down list.
If you have a shader on you have video filtering on and wont need bi-linear filtering on. I use this instead of shaders.
edit: I just noticed on your post about brightness. Someone complained mame was too dull so mark put in the brighteness and gamma options and brightened it up a little.
speaking of which ill put a pull req in original values are 1.0 for gamma and you cant set at the moment. looks like a little typo
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.