-
Notifications
You must be signed in to change notification settings - Fork 49
/
advmame.d
2360 lines (1862 loc) · 77 KB
/
advmame.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Name{number}
advmame, advmess - AdvanceMAME/MESS Emulator
Synopsis
:advmame GAME [-default] [-remove] [-cfg FILE]
: [-log] [-listxml] [-record FILE] [-playback FILE]
: [-version] [-help]
:advmess MACHINE [images...] [-default] [-remove] [-cfg FILE]
: [-log] [-listxml] [-record FILE] [-playback FILE]
: [-version] [-help]
Description
AdvanceMAME is an unofficial MAME version for GNU/Linux, Mac OS
X, DOS and Windows with an advanced video support for helping the
use with TVs, Arcade Monitors, Fixed Frequencies Monitors and
also with normal PC Monitors.
The major features are:
* Automatic creation of `perfect' video modes with the correct
size and clock.
* A lot of video boards supported for direct hardware registers
programming. (see the card*.txt files)
* Support for 8, 15, 16 and 32 bits video modes.
* Real hardware scanlines.
* Software video image stretching by fractional factors, for
example to play vertical games like "Pac-Man" with
horizontal Arcade Monitors or TVs.
* Special `scalex', `scalek', `lq', `hq', and `xbr' effects to improve the aspect
with modern PC Monitors.
* Special `blit' effects to improve the image quality in
stretching.
* Special `rgb' effects to simulate the aspect of a real Arcade
Monitor.
* Change of the video mode and other video options at runtime.
* Support of Symmetric Multi-Processing (SMP) with a multiple
thread architecture (only for Linux).
* Sound and video recording in WAV, PNG and MNG files.
* Multiple mice support in Linux, DOS, Windows 2000 and Windows XP.
* Automatic exit after some time of inactivity.
* Scripts capabilities to drive external hardware devices
like LCDs and lights.
* Textual configuration files.
* Help screen describing the user input keys.
SubSubIndex
Keys
In the game play you can use the following keys:
ESC - Exit.
F1 - Help.
TAB - Main Menu.
F2 - Test/Service Switch.
F3 - Reset the game.
F7 - Load a game state.
SHIFT + F7 - Save a gam state.
F8 - Decrease the frame skip value.
F9 - Increase the frame skip value.
F10 - Speed throttle.
F11 - Display the frame per second.
F12 - Save a snapshot.
P - Pause.
PAD * - Turbo mode until pressed.
PAD / - Cocktail mode (flip the screen vertically).
PAD - - Mark the current time as the startup time of the game.
CTRL + ENTER - Start the sound and video recording.
ENTER - Stop the sound and video recording.
, - Previous video mode.
. - Next video mode.
TILDE - Volume Menu.
for player 1 you can use the keys:
1 - Play.
5 - Insert coin.
ARROW - Move.
CTRL - First button.
ALT - Second button.
SPACE - Third button.
for player 2 you can use the keys:
2 - Play.
6 - Insert coin.
R, F, D, G - Move.
A - First button.
S - Second button.
Q - Third button.
for AdvanceMESS are available also the following keys:
SCRLOCK - Switch to partial keyboard emulation
which lets you use keys like TAB, ALT and
CTRL.
Options
This is the list of the available command line options:
=GAME/MACHINE
The game or machine to emulate. If the specified
GAME/MACHINE is unknown, a list of possible `guesses'
is printed.
-default
Add to the configuration file all the missing options
with default values.
-remove
Remove from the configuration file all the options
with default values.
-cfg FILE
Select an alternate configuration file. In Linux and Mac
OS X the you can prefix the file name with "./" to
load it from the current directory.
-log
A very detailed log of operations is saved in
a `.log' file. Very useful for debugging problems.
-listxml
Outputs the internal MAME database in XML format.
-record FILE
Record all the game inputs in the specified file.
The file is saved in the directory specified by the
`dir_inp' configuration option.
-playback FILE
Play back the previously recorded game inputs in the
specified file.
-version
Print the version number, the low-level device drivers
supported and the configuration directories.
-help
Print a short command line help.
On the command line you can also specify all configuration
options with the format -OPTION ARGUMENT. For boolean options
you don't need to specify the argument but you must use the
-OPTION or -noOPTION format. For example:
:advmame pacman -device_sound sb -nodisplay_scanlines
You can use short options if they are unambiguous. You can remove
any prefix tag separated with `_' or truncate it.
For example `-dev_cartdrige' can be written as `-dev_cart',
`-cartdrige', `-cart', ...
In Linux and Mac OS X you can also use `--' before options instead of `-'.
In DOS and Windows you can also use `/'.
Features
This section contains a brief description of all the features
of AdvanceMAME.
Automatic Video Mode Generation
AdvanceMAME has the ability to directly control your video
board to get the best possible video modes with always the
correct size and aspect ratio.
You can control how the video modes are generated with the
`display_adjust' option. More details are in the `install.txt'
file.
Video Menu
AdvanceMAME adds a new `Video' menu in MAME to change the video
options.
You can select the desired video mode, the resize type and the
video effects.
The selected option is displayed at the right side of the menu,
the effective value used for the option is displayed in `[]'.
Resize
AdvanceMAME supports many software stretching types of the
game image. Generally they are not used, because a video
mode of the correct size is automatically generated.
But in some conditions it isn't possible, in this case the
image is stretched.
There are four stretch types: `none', `integer', `mixed', `fractional'.
You can control the type of stretching with the `display_resize' option.
The `none' option simply disables any type of stretching.
The `integer' option allows only integer stretching in the
horizontal and vertical directions. For example 1x2, 2x1, 2x2.
The `mixed' option allows integer stretching in the horizontal
direction and fractional stretching in the vertical direction.
For example 1x1.23, 2x1.18.
The `fractional' option allows fractional stretching in any
directions. For example 1.08x1.08, 1.34x1.78.
Usually the best choice is the `mixed' option. It's very fast
and the image quality doesn't suffer too much.
Blit Effects
AdvanceMAME supports many special video effects to improve
the image quality when it's stretched.
There are a lot of video effects: `none', `max', `mean',
`filter', `scalex', `scalek', `lq', `hq' and `xbr'.
You can select the favorite effect with the `display_resizeeffect'
option, or from the runtime menu.
The `none' effect simply duplicates and removes rows and lines
when the image is stretched.
The `max' effect tries to save the image details checking the luminosity
of the pixels in stretching. It ensures to have vertical and horizontal lines
always of the same thickness.
The `mean' effect tries to save the image details displaying the
mean color of the pixels in stretching.
The `filter' effect applies a generic blur filter computing the
mean color in the horizontal and vertical directions. The best
results are when the image is stretched almost by a double
factor. When the image is enlarged the filter is applied after
stretching; when reduced, it's applied before.
The `scalex', `scalek', `lq', `hq' and `xbr' effects add missing pixels
trying to match the image patterns.
The `scalex', `scalek', `lq', `hq' and `xbr' effects work only if the image is
magnified. To enable it you should also use the `magnify' option.
RGB Effects
AdvanceMAME supports also some special video effects to simulate
the aspect of the game as displayed in an old fashion Arcade
Monitor.
You can simulate the RGB triads of the screen or the vertical and
horizontal scanlines.
Mode Selection
In the `Video Mode' submenu you can select the favorite video
mode.
If you choose `auto', the best video mode is chosen
automatically.
You can change the active video mode pressing `,' and `.' when
in game play.
You can force a specific video mode with the option
`display_mode'.
Per game/resolution/frequency/orientation options
All the options are customizable in the configuration file for
the single game or for a subset of games defined by the game
resolution, frequency and orientation.
Scripts
AdvanceMAME supports a basic script language capable to
control an external hardware through the parallel port
or keyboard led signals.
More details are in the `script.txt' file.
Aspect Ratio Control
AdvanceMAME tries always to display the game with the
correct aspect ratio.
But if you want, you can permit a small aspect error
to enlarge the effective game image on the screen.
It's very useful to display vertical games on
horizontal monitors and vice versa.
More details are in the description of the `display_expand'
option.
Speed Control
AdvanceMAME permits a special speed control of the game
play.
You can play the game in a faster way, change arbitrarily the
frame rate, skip the game startup process at the maximum speed,
or skip the game animations pressing a key.
Press `asterisk_pad' to enable the `turbo' mode. Press `minus_pad'
to mark the time of the real game start. The next time the game is
started, it will execute very fast until this time.
More details are in the description of the `sync_fps', `sync_speed',
`sync_turbospeed' and `sync_startuptime' options.
The video and audio synchronization uses an advanced algorithm,
which ensure always the best performance.
The program continuously measures the time required to compute a
frame and continuously adapt the number of frame to skip and
to draw.
If it detects that you have system too slow to play the game
at full speed, it automatically disables any frame skipping.
If the underline Operand System allows that, AdvanceMAME release
the CPU when it isn't used after computing each frame reducing the
CPU occupation.
Audio Control
The audio volume is automatically adjusted to ensure
that all the emulated games have the same volume power.
An equalizer and a spectrum analyzer are also available.
More details are in the description of the `sound_normalize'
and `sound_equalizer' options.
Exit Control
If you have a real Arcade Cabinet you can configure AdvanceMAME
to automatically exit after some time of inactivity to save
your monitor screen.
For some supported games you can force the display of an
exit menu during the game play to prevent unwanted exit.
More details are in the description of the `misc_safequit',
and `input_idleexit' options.
Input Control
AdvanceMAME supports a very fine control of the mapping
of the analog and digital inputs. You can remap any input
event using easy to maintain text configuration files.
More details are in the description of the `input_map'
option.
Audio and Video Recording
AdvanceMAME can saves the game play in .WAV audio files and
.MNG video files.
More details are in the description of the `record_*'
options.
User Interface
AdvanceMAME displays the user interface directly on the screen
instead on the game image.
This means that the interface doesn't have applied the same video
effects of the game, it isn't limited on the game area, it
isn't recorded on video clips and you can customize the font.
Also, True Type fonts with alpha blending are supported.
More details are in the description of the `ui_*' options.
Input Help
AdvanceMAME is able to display a help image containing the
input mapping of the emulated game. Any input element has a
different depending on the assigned player and if it's pressed
or not.
The default image is a standard keyboard, with the used keys
highlighted. If you have an Arcade cabinet you can create your
personalized control image and select each region to highlight.
Press `f1' on the game play to display it.
More details are in the description of the `ui_help*' options.
Input Text Configuration File
All the user customizations are stored in a single textual
configuration file and not in a lot of .cfg file like other MAME ports.
This allows to view, edit and copy any customization manually.
They are also more compact because only the difference from the
default is saved.
They are independent of the internal MAME structure, so, when it
changes, you don't lose the customizations.
More details are in the description of the `input_setting',
`input_dipswitch', `input_configswitch' options.
Cocktail
For cocktail arcade cabinets you can manually flip vertically the
screen for games without cocktail support.
Press `slash_pad' to flip the screen.
Dipswitches Control
You can customize with specialized options the game difficulty and
the game freeplay. These options are smart enough to solve
common ambiguities and errors in the game dipswitches definitions.
More details are in the description of the `misc_diffucilty' and
`misc_freeplay' options.
LCD Panel
AdvanceMAME is able to talk to an `lcdproc' server located anywhere
in internet to display arbitrary information on a real or simulated
LCD panel.
Use Cases
This section describes some useful cases for AdvanceMAME
on different video hardware.
With a LCD Monitor
On a LCD Monitor, AdvanceMAME is able to use the hardware
acceleration of your video board to stretch the game image
to fit the exact resolution of your LCD monitor.
With an HighDefinition monitor (1920x1080/1200), this stretching
is not noticeable and you get an image with quality comparable
with a CRT Multi-Sync monitor.
You can also use a bunch of video effects to remove the
annoying pixelation or to emulate old stylish CRT aspect.
With a CRT Multi-Sync Monitor
On a PC Multi-Sync monitor you can get any resolution at any
Vertical Frequency. In this case AdvanceMAME always generates
a `perfect' video mode with the correct size and clock. It
doesn't require any type of stretching.
For example for the game "Bomb Jack" a video mode of 400x256
at 60 Hz (perfect size and perfect frequency) is used.
With a CRT VGA Monitor/Fixed Frequency Monitor/Arcade Monitor
On Fixed Frequency monitors you are physically limited on
the choice of Horizontal Frequency in the video mode. In this
case AdvanceMAME takes care of your monitor's limitations
and in the most cases it's able to use a video mode with the
correct size but not with the correct frequency due to the
monitor's limitations.
For example for the game "Pac-Man" and a VGA monitor (31.5 kHz)
a video mode of 400x288 at 100 Hz (perfect size) is used.
With a NTSC or PAL TV
On a TV you are physically limited to use both fixed Horizontal
and Vertical Frequencies. This results on a prefixed number of
rows for the video mode.
For example for a NTSC TV you can get 240 rows (480 if
interlaced) and for a PAL TV 288 rows (576 if interlaced).
In this case AdvanceMAME uses a video mode with the prefixed
number of rows but with the correct number of columns. So,
ONLY a vertical image stretching is required.
For example for the game "Pac-Man" on a NTSC TV a video mode
of 400x240 (perfect horizontal size) is used.
For stretching some special algorithms are used to minimize
the lose of details.
With a Multi-format NTSC and PAL TV
If your TV supports both formats, AdvanceMAME automatically
chooses the format that better fits the game requirements.
For example for the game "Mr. Do!" a video mode of 336x240
NTSC (perfect size) is used. For the game "Pac-Man" a video mode
of 400x288 PAL (perfect size) is used.
Other Ports
This section compares the AdvanceMAME video support with the
other MAME ports.
Windows MAME
The official Windows MAME is forced by Windows drivers to select
a video mode from a prefixed list of mode sizes and clocks.
If the emulated game requires a not standard mode size the
emulator must stretch the game image to fit the screen (losing in
quality). If the emulated games requires a not standard clock the
emulator must play the game without synchronizing with the video
vertical retrace (generating the tearing disturb on scrolling game)
or display frames for different time (generating a not constant
scrolling).
Depending on the type of your video drivers you can sometimes
edit the prefixed list of video modes.
The TV support depends on the video drivers of your board and
it's generally limited at the interlaced mode 640x480.
Arcade monitors are used as NTSC TVs.
Generally this port is limited by Windows to get the best from
your monitor.
SDL MAME
The official SDL MAME, is similar at AdvanceMAME when using the
sdl video driver, which is the default when run in a modern
Desktop environment.
AdvanceMAME has the benefit to allow to use more video effects,
able to improve the image quality.
This also helps when using Arcade Monitors with specific modelines,
because AdvanceMAME is able to streatch the image using special effects
like 'max' that avoids to lose pixels.
DOS MAME
The official DOS MAME is limited to use only the standard
VESA resolutions. Generally they are only 320x200,
320x240, 400x300, 512x384, 640x480, ...
The Arcade/TV support is limited at the mode 640x480 for the
ATI boards.
Configuration
In DOS and Windows the configuration options are read from the
files `advmame.rc' and `advmess.rc' in the current
directory.
In Linux and Mac OS X the configuration options are read from the
files `advmame.rc' and `advmess.rc' in the $host, $data and
the $home directory.
The $host directory is `$SYSCONFDIR', where $SYSCONFDIR is the
`sysconfdir' directory configured with the `configure' script.
The default is `/usr/local/etc'.
The $data directory is `$DATADIR/advance', where $DATADIR is the
`datadir' directory configured with the `configure' script.
The default is `/usr/local/share'.
The $home directory is `$ADVANCE', where $ADVANCE is the value of the
ADVANCE environment variable when the program is run.
If the ADVANCE environment variable is missing the $home directory
is `$HOME/.advance' where $HOME is the value of the HOME environment
variable.
If both the ADVANCE and HOME environment variables are missing the
$data directory became also the $home directory.
The priority of the options is in the order: $host, $home and $data.
The $home directory is also used to write all the information
by the program. The files in the $host and $data directory are only read.
You can include an additional configuration files with the `include'
option. In DOS and Windows the files are searched in the current directory.
In Linux and Mac OS X the files are searched in the $home directory if
they are expressed as a relative path. You can force the search in the
current directory prefixing the file with `./'.
To include more than one file you must divide the names with `;' in
DOS and Windows, and with `:' in Linux and Mac OS X.
You can force the creation of a default configuration file with the
command line option `-default'.
In the configuration file the options are specified in this format:
:[SECTION/]OPTION VALUE
If the SECTION is omitted the `' (empty) section is assumed.
You can split long options in a multi-line format ending the line
with the char `\':
:[SECTION/]OPTION FIRST_LINE \
: SECOND_LINE \
: ... \
: LAST_LINE
When you run a game every option is read in different
sections in the following order:
`SYSTEM[SOFTWARE]' - The short system name and the loaded
software on the command line, like `ti99_4a[ti-inva]',
`a7800[digdug]' and `nes[commando]'.
`GAME' - The short game (or system) name, like `pacman',
`ti99_4a' and `nes'.
`PARENT' - If present, the parent name of the game,
like `puckman'.
`BIOS' - If present, the bios name of the game,
like `neogeo'.
`RESOLUTIONxCLOCK' - The resolution and the clock of the
game, like `244x288x60' for raster games or
`vector' for vector games. If the vertical clock
is a real value, it's rounded downwards to the
nearest integer.
`RESOLUTION' - The resolution of the game, like
`244x288' for raster games or `vector' for
vector games.
`ORIENTATION' - The game orientation. One of `vertical',
`horizontal'.
`CONTROLLER' - The game input device. One of `joy4way',
`joy8way', `doublejoy4way', `doublejoy8way',
`paddle', `dial', `trackball', `stick', `lightgun',
`mouse'.
`Nplayers' - Number of players in the game. One of `1players',
`2players', `3players', ...
`Nbuttons' - Number of buttons for each player One of `1buttons',
`2buttons', `3buttons', up to `10buttons'.
`' - The default empty section.
For example for the game `pacman' the following sections are
read: `pacman', `puckman', `224x288x60', `224x288', `vertical',
`joy4way', `2players' and `1buttons'.
You can override any global options inserting new options in
any of the sections of the game.
For example:
:display_scanlines no
:pacman/display_scanlines yes
:244x288x60/display_scanlines yes
:vertical/display_ror yes
:horizontal/display_ror no
Software Configuration Options
This section describes the options used to customize the
software loaded by system emulated.
dev_*
Loads a specific device for the AdvanceMESS emulator. These
options are mainly used on the command line to specify the
machine software to load.
The file specified is searched in the directory list specified
in the `dir_image' option.
:dev_COMMAND FILE
Commands:
cartridge - Load a cartridge.
floppydisk - Load a floppydisk.
harddisk - Load an harddisk.
cylinder - Load a cylinder.
cassette - Load a cassette.
punchcard - Load a punchcard.
punchtape - Load a punchtape.
printer - Load a printer.
serial - Load a serial.
parallel - Load a parallel.
snapshot - Load a snapshot.
quickload - Load a quickload.
Examples:
:advmess ti99_4a -dev_cartridge attackg.bin
:advmess ti99_4a -cart alpinerc.bin -cart alpinerg.bin
Autosave Configuration Options
config
Selects if and when the configuration modified by the user at
runtime should be saved.
:config save_at_exit | restore_at_exit
Options:
save_at_exit - Save any changes before exiting
(default).
restore_at_exit - Don't save the changes. At the next
run, restore the previous configuration.
You can manually save the configuration at runtime from the
main menu.
Directory Configuration Options
This section describes the options used to customize the
directories used by the program.
dir_*
Specify all the support directories. In DOS and Windows use the `;'
char as directory separator. In Linux and Mac OS X use the `:' char.
:dir_* DIR[;DIR]... (DOS, Windows)
:dir_* DIR[:DIR]... (Linux, Mac OS X)
Options:
dir_rom - Multi directory specification for the
AdvanceMAME `rom' files and AdvanceMESS `bios'
files.
dir_image - Multi directory specification for the
chd/disk/cartdrige/... image files.
dir_diff - Multi directory specification for the
disk image differential files.
dir_sample - Multi directory specification for the
zipped `sample' files. Only the zipped format
is supported.
dir_artwork - Multi directory specification for the
zipped `artwork' files. Only the zipped format
is supported.
dir_nvram - Single directory for `nvram' files.
dir_memcard - Single directory for `memcard' files.
dir_hi - Single directory for `hi' files.
dir_inp - Single directory for `inp' files.
dir_sta - Single directory for `sta' files.
dir_snap - Single directory for the `snapshot'
files.
dir_crc - Single directory for the `crc' files.
Defaults for DOS and Windows:
dir_rom - rom
dir_image - image
dir_diff - diff
dir_sample - sample
dir_artwork - artwork
dir_nvram - nvram
dir_memcard - memcard
dir_hi - hi
dir_inp - inp
dir_sta - sta
dir_snap - snap
dir_crc - crc
Defaults for Linux and Mac OS X:
dir_rom - $home/rom:$data/rom
dir_image - $home/image:$data/image
dir_diff - $home/image:$data/diff
dir_sample - $home/sample:$data/sample
dir_artwork - $home/artwork:$data/artwork
dir_nvram - $home/nvram
dir_memcard - $home/memcard
dir_hi - $home/hi
dir_inp - $home/inp
dir_sta - $home/sta
dir_snap - $home/snap
dir_crc - $home/crc
If a not absolute dir is specified, in Linux and Mac OS X
it's expanded as "$home/DIR:$data/DIR". In DOS and Windows
it's maintained relative.
For the `dir_rom' and `dir_image' the following file
combinations are tried:
* DIR/GAME/ROM.EXT
* DIR/GAME.zip/ROM.EXT
* DIR/GAME/ROM.zip/ROM
Where DIR is substituted with the directories specified, GAME
is the name of the game or machine emulated, ROM is the rom
name and EXT is the rom extension.
For the files searched in the `dir_image' option you can also
specify a different zip name prefixing the rom name
with the zip name without extension and the `=' char.
For example to run the `ti99_4a' emulator and load the
cartdriges `alpinerc.bin' and `alpinerg.bin' both contained in
the zip file `alpiner.zip' you can use this syntax:
:advmess ti99_4a -cart alpiner=alpinerc.bin -cart alpiner=alpinerg.bin
This feature is used automatically by AdvanceMENU to correctly
run AdvanceMESS software in zip files.
Display Configuration Options
This section describes the options used to customize the
display.
device_video_*
These options are used to customize the video drivers.
All the `device_video_*' options described in the `advdev.txt' file
can be used.
If you use a `System' video driver, you don't need to set these
options. They are mostly ignored.
With a `Generate' video drivers these options are used to select
and create the correct video mode. They are mandatory. You can use
the `advcfg' utility to set them interactively.
display_mode
Selects a specific modeline by its name.
:display_mode auto | MODELINE_NAME
Options:
MODELINE_NAME - Specific modeline, as named with
the `advv' utility.
auto - Automatically chooses the best modeline
available (default).
display_adjust
Controls how are generate the video modes. Correct use of this
option removes the need of any software stretching improving a
lot the game image.
For an introduction on how the program operates on video mode,
you can see the `install.txt' file.
:display_adjust none | x | clock | xclock | generate_exact
: | generate_y | generate_clock | generate_clocky
: | generate_yclock
Options:
none - No automatic video mode creation. Use only the
available modelines (default).
x - Adjusts the available modeline horizontal resolution
to match the game image's size. The stretched modeline
keeps all the clock attributes of the original
modeline. Also all other modeline attributes,
like doublescan and interlace, are maintained.
clock - Adjusts the available modeline's vertical clock
to match the game's frame rate.
xclock - Adjusts the available modeline's horizontal resolution
and the vertical clock.
generate_exact - Creates automatically some new modelines using
the format specified on the `device_video_format'
option. The generated modelines will be named `generate-*'.
Check the `advdef.txt' file for the description of
the `device_video_format' option or simply use the
`advcfg' utility to set it up correctly.
If the `device_video_format' option isn't
specified a default value for your monitor clock
limits is guessed.
generate_y - Like generate_exact, and it allows generating
modes with a wrong vertical size if a perfect mode is not
possible.
generate_clock - Like generate_exact, and it allows generating
modes with a vertical clock different than the game
original clock if a perfect mode is not possible.
generate_yclock - Like generate_exact, and it allows
generating modes with a wrong vertical clock and/or size
if a perfect mode is not possible. Modes with a correct size
are favorite over mode than a correct clock.
generate_clocky - Like generate_exact, and it allows
generating modes with a wrong vertical clock and/or size
if a perfect mode is not possible. Modes with a correct clock
are favorite over mode with a correct size.
The `generate' options are able to create at runtime all the
required modelines. You don't need to create a list of modelines
manually.
The not `generate' options use only the modelines defined with
the `device_video_modeline' option in the configuration file.
You can add them manually or using the `advv' utility.
Check the `advdev.txt' file for more details on the
`device_video_modeline' option.
Of all the `generate' options, the `generate_yclock' is the
suggested and the most powerful. The `advcfg' utility always
sets the `generate_yclock' option in your configuration file.
Of all the not `generate' options, the `xclock' is the
suggested and the most powerful.
If you can't get good result with the `generate' options you
should create a list of modelines and try with the `xclock' value.
You don't need to duplicate the same modeline with different
horizontal resolutions and/or the clocks, because the `xclock'
value allows the program to adjust them.
Instead, you should create a wide set of different vertical
resolutions on which the video mode can be chosen.
A good choice is to create all the resolutions with a step of
16 rows.
display_color
Controls the color format of the video mode.
:display_color auto | palette8 | bgr8 | bgr15 | bgr16 | bgr32 | yuy2
Options:
auto - Automatically choose the best option (default).
palette8 - Palettized 8 bits mode.
bgr8 - RGB 8 bits mode.
bgr15 - RGB 15 bits mode.
bgr16 - RGB 16 bits mode.
bgr32 - RGB 32 bits mode.
yuy2 - YUV mode in the YUY2 format.
Note that the 24 bit color mode isn't supported.
The modes are called bgr because in the video memory the order of
the color channel is: Blue, Green, Red.
display_resize
Suggests the favorite image stretching when a video mode
with the correct size isn't available.
This option doesn't have any effect for vector games, they are
always stretched to fit the whole screen.
:display_resize none | integer | mixed | fractional
Options:
none - Original size.
integer - Integer stretch, i.e. x2, x3, x4,...
mixed - Integer horizontal stretch and fractional
vertical stretch.
fractional - Fractional stretch (default).
The `fractional' option involves a slowdown, so use the `mixed'
option if you have a really slow machine.
Examples:
:display_resize mixed
display_magnify
Suggests the use of a double or bigger resolution video mode.
It is mainly used to enable the `scalex', `scalek', `lq', `hq' and `xbr'
effects. This option doesn't have any effect for vector games.
:display_magnify auto | 1 | 2 | 3 | 4
Options:
auto - Double, triplicate or quadruplicate the size until
targetting the defined display_magnifysize
horizontal size (default).
1 - Normal size.
2 - Double size.
3 - Triple size.
4 - Quadruple size.
display_magnifysize
Defines the target area to reach with the auto config of display_magnify.
The specified value is the edge of the square area to target.
For example, with 512 the game area is expanded up to reach the size
of 512*512 pixels.
:display_magnifysize SIZE
Options:
SIZE - Square root of the area to target. Default 600.
The default of 600 typicall uses a magnify
factor of 2.
display_scanlines
Suggests the use of hardware scanlines when choosing
the video mode.
:display_scanlines yes | no
Options:
yes - Try to select a singlescan video mode.
no - Try to select a doublescan video mode (default).
display_buffer
Activates the video image buffering.
:display_buffer yes | no
Options:
no - Doesn't use any buffering (default).
yes - Use the best buffering available.
display_vsync
Synchronizes the video display with the video beam instead of
using the CPU timer. This option can be used only if the
selected video mode has an appropriate refresh rate.
To ensure this you can use the option `display_adjust' to allow
a clock correction of the video mode.
:display_vsync yes | no
Options:
no - Use the timer.
yes - Use the video refresh rate (default).
You can enable or disable it also on the runtime Video menu.
display_restore
Selects whether or not to reset to default text mode at the
emulator exit.
:display_restore yes | no
Options:
yes - Resets to text mode (default).
no - Doesn't change the video mode.
display_frameskip
Skips frames to speed up the emulation.
:display_frameskip auto | FACTOR
Options:
auto - Auto frame skip (default).
FACTOR - Float factor for the fraction of frames
to display. From 0 to 1. To completely
disable the frame skipping use the
value 1.
Use `f11' to display the speed your computer is actually
reaching. If it is below 100%, increase the frame skip value.
You can press `f8/f9' to change frame skip while running the game.
When set to auto (default), the frame skip setting is
dynamically adjusted during runtime to display the maximum
possible frames without dropping below the 100% speed.
Pressing `f10' you can enable and disable the throttle
synchronization.
Examples:
:display_frameskip 0.5
Display Aspect Configuration Options
This section describes the options used to customize the display
aspect.
display_expand
Enlarges the screen area used by the vertical games on horizontal
monitors (and horizontal games in vertical monitors).
:display_expand FACTOR
Options:
FACTOR - Expansion float factor from 1.0 to 2.0
(default 1.25).
Examples:
:display_expand 1.1
display_aspect
Selects the aspect of the monitor used.
:display_aspect auto | X/Y
Options:
auto - Auto detection (default).
X/Y - Integer number starting from 1.
For 16/9 TV you can use the 16 and 9 values. For truly vertical
monitors (not horizontal monitors rotated) you can simply swap the
values, for example 3 and 4 instead of 4 and 3.
Examples: