Build Your Own Arcade Controls Forum
Software Support => GroovyMAME => Topic started by: Paradroid on May 05, 2019, 09:37:30 pm
-
Please excuse the embarrassingly n00b question but how do people go about getting games with inbuilt black borders (e.g. Metal Slug) to fill the screen without resorting to funky stretching?
Is there a way to make GM calculate a modeline with different dimensions to what MAME reports? E.g. "MAME says game is 320 px wide but please calculate a mode as if it was it 304 px wide and center it within that frame"?
-
You will always have some kind of border unless you stretch it one way or the other.
The neo geos native resolution was 320×224.
-
Long ago Calamity suggested shortening the porch values in your custom CRT range if I recall, but I'd use the hardware way without hesitation. Weren't you the one who even managed to develope external potentiometers for an everyday TV set?
-
Please excuse the embarrassingly n00b question but how do people go about getting games with inbuilt black borders (e.g. Metal Slug) to fill the screen without resorting to funky stretching?
Is there a way to make GM calculate a modeline with different dimensions to what MAME reports? E.g. "MAME says game is 320 px wide but please calculate a mode as if it was it 304 px wide and center it within that frame"?
E.g. you want to force mslug to run at 304x224 by chopping off the borders.
No need to say, you first need to add that mode to Windows (VMMaker). Once you have 304x224 available in your system, run:
mame64 mslug -r 304x224 -noues -intoverscan
That should do the trick.
By defaut, GM will refuse to launch a game in a resolution smaller than the native one. If you force it to do so, that will trigger fractional scaling, in a desperate attempt to push the whole frame through your smaller resolution. To avoid that, you use -noues (-nounevenstretch). Here, in this example, -intoverscan would not really be required, but to clarify the concept, I added it, since it tells GM its ok to crop if required to keep integer scaling.
Place those options in a system specific ini, of course.
-
Useful commandline info there! Thanks Calamity :)
-
Long ago Calamity suggested shortening the porch values in your custom CRT range if I recall, but I'd use the hardware way without hesitation. Weren't you the one who even managed to develope external potentiometers for an everyday TV set?
Hehe... yeah, that was me. :)
However, most 20 inch TVs don't have a width control. Plus, I'm big into cabinets now and the players don't want to know about adjusting things on a per-game basis. I just want it to load up and be ready to rock.
That should do the trick.
That is really neat, Calamity, but surely you knew I was going to come back and say "I don't want to have to create separate modelines, I want to use super resolutions and have GM take care of the clipping on-the-fly".
How hard would it be to add something like clip_x and clip_y settings that take the MAME-reported resolution, applies the clipping and then passes the new dimensions off to the modeline engine to calculate requirements as it does?
A while back I did create a script that took that read the monitor specs in mame.ini and applied a percentage multiplier to the horizontal porches (per-game) and saved to individual .inis.
The problem was that it was trial and error (percentage increase/decrease on timing values, not actual calculating the timing difference according to pixel value requirements... my modeline math wasn't good enough for that!)
-
Well, if you're using super resolutions, things are quite simple. Since you're already stretching horizontally, just change the slider from the default value of 1.0 to 1.052 and you're done. The sliders are saved so you only need to do it once.
I don't know if this accounts for funky stretching but it definitely works.
-
Sliders inside mame are using integer scalling before passing picture to OSD so the result is really nasty line doubling. That's why I using some patches from ARCADE32/64 for neo-geo resolutions. Another option is naturally custom mode.
-
Sliders inside mame are using integer scalling before passing picture to OSD so the result is really nasty line doubling. That's why I using some patches from ARCADE32/64 for neo-geo resolutions. Another option is naturally custom mode.
This is not true. I tested it myself before posting my answer above, and it was working nicely. The key here is the special scaling method used by super resolutions (-unevenstretchx).
-
I believe the haynor666 patch removes neo geo garbage.
-
I believe the haynor666 patch removes neo geo garbage.
Sure, but the point of my answer was that his negative comment to my method is false.
-
The key here is the special scaling method used by super resolutions (-unevenstretchx).
Very interesting... assume there is a post somewhere explaining how this works behind the scenes?
-
Very interesting... assume there is a post somewhere explaining how this works behind the scenes?
This one (http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1235#p1235), I guess.
-
I believe the haynor666 patch removes neo geo garbage.
Sure, but the point of my answer was that his negative comment to my method is false.
I'll try this when I put my hardware back to working state. Perhaps it's not too visible with super resolutions but when I used this method with standard resolutions it was tragic. If this will ok it still can be applied on horizontal as for vertical (ie. 224 to 288) it will be visible just like I see it right now on LCD.
Originally neo-geo patch was to remove garbage/color bars on sides using LCD monitor as mentioned. But I've found this usefull also on CRT when I used standard resolutions. Back then using sliders with 320x240 clearly produced nasty double lines just like on LCD. I never used this method with super resolutions.
-
I use the horizontal slider to stretch the picture for these games and there are no visual artefacts or anything else that could let you know that the image has been stretched.
-
Well, if you're using super resolutions, things are quite simple. Since you're already stretching horizontally, just change the slider from the default value of 1.0 to 1.052 and you're done. The sliders are saved so you only need to do it once.
I don't know if this accounts for funky stretching but it definitely works.
This is indeed a neat solution and really easy to implement. Thanks
Is there a way or another to set up this slider for all neo geo games using a neogeo.ini?
Any help on this is more than welcomed, otherwise it shall be amended for all MVS games a time consuming job but possible.
-
modeline could be put in source\neogeo.ini I think but sliders are stored in .cfg files which are per game as I remember.
-
That is indeed true.
I thought it would be a "secret" parameter to call the slider setting directly like the bios selection for example:
#
# CORE MISC OPTIONS
#
bios 0
where the bios are numbered as followed:
0 Europe MVS (Ver. 2) (default bios)
1 Europe MVS (Ver. 1)
2 Asia NEO-MVH MV1C
3 Asia MV1B
4 US MVS (Ver. 2?)
5 US MVS (Ver. 1)
6 US MVS (4 slot, Ver 2)
7 US MVS (U4)
8 US MVS (U3)
9 Japan MVS (Ver. 3)
10 Japan MVS (Ver. 2)
11 Japan MVS (Ver. 1)
12 Japan MV1B
13 Japan MVS (J3, alt)
14 Japan NEO-MVH MV1C
15 Custom Japanese Hotel
16 Universe Bios (Hack, Ver. 3.3)
17 Universe Bios (Hack, Ver. 3.2)
18 Universe Bios (Hack, Ver. 3.1)
19 Universe BIOS (Hack, Ver. 3.0)
20 Universe BIOS (Hack, Ver. 2.3)
21 Universe BIOS (Hack, Ver. 2.3, older?)
22 Universe BIOS (Hack, Ver. 2.2)
23 Universe BIOS (Hack, Ver. 2.1)
-
Would it be possible that someone would be so kind to supply a neogeo.ini sample file on how it should look?
Edit:
Figured it out
resolution 304x224
unevenstretch 0
intoverscan 1