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 Try the site in https mode Site News

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

  

Author Topic: GroovyMAME/GroovyUME 0.149 SwitchRes v0.014b  (Read 110793 times)

0 Members and 1 Guest are viewing this topic.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
GroovyMAME/GroovyUME 0.149 SwitchRes v0.014b
« on: November 25, 2012, 07:41:38 pm »
GroovyMAME/GroovyUME 0.149 SwitchRes v0.014b

After three months of coding and testing, GroovyMAME is back with SwitchRes Patch version 0.014, which we hope will be a big step forward in terms of functionality, based on the feedback of hundreds of users. Most of the code has been rewritten for this version, in an effort to build a cross-platform stable model which can eventually receive a proper documentation.

GroovyMAME is a custom M.A.M.E. build mainly aimed at CRT monitors, as we are convinced CRT technology is a must when it comes to enjoying emulation in its full glory. However you can use GroovyMAME to alliviate some of the annoyances associated to emulation on LCD displays, specially for those models which are capable of refreshing at custom rates.

GroovyMAME's main features as compared to official MAME:

- Improved video and audio synchronization that achieves truly smooth scrolling, tearing-free video and hiccup-free sound.

- Automatic generation of custom video timings for CRT monitors.

While the improved synchronization feature is system independent, you are going to need a special hardware and software setup in order to get the full potential out of GroovyMAME.

As for the hardware part, do yourself a favour and grab an old ATI Radeon card, any model from Radeon 7000 to the HD 4xxx family should work, both AGP and PCIe models. As far as we know, there is nothing that can remotely compare to these cards in terms of flexibility.

On the software side of things, you need to be aware that operating systems are not designed to deal with hundreds of video modes as we are going to need here, so some degree of hacking is required. You can use one of these two options:

- GroovyArcade Linux. This is currently the best OS to run GroovyMAME.
                   GroovyArcade download site

- Windows XP-32/64-bit + a hacked version of ATI Catalyst named CRT_EmuDriver.
                   CRT_Emudriver's download site (in Spanish. ftp courtesy of Abubu)
                   Download mirror (courtesy of Krick)

Either one of these operating systems combined with one supported ATI card is the preferred environment to run GroovyMAME in. However, since SwitchRes v0.014, GroovyMAME can also generate custom timings under Windows for virtually any card supported by PowerStrip, by making use of its API. In theory, this should work for Windows 7 too. Anyway, keep in mind that this method is way more limited and unreliable than the standard one.

There are many changes and things that will need a detailed explanation, so I will keep updating this during the following weeks.

GroovyMAME can get all your resolutions to almost fit perfectly on the HORIZONTAL, once you find your custom specs. No software can control the VERTICAL size of a resolution on a CRT monitor, you need to adjust it physically (potentiometers, service menu, etc.).

Download GroovyMAME/GroovyUME

         GroovyMAME download site

What's new in SwitchRes v0.014b

- First version with native Windows 7 support, getting things ready for the advent of CRT Emudriver for Windows 7.
- Workaround for progressive/interlaced mode switching in Windows 7 and DirectDraw.
- Changed DirectDraw to use flipping surfaces with -waitvsync too, to allow bilinear filtering in Windows 7. Also fixes the problem of -waitvsync resulting in double speed in Windows 7. However, it may cause tearing on LCD displays when using DirectDraw, so make sure to use Direct3D with LCD monitors.
- Fixed crash on exit for 32-bit builds on Windows 7.

What's new in SwitchRes v0.014a

- Fixed bug that made some games appear mirrored or upside-down.
- Fixed incorrect monitor presets: ms2930, k7000
- Added two new settings for the -orientation option: rotate_r, rotate_l. Use either one of those in case you have a vertically mounted monitor so to specify its correct rotation direction.
- Improved filtering of system resolutions to avoid triplicated enumeration in some systems.
- Now the GroovyMAME version is prompted after the main version so we no longer create conflicts with frontends which grab the version of MAME from the credits text.

What's new in SwitchRes v0.014

- Fully rewritten modeline engine. Redesigned algorithm for resolution picking, now each resolution reported by the system is evaluated individually according to your monitor specs.

- Full PowerStrip integration, so at least in theory many more cards are now supported (i.e NVidia).

- Support for VESA generalized timing formula (GTF), this is to provide quick support for multisync PC CRT monitors (not for the ancient fixed-frequency ones!). Use the monitor presets labeled as "vesa".

- New monitor presets added. Check the most suitable for you:

Code: [Select]
custom Define your own custom by means of -crt_range lines
pal PAL TV - 50 Hz/625
ntsc NTSC TV - 60 Hz/525
generic_15 Generic 15.7 kHz
arcade_15 Arcade 15.7 kHz - standard resolution
arcade_15ex Arcade 15.7-16.5 kHz - extended resolution
arcade_25 Arcade 25.0 kHz - medium resolution
arcade_31 Arcade 31.5 kHz - high resolution
arcade_15_25 Arcade 15.7/25.0 kHz - dual-sync
arcade_15_25_31 Arcade 15.7/25.0/31.5 kHz - tri-sync
m2929 Makvision 2929D
d9200 Wells Gardner D9200
d9400 Wells Gardner D9400
d9800 Wells Gardner D9800
k7000 Wells Gardner K7000
k7131 Wells Gardner 25K7131
m3129 Wei-Ya M3129
h9110 Hantarex MTC 9110
polo Hantarex Polo
pstar Hantarex Polostar 25
ms2930 Nanao MS-2930, MS-2931
ms929 Nanao MS9-29
vesa_480 VESA GTF
vesa_600 VESA GTF
vesa_768 VESA GTF
vesa_1024 VESA GTF

Note: labels are no longer case sensitive

