SourceForge.net Logo

<< PREV | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | NEXT >>

There are two very different ways to run AdvanceMAME. You can let AdvanceMAME automatically generate a modeline for each game (recommended) or you can manually create and assign your own. The generate method is by far the most powerful way to run AdvanceMAME, as it's capable of providing perfect emulation. If, however, you are unable to achieve satisfactory results letting AdvanceMAME generate your modelines, you can create and assign your own using the advv.exe utility. Regardless of how you plan to run your setup you need to start with the advcfg.exe utility. It creates the device_video_format entries in your advmame.rc file that the advv.exe utility uses to generate modelines.

AdvanceMAME's device video format is a special modeline that uses percentages instead of pixels. Because these percentages may slowly change over a wide range of clock frequencies, AdvanceMAME, will, by default, generate one device video format for your lowest hclock and one for a higher one. It will then use a linear interpolation of these two formats to create modelines at varying hclocks. If you are using a fixed frequency monitor, like a 15 kHz arcade monitor, or a D9200 arcade monitor, you may have better success using just one device video format. Just delete the higher one, and see if that helps.

I highly recommend using one of the standard modes listed below for creating a device video format.

262 lines (192 active + 70 blanking) x 60 Hz = 15.72 kHz
262 lines (224 active + 38 blanking) x 60 Hz = 15.72 kHz
262 lines (240 active + 22 blanking) x 60 Hz = 15.72 kHz
416 lines (384 active + 32 blanking) x 60 Hz = 24.9 kHz
525 lines (480 active + 45 blanking) x 60 Hz = 31.5 kHz

If your not sure what kind of monitor you have, then you need to find out the resolution and refresh rate of the game it ran. This is a fairly easy task if your game is emulated in MAME, as the information is presented at the start of every game. Otherwise, you might have to do some google searching. Once you have the information in hand, simply type in the number of lines and the refresh rate into the calculator on the previous page. If you get an unknown active percentage, then just pick the mode that's closest. Note, if you use a non-standard mode to setup an arcade monitor, few (if any) of your games will have the correct vertical synchronization.

I also highly recommend commenting out a spare copy of any device video format you create. This will insure that you never accidentally overwrite your hard earned, perfectly engineered device video format. Just add something like 15.72kHz/ or 24kHz/, or anything to the beginning of the format, being sure not to use spaces. AdvanceMAME will just ignore this line. Below is an example

x224/device_video_format 15720 0.744186 0.0697674 0.0697674 0.116279 0.854962 0.0725191 0.0114504 0.0610687

AdvanceMAME will just ignore this line and the advcfg.exe utility will never overwrite it. It's also a very good idea to backup your device video format to a floppy disk, just for safe keeping.

When you startup the advcfg.exe utility, you will be presented with a few questions. The first will prompt you to select a set of blanking timings from a list of many popular ones. I highly recommend using the ones provided, naturally, the one that best describes your monitor. For right now, I'm just going to detail a standard 15.72 kHz setup (for other setups, simply interpolate my instructions). So, for 15.7 kHz you would select Arcade Standard CGA Resolution (15kHz) and press Enter.

You now have to enter in your monitor and video card's operating frequencies. Select Custom from the menu and press Enter. You will first be prompted to enter in a pclock range. So, what should you enter here?

If you'll recall, monitors are analog (seconds), video cards are digital (pixels). The pclock (pixel clock) is the conversion tool that translates seconds into pixels -- it defines the number of pixels per second that a video card sends to a monitor.

Pixel Clock = Number of Pixels per Line x Number of Lines x Refresh Rate

Be aware that the Number of Pixels per Line includes both active pixels (ones that display data) and blanking pixels (pixels that give a CRT the time it needs to position the electron beam in the correct spot), this also applies for the Number of Lines. So we can gather from the above formula that high pixel clocks are needed for high resolutions (or fast ones), and that low pixel clocks are needed for low resolutions (or slow ones)

