Hi, thanks for your patches and improvements in Genres, I wanted to ask if this genre to implement real arcade monitors as HANTAREX or otherwise you're just applying it to the Wells Gardner, which would be an optimum configuration for Hantarex?
With regard to the diff, you could explain more what they actually do? I have understood the implemented improvements cabmame.diff cleanstretch emuspeed resolution (resolved or additions would be problems in sdlmame Syncrefresh and waitvsync?).
With nativeres.diff would leave only select their original resolution?
Parameters that would need the mame.ini with new patches?
Thanks.
It should work for any monitor/TV, since it's using lrmc it should be able to either use -cga for arcade monitors or even any custom set of Horizontal/Vertical frequencies using an lrmc.conf file. I of course have only tested on the d9800, but suspect it should work for anything that lrmc supports, which seems to be any lowres monitor or PAL/NTSC TV. You basically just have to give it a command like this for an actual arcade monitor...
./create_xorg.sh -cga
and add -ff if using the frogger/galaxian included patches. If there are limits on max resolution sizes, alter those with the command line args and any other lrmc args needed to create a good modeline for the monitor. I would be interested in any additional args needed, then I could add those as defaults for different monitor types, like the maximum height/width most likely since I have it at 800x600 for the d9800 as the default.
The nativeres is a patch from the qmc2 project and just basically uses the games native resolution settings instead of changing it in mame, really I don't see it doing too much actually to be honest so can have nativeres at the default of 0 to be safe. I also made the nativeres setting work when the changeres option is used, I think that makes it to where it keeps the games original resolution inside the forced resolution from the .ini file but not 100% sure on that, it seems act fine that way and maybe a few pixels/lines nicer on the edges with that from what I can tell. The other patch just applies to a source tree that has the nativeres patch already applied. Really the main bonus I've seen of the patches so far is that the frogger/galaxian games fixes, which do seem to rely some on the cleanstretch patch although it seems like just an opposite of the unevenstretch option already in sdlmame but a different take on how to do it I think. I've just started exploring the CabMame patches and ported the ones to Linux that seem doable, the sound frequency one seems possibly hard because SDL sound doesn't allow frequency changing on the fly easily like the Windows API seems to. Seems like the patches run fine still with waitvsync either on/off, the options below are the additional options they enable...
nativeres 1/0 (0 by default)
cleanstretch 1/0 (1 by default)
I also think I fixed a possible bug in the cleanstretch patch working with the frogger/galaxian patch properly, at least when cleanstretch is turned off it seems that the frogger/galaxian fix wasn't also done in that case while now it will work with cleanstretch off as well. There is an oddity I see with the frogger/galaxian patch though when using software video instead of opengl for some reason the frogger/galaxian resolution games don't get put in the window centered (they are way down below so basically just a black screen). That's one issue I don't fully understand, that opengl is required for that fix, also similar to an issue that happens in mame without patches in SDL where if the artwork is present but turned off the games are offset by the bezel sizes using software video while in opengl it properly centers then correctly even with the artwork present but settings turning it off. I get the feeling somehow software rendering in SDL mame doesn't do something that opengl is doing to setup the screen to the actual game dimensions once artwork or the galaxian vertical size adjustment is done. Would be interesting to see if others really see this same issue as me or it's just something I'm doing wrong locally on my setup.
Also it's important to set the following mame options in the mame.ini to these, to avoid any stretching in SDL mame.
video opengl # prefered for reasons explained above
filter 0 # off to prevent opengl softening
gl_glsl_filter 0 # Assume filtering is bad, guessing this is not necessary
waitvsync 1 # sounds good, works fine with patches, not sure if really necessary
window 0
maximize 0
keepaspect 0 # this is setup only for a few games in the .ini files which resolutions don't match the aspect ratio
unevenstretch 0 # same as above, used together
cleanstretch 0 # Actually surprisingly I have this off for now, not fully tested. It DOES NOT work well with unevenstretch enabled. Seem like opposite options.
# Off for an arcade setup, oddly in soft mode even if off and I have the artwork directory, game is offset size of artwork from top. Same as with frogger patch, since it reduces the vertical size I guess.
artwork_crop 0
use_backdrops 0
use_overlays 0
use_bezels 0
Hopefully that helps clear up some things of how to set the options to work the best and the patches, similar to what the ArcadeVGA card setup instructions are in Windows yet somewhat different for SDL. I still don't get why they ask you to use unevenstretch and keepaspect as defaults (which makes pacman look terrible, at least in SDL). Or why the current Windows based .ini file generators used choose some of the resolutions they do, which is why I created this genres method plus getting those modelines in Linux and knowing they all would work was proving to be way too tricky. Usually they say go through and tweak them by hand, but I've really worked to make this able to not require that and automated all of the tweaking by hand since most of the time there's some algorithm there you can put into code for all the games following the same logic.
Edit: I think I'm going to remove the cabmame.diff and just include a Linux SDL version of the frogger.diff fix from cabmame. This seems like the only real important patch necessary to work with lrmc like this and get those games like frogger/galaxian to natively display correctly on arcade monitors. Doing some testing, next version will include just the frogger patch and nativeres one although it is only optional since I don't even know for sure yet if it does much of anything :/.