- New format for defining custom monitor specs, now the -crt_range0-9 options are used. This is the most important change in this version from the user's point of view, as the existing custom definitions will need to be modified. Not big deal however, but make sure you understand how this works as it will guarantee your success with GroovyMAME. The usual timing values remain the same, but the line limiters are replaced by four values: ProgressiveLinesMin, ProgressiveLinesMax, InterlacedLinesMin, InterlacedLinesMax. These are used to easily define the upper and lower limits of the total logical resolutions GroovyMAME should allow, both for the progressive and the interlaced range. You may leave either one of the two ranges set as zero in case you do not want progressive or interlaced modes to be generated. So the current format is as follows:

Code: [Select]
-crt_range 0-9 HfreqMin-HfreqMax, VfreqMin-VfreqMax, HFrontPorch, HSyncPulse, HBackPorch, VfrontPorch, VSyncPulse, VBackPorch, HSyncPol, VSyncPol, ProgressiveLinesMin, ProgressiveLinesMax, InterlacedLinesMin, InterlacedLinesMax
- Automatic LCD timings generation. This is useful in combination with PowerStrip. Your current timings will be read from PowerStrip and used to recalculate modelines from them. You just need to define the range for the vertical refresh your monitor supports:

Code: [Select]
-lcd_range VfreqMin-VfreqMax
- Improved rotation detection, now you can rotate the screen from the internal UI and the video mode will be recalculated properly.

- New priority system for option setting. GroovyMAME will set most of its required options automatically (-syncrefresh, -triplebuffer, -resolution, etc.), overriding the values in mame.ini. However, any other ini you create (rom, driver, orientation, etc.), as well as command line settings, will have higher priority than GroovyMAME's option setting, so you can always force something different if you feel GroovyMAME is not doing things right.

- Resolution forcing. As opposite to previous versions, now you can force the resolution that GroovyMAME picks. GroovyMAME will do its best to acommodate the game's resolution into the one you suggest.

- SwithRes video mode is shown in the Game Information screen. You're gonna love this.

- Automatic syncrefresh/triplebuffer selection. If you leave both options disabled in mame.ini, GroovyMAME will decide which one to use automatically. If the target refresh is achieved, GroovyMAME will select -syncrefresh. On the other hand, if we cannot achieve the desired refresh, due to monitor limitations, triplebuffer is used instead, so that speed is kept at 100% rennouncing to smooth scrolling. You can control how off the obtained refresh must be in order to trigger triplebuffering, by means of the new option -sync_refresh_tolerance. The default value is 2 Hz.

- Frequency scaling. Now GroovyMAME can use a multiple of the target vertical refresh if allowed by the monitor. This can be used in combination with PC CRT monitors which allow frequencies of 120 Hz, in order to achieve low resolution modes with true hardware scanlines. You need to create a custom crt_range for this. By now, -triplebuffer is used automatically for this mode. However, in order to achieve perfect scrolling you will need to use -syncrefresh in combination with -frame_delay 5, provided your system can deal with it.

- Interlace/doublescan modes can now be effectively disabled by means of their respective options. Be aware that SwitchRes does not support doublescan modes in Windows.

- Positive/negative sync polarity support under Windows.

- New option -lock_system_modes for mode filtering. In order to limit the possibility of selecting a potentially dangerous mode, the new option -lock_system_modes will prevent any mode not created by us from being picked. This will enforce GroovyMAME to use custom modes previously generated by CRT_EmuDriver. For non-ATI cards this option will block all modes actually since none of them is recognized as custom. This is the case of NVidia cards in combination with PowerStrip, or the ArcadeVGA 3000, where its custom modes are actually reported by the system as standard modes. So for these cases you should disable this option.

- New option -lock_unsupported_modes. You should only disable this option if you are possitive your system, based on your monitor's EDID, is filtering some modes that you actually created. Otherwise leave it enabled. This option only has effect in combination with -video ddraw.

- New option -refresh_dont_care. The new algorithm will filter resolutions that are out of your monitor specs. Old versions of the ArcadeVGA, as well as the Soft-15kHz program, label all resolutions as 60 Hz. This means that if this value were to be taken seriously, resolutions above 240 lines would be out of range for most arcade monitors. This option is provided in order to cope with this peculiarity, and it basically tells the algorithm to ignore refresh for range checking.

- New option -frame_delay. Delays the start of the emulation of each frame by an amount of time defined in tenths of the frame period length (0-9), in order to give a chance to the emulator to have the most possible updated input for that frame, as an attempt to minimize input lag. A value of 0 corresponds to standard behaviour. This option is experimental, and is known to produce tearing in LCD screens.

Code: [Select]
#
# CORE SWITCHRES OPTIONS
#
-modeline                Generate modelines for arcade monitors
-monitor                 Monitor type, e.g.: generic_15, arcade_15, lcd, custom, etc.
-orientation             Monitor orientation (horizontal|vertical|rotate)
-connector               [Linux] video card output (VGA-0|VGA-1|DVI-0|DVI-1)
-interlace               Enable interlaced scanning when necessary
-doublescan              Enable double scanning when necessary (unsupported under Windows)
-cleanstretch            Force integer scaling, 0 means automatic selection
-changeres               Enable dynamic in-game video mode switching
-powerstrip              Use Powerstrip API for dynamic setting of custom video timings
-lock_system_modes       Lock system (non-custom) video modes, only use modes created by us
-lock_unsupported_modes  Lock video modes reported as unsupported by your monitor's EDID
-refresh_dont_care       Ignore video mode's refresh reported by OS when checking ranges
-dotclock_min            Lowest pixel clock supported by video card, in MHz, default is 0
-sync_refresh_tolerance  Maximum refresh difference, in Hz, allowed in order to synchronize
-frame_delay             Delays the start of each frame to minimize input lag (0-9)
-lcd_range               Add custom LCD range, VfreqMin-VfreqMax, in Hz, e.g.: 55.50-61.00
-crt_range0              Add custom CRT range, see documentation for details.
-crt_range1              Add custom CRT range
-crt_range2              Add custom CRT range
-crt_range3              Add custom CRT range
-crt_range4              Add custom CRT range
-crt_range5              Add custom CRT range
-crt_range6              Add custom CRT range
-crt_range7              Add custom CRT range
-crt_range8              Add custom CRT range
-crt_range9              Add custom CRT range

