Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up --- Bug Reports --- Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: How to specify monitor height  (Read 1382 times)

0 Members and 1 Guest are viewing this topic.

wpcmame

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 278
  • Last login:January 07, 2018, 02:29:27 pm
How to specify monitor height
« on: January 22, 2017, 09:07:09 am »
I use regular MAME in my cabinet and it works fine but thinking about trying GroovyMAME and see if there are any benefits for me.

I have tried to look in the documentation but can't find how I specify my monitors vertical size so GroovyMame can get correct aspect ratio.

My monitor only got analog adjustments so I need to set up the number of visible lines once for all games (e.g. 240 lines).
If I then play a 224 line game it will have a black border top and bottom. To give the game correct aspect ratio I need similar borders left and right. In regular mame I do this by using integer stretch and forcing a mode with more horizontal pixels than the game has.

16 lines is only 7% border so it doesn't matter much but now I have my monitor adjusted to 288 visible lines to improve vertical games. A 224 line game will now have 20% borders top/bottom and will look really strange if stretched to full horizontal width.

How does GroovyMame know 224 line games need 20% borders left/right on my system to get correct aspect ratio?

buttersoft

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1000
  • Last login:Today at 09:22:20 pm
  • Is running at 15kHz
Re: How to specify monitor height
« Reply #1 on: January 22, 2017, 06:41:58 pm »
I don't think it does. I don't think there's a way to leave left/right borders while stretching - the latter being the point of super resolutions. I might be wrong though.

Hmmm, could you create a mode like 2560x242p, or even 243p, then use ArcadeOSD to adjust the horizontal size of that one mode, and specify that GM pick it? I'm not sure how to force switchres to pick a particular mode. Anyone?

Is this necessary though? My arcade monitors don't really increase size per line. So a 288p mode isn't necessarily 48 lines larger in physical size than a 240p mode. The lines are just closer together. There's some change, but it's not huge. I also find that a super resolution, 2560 wide, has a smaller vertical size than a 320 wide one.


Also, 288 lines for vertical games? That's still pretty awful, isn't it? How many games besides Raiden will fit into that? Do older titles like DK and Pac-Man? The refresh rate would go out the window, wouldn't it?
« Last Edit: January 22, 2017, 06:44:03 pm by buttersoft »

wpcmame

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 278
  • Last login:January 07, 2018, 02:29:27 pm
Re: How to specify monitor height
« Reply #2 on: January 23, 2017, 02:39:06 am »
I don't think it does. I don't think there's a way to leave left/right borders while stretching - the latter being the point of super resolutions. I might be wrong though.

Hmmm, could you create a mode like 2560x242p, or even 243p, then use ArcadeOSD to adjust the horizontal size of that one mode, and specify that GM pick it? I'm not sure how to force switchres to pick a particular mode. Anyone?
Specifying a monitor resolution per game size is what I do today so GM does not add anything in that area then.
With my current solution I display artwork in the left/right borders.

Quote
Is this necessary though? My arcade monitors don't really increase size per line. So a 288p mode isn't necessarily 48 lines larger in physical size than a 240p mode. The lines are just closer together.
On my monitor, Hantarex POLO, I can't change line size depending on resolution or frequency. The lines are always the same distance apart (adjustable only with a portentiometer inside the cabinet).

Quote
Also, 288 lines for vertical games? That's still pretty awful, isn't it? How many games besides Raiden will fit into that? Do older titles like DK and Pac-Man? The refresh rate would go out the window, wouldn't it?

Yes most older vertical games I play is 256-288 horizontal (which becomes vertical) and I actually play them in interlace with 576 lines so they look very nice (currently experimenting with software generated vertical scanlines). Refreshrate is wrong of course but in most of these games only sprites move so tearing is not a big issue (except horizontal scrollers like scramble of course)

krick

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2008
  • Last login:May 15, 2020, 10:38:56 am
  • Gotta have blue hair.
