You know, I’ve been playing with MAME’s glsl stuff for a few years now and I never knew that:
(a) There was a document that actually described how it was supposed to work.
(b) That SCREEN-BMP shaders existed.
So I feel pretty dumb!
But now I managed to split the Lottes shader into two passes. I haven’t added/fixed the linear/srgb stuff yet. And I’m probably calculating texture coordinates improperly. But at least the horizontal scaling pass and vertical scaling/scanline pass are working. I don’t know about speed, but I’ll test that once I fix it up a little more.
Then I can write a shadow mask pass, and a curvature/rounded corner pass. At which point I’ll be able to modularly swap out any part I don’t like without messing up the rest! If it doesn’t slow everything to a crawl to have several more passes it should be pretty cool.
So thanks for those links.
BTW, I couldn’t really get the SCREEN-BMP passes working right until I scrapped what I had and started with the ones from the MAME docs (the ones below). I’m not sure what I was doing wrong, but once I had these working (I downloaded them from here: https://github.com/villavic/mamethings/find/master) I was able to make progress.
sdlmame -gl_glsl \
-glsl_shader_mame0 /shader/glsl_plain \
-glsl_shader_mame1 /shader/custom/glsl_add_mamebm_bilinear \
-glsl_shader_screen0 /shader/custom/glsl_add_screenbm_hscanlines \
-glsl_shader_screen1 /shader/custom/glsl_add_screenbm_vscanlines \
puckman
[QUOTE=u-man;25310]Hey hello SoltanGris42
,
nice to see you here. Yeah about bannister.org, i didnt realize or read the “important” note
, i thought it was the usual yala yala, bla bla forum-stuff
. Now, everything is fine and i got registered.
I am after modular concepts too, but guess what, the only chain-shader i got, is the NTSC one
. Thats what I like the most with Retroarch… that you can mix shaders, how you like.
Funny thing about the NTSC shader is, it runs only in a chain-version pretty good, as a standalone shader i get a huge performance-drop, dont know what is wrong, but thats what i experienced with the standalone version.
I still hope that we have overseen some things, regarding the multiple passes. Sadly docs on this are very rare. Like i said, the only thing i found useful was this: http://git.redump.net/mess/plain/src/osd/sdl/shader/docs/PluggableShader.txt
If i understand that correctly, the SCREEN-BMP Shader, would pass the results in a correct size, but i am not sure. Or better said, the MAME-BMP Shader would be the internal game resolution and the SCREEN-BMP Shader would be the user screen resolution.
I really would like to know more, as i am a noob, but have enough interest to find out more. The thing i mostly hate, is the .vsh and .fsh stuff with MAME. In a conversion process, I often dont know what belongs where.
Looking at this for example: https://gitlab.com/higan/xml-shaders/blob/master/shaders/OpenGL/v1.2/CRT-interlaced-halation.shader … you see that the whole thing is just one file and if you try to convert this, i often end with the problem, that i dont know, what goes to .vsh and what goes to .fsh
. I know it is a learning process, but this is really the hard way
.
This link: https://bugs.freedesktop.org/attachment.cgi?id=41595 shows me at least, how some OpenGL stuff is converted into MAME shader language.
MAME’s “rgb effect” overlay thingies can be nice, but I prefer procedural textures too. They often look better and comparing to HLSL (current state) that use .png files too for shadowmasks, they are superior and gives less headaches. Usually you need high prescale factors (at least 6), to achieve similar, but somehow still weaker results. They where the biggest problems for Jezze as he wrote the big overhaul for HLSL. Beta-testing was a pain and we also had a problem, that results could differ from different setups, because alignment was not always the same on every machine.
However I am really very happy to see you here and maybe we will bring more light into MAME GLSL mysteries
. I like how helpful Hunter K. is here and i really appreciate the forum.[/QUOTE]