Compiling notes (v0.149)

Apply patches in this order:

1) hi_149.txt (http://mamestuff.lowtrucks.net/MKChamp/)
2) 0149_groovymame_014b.diff (GroovyArcade's site)
« Last Edit: June 18, 2013, 07:31:28 pm by Calamity »
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 of pasting it.

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

Paradroid

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 687
  • Last login:March 10, 2024, 04:41:43 am
    • SCART Hunter
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #1 on: November 26, 2012, 12:13:30 am »
Amazing! :o

I'm itching to try this! :))
My MAME/SCART/CRT blog: SCART Hunter

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #2 on: November 26, 2012, 08:15:35 am »
Amazing! :o

I'm itching to try this! :))

For those of you willing to try the new version, some important notes:

- Make sure to create a fresh mame.ini (most options have changed so this is required!!)
- Make sure to regenerate your video modes with VMMaker in the first place, this is specially important if you've been using magic resolutions with previous versions of GM, as some junk modelines be have been stored as a result of GM unproperly exiting that will fool the new version.
- Make sure to update your own custom -monitor_specs lines to the new -crt_range format, notice that even the name of the option is different in order to avoid confusions.



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 of pasting it.

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

Ansa89

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 377
  • Last login:December 09, 2016, 10:40:11 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #3 on: November 26, 2012, 09:58:04 am »
!! A W E S O M E !!

Thanks Calamity.
Earth could be the hell of another world

bitbytebit

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 896
  • Last login:August 02, 2019, 11:07:16 am
    • The Groovy Organization
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #4 on: November 26, 2012, 10:37:35 am »
This looks amazing, I'm now itching to get some free time and try this out on my cabinet :) 

Really happy to see this progressing so much, good job guys!!!   

I'll hopefully find free time to play with this some myself, free time for me is rare but for the amount this has progressed I am rather excited about finding some time to try it out!
SwitchRes / GroovyMame - http://arcade.groovy.org
Modeline Generator and Mame Wrapper for Windows or Linux
LiveCD of Groovy Arcade Linux for Arcade Monitors
GroovyMame - generate arcade resolutions like advancemame
--
The Groovy Organization

Dr.Venom

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 270
  • Last login:May 08, 2018, 05:06:54 am
  • I want to build my own arcade controls!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #5 on: November 26, 2012, 11:42:26 am »
Superb release, thank you very much!! It's working wonderfully well on my setup, smooth scrolling and the input response is great!  :applaud:   :cheers:

While doing some first tests with the new frame_delay feature, I also found something interesting that fixes the issue with the <240 line modes running way too fast on my setup (win7+soft15khz), as we spoke about some time ago (see: http://forum.arcadecontrols.com/index.php/topic,120331.msg1313434.html#msg1313434). That speed issue for those specific screenmodes is completely fixed now when I set the frame_delay parameter to 1 (or higher)!

I have attached more detailed logs in case you are interested. The test was done with the "genesis.ini" settings, -only- changing the "frame_delay" from 0 to 1 in the two testcases. At a setting of frame_delay=0 the speed is much too high (179%), just as we discussed about in the other thread, but with the setting of frame_delay=1 the issue is completely fixed and everything is running smoothly at the correct speed.

Not sure what's causing it to run too fast for those specific screenmodes with the frame_delay at 0, but I'm a happy man now, because I guess I would and will run most emulation with a frame_delay setting of 1 or higher already by default..

Thanks again for the improvements, now I'm off playing some games :)

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #6 on: November 26, 2012, 01:46:51 pm »
@Krick,

I think the issues related to vector games are solved, I used the list you provided for testing, anyway let me know if you still experience any problem. I considered to add your options for vector games, but I found that the default look of vectors varies depending on the api used (ddraw/d3d/sdl) so I thought I'd better leave the user decide.
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 of pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #7 on: November 26, 2012, 01:51:05 pm »
This looks amazing, I'm now itching to get some free time and try this out on my cabinet :) 

Really happy to see this progressing so much, good job guys!!!   

I'll hopefully find free time to play with this some myself, free time for me is rare but for the amount this has progressed I am rather excited about finding some time to try it out!

Hi Chris, I'm glad to see you back here!!!! I'm so grateful to you for all I have learned thanks to your code. I hope everything is fine for you!!
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 of pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #8 on: November 26, 2012, 01:55:44 pm »
While doing some first tests with the new frame_delay feature, I also found something interesting that fixes the issue with the <240 line modes running way too fast on my setup (win7+soft15khz), as we spoke about some time ago (see: http://forum.arcadecontrols.com/index.php/topic,120331.msg1313434.html#msg1313434). That speed issue for those specific screenmodes is completely fixed now when I set the frame_delay parameter to 1 (or higher)!

Hi Dr.Venom, I'll continue with the discusion we had pending in your thread. Just wanted to add that obviously the highest the value of -frame_delay you use while still getting stable results for a particular game, the better for performance.

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 of pasting it.

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

jvlk

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 29
  • Last login:September 28, 2013, 08:44:24 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #9 on: November 26, 2012, 03:57:31 pm »
Nice, going to check it out.
So in mame ini I just select the ms2930 settings as my monitor and in vmmaker I still  add the timings of the 2931 right?

blontic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 80
  • Last login:December 21, 2020, 08:03:28 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #10 on: November 26, 2012, 05:10:22 pm »
Can't wait to try this. Do I add groovy.exe to a MAME download or a MESS download?

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #11 on: November 26, 2012, 05:41:14 pm »
Can't wait to try this. Do I add groovy.exe to a MAME download or a MESS download?

If you're using GroovyUME then get the MESS download, but for GroovyMAME I usually start with an empty folder.
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 of pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #12 on: November 26, 2012, 05:45:32 pm »
Nice, going to check it out.
So in mame ini I just select the ms2930 settings as my monitor and in vmmaker I still  add the timings of the 2931 right?

This is a general warning: VMMaker is not yet up to date with the new monitor specs format (-crt_range), so for vmmaker.ini use the previous timings that were working for you in order to create the modes and then select the right new settings in mame.ini. Hopefully I can update VMMaker soon, it's my #1 priority now.
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 of pasting it.

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

blontic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 80
  • Last login:December 21, 2020, 08:03:28 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #13 on: November 26, 2012, 05:49:57 pm »
Can't wait to try this. Do I add groovy.exe to a MAME download or a MESS download?

If you're using GroovyUME then get the MESS download, but for GroovyMAME I usually start with an empty folder.

Thanks, I am using GroovyUME.

blontic

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 80
  • Last login:December 21, 2020, 08:03:28 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #14 on: November 26, 2012, 07:39:29 pm »
Hi Calamity, I noticed that when using GroovyUME under the TAB menu it still doesn't give the option to 'Input (This System)' which means I can't have different buttons set for MAME and SNES without doing it for each game. Do you know if there is a work around for this?

Beaps

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 108
  • Last login:July 09, 2020, 10:46:40 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #15 on: November 26, 2012, 07:47:58 pm »
Tate games now work - HAPPY DAYS!!  :applaud:

Thanks! :cheers:

Ansa89

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 377
  • Last login:December 09, 2016, 10:40:11 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #16 on: November 27, 2012, 10:37:00 am »
@Calamity: I think you should have to review the Monitor presets topic, according to the new "crt_range" option.
Earth could be the hell of another world

jvlk

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 29
  • Last login:September 28, 2013, 08:44:24 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #17 on: November 27, 2012, 04:12:18 pm »
I can't get killer instinct or KI2 to work, it even doesn't create a log file!
Screen just blinks and get back to windows, they do work in mameplus 0.147

Edit:Nevermind, got it working needed a fresh Mame install...a copy to my old 0.143 setup caused the problem.
« Last Edit: November 27, 2012, 05:06:33 pm by jvlk »

retrorepair

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 252
  • Last login:April 14, 2023, 04:49:58 pm
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #18 on: November 28, 2012, 01:19:30 pm »
Fantastic work! Looks like there's lots of new stuff to play around with  :applaud:

One question though, is there a way to stop it sounding like a wonkey record when the CPU can't keep up? For instance Tekken Tag does lag a little bit on my system but still perfectly playable, though it now sounds awful whereas before it just skipped a bit now and then.

Is this soundsync doing it's thing? I didn't see an option to disable it.
My arcade racing setup:
My Youtube Channel: http://www.youtube.com/user/RetroRepair
My Twitter: http://twitter.com/retrorepair

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #19 on: November 28, 2012, 01:40:57 pm »
One question though, is there a way to stop it sounding like a wonkey record when the CPU can't keep up? For instance Tekken Tag does lag a little bit on my system but still perfectly playable, though it now sounds awful whereas before it just skipped a bit now and then.

Is this soundsync doing it's thing? I didn't see an option to disable it.

When -syncrefresh is enabled, sound is also tied to that so there's no need for a -soundsync option.  Try forcing -triplebuffer for those problematic games, that will release the sound too.
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 of pasting it.

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

retrorepair

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 252
  • Last login:April 14, 2023, 04:49:58 pm
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #20 on: November 28, 2012, 01:55:34 pm »
Ah yeah that makes sense. Works great  :cheers:

I can't get killer instinct or KI2 to work, it even doesn't create a log file!
Screen just blinks and get back to windows, they do work in mameplus 0.147

Edit:Nevermind, got it working needed a fresh Mame install...a copy to my old 0.143 setup caused the problem.

I had the same problem, the diff file (in the diff folder) was out of date. Deleted it and all was well.
My arcade racing setup:
My Youtube Channel: http://www.youtube.com/user/RetroRepair
My Twitter: http://twitter.com/retrorepair

krick

  • Trade Count: (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2006
  • Last login:February 08, 2023, 08:30:27 pm
  • Gotta have blue hair.
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #21 on: November 29, 2012, 10:47:33 pm »
@Krick,

I think the issues related to vector games are solved, I used the list you provided for testing, anyway let me know if you still experience any problem. I considered to add your options for vector games, but I found that the default look of vectors varies depending on the api used (ddraw/d3d/sdl) so I thought I'd better leave the user decide.

Thanks.  I can't wait to try it out when I get some free time.   I'm sure I speak for everyone here when I say that we appreciate all your hard work.
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

cack01

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 61
  • Last login:January 31, 2023, 11:49:55 pm
  • I'm a llama!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #22 on: November 30, 2012, 01:05:58 am »
Hi Calamity

Great job as usual.

Can you please check my settings for an ArcadeVGA 3000 type setup.  I think I got it right now.  Before I would never have to touch the ini so I am just making sure.

thanks


# CORE SWITCHRES OPTIONS
#
modeline                  0
monitor                   arcade_15
orientation               horizontal
connector                 auto
interlace                 1
doublescan                1
cleanstretch              0
changeres                 1
powerstrip                0
lock_system_modes         0
lock_unsupported_modes    1
refresh_dont_care         0
dotclock_min              0
sync_refresh_tolerance    2.0
frame_delay               0

kourampies

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 61
  • Last login:February 10, 2015, 06:54:55 pm
    • my homepage
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #23 on: November 30, 2012, 05:36:23 am »
I tried to run GroovyMAME 147, and Im having slowdowns on all games, regardless of the actual amount of resources they need.

I created a new mame.ini as instructed, and used the generic 15k preset for testing.

I used the 64bit version available on the google code site.

The CPU is an Athlon XP 64 3200+ or something like that, running 64bit Windows. I know Its not the ideal CPU for MAME, but the same games that now have slowdowns ran perfectly with 146 (both the generic 64 and 32bit versions available on the site, and the one compiled by me with Athlon 64 optimisation flags.)

So is it a resource usage issue, or should I look up into something else?

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #24 on: November 30, 2012, 06:05:27 am »
I tried to run GroovyMAME 147, and Im having slowdowns on all games, regardless of the actual amount of resources they need.

All games? Or just a few of them? Vertical games? Slowdowns can be either CPU related, or refresh rate related (check your monitor settings, generic_15 is very conservative, try arcade_15). Try disabling -syncrefresh from command-line to find the answer, or... go into Game Information and check if the game is running at its native refresh or if it's been reduced to meet your monitor specs,

etc.
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 of pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #25 on: November 30, 2012, 06:08:06 am »
Can you please check my settings for an ArcadeVGA 3000 type setup.  I think I got it right now.  Before I would never have to touch the ini so I am just making sure.

Yes, those would be the right settings for the 3000. If you have the chance, please attach a log here so I can see how the modes are being reported by the system and guess if there's some potential problem (I don't have one here to test that's why I'm asking).
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 of pasting it.

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

Ansa89

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 377
  • Last login:December 09, 2016, 10:40:11 am
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #26 on: November 30, 2012, 10:46:49 am »
According to the new "crt_range" parameter, this old monitor_spec
Code: [Select]
15625-15800,49.50-60.50,2.000,4.700,8.000,0.064,0.160,1.056,0,0,288,576should become
Code: [Select]
15625-15800,49.50-60.50,2.000,4.700,8.000,0.064,0.160,1.056,0,0,192,288,448,576
Is that right?
Earth could be the hell of another world

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #27 on: November 30, 2012, 11:17:24 am »
According to the new "crt_range" parameter, this old monitor_spec
Code: [Select]
15625-15800,49.50-60.50,2.000,4.700,8.000,0.064,0.160,1.056,0,0,288,576should become
Code: [Select]
15625-15800,49.50-60.50,2.000,4.700,8.000,0.064,0.160,1.056,0,0,192,288,448,576
Is that right?

Exact.

With that line, you have:
  • Progressive interval is: 192-288
  • Interlaced interval is: 448-576

If you don't want interlaced modes to be calculated, you can either set -nointerlace option or:

15625-15800,49.50-60.50,2.000,4.700,8.000,0.064,0.160,1.056,0,0,192,288,0,0

You can also lock progressive modes (yes), by doing this:

15625-15800,49.50-60.50,2.000,4.700,8.000,0.064,0.160,1.056,0,0,0,0,448,576

Why would someone want to do that? Well, there are some 100 Hz TVs with built-in de-interlacing that do a good job with interlaced sources, but look like crap with progressive video. I remind one user here having this issue, and at the time there was no straight-forward solution, now this should do the trick while still preserving the native refresh rate.
« Last Edit: November 30, 2012, 11:19:22 am by Calamity »
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 of pasting it.

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

cack01

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 61
  • Last login:January 31, 2023, 11:49:55 pm
  • I'm a llama!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #28 on: November 30, 2012, 10:57:51 pm »

Yes, those would be the right settings for the 3000. If you have the chance, please attach a log here so I can see how the modes are being reported by the system and guess if there's some potential problem (I don't have one here to test that's why I'm asking).

As requested.  See attached.  I am giving you two examples, one that works and one that does not.

Mspacman looks like it is not syncing with the monitor.  It just scrolls a lot.

Dr.Venom

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 270
  • Last login:May 08, 2018, 05:06:54 am
  • I want to build my own arcade controls!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #29 on: December 01, 2012, 03:42:54 am »
Hi Calamity,

One thing I forgot to mention is that this latest version of GroovyMAME makes the QMC2 front-end (http://qmc2.arcadehits.net/wordpress/) to hang during initialization. It's because the front-end looks for the MAME/UME version number in the exe and can't find it in the expected place, because the GroovyMAME Switchres version information is there:

+   mame_printf_info("GroovyMAME - SwitchRes version %s\n", SWITCHRES_VERSION);
    mame_printf_info("%s v%s - %s\n%s\n\n", emulator_info::get_applongname(),build_version,emulator_info::get_fulllongname(),emulator_info::get_copyright_info());
    mame_printf_info("%s\n", emulator_info::get_disclaimer());

I simply changed those around before compiling and then GroovyUME works fine with the front-end. I guess you could consider doing that by default to (possibly) prevent putting off new users..

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #30 on: December 01, 2012, 06:10:37 am »
As requested.  See attached.  I am giving you two examples, one that works and one that does not.

Mspacman looks like it is not syncing with the monitor.  It just scrolls a lot.

Hi cack01, thanks for your logs.

I've noticed several things:

- For some reason you're using the '-monitor vertical' option for mspacman. I guess this is intended, because you are physically rotating your monitor. Otherwise you should leave it as 'horizontal'.

- I didn't notice before that you have the -modeline option disabled. This is not right, the -modeline option should always be enabled even if your modes are not editable (as is the case with Arcade VGA 3000). This is so because the pick-best-mode routine and the modeline generation routine are the same one, so all the logic is bypassed when disabling this option. This logic is responsible of setting the right options afterwards, including the rotation and scaling options.

- So GM believes you're running a Tate setup, but as the -modeline option is disabled, its pick-best-mode routine is being bypassed and MAME's default algorithm is being used instead, which is not aware that you're intending to run tated so its picking the 352x288 resolution. Then the -changeres option notices the screen size is not 288x224 and interprets it as a resolution change, and this creates a fatal loop. So this is a definitely a flaw of the current design, but I think the only sensible way out is add some code that automatically disables the -changeres functionality in case the -modeline option is not used.

- Finally, contrary to my belief, the ArcadeVGA 3000 is reporting some modes with their right refresh (400x256@53) but the rest of them are labeled as 59 Hz, even in cases when this is certainly not true (352x288@59 would be 18 kHz), so definitely the -refresh_dont_care option must be used here too.
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 of pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #31 on: December 01, 2012, 06:18:40 am »
One thing I forgot to mention is that this latest version of GroovyMAME makes the QMC2 front-end (http://qmc2.arcadehits.net/wordpress/) to hang during initialization. It's because the front-end looks for the MAME/UME version number in the exe and can't find it in the expected place, because the GroovyMAME Switchres version information is there:

Thanks for reporting this Dr.Venom. This will need to get fixed on the next update. Anyway, that's too bad about QMC2, that's not an ortodox way of retrieving the version of MAME if you ask me, they should be using the XML information instead.
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 of pasting it.

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

Dr.Venom

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 270
  • Last login:May 08, 2018, 05:06:54 am
  • I want to build my own arcade controls!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #32 on: December 01, 2012, 06:39:47 am »
Thanks for reporting this Dr.Venom. This will need to get fixed on the next update.

My pleasure, and thanks for fixing it with the next update.

Quote
Anyway, that's too bad about QMC2, that's not an ortodox way of retrieving the version of MAME if you ask me, they should be using the XML information instead.

Ah, ok, I didn't know it can also work that way, but that would indeed be a better way for them to extract the information.

cack01

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 61
  • Last login:January 31, 2023, 11:49:55 pm
  • I'm a llama!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #33 on: December 01, 2012, 12:57:19 pm »

Hi cack01, thanks for your logs.

I've noticed several things:

- For some reason you're using the '-monitor vertical' option for mspacman. I guess this is intended, because you are physically rotating your monitor. Otherwise you should leave it as 'horizontal'.

.............................................

Thanks for the help.  Changed modeline and -refresh don't care to "on" and everything looks great. 

No idea on mspacman being set to vertical.  I do not even have an ini for any games setup.  maybe a default option for the driver/game? Works fine after the above changes though.  Actually all my verticle games were having issues until I made your changes.

maxpontello

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 8
  • Last login:July 17, 2014, 12:29:36 pm
  • I want to build my own arcade controls!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #34 on: December 02, 2012, 08:36:27 am »
@Calamity Thank you your great work! I have 2 questions:

1) new monitor preset like arcade_15ex are not recognised in vmmaker.ini, is it normal? Or you plan to release another vmmaker version?

2) it seems that new groovymame does not support -md option to create log file when you run a game. Is there another way?

rCadeGaming

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1256
  • Last login:December 20, 2023, 09:16:09 pm
  • Just call me Rob!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #35 on: December 02, 2012, 11:11:23 am »
I had been thinking for a while that I was going to have to consider switching to GroovyMAME, and now this:

So I've been doing some tests these days, and the new option named -frame_delay is going to be ready for the next release. I've done it so that a frame time is divided in 10 parts, so a frame_delay value of 0 (default) means the emulation starts at the beginning of the frame time, as always.

I had been using Soft15kHz + Powerstrip in XP64 with a Geforce 7300GS PCI-e card to work with native resolutions with DirectDraw in vanilla MAME.  Actually, I have three of them, because I plan on making at least two cabs and I found a great deal on eBay.  Will these work with GroovyMAME or do I need to get some Radeon cards?  I noticed this when looking into GroovyMAME:

As for the hardware part, do yourself a favour and grab an old ATI Radeon card, any model from Radeon 7000 to the HD 4xxx family should work, both AGP and PCIe models. As far as we know, there is nothing that can remotely compare to these cards in terms of flexibility.

I'm not too familiar with GroovyMAME yet.  Would the Geforce card even work, or do I need something running the Catalyst drivers?  If it would work, would it be less flexible for timing adjustments than the Radeon?  It's worked fairly well so far.  How would I check if a Radeon card could be better?

I'm not unwilling to go ahead and pay for some more video cards if I'll get better results, but I just want to make sure if I will or not.

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #36 on: December 02, 2012, 05:45:59 pm »
I'm not too familiar with GroovyMAME yet.  Would the Geforce card even work, or do I need something running the Catalyst drivers?  If it would work, would it be less flexible for timing adjustments than the Radeon?  It's worked fairly well so far.  How would I check if a Radeon card could be better?

I'm not unwilling to go ahead and pay for some more video cards if I'll get better results, but I just want to make sure if I will or not.

The new version of GM will work with NVidia cards by interfacing with Powerstrip. This means you can use your current setup, so if you have created your resolutions with Soft-15kHz or even Powerstrip, then GM will pick them. But the interesting part here is that if you enable the -powerstrip option GM can also recalculate the timings for a given resolution and have it available on the fly. If you're familiar with Powerstrip you'll know it has a limitation that it can only store a custom timing for each resolution. Well, this method overrides this limitation, so for example, you only need to create an instance of the 256x224 resolution, and GM will adjust its vertical refresh on the fly for all the variations required. However, you're still limited by the NVidia drivers that only allow defining 31 custom resolutions simultaneously.

For my tests I used one Geforce Go 7400, which might be similar to your card. I noticed having some issues with low dotclocks, so I ended up using this mode list (lower resolutions are doubled on the horizontal):

Code: [Select]
Modeline "400x256@52,4Hz 15,6KHz (60Hz)" 8.080 400 416 456 519 256 268 271 297  -hsync -vsync   
Modeline "448x240@60,0Hz 15,9KHz (60Hz)" 9.160 448 464 512 576 240 243 246 265  -hsync -vsync   
Modeline "720x480@59,9Hz 31,5KHz (60Hz)" 29.250 720 752 824 928 480 486 489 526  -hsync -vsync   
Modeline "640x480@59,6Hz 31,3KHz (60Hz)" 26.180 640 672 736 836 480 486 489 525  -hsync -vsync   
Modeline "512x512@58,3Hz 31,8KHz (60Hz)" 21.210 512 538 594 668 512 513 516 545  -hsync -vsync   
Modeline "512x448@59,9Hz 31,6KHz (60Hz)" 21.210 512 542 598 672 448 469 472 527  -hsync -vsync   
Modeline "512x384@60,0Hz 24,6KHz (60Hz)" 14.750 512 520 568 600 384 388 391 410  -hsync -vsync   
Modeline "496x384@60,0Hz 25,0KHz (60Hz)" 15.475 496 508 570 620 384 388 391 416  -hsync -vsync   
Modeline "640x288@51,0Hz 15,7KHz (60Hz)" 13.100 640 672 736 832 288 289 292 309  -hsync -vsync   
Modeline "640x240@60,0Hz 15,9KHz (60Hz)" 13.220 640 672 736 832 240 243 246 265  -hsync -vsync   
Modeline "632x264@56,8Hz 15,8KHz (60Hz)" 13.000 632 664 728 824 264 265 268 278  -hsync -vsync   
Modeline "512x288@50,9Hz 15,9KHz (60Hz)" 10.680 512 544 600 672 288 289 292 312  -hsync -vsync   
Modeline "512x240@60,0Hz 15,9KHz (60Hz)" 10.680 512 544 600 672 240 243 246 265  -hsync -vsync   
Modeline "368x240@59,2Hz 15,6KHz (60Hz)" 7.470 368 384 424 478 240 243 246 264  -hsync -vsync   
Modeline "384x288@51,2Hz 15,8KHz (60Hz)" 7.850 384 400 440 496 288 289 292 309  -hsync -vsync   
Modeline "392x240@59,9Hz 15,9KHz (60Hz)" 8.000 392 408 448 504 240 243 246 265  -hsync -vsync   
Modeline "480x240@60,0Hz 15,7KHz (60Hz)" 9.306 480 488 532 592 240 241 244 262  -hsync -vsync   
Modeline "512x240@60,0Hz 15,7KHz (59Hz)" 9.935 512 520 567 632 240 241 244 262  -hsync -vsync   
Modeline "512x256@53,0Hz 16,5KHz (53Hz)" 10.583 512 520 561 640 256 274 277 312  -hsync -vsync   
Modeline "512x264@53,0Hz 16,5KHz (53Hz)" 10.583 512 520 561 640 264 278 281 312  -hsync -vsync   
Modeline "576x240@60,0Hz 15,7KHz (60Hz)" 11.193 576 584 637 712 240 241 244 262  -hsync -vsync   
Modeline "592x240@60,0Hz 15,7KHz (60Hz)" 11.444 592 600 654 728 240 241 244 262  -hsync -vsync   
Modeline "608x240@60,0Hz 15,7KHz (60Hz)" 11.821 608 616 672 752 240 241 244 262  -hsync -vsync   
Modeline "640x200@60,0Hz 15,7KHz (60Hz)" 12.324 640 648 706 784 200 221 224 262  -hsync -vsync   
Modeline "640x240@60,0Hz 15,7KHz (59Hz)" 12.324 640 648 706 784 240 241 244 262  -hsync -vsync   
Modeline "640x256@53,0Hz 16,5KHz (53Hz)" 13.229 640 648 700 800 256 274 277 312  -hsync -vsync   
Modeline "672x240@60,0Hz 15,7KHz (60Hz)" 12.953 672 680 741 824 240 241 244 262  -hsync -vsync   
Modeline "704x256@53,0Hz 16,5KHz (53Hz)" 14.552 704 712 769 880 256 274 277 312  -hsync -vsync   
Modeline "704x264@53,0Hz 16,5KHz (53Hz)" 14.552 704 712 769 880 264 278 281 312  -hsync -vsync   
Modeline "704x288@53,0Hz 16,5KHz (53Hz)" 14.552 704 712 769 880 288 290 293 312  -hsync -vsync   


Notice the above list is for a tri-sync arcade monitor!

I achieved pretty decent results with this method. Before you decide whether to switch to ATI, I'd appreciate if you tested this. Just make sure to backup your current video modes, because GM will overwrite whatever you have carefully tweaked with Powerstrip and it doesn't restore it afterwards, so you may end up loosing your current settings. Powerstrip will only "remind" the last timings used for each mode, whatever they are.

This method is not perfect, unfortunately. We have to trust on Powerstrip for succesfully creating the desired dotclock, but sometimes the obtained dotclock is too off and we end up with a lowered refresh rate, or it's not even stable. These are things that you can sort out when you create a mode manually, but an algorithm can't know beforehand whether the target dotclock will work or not, unless you create a black list or something. Fortunately, you can often identify the problematic dotclock ranges and avoid them, that's what I did by doubling some resolutions on the table above. So it definitely requires some effort on your part to get everything working. This is experimental stuff after all.

On the other hand with Radeon cards we don't need third party software, the Catalyst driver allows us to redefine custom timings on the fly and its dotclock setting is much much more reliable. Apart from the fact that once hacked they allow for more than a hundred custom modes simultaneously.
« Last Edit: December 02, 2012, 05:48:44 pm by Calamity »
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 of pasting it.

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

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #37 on: December 02, 2012, 05:52:35 pm »
Hi maxpontello,

1) new monitor preset like arcade_15ex are not recognised in vmmaker.ini, is it normal? Or you plan to release another vmmaker version?

Yes, I'm afraid vmmaker is not up-to-date yet, I'm still working on it to get the crt_range format in sync with GroovyMAME.

Quote
2) it seems that new groovymame does not support -md option to create log file when you run a game. Is there another way?