Re: How to specify monitor height
« Reply #3 on: January 23, 2017, 02:13:41 pm »
You can wire up a remote potentiometer so that you can adjust the height from the front.  This is pretty common.

Though, I normally leave my monitor height adjusted so that vertical games like Pac-Man just barely fit on the screen.

This results in some letterboxing on horizontal games, but I don't mind.




Hantarex Polo 15KHz
Sapphire Radeon HD 7750 2GB (GCN)
GroovyMAME 0.197.017h_d3d9ex
CRT Emudriver & CRT Tools 2.0 beta 13 (Crimson 16.2.1 for GCN cards)
Windows 7 Home Premium 64-bit
Intel Core i7-4790K @ 4.8GHz
ASUS Z87M-PLUS Motherboard

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 6893
  • Last login:Today at 02:17:36 pm
  • Quote me with care
Re: How to specify monitor height
« Reply #4 on: January 23, 2017, 02:44:17 pm »
I have tried to look in the documentation but can't find how I specify my monitors vertical size so GroovyMame can get correct aspect ratio.

It doesn't work like that in GM. GM attempts to reproduce the output of a PCB, assuming that aspect correction is done by the user (the arcade operator).

In the crt_range definition, there's a value named "progressive lines min". By default, it's set to 192 for arcade presets. The meaning of this value is the minimum number of lines that the user is willing to tolerate as correct aspect (4:3), that is to say, the user will adjust the monitor's v-size pot to fit the screen. Below this value, GM will calculate a new "high" 4:3 resolution and use fractional stretching.

The only way you can add artificial borders is lying GM about your monitor's real aspect ratio. E.g., if you use the option -aspect 16:9, GM will try to correct aspect ratio by adding borders on each side, even if that means picking a wider resolution which provides those borders naturally. Unfortunately you'd need different aspect ratio values for different heights and there's no way to do that.

The other possible approach, that would allow different border sizes per height, is to divide your crt_range into several subranges per height (224-240, 240-248, etc.), then use different horizontal porch value for each range, producing different border sizes. This will work fine, but the catch is you won't be able to use the borders for artwork or anything because they're "hardware" borders (blanking).

So as you see there are solutions following GM's logic, but they're not simple because GM not designed with that in mind.
Important note: posts reporting GM issues without a log will be IGNORED.
Steps to create a log:
 - From command line, run: groovymame.exe -v romname >romname.txt
 - Attach resulting romname.txt file to your post, instead or pasting it.

CRT Emudriver, VMMaker & Arcade OSD downloads, documentation and discussion:  Eiusdemmodi

wpcmame

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 278
  • Last login:January 07, 2018, 02:29:27 pm
Re: How to specify monitor height
« Reply #5 on: January 25, 2017, 03:31:32 am »
Thanks. Seems to be aprox the same amount of manual work as I have today so I keep my current solution which is
1. I have some refreshrate groups (might be 3 or 4, don't remember)
    59-61Hz => 240 lines + integer scaling + syncrefresh
    56-58Hz => 256 lines + integer scaling + syncrefresh
    vertical/vector/25KHz etc => 288/576i lines without syncrefresh (scaling/filter depending on game)

2. For each group I have different horizontal resolutions for different pixel aspect ratios.
1:1 pixels is 384 horizontal on my monitor so I added some versions around this ~5% apart (and multiplied to get higher pixel clock)

(e.g. gauntlet is 336x240@60Hz => pixel aspect 20:21 (384*21/20) => 403x240 => 808x240 (or something close))

With this I get both refreshrate and aspect ratio within a per cent or two for most games with 15-20 fixed resolutions.
I then use resolution based ini-files, e.g. 336x240H.ini to map the games (https://github.com/mamedev/mame/pull/1982).

If I play a new game with an odd resolution I only need to create a widthXheightH.ini to map it to the correct resolution. Don't remember when I last needed a new screen resolution.