Arcade monitors usually run at around 7mHz (though some resolutions go a little lower, all the way down to 5mHz for very low resolutions). This is why arcade monitor setups require a video card that can handle very low pclocks. From my personal experience, ATI cards and Trident's Blade T64 can handle pclocks as low as 5 (possibly lower, though it doesn't matter), Matrox's G400 can safely go down to 7 (kernel fb or svgalib), and Nvidia cards can go down to 8 in Linux using the kernel's fb or 5 using svgalib (DOS or Linux). If your running AdvanceMAME on a 15 kHz monitor you really should get a card that supports a pclock of at least 7, as anything 8 or higher could be restricting. Why is 7mHz so special?

When you setup advancemame on a monitor you do two things. First you configure your video card for a certain blanking time (the advcfg.exe utility), then second you configure your monitor for a certain blanking time (arcade monitor controls). If these two times don't match, then the image doesn't take up the whole screen (it's overscanned/underscanned). Naturally, on a high quality arcade monitor there is alot of slop here, especially on modern ones like the D9200. On cheap monitors, there's not much slop here at all (TVs, for example). This means that if you have a problematic monitor that doesn't have that much slop then you pretty much have to run games between 5-8mHz, as that's what these monitors were originally designed to support.

As far as arcade game emulation goes, video cards support very high pclocks, so their upper limit has no real effect on your AdvanceMAME setup. This means that the limiting factor for a high pclock rate is your monitor. But it is only fair to say that you can pretty much ignore the higher pclock number in most setups, as most quality monitors can't display resolutions large enough to max it out. So, I'd recommend leaving your upper pclock limit at 90 unless you are having problems. The lower pclock limit is mostly an issue because video card manufacturers don't realize that there are people trying to run their video cards at very low resolutions. Their focus is on very high resolutions, which is what most people look for in a modern card. If you're having problems with your video card, then you should try increasing the lower end of your pclock before giving up on it. If your monitor isn't happy running at a higher pclock, then you should consider replacing your video card with one that supports a lower pclock.

So for a standard 15.7 kHz arcade monitor, you'd enter

pclock 5-90
hclock 15.72
vclock 50-60

If everything went well, you should now have a screen like the one below. If you don't get the following screen, try pressing shift i to increase the horizontal blanking time. If that fails, press Esc and try changing your hclock setting, going up or down in .01 kHz increments. If you still have no success try raising the lower end of your pclock in .5 increments.

Its absolutely essential that you use your keyboard and your arcade monitor controls correctly here. Any keyboard modifications made to this screen will have a profound effect on your entire setup, especially vertical resizing. If you've got a modern high quality CRT, then theoretically the default settings should work well, just center your screen using your arcade monitor controls.

Obviously, if you're having problems here, and the default settings aren't working for you, you will need to tinker. Horizontal and / or vertical repositioning changes are always safe to make. All you are doing is changing the location of the sync pulse, which simply effects the size of the front and back porches, which is no big deal. So don't worry overly about making a few adjustments here, though you only want to make them if they are necessary.

Changes made to the horizontal size effect the horizontal active and blanking times for your monitor. If you want to run your setup at a higher pclock so that it works with your current video card, then you need to decrease the horizontal size of the resolution here until you reach a number that your card can handle.

If you were to throw caution to the wind to search for the highest pclock your configuration could run at, then all you'd have to do is widen your screen as much as possible using your monitor controls and then decrease the horizontal resolution in the advcfg.exe utility until it fits the screen. That's it. Any higher and the image is underscanned. The difference between the largest image you can get and the smallest image you can get to fit the screen basically defines the slop in your setup.

If you need to resize your vertical height, try dropping the number of lines from 240 to 224. A 224 line setup is not bad. In fact, it's kind of a cool setting, if you ask me, as most older arcade games will run true to the originals (i.e. perfect emulation). This is a very groovy setting for a table top, as a lot of table top classics use 224 lines. Which, naturally, brings up an important consideration. You may want to setup your CRT to use 224 lines anyways. If your not sure which setup is best for you, checkout the previous page.

But why can't I configure my setup to use both modes, 224 lines and 240 lines? Well, I won't say that it's impossible to do so, only that I personally consider it impractical. Unless you want to recenter your screen using your arcade monitor controls every time you change between a 224 line game and a 240 line game, you must accept that you can only perfectly configure your monitor for one blanking time. In order to perfectly emulate both modes without adjusting your screen between games using your arcade monitor controls, you would need to overclock, underclock your monitor so that you would have a 1kHz horizontal clock range (as explained on the previous page). If you configure your setup for 240 lines, then 224 line games will either have a border or require stretching. If you configure your setup for 224 lines, then 240 line games will be overscanned (display_adjust generate_clocky), or take up the full screen out of vsync (display_adjust generate_yclock).

As a last resort, you could also try using the settings for a game that your monitor used to run. If this mode doesn't work then something is probably wrong with your setup. If you're sure your monitor is wired correctly to your video card, then its probably the video card you are using or the AdvanceMAME version you are using. As the video card drivers for AdvanceMAME are constantly evolving you may need to try a different version of AdvanceMAME (in case of a driver regression) or try a different video card (one that has better driver support. See my video card review for popular chipsets know to work very well).

I highly recommend using only 224 or 240 lines, as if you use any other line setting all of your games will be out of vertical synchronization at 15.72 kHz. The only time to use a different line setting is if you plan on overclocking, underclocking your horizontal clock. For example, I configured my D9200 to run at 230 lines here, which puts 224 line modes right around 15.2 kHz and 240 line modes at around 16.3 kHz. If you can't get a 1kHz hclock range, then there is no real reason to overclock, underclock a 15.7 kHz CRT. Overclocking, underclocking your monitor can shorten or even end its life span. So make sure you understand and feel comfortable with the risks before ever attempting to do so, as you could easily destroy a perfectly good monitor.

Once you've got your screen sized, centered, and stable in the advcfg.exe utility, press enter. Test the resolutions available. Give each resolution half a minute or so and make sure it's stable. Don't worry about your screen's centering here, just make sure the resolutions are stable.

If you take the time to perfect your device video format using the advcfg.exe utility, then not only will your games look and run a whole lot better, but even the few that don't can be easily corrected using the advv.exe utility.

The advv.exe utility is highly sophisticated modeline calculator. It uses your device video format to calculate a perfect modeline for your CRT, which you can then tweak and assign to any game. Be aware that if you resize your screen in the advv.exe utility, you are changing the default clock rates and active video duration times, which means you could be ruining a perfectly good mode. Basically, if you don't understand the changes you are making, then you should only center the modeline and not resize it. Your reference mode (or modes on the D9200) should be centered using only your arcade monitor controls, all other modes should be centered using only your keyboard. It's an unbelievably good idea to choose a popular reference mode, like 224 lines at 60 Hz, or 240 lines at 60 Hz.

Also be aware that on many ATI video cards the display shifts to the right as you go from color settings, so if you do not change display_color auto to bgr16, then many of your games will be off centered. For ATI setups, center your screen using your monitor controls either with a game running at your reference mode or with the advv.exe utility set to 16bit color. The advcfg.exe utility runs at 8bit color so whatever you center there, will be shifted to the right later on.

On an ATI Radeon 7500 and D9200 setup just use a game running at 320x240 at 60 Hz , 512x384 at 60 Hz, and 640x480 at 60 Hz. For example, try Gauntlet, 720 Degrees, and Asteroids. The D9200 can store 3 different centering modes, one at each standard hclock, which is very groovy feature. Many Multisync PC monitors can store multiple centering modes as well at varying hclocks, which you should take full advantage of.

You can easily tweak your reference mode centering in advv.exe utility. Press F5 and enter in your reference mode. For example, if you configured your setup for 224 lines, you would enter

288 x 224 at 60 Hz

for a 240 line setup you would need to enter

320 x 240 at 60 Hz

Find your newly generated modeline and rename it something like "reference," then highlight it and press Enter. As this is your reference mode, USE ONLY YOUR MONITOR CONTROLS TO CENTER YOUR SCREEN. For all other modelines use your keyboard, unless, of course, your monitor can store several different centering modes, in which case you should center your screen using your monitor controls for each one. If you are using an ATI video card, don't forget to select 16 bit color when you're centering your screen. Just ignore all the other color depths and only use 16 bit.

Up to this point, you should be able to run every game, but if many of your games are off center, then you can create a modeline every 16 lines. It's a good idea to include the five most popular modes below. Note, that unless you overclock, underclock a 15.7 kHz monitor, only your reference mode will have the correct refresh rate (assuming no borders or stretching).

256 x 192
256 x 224
256 x 240
512 x 384
640 x 480

For example, if you configured your monitor for

262 lines (224 active + 38 blanking) x 60 Hz = 15.72 kHz

with the following frequency ranges

pclock 5-90
hclock 15.72
vclock 47-60

You would have a range of 286 - 224 lines. So in the advv.exe utility, you would press F5 and enter

256 x 224 60Hz (This is your reference mode. Center with your monitor controls)
256 x 192 60Hz (center with keyboard only)
256 x 240 60Hz (center with keyboard only)
256 x 256 60Hz (center with keyboard only)
256 x 272 60Hz (center with keyboard only)
256 x 288 60Hz (center with keyboard only)
512 x 384 60Hz (center with keyboard only)
640 x 480 60Hz (center with keyboard only)

If you configured your monitor for

262 lines (240 active + 22 blanking) x 60 Hz = 15.72 kHz

with the following frequency ranges

pclock 5-90
hclock 15.72
vclock 47-60

You would have a range of 306 - 240 lines. So in the advv.exe utility, you would press F5 and enter

256 x 240 60Hz (This is your reference mode. Center with your monitor controls)
256 x 192 60Hz (center with keyboard only)
256 x 224 60Hz (center with keyboard only)
256 x 256 60Hz (center with keyboard only)
256 x 272 60Hz (center with keyboard only)
256 x 288 60Hz (center with keyboard only)
256 x 304 60Hz (center with keyboard only)
512 x 384 60Hz (center with keyboard only)
640 x 480 60Hz (center with keyboard only)

Don't worry about the vertical clock that the advv.exe utility assigns, also don't worry about which horizontal resolution you use, when in doubt just use 256. The whole idea here is to create a default modeline for a variety of vertical clocks, basically one every 16 lines. The horizontal resolution is irrelevant as it will be adjusted to match the game's resolution. Be sure not to modify the resolution's size with your keyboard, just center the mode using your arrow keys. For ATI cards, be sure to always work in 16bit color. Once you have centered all the resolutions above, press F2. This will save all of your modelines to your advmame.rc file. Once you have saved your modelines, press ESC to exit the advv.exe utility. You should now be able to play all your games successfully.

If most of your games are displayed correctly, you can quickly tweak the few that aren't from within the game itself (read below). If most of your games are displayed incorrectly, however, you can force AdvanceMAME to use the modelines in your advmame.rc file. Simply edit your advmame.rc file and change display_adjust generate_yclock to display_adjust xclock.

To tweak the display of any game in AdvanceMAME, launch the game and press the Tab key. From the menu select Video. The games current mode will be listed at the very top of the menu. To change this mode scroll down to mode, and press Enter. You can now manually force any of the listed resolutions by selecting it and pressing Enter. The best resolutions are at the top the list, so start there and work your way downward until you find a resolution you are happy with. If none of the resolutions work well, you will need to create a new one using the advv.exe utility. If, however, you find a mode you like more, press ESC to return to the previous screen and select either save for this game, or save for this game resolution. It's usually better to select save for this game resolution, as it will fix all the games that use that resolution.

Once you have properly configured your CRT's blanking time using the advcfg.exe utility and your arcade monitor controls, then you are ready to dive into modeline creation and assignment. While AdvanceMAME does an excellent job of automatically creating and assigning useable modes, at times you may decide to tweak a game's centering, or adjust a game so that it runs better, even though such adjustments might distort the accuracy of the image. But in order to create and assign modelines, we need to explore a few more features of AdvanceMAME.

<< PREV | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | NEXT >>