That's something I forgot to mention, I removed that option, now you only need to use the -v option to get complete logs.

BTW the log system has changed completely, hopefully now it provides a deeper insight in the logic of resolution picking.
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 of pasting it.

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

rCadeGaming

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1256
  • Last login:December 20, 2023, 09:16:09 pm
  • Just call me Rob!
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #38 on: December 02, 2012, 06:28:25 pm »
The new version of GM will work with NVidia cards by interfacing with Powerstrip. This means you can use your current setup, so if you have created your resolutions with Soft-15kHz or even Powerstrip, then GM will pick them. But the interesting part here is that if you enable the -powerstrip option GM can also recalculate the timings for a given resolution and have it available on the fly. If you're familiar with Powerstrip you'll know it has a limitation that it can only store a custom timing for each resolution. Well, this method overrides this limitation, so for example, you only need to create an instance of the 256x224 resolution, and GM will adjust its vertical refresh on the fly for all the variations required. However, you're still limited by the NVidia drivers that only allow defining 31 custom resolutions simultaneously.

That's great, but does it have to use an automatically calculated timing value?  I prefer to adjust all the timing values myself in Powerstrip, so I can have both a correct refresh rate and the precise geometry that I want.  I do this starting with test patterns, and then adjust it for practical things in the game itself, like overscan cutting off health bars, highscore, etc. 

