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. |
|
|