crt-pi shader users - reduce scaling artifacts with these configs in lr-mame2003, lr-fbalpha, lr-nestopia (and more to come)
-
I understand. I didn't mean that we need extra options or anything done in the front-end. I mean that the vertex shader itself should set those options automatically internally. For example, the vertex shader can do a check if lines>rows to see if it is a vertical or horizontal game. It can also check what the output resolution is and adjust its behavior.
All of these checks are trivial and have to be done only per vertex, not per pixel. So these checks have to be done only once per frame. Well, technically four or six times, because the screen has four or six vertices.
-
@rsn8887 we are on the same page with the checks. You can probably find the discussion thread back when davej released the crt-pi shaders. This idea came up back then, and he explained how doing detection would affect performance.
-
@rsn8887 said in crt-pi shader users - reduce scaling artifacts with these configs in lr-mame2003, lr-fbalpha, lr-nestopia (and more to come):
I understand. I didn't mean that we need extra options or anything done in the front-end. I mean that the vertex shader itself should set those options automatically internally. For example, the vertex shader can do a check if lines>rows to see if it is a vertical or horizontal game. It can also check what the output resolution is and adjust its behavior.
All of these checks are trivial and have to be done only per vertex, not per pixel. So these checks have to be done only once per frame. Well, technically four or six times, because the screen has four or six vertices.
The issue isn't so much with the checks themselves, which are trivial even if done in the fragment shader, but the branching down different code paths based on the results of the checks - which you'd still have even if the fragment shader just tested a flag set in the vertex shader. crt-pi has to do as much of its configuration as compile time checks as possible to avoid those branches.
It's also worth pointing out that for some checks the information available isn't sufficient.. Your horizontal or vertical game check is a case in point.. What happens when a game is displayed on a screen that is in portrait orientation (because someone mainly plays vertical games)? The shadow mask emulation needs to be the opposite of what it is for landscape orientation and that information isn't provided to shaders by the libretro library.
-
@dankcushions Are the cfg files for FB Alpha still based on 0.2.97.39 or the latest 0.2.97.43?
-
no these are still .39. any updates will be announced here, but i’ve no plans for that.
-
Dankcusions, im lost when it comes to linux etc, can you please create some shaders (H & V) for my 1600x1200 display?
-
just to flag that i'm aware that these configs don't work with current retropie/retroarch, due to
aspect_ratio_index=22
no longer being the right setting for the 'custom' aspect ratio than the configs require. this is due to a change at retroarch's end: https://github.com/libretro/RetroArch/commit/8a63ace201233256672241346b2a67a7c0d372f8#commentsi'm currently in discussions regarding this, and will update my script when a resolution (hah!) is reached: https://github.com/libretro/RetroArch/issues/7536
i would also like to support the latest fbalpha version properly, but i think i need @UDb23 for the appropriate resolution-db file ;) i can vaguely remember how to generated the db for mame2003 (via parsing the driver source code) but not fbalpha.
-
@dankcushions they also changed the expected directory for the configs - it’s now MAME 2003 (0.78) , rather than MAME 2003
-
@AndrewH yep! spotted that also. slightly annoying that things like that get changed as it breaks all overrides. i might flag that with them also.
-
@dankcushions said in crt-pi shader users - reduce scaling artifacts with these configs in lr-mame2003, lr-fbalpha, lr-nestopia (and more to come):
appropriate resolution-db file
Concerning ROMS resolution in FBA I used multiple overlays made for mame2003 without any issue. That likely means FBA uses the same resolutions as mame; so no new resolution DB needed.
If you have different evidence just let me know and I'll try to build a FBA dedicated DB. -
@UDb23 i think the issue is that fbalpha has a different romset. it certainly has a bunch of games that mame 0.78 doesn't have, like cps3, and a bunch of unofficial hacks that mame doesn't seem to care about.
-
@dankcushions Right, didn't think of the wider romset.
Just need to find some spare time to and I'll create the FBA rez DB ;-) -
@dankcushions As it seems a new FBA version will come out soon, maybe it makes sense to wait and directly make the DB for that new version specific romset.
-
@UDb23 said in crt-pi shader users - reduce scaling artifacts with these configs in lr-mame2003, lr-fbalpha, lr-nestopia (and more to come):
that new version specific romset.
By that statement, I take it that the FBA ROM set is expected to change again soon?
-
@mediamogul According to FBA's forum development progress posts many additional roms are supported. This includes vector games: it will be interesting to see if quality/performance is better than the recent mame2003 vector resolution enhancement.
Not sure if it just adds new roms or also some roms from previous romset need to be changed. -
@mediamogul said in crt-pi shader users - reduce scaling artifacts with these configs in lr-mame2003, lr-fbalpha, lr-nestopia (and more to come):
By that statement, I take it that the FBA ROM set is expected to change again soon?
It has already changed - https://retropie.org.uk/forum/topic/19741/new-fb-alpha-libretro-pre-v0-2-97-44 . The new repository has already new DAT files added - https://github.com/libretro/fbalpha/commit/4e5aeeeef7730fa4f5b17dae6f8e1b90829c9029.
-
-
@dankcushions @mitu @mediamogul
At this stage to create the resolution DB specific to the DAT, considering that the DAT can&will change over time, I'll probably create some excel VBA that parses the DAT to extract the rom filenames and build the specific DB by scraping progettoemma's screen information for each rom.
When the DAT will change, just re-run the code and it will rebuild the new DB. -
@UDb23 that sounds awesome! thanks so much for your help here <3
-
@dankcushions
Had to make some changes to my previous code. It now runs correctly; here's the generated comma separated resolution file.
Based on current DAT for 2.97.44.Notes:
-
some roms cannot be found on Progettoemma's site; as far as I could checks these are hacks or particular clones.
Concerning clones I started editing the DB manually adding the original game screen info; it will take some time. -
aspect ratio values and frequency are currently dummy figures (let me know if you need the real one's)
Out of 5552 roms from the DAT, over 90% are already included in the resolution DB txt file.
-
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.