For example, could I tell GroovyMAME the exact timing values to use with 320x240 when it loads up a neogeo.c game?

For my tests I used one Geforce Go 7400, which might be similar to your card. I noticed having some issues with low dotclocks, so I ended up using this mode list (lower resolutions are doubled on the horizontal):

Notice the above list is for a tri-sync arcade monitor!

Haha, yeah I'm using a 15kHz TV, so 288 lines is pushing it, can't really go beyond that.  Not needing 25 and 31kHz resolutions, I don't think I'll go over 31 resolutions.

Horizontal doubling should be no problem, I think my Super Emotia techically puts out 640x240; it doesn't really matter, same scan rates.  I've gotten pretty good results with low resolutions so far though.  I had Mario Bros. running, which is 256x224.  I think I actually had it centered in 256x240 or 304x240 (can't remember which atm), but I was able to push the black borders into the overscan.

Pics of my setup, including Mario Bros.:

http://forum.arcadecontrols.com/index.php?topic=120798.0

I achieved pretty decent results with this method. Before you decide whether to switch to ATI, I'd appreciate if you tested this. Just make sure to backup your current video modes, because GM will overwrite whatever you have carefully tweaked with Powerstrip and it doesn't restore it afterwards, so you may end up loosing your current settings. Powerstrip will only "remind" the last timings used for each mode, whatever they are.

You can save your timing values as a shortcut in Powerstrip.  After making changes, you can just double click the shortcut to revert.  Pretty convenient.

This method is not perfect, unfortunately. We have to trust on Powerstrip for succesfully creating the desired dotclock, but sometimes the obtained dotclock is too off and we end up with a lowered refresh rate, or it's not even stable. These are things that you can sort out when you create a mode manually, but an algorithm can't know beforehand whether the target dotclock will work or not, unless you create a black list or something. Fortunately, you can often identify the problematic dotclock ranges and avoid them, that's what I did by doubling some resolutions on the table above. So it definitely requires some effort on your part to get everything working. This is experimental stuff after all.

Don't worry, I'm already doing everything manually, I'm a control freak!

Calamity

  • Moderator
  • Trade Count: (0)
  • Full Member
  • *****
  • Offline Offline
  • Posts: 7411
  • Last login:March 14, 2024, 05:26:05 am
  • Quote me with care
Re: GroovyMAME/GroovyUME 0.147u3 SwitchRes v0.014
« Reply #39 on: December 02, 2012, 06:53:59 pm »
That's great, but does it have to use an automatically calculated timing value?  I prefer to adjust all the timing values myself in Powerstrip, so I can have both a correct refresh rate and the precise geometry that I want.  I do this starting with test patterns, and then adjust it for practical things in the game itself, like overscan cutting off health bars, highscore, etc. 

For example, could I tell GroovyMAME the exact timing values to use with 320x240 when it loads up a neogeo.c game?

That's not possible yet I'm afraid, the whole idea was to do everything automatically. But adding raw modeline support is something I wanted to have indeed, and it's not in this version just because I run out of time.

The main idea with GM is to give it the information (crt_range options) so it will create modelines that are perfectly centered, without the need of further tweaking. So your efforts are focused on finding these accurate timing specs that result in correct geometry, instead of manually adjusting hundreds of modes. Once you get this working, you never want to go back to the paleomethod.

However, the problem is, that's the theory. In the real world you find situations where creating general timing specs doesn't work so well, for instance with TVs that internally readjust their geometry (Sony, etc.). So for these cases, it would be nice to also accept a precalculated modeline. This way you have the best of both worlds.
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 of pasting it.

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