********************************************************************************

        ArcadeOS Users Manual
        Version 2.5

        Anthony D. Saxton
        Copyright (c) 2002

        Portions written by: Brian Lewis

********************************************************************************

    I - Introduction .............................................. 1.0
        - History ................................................. 1.1
        - Purpose ................................................. 1.2
        - The Torch Passes ........................................ 1.3
        - The Future .............................................. 1.4

    II - Getting Started .......................................... 2.0
        - Preperation ............................................. 2.1
        - Folder Placement ........................................ 2.2
        - Installation ............................................ 2.3
        - Initial Run ............................................. 2.4
        - Basic Adjustments ....................................... 2.5

    III - General Use ............................................. 3.0
        - Starting Up ............................................. 3.1
        - Selecting Games ......................................... 3.2
        - Hot Keys ................................................ 3.3

    IV - ArcadeOS Menus ........................................... 4.0

        - Using Menus ............................................. 4.1

        - Control Menu ............................................ 4.2
            - Game Config ......................................... 4.2.1
                - Mame Exe ........................................ 4.2.1.1
                - Cheats .......................................... 4.2.1.2
                - Record .......................................... 4.2.1.3
                - Playback ........................................ 4.2.1.4
                - Create Log ...................................... 4.2.1.5
                - Remaining Options ............................... 4.2.1.6
            - Game Info ........................................... 4.2.2
            - Check ROMS .......................................... 4.2.3
            - Emu Info ............................................ 4.2.4
            - Move to Custom List ................................. 4.2.5
            - Display Custom List ................................. 4.2.6
            - Default Config ...................................... 4.2.7
                - Mame Exe ........................................ 4.2.7.1
                - Cheats .......................................... 4.2.7.2
                - Record .......................................... 4.2.7.3
                - Playback ........................................ 4.2.7.4
                - Create Log ...................................... 4.2.7.5
                - Remaining Options ............................... 4.2.7.6
            - ArcadeOS Config ..................................... 4.2.8
                - Main ............................................ 4.2.8.1
                - Display ......................................... 4.2.8.2
                - Colours ......................................... 4.2.8.3
                - Screen Shots .................................... 4.2.8.4
                - Information ..................................... 4.2.8.5
                - Screen Saver .................................... 4.2.8.6
                - Keyboard ........................................ 4.2.8.7
                - Joystick/pad .................................... 4.2.8.8
                - Mouse ........................................... 4.2.8.9
                - Shift Keys ...................................... 4.2.8.10
                - Sounds .......................................... 4.2.8.11
                - Filters ......................................... 4.2.8.12
            - Update Game Names ................................... 4.2.9
            - File Menu ........................................... 4.2.10
                - Add ROMS to EMU ................................. 4.2.10.1
                - Update EMU ...................................... 4.2.10.2
                - UPDATE.BAT ...................................... 4.2.10.3
            - Center Screen ....................................... 4.2.11
            - Test Patterns ....................................... 4.2.12
            - DOS Shell ........................................... 4.2.13
            - Change Emu .......................................... 4.2.14
            - Exit ArcadeOS ....................................... 4.2.15

    V - Hardware Interfacing ...................................... 5.0

    VI - Configuration File ....................................... 6.0

    VII - Emulator/Game Data Files (DAT) .......................... 7.0

    VIII - Emulator/Game Application Files (APP) .................. 8.0

    IX - Emulator/Game List Files (NMS) ........................... 9.0

    X - Optional Text Dispay Files (LCD) .......................... 10.0

    XI - Other Arcadeos Support Files ............................. 11.0

--------------------------------------------------------------------------------
1.0 - INTRODUCTION

    Welcome to the first User's Manual for ArcadeOS! Until now, on had to
carefully study the Technical (AOSTECH.DOC), Version History (ARCADEOS.DOC) and
the various support files for ArcadeOS to just start to have an understanding of
the power and use of ArcadeOS. My hope is that this manual will supply
everything you need to know about ArcadeOS.

    I have attempted to format this manual for the Beginner and Power User
alike. If you're just getting started, jump to the GETTING STARTED chapter and
follow the step-by-step instructions to get your Mame configuration running
with a minimal amount of work. Once things get going, I'm sure you'll want to
exploit some of the many features incorporated into ArcadeOS. For that purpose,
the rest of the manual is written for rapid lookup of each feature.

1.1 - HISTORY

    I sent an email to Brian Lewis, requesting a short paragraph covering the
history ArcadeOS. What I received back just a little bit more than a paragraph.
Brain said, "The funny thing is that I always meant to put up a history of
ArcadeOS; as it is fairly interesting (well - to me anyway :)) The following is
a bit more than a paragraph, but just gives you more to cut out :)" Well, I also
found it way too interesting to cut any of it out, so Brian's ArcadeOS history
follows in its entirety:

--------------------

It was 1998, 
I'd been collecting arcade cabinets and boards for a couple of years - I'd
recently left my job as a games programmer (I used to write PSX and Saturn
games, years before that I used to write games for old home computers) and I
was filling the 'hole' left in my life by collecting full size arcade games.


At this point- the dining room was filling up a bit.

I also had 'normal' video games in the front room - which I said I'd also move
out to  the dining room; so there was just one room in the house 'littered'
with video junk.

I then thought , rather than putting a TV into the dining room - 'why not just
make up JAMMA harnesses for the video games and put them into the cabinets ?'

Which I did, and then sent a 'how to' write up to the Sega Saturn site 'UK
Resistance'

which you can still fine in the web archive...

http://web.archive.org/web/19980615061845/www.mars01.demon.co.uk/saturn/
brian.htm

I used to hold arcade parties - and the 'Consoles in a cabinet' were a big hit
-  especially the Saturn, with the ST-V games like 'Athelete Kings/Decathlete'

A few guys in work were playing with emulators - mainly MAME, and said that
since I'd got consoles running in cabinets - why not try it with a PC ?

I had a fair few 'classic' arcade boards , so I wasn't that interested, but I
started playing around with MAME to see what it was all about. (It was MAME
version 0.33 at the time)

I ran MAME and the originals side by side - and there really wasn't that much
difference; the main thing that was slightly wrong was usually the sound.

I had a couple of weeks off work, so set about getting emulators running in a
cabinet. All the 'MAME in an Arcade Cabinet' projects I'd seen simply replaced
the arcade monitor with a VGA one; this is something I didn't want to do.

I had a lot of real boards I still wanted to run in the cabinets and also the
games looked better if run on a monitor with the 'right' dot pitch.

I got MAME running directly on an arcade monitor with it's '-NTSC' option, but
had no way of selecting games.

So I set about writing a small frontend, it was called 'menu' it was simply a
list of the file names with a coloured cursor to select them.
The criteria for the front end were:
.It had to run on an arcade monitor
.It had to be usable with nothing but a joystick and 3 buttons
.It had to able to orient vertically and horizontally

Once I had that , I had my emulator cabinet.

As there was nothing like it at the time, I posted details up to the newsgroup
- rec.games.video.arcade.collection

saying what I'd done and asking if anyone wanted to shove it up on a website

http://groups.google.com/groups?q=group:rec.games.video.arcade.collecting+
author:blewis%40vti.ie&hl=en&lr=&ie=UTF-8&selm=35D8175D.1AA1B062%40vti.ie&rnum=3

A few people replied - one of them was Mike Coates; the guy that wrote the
68000 ASM engine in MAME - though I didn't know that at the time.

Eventually, Tim Eckel of Arcade@Home put 'menu' up on his site.

Towards the end of 1998 - I put a lot of effort into 'menu' and it turned int
ArcadeOS, then put together the 'PC2JAMMA' page.

I added a lot of lowlevel stuff AOS, to enable other emulators without native
-NTSC support to run on arcade monitors. I then made an 'arcade friendly'
version of System16, and created cabMAME - a verison of MAME with a lot more
arcade  and TV modes.

Eventually - I became a 'MAMEDEV' - though only really did things to do with 
arcade/TV modes; and theses days I don't work on it at all.

Just to prove it could be done - I wrote a very optimised emulator 'VAntAGE' -
designed to run full speed on a 486s. (and arcade monitors - of course)

Once I'd done all that; I was pretty much bored by the emulation scene - I'd
done far more than I set out to; and the interest and excitement of doing
something new had completely gone. Besides - other people were now doing the
same sort of thing.

These days - I never use emulators and I'm back to collecting arcade boards  -
though the number of cabinets has reduced to just 1

Brian

------------------------

1.2 - PURPOSE

Brian Lewis created ArcadeOS for the primary purpose to interface Mame into an
arcade cabinet using the actual arcade monitor and controls. This was the first
Mame frontend to display properly on a 15KHz monitor and is still the only one
that displays vertically on any monitor!

1.3 - THE TORCH PASSES...

Brian Lewis, the creator of ArcadeOS left the Mame scene because it just didn't
fit into his life anymore. Since Brian was no longer building Mame cabinets, but
rather restoring original arcade machines, there was no benefit to him to
improve upon it. Brian last updated ArcadeOS in October of 2001 to correct a
few incompatibilities with newer versions of Mame and this provided the stable
version that users have relied upon for over a year.

With the release of Mame 6.0 in 2002, many features were added and some arcade
video support was abandoned. Other variants of Mame, such as Advance Mame and
VBMame took up the reins to support this segment of the Mame community. Since
ArcadeOS was no longer officially supported, other frontends have attempted to
replace ArcadeOS. Unfortunately, these other versions don't hold up against
ArcadeOS even in its crippled condition.

I attempted to correct some of the flaws of ArcadeOS by making some unofficial
changes to Advance Mame. This was okay for the small segment of us that
realized the perfection of an ArcadeOS / Advance Mame setup, but it left the
majority of ArcadeOS users out in the cold to struggle with "crippleware" of an
unsupported package. The reason I hadn't attempted to fix ArcadeOS itself was
that the compiler used for the Real Mode portion of the program just wasn't
available to me. Once I finally found the Borland C++ package (Thanks to
Macgaiver!), I was finally able to start diving into the code and fix the
problems it had as well as add the features I knew it deserved.

1.4 - THE FUTURE OF ARCADEOS

I intend to support ArcadeOS for as long as it keeps my interest and users
express their appreciation and support. As new features are added to Mame and
AdvanceMame, or an even better variant of Mame comes to light, I intend to add
features to support them. My next project is to add Language support to
ArcadeOS. If you speak a language that you'd like supported, please submit to
me a list of translations along with the original english of all of ArcadeOS's
menus and DAT files. I will include them in the release along with credit to
those that helped. If you have other ideas for improvements or corrections,
please submit them to me.

--------------------------------------------------------------------------------
2.0 - GETTING STARTED

Before you get started, make sure you have all of the components you need to
get things going. Trust me. Setup goes a lot easier with a little preperation.

2.1 - PREPERATION

If you haven't already, setup a clean DOS drive or partition for Mame to run
on. While ArcadeOS and Mame will work acceptably from Windows, the overhead
involved may well produce unfavorable results. I recommend installing DOS 7
from a Windows 95* or Windows 98* package. There are various sites on the
internet that will tell you all you need to know to accomplish this. Since this
manual is for the purpose of using just the frontend ArcadeOS, it would go well
beyond the intended scope. Suffice it to say that you would be much better off
using DOS 7 rather than DOS 6 because of the 2GB drive size limit of DOS 6.
Mame, with a full compliment of ROM files exceeds 6GB of drive space!

Be sure to have everything you need installed and tested. This includes DOS
sound drivers that are unique for your particular card or system and DOS video
drivers (TSRs) for your video card. ArcadeOS has built-in support for ATI's
range of Rage type cards, but it's still recommended that you add ArcMon
(available from the same site you got AdvanceMame from) for DOS support with
the ATI Rage card. If you're using a Trident Blade or S3 type video board,
install the MonArc Pro package for your card. If you're using a Pentium II, III
or Celeron type processor, add the FastVid package to improve the speed of any
PCI or AGP video card.

2.2 - FOLDER PLACEMENT

In my scouring of web sites and discussion groups I've seen a plethora of
misinformation concerning the placement of folders (directories) for Mame.
While you could just install everything where you want, or even put it all in
one folder, updating and maintenance is a lot easier with logical placement of
your packages.

Your DOS installation should have DOS in its own folder with Windows' COMMAND
folder with all of its files within that folder. Additionally, I recommend
having your Sound, Joystick, Video as well as any other additional hardware
drivers installed into the main directory in their own folders. Andrea
Mazzoleni, of Advance Mame has a special package of utilities called AdvanceCAB
available for download at http://advancemame.sourceforge.net/ with many extras
that you might find usefull, even if you don't use Advance Mame!

Mame, no mater what variant or version, should be installed in a folder titled
"MAME." This folder should contain the executable (dmame.exe or the like),
support files and space permitting, all of Mame's subfolders. The tree might
look something like this:

C:\MAME --- dmame.exe
         |- hdcomp.exe
         |- romcmp.exe
         |- whatsnew.txt
         |- license.txt
         |- mame.cfg
         |- cheat.dat
         |- hiscore.dat
         |- history.dat
         |- ARTWORK ---   PNG and PCX type graphics.
         |- CFG ---       default.cfg and config files for each game.
         |- CTRLR ---     Controller definition files.
         |- DIFF ---      Game dif files.
         |- DOCS ---      Mame documentation.
         |- HI ---        Game high score data files.
         |- INP ---       Game input files.
         |- MEMCARD ---   Game memory card storage.
         |- NVRAM ---     Game non-volatile memory storage files
         |- ROMS ---      Your Mame romset collection
         |- SAMPLES ---   Sound samples for those games that require them.
         |- SNAPS ---     Game snapshots generated by pressing F12 during game
         |                     or downloaded from the internet.
         |- STA ---       Status files used by games
         '- ... etc.

Any or all of the folders within the Mame directory may be moved to alternate
locations on or off of the primary drive/partition. This facilitates more games
in a situation such as DOS 6, or maintaining the files from a separate drive.
You might separate the ROM files into folders by topic or language such as
PACMAN, ADULT or such. ArcadeOS has facilities to support listing such folders
into individual menus. If you do this, be sure to change the pointers to these
directories in mame.cfg (or advmame.rc).

Test your Mame installation by running one or more games from the command
prompt. Just launch a game to see if it works. Refer to your Mame documentation
for specific instructions. IE:

C:> dmame simpsons -monitor arcade

If you've set everything up correctly, the game should load and start playing
its intro loop. If it doesn't, go back and check your settings. If all goes
well, you're ready for ArcadeOS!

2.3 - INSTALLATION

ArcadeOS and all of its support files should be installed into its own folder.
They easiest way to accomplish this is to simply unzip the file to where you
want it or, if from Windows, drag the unzipped folder directly to the closed
DOS drive. The resulting directory tree should look something like this:

C:\ADVMAME --- advmame.dat    - Config file for Advance Mame.
            |- aos_man.doc    - This manual. You're reading it!
            |- aostech.doc    - AOS Technical Documentation.
            |- arcadeos.bin   - Protected Mode AOS application.
            |- arcadeos.doc   - AOS Revision History.
            |- arcadeos.exe   - ArcadeOS Launcher.
            |- arcadeos.fnt   - Fonts for ArcadeOS.
            |- arcadeos.hlp   - Help Screen for ArcadeOS.
            |- error.wav      - Error sound (Crash!).
            |- game.wav       - Game launch sound.
            |- license.txt    - AOS License text. Required!
            |- mame.dat       - Config file for Mame and variants.
            |- pmwrap.exe     - ArcadeOS communication to/from Mame.
            |- saver.wav      - Start Screen Saver sound.
            |- shutdown.wav   - Quit sound.
            |- startup.wav    - Startup sound.
            '- window.wav     - Open Menu Window sound.

Of course, many more files will be created in this folder when ArcadeOS is
finally run, and you might add additional files to support other emulators. The
above list are only the required files to get started. Do you see how confusing
things would become if  we merged this list with those in the Mame folder? Best
they be kept in their own folder.

2.4 - INITIAL RUN

The very first time you run ArcadeOS, it is advisable that you do so with a
normal SVGA monitor attached. At least until you get the arcadeos.cfg file
adjusted for the arcade monitor.

If you have dmame.exe installed and if it's in the proper c:\mame\ directory,
then ArcadeOS should initially startup with a list of games. No muss, no fuss!

If you're like the rest of us though, a message indicating that Mame wasn't
found where it was expected. This is a fully expected situation and doesn't
mean there's anything wrong with your setup. In all likelyhood, this is a good
sign. It means you didn't have a crash when the configuration file was created!

Even if the list appeared in all of its glory, you're not quite done
installing. Press the Escape key (ESC) on your keyboard to get back to DOS.

2.5 - BASIC ADJUSTMENTS

From the DOS prompt, enter "EDIT ARCADEOS.CFG" to make a few changes. The first
few lines contain your Mame setup. Set these to reflect your setup:

--------------------
#path for mame
mamepath=c:\mame\

#executable for mame
mameexe=dmame.exe

#executable used to get game and clone list
infoexe=dmame.exe

#configuration file used by mame executable 
config=mame.cfg
---------------------

Above are the default settings. If you're using DOS Mame, these settings should
work perfectly. If you're using Advance Mame, you chould change the executables
to "advmame.exe" and the configuration file to "advmame.rc" so that the proper
settings are effected. Any other variant of Mame should only have the
Executables changed.

Moving down the file a bit you should find the field:

--------------------
#Options passed to MAME for NTSC/Arcade monitor mode
arcmodeopt=-monitor arcade

#Options passed to MAME for PAL TV mode
palmodeopt=-monitor pal
--------------------

Again, these settings are for the DOS Mame default. If you're using Advance
Mame, clear these fields. Advance Mame uses ADVCFG to set these values.

The next couple of fields are the final initial setup fields. Your Sound card:

--------------------
#Type of soundcard to use
#0=Silence
#1=Sound Blaster
#2=Sound Blaster AWE32
#3=Pro Audio Spectrum
#4=Ultrasound Max (CS4231 Codec)
#5=Ultrasound
#6=Windows Sound System
#7=Ensoniq Soundscape
soundcard=0

#Sample rate to use
samplerate=22050
--------------------

If you're running from DOS with any SoundBlaster Emulation (Or a real ISA
Soundblaster), you should set the soundcard to #1. All the others pretty much
require the Windows drivers be installed an running. If you have problems here,
it's likely because your drivers aren't properly configured. ISA emulation from
PCI slot cards may be difficult to achieve.

Feel free to peruse the Config file and become accustomed to the format and
settings. Keep in mind that most of the adjustment can be made within ArcadeOS'
menus.
--------------------------------------------------------------------------------
3.0 - GENERAL USE

ArcadeOS was designed from the onset to be very user intuitive in actual use.
Making it user friendly is what makes setup more difficult. Once you have it up
and running, probably the easiest way to learn how to use it is to put a 7-13
year old child in front of it and watch them use it! We adults always need to
make things so much more complicated than it has to be!

3.1 - STARTING UP

Starting ArcadeOS is as simple as typing "arcadeos" from within the arcadeos
directory! The idea, though is to have a system totally devoid of a PC keyboard
that will startup your cab on its own. With this reasoning in mind, a batch file
has been included to be added to the end of your AUTOEXEC.BAT file. This batch
file will clear the screen, prepare the keyboard buffer (avoids odd behaviour
from batch loading) and launches ArcadeOS.

Simply add ";\arcadeos" to your PATH line in AUTOEXEC.BAT and end it with a
line containing the word "GO" to launch the batch file.

If you'd like the system to automatically shutdown at the end of your session,
and you previously installed AdvanceCAB (as I suggested), add ";advcab" to your
path and a line following GO with the word "OFF" to execute the auto-shutdown
program of that package.

Now just restart and you're ready to play games!

3.2 - SELECTING GAMES

Selecting and playing games is as simple as using the joystick (or keyboard's
arrow keys) down and up to move from one game to the next or previous game,
right or left to jump a page at a time to find your game choice. Press Player 1
to start the game. When you're finished with a game, use the dafault shortcut to
exit by pressing both Player 1 and Player 2 Start buttons simultaniously. These,
like all other shortcuts and hot keys may be changed in ArcadeOS's menus or
configuration file.

3.3 - HOT KEYS

ArcadeOS uses pretty much the same keys as Mame to simplify using it in an
arcade cabinet. Of course, like Mame, all of these keys may be redefined. For
basic use the following keys apply:

Mame Button  |   Key   |  Function
--------------------------------------------------------
Start 1      |   '1'   | Run the selected Game.
Start 2      |   '2'   | Bring up Control Menu.
Start 3      |   '3'   | Display Game Info.
PL 1/B 1     | 'L-CTRL'| Alter orientation of selected game.
PL 1/B 2     | 'L-ALT' | Select orientation group (all, horz, rotated)
PL 1/B 3     | 'Space' | Toggle display and list orientation.
             |         | - Also triggers monitor rotation hardware.
PL 2/B 1     |   'A'   | Run a Random Game.
PL 2/B 2     |   'S'   | Move selected game into a Custom List.
PL 2/B 3     |   'Q'   | Display Online Help.
PL 3/Left    |   'J'   | Cycle to next Emulator (If other emulators added).
Coin In #2   |   '6'   | Same as above.
Coin In #3   |   '7'   | Cycle through Custom Lists.

--------------------------------------------------------------------------------
4.0 - ARCADEOS MENUS

    Many of ArcadeOS's most powerful features can be controlled from a
collection of menus. This simplifies changing these options over the
alternative of modifying the configuration file. Of course, anything that
effects the startup process (Such as sound hardware), or how ArcadeOS works
with files will have to be changed in the configuration file via a text editor.

4.1 - USING MENUS

Using the menus in ArcadeOS is actually pretty straight forward. Pressing
"Player 2 Start" will bring the Control Menu up, and then selecting from the
menus follows the same convention as selecting a game, use the joystick and
then "Player 1 Start" to select the item. To exit any menu, press "Player 2
Start" again or press "ESC"

4.2 - CONTROL MENU

The "Control Menu" is the menu that appears when "Player 2 Start" is pressed.
Following are descriptions of all the menus, and their function and/or submenus.

4.2.1 - GAME CONFIG

Game Config brings up a list of user editable options for the currently
selected game. This list will be different depending on whether Mame, Advance
Mame or another Emulator is in use.

4.2.1.1 - MAME EXE

This option available only in Mame (or Advance Mame) allows you to select an
alternative version/varient of Mame. To use this feature, have the alternate
version in your MAME folder named any of the following names: advmame.exe,
mame.exe, dmame.exe, vsmame.exe or alt.exe.

Note: obviously, one of the above will be your default name, so you may have up
to four alternates to choose from. Also, Advance Mame uses advmame.rc for
configuration rather than the other variants that use mame.cfg. If your default
Mame is Advance Mame, the remaining mame specific options will be unavailable
for change in Game Config. Likewise, if your default is any other version of
Mame and you select advmame here, the settings will not work with it.

4.2.1.2 - CHEATS

This option turns cheats on or off for the currently selected game.

4.2.1.3 - RECORD

When on, will Record player actions during the currently selected game.

4.2.1.4 - PLAYBACK

When on, will play back the previously recorded play actions for the selected
game.

4.2.1.5 - CREATE LOG

If on, enables logging during the selected game.

4.2.1.6 - REMAINING OPTIONS

The remaining options are specific to the variant of Mame or other emulator
being played. Refer to the documentation of that program for explanations of
their function.

4.2.2 - GAME INFO 

Displays Information about the currently selected game. This is the equivalent
of pressing the "Coin 3" key/button.

4.2.3 - CHECK ROMS

Only available for Mame. Not available for Advance Mame (Sorry, Advance Mame
doesn't have an equivalent feature.)

This instructs Mame to test the current game's romset and sound samples. It
will display the results in a new window. Press "Player 2 Start" to exit.

4.2.4 - EMU INFO

Displays the "README.TXT" file that is present in the Mame directory.

4.2.5 - MOVE TO CUSTOM LIST

Displays a list of Custom Lists to select a list to move the currently selected
game into. Press "Player 2 Start" to abort.

4.2.6 - DISPLAY CUSTOM LIST

Allows user to switch Custom List displayed. Press "Player 2 Start" to abort.

4.2.7 - DEFAULT CONFIG

This feature displays the same list as the above GAME CONFIG option. This
differs in that the configuration file for the current emulator will be
modified. Any changes here will effect all games played. Be carefull here!

4.2.7.1 - MAME EXE

This has the same function as that in GAME CONFIG, but will effect all games.
It is not recommended that this option be changed in this menu!

4.2.7.2 - CHEATS

Enables/Disables cheats in all games.

4.2.7.3 - RECORD

Enables/Disables recording of player actions in all games. Note: This will
significantly slow down game play.

4.2.7.4 - PLAYBACK

If enabled, causes previously recorded player actions to be played back for all
games. It is not recommended that this be set in this menu.

4.2.7.5 - CREATE LOG

Creates a new log for each game played. Previous logs are erased each time a
new game is played. Note: This will significantly slow game play!

4.2.7.6 - REMAINING OPTIONS

The remaining options are specific to the variant of Mame or other emulator
selected. Refer to the documentation for the emulator for the function of these
settings. Note: Changes here will effect all games played by this emulator.

4.2.8 - ARCADEOS CONFIG

This menu allows control of ArcadeOS itself. These options can be very powerful
an present a great source of confusion. When in doubt, refer to this manual for
explanations of what you are about to, or just changed.

4.2.8.1 - MAIN

Options for general ArcadeOS behaviour:

    Skip Nag Screens - Uses a series of left and right arrows to bypass
Copyright "Nag" screens when a game is run. Has no effect in ArcadeOS or
emulators that don't recognize this feature.

    Cocktail Mode - Enables/Disables Cocktail Mode in ArcadeOS. If enabled,
screen will flip to the orientation of the play that moves the joystick or
presses a button.

    Cocktail Delay - Sets the Delay before allowing second player to flip the
screen again. (Reduces confusion when 2 players are combating for control!)

    Diagonals - Allows flipping of Vertical Orientation in Cocktail Mode.

    Button 1 - Enables/Disables Button 1 to Change Orientation of selected
game. Default=On

    Button 2 - Enables/Disables Button 2 to Select Orientation of current list.
Default=On

    Button 3 - Enables/Disables Button 3 to Toggle Screen and List Orientation.
Default=On

    NeoGeo C.List - Selects Custom List to move ALL NeoGeo games to.
Default=Don't Move

    Vector C.List - Selects Custom List to move ALL Vector games to.
Default=Don't Move

    Quick Start - If Enabled, turns off ROM scan during startup. Default=Off

    Auto Disable - If Enabled, Disables all games listed as NonWorking by Mame.
Default=Off

    Auto Rotate - If Set, Adjusts all Vertical Games to display Right or Left.
Has the added feature of causing button 3 to select only appropriate Rotation.
Default=Off

    Easy Center - Causes ArcadeOS to attempt to adjust centering for Mame.
(Doesn't always work. Default=Off

    Use CRC32's - Checks Cyclic Redundency of ROMs when scanning. Convenient
for disabling incomplete sets, but slows ArcadeOS startup greatly. Default=Off

    Run Last Game - Enables/Disables AutoRun of last game played when ArcadeOS
is started. Default=Off

    FileMenu Drive - Sets Drive used by the File Menu below. May be set to any
Floppy, HD or CD drive. Default=A

4.2.8.2 - DISPLAY

    320x200 Mode - If 'On' ArcadeOS will display in 320x200 mode (default).
                   If 'Off' ArcadeOS will display in 640x480 mode.
                   Not available if ATI card not used and no TSR driver is
installed.

    Font Size - Only available in 640x480 mode. Selects various fonts available.

    Font Shadow - Sets Display Font shadow to None, 1 (default) or 2.

    Main Width - Sets width on Game List window.

    Transparency - Sets transparency of Game List Window.

    Flip X - Mirrors Horizontal pixels of monitor. Convenient for mirrored
displays.
    Flip Y - Mirrors Vertical pixels of monitor. Convenient for mirrored
displays.

    Explode Window - Expands display to fit Window. Default=On

    Wrap Cursor - If enabled, allows cursor to wrap from bottom to top or
visa-verse. Default=Off

4.2.8.3 - COLOURS

    Scheme - Allows Selection of 4 Themes for ArcadeOS Windows

    Forecolour - Sets the color of normal text. Default=15 (white)

    Extra Colour - Sets the color of info text. Default=14 (yellow)

    Cursor Colour - Sets the highlight color of cursor bar. Default=5 (violet)

    Clone Colour - Sets the color of Clone and Menu text. Default=7 (light grey)

    Disable Colour - Sets the color of Disabled games. Default=8 (dark grey)

4.2.8.4 - SCREEN SHOTS

    Rotate BD - Rotate Screenshots when orientation changes. Default=no

    S.Shot on run - Display Screenshot when game run. Default=no

    S.Shot on move - Display Screenshot when game selected. Default=yes

    S.S. dir: move - Allows choice between Snapshot, Cabinet or Flyer when Game
Selected.

    S.S. dir: run - Allows choice between Snapshot, Cabinet or Flyer when Game
Run.

    S.S. dir: info - Allows choice between Snapshot, Cabinet or Flyer when Game
Info Shown.

    Scale S.S. up - Scales smaller Snapshots to fit ArcadeOS window. Default=yes

    S.S. Position - Positions Snapshots TopRight, BottomRight, MidRight or
Centre (No effect if Scaling is on.) Default=Centre.

    Screen Tint - Changes Tint color of Snapshots. Default=Normal

4.2.8.5 - INFORMATION

    Information - Sets Displayed information Shown in ArcadeOS:
                    Full - All info is shown (Default)
                    S.S.Only - Only Screenshot (If enabled). No info.
                    S.S.+Name - Screenshot (If enabled) with name at bottom.
                    Games - Only Game titles. No additional info.
                    Games+Tot - Games with Game Count at bottom. (No
Orientation info)

    Merged ROMs - Displays all missing clones. Convenient if you have merged
ROMs. Normally, Mame ROMs are not distributed in this fashion. If you have grey
repeats of games, or grey games that won't play, turn this off. Default=on

    C.List is Copy - Sets Custom Lists to be replacates of Standard list. This
is conveient if Custom List feature is not used or Filters will be used to
choose list in each List. Default=off

    Filters Active - Enables Filtering (See Filters below). Convenient when
used in conjunction with above "C.List is Copy" to filter each Custom List
specifically.

    Unknowns - Enables display of ROMs not in Mame's reported list. Usefull if
Mame is malfunctioning. Default=off

    Show Command - Display command used to load game. Usefull for diagnostics.
Default=off

    Trap Errors - Reports error message when Mame fails to run a game.
Default=off

    Hide Warnings - Don't display Mame Warnings. Default=off

    Show 'Run' dlg - Display a 'Running' dialog when loading a game. Default=off

    Capitalize - Capitalize Titles. All (default), None, Short or Long.

4.2.8.6 - SCREEN SAVER

    Saver Type - Selects from Various Screen Savers.

    Saver Time - Sets time before Screen Saver starts. 0-300 seconds (180
default).

    Shot Type - Sets type of Screenshots used. Cycle (default), Standard or
Random.

    Shot Delay - Delay befor Screenshot is changed. 0-300 seconds (100 default).

    JBox Delay - If Jukebox is selected, delay before game is aborted. 0-255
seconds.

4.2.8.7 - KEYBOARD

ArcadeOS defaults to use the same keys as Mame uses to make it as simple as
possible to configure a cabinet. Just as Mame can have the default keys changed
for your specific configuration, so can ArcadeOS. All of the keys below can be
adjusted to any other key. Like in Mame, changing these could cause real
confusion! Below are the default settings:

    AutoRepeat - 7                    Game Info - 5
    Move Up - Up Arrow                Close Popups - Esc
    Move Down - Down Arrow            Online Help - Q
    Page Up - Right Arrow             Custom List - S
    Page Down - Left Arrow            Screen Shot - F12
    games orient - Ctrl               Change Emu - 6
    games shown - Alt                 Change List - 7
    Orient of AOS - Space             Emu Menu - 8
    Lock AOS - L                      CList Menu - 9 
    Random Game - A                   Move Up 2 - R
    Exit AOS - Esc                    Move Down 2 - F
    Control Menu - 2                  Page Up 2 - D
    Run Game - 1                      Page Down 2 - G
    
4.2.8.8 - JOYSTICK/PAD

    Joy Type - Selects Joystick Type. Default=None

    Joy Buttons - Various Settings depending on Joystick. Adjusts how Joystick
interacts with ArcadeOS

4.2.8.9 - MOUSE

    Mouse Type - Selects between None (default) Mouse, Trackball or Spinner.
Arrow Cursor is only present when mouse selected. Trackball and Spinner control
highlight cursor.

    Mouse Trails - Only available if Mouse selected above. Creates "Trail"
effect.

    Double Click - Delay count for double-click speed.
    Swap Buttons - Swap buttons 1 & 2 any device.
    Sense Settings - Adjust speed of device.

4.2.8.10 - SHIFT KEYS

    ArcadeOS lets you remap upto 40 keys and each remapped key can generate 2 key
presses. For example, you can remap 'Escape' to generate 'Alt-Q' 

The remapper works with most emulators (real and protected mode) 
Emulators which currently cannot be remapped/have problems:- 
    Advance Mame : Remapping is not reliable.
    KGen98 and ZSNES : Remapping only works in a Windows DOS box 
    Magic Engine and Rage : Currently cannot be remapped 

    Start1+2=Esc - Enables Remapping of ESC to the combo of 1 Player Start and
2 Player Start combo. Default=off

    Shift/Remap On - Enables other Key Remappings for Emulators. Default=off

4.2.8.11 - SOUNDS

    What would a Mame Frontend be without sound? ArcadeOS comes with a
collection of sounds that give the true feel of a game arcade. If you grow
tired of them, you can readily find additional sounds to substitute for the
default sounds. Frequently, sounds are created out of pitch or of too low or
high volume from the original sound. ArcadeOS makes it very easy to adjust each
sound so it sounds best. Below are the settings limits and (defaults):

    Overall Volume - 0-15 (Default 15, Max Volume)
    Startup Volume - 0-15 (15)
    Startup Pitch - 0-100 (Default 50, Middle C)
    Exit Volume - 0-15 (15)
    Exit Pitch - 0-100 (50)
    Window Volume - 0-15 (15)
    Window Pitch - 0-100 (50)
    Error Volume - 0-15 (15)
    Error Pitch - 0-100 (50)
    Saver Volume - 0-15 (15)
    Saver Pitch - 0-100 (50)
    Launch Volume - 0-15 (15)
    Launch Pitch - 0-100 (50)

4.2.8.12 - FILTERS

    Filters are used in combination with each other. The default settings will
display all of your games in the given List if "C.List is Copy" and "Filters"
are enabled in the MAIN menu above. If "C.List is Copy" is disabled, Filters
will only effect the Standard list.

    ROM Folder - Selects rom folder item from Mame's configuration file. If you
separate your roms into subfolders, list them in Mame's rom path seperated by
semicolons (;). Setting this option to 1 to 10 will display only the contents
of that folder. If set to 0, all games will be listed. Range:0-10 (Default=0)

    Horizontal - Selects Horizontal Games for listing. Default=yes

    Vertical - Selects Vertical Games for listing. Default=yes

    Vector - Selects Vector Games for listing. Default=yes

    Raster - Selects Raster Games for listing. Default=yes

    Minimum Year - Oldest range of games to display. Default=1970

    Maximum Year - Newest range of games to display. Default=2010

    Min Players - Minimum number of Players range to display. Default=1

    Max Players - Maximum number of Players range to display. Default=8

    Min Buttons - Minimum number of Buttons range to display. Default=0

    Max Buttons - Maximum number of Buttons range to display. Default=10

    2 Way Joy - Selects Games that require 2-Way Joysticks. Default=yes

    4 Way Joy - Selects Games that require 4-Way Joysticks. Default=yes

    8 Way Joy - Selects Games that require 8-Way Joysticks. Default=yes

    Double 2 Way - Selects Games that require Dual 2-Way Joysticks. Default=yes

    Double 4 Way - Selects Games that require Dual 4-Way Joysticks. Default=yes

    Double 8 Way - Selects Games that require Dual 8-Way Joysticks. Default=yes

    Paddle - Selects Games that require Paddle(s). Default=yes

    Dial - Selects Games that require Dial(s). Default=yes

    Trackball - Selects Games that require Trackball(s). Default=yes

    Stick - Selects Games that require Shifting-Type Stick(s). Default=yes

    Min X Res. - Minimum Horizontal Resolution range to display. Default=0

    Max X Res. - Maximum Horizontal Resolution range to display. Default=1280

    Min Y Res. - Minimum Vertical Resolution range to display. Default=0

    Max Y Res. - Maximum Vertical Resolution range to display. Default=1280

4.2.9 - UPDATE GAME NAMES

    This option is only available for Non-Mame emulators. Its function is to
update the list of games from the emulator's designated source. Mame does this
automatically if the Quick Start feature is not enabled.

4.2.10 - FILE MENU

    This option presents a menu for the purpose of Updating Mame and/or it's
ROMs. It has limited function now that ROMs are normally distributed on CD
rather than floppy disk, but can be used if the CD is arranged appropriately.

4.2.10.1 - ADD ROMS TO EMU

    This will automatically copy ROMs from the FileMenu Drive (see ARCADEOS
CONFIG:MAIN) to the designated ROM folder for this emulator.

4.2.10.2 - UPDATE EMU

    This will copy a file from the FileMenu Drive (see ARCADEOS CONFIG:MAIN) by
the same name as the current emulator to the emulators folder. Replacing the
previous copy.

4.2.10.3 - UPDATE.BAT

    This will attempt to execute a batch file titled UPDATE.BAT from the
designated FileMenu Drive (see ARCADEOS CONFIG:MAIN). This feature can be most
powerful for updating from CD. Simply create an UPDATE.BAT in your HD's main
directory to process the copy job from the CD and set your FileMenu Drive to 'C'

4.2.11 - CENTER SCREEN

    Allows adjusting the centering of ArcadeOS's screen. User Joystick or Arrow
keys to adjust and press '2 Players Start' to exit.

4.2.12 - TEST PATTERNS

    Displays convenient Test Patterns to adjust and test your monitor from
within ArcadeOS. Press 'Button 1' to toggle through test screens and 'Player 2
Start' to exit.

4.2.13 - DOS SHELL

Convenient DOS access to make adjustments to your System. Especially convenient
if you have your System setup to automatically shutdown when ArcadeOS exits.
ArcadeOS may not be run from within the DOS Shell. To return to ArcadeOS enter
"EXIT" and press return.

4.2.14 - CHANGE EMU

Presents a list of available Emulators allowing you to select a different one.

4.2.15 - EXIT ARCADEOS

Exits ArcadeOS to DOS. Equivalent to entering the Escape character.

--------------------------------------------------------------------------------
5.0 - HARDWARE INTERFACING

ArcadeOS has facilities built-in to support automatic switching of the power to
your monitor or cabinet after ArcadeOS is loaded, running Monitor rotation
hardware when Orientation is changed and display of game controls to Serial or
Parallel port displays. ArcadeOS, version 2.5 has significant changes to this
feature requiring that any device created for a previous version be revised to
work with the current specifications.

If Printer Hardware support is enabled in ARCADEOS.CFG, Parallel Port 1 (LPT1)
is used for Monitor Power and Rotation through the lower 4 bits of the Data bus
(Pins 2,3,4 and 5) and bit 3 of the Control bus (pin 17) for strobing. This
allows the use of a simple J/K Flipflop to produce the +5v signal to trigger
the devices. The schematic to produce the signals follows:

                       _______
                     3|       |
        D0(2)<--------|J     Q|---------> Monitor/Cab Power
                     2|       |5
        D1(3)<--------|K      |
                     4|      _|
                   x--|S     Q|*-x
                      |_______|6
        -C3(17)<----------|1       74LS113
                       _13|___
                    11|       |
        D2(4)<--------|J     Q|---------> Monitor Rotate Left
                    12|       |9
        D3(5)<--------|K      |
                    10|      _|
                   x--|S     Q|*--------> Monitor Rotate Right
                      |_______|8

The above schematic is for reference only. You may choose to handle the signals
in your own fashion. There are no real rules. Just remember that you're dealing
is TTL level signals out of the parallel port, so be careful to isolate signals
going to any high voltage circuits.

The Display Hardware is supported through either and Serial Port (COM1-COM4) or
Parallel Port (LPT1-LPT2).

Connecting a display via a serial port simply requires the Serial Out line and
ground. Of course, your display will likely also require +5vdc. This can be
tapped from any spare drive power cable, The Game Port connector, or keyboard
port. All should be sufficiant to supply the small amount of power needed for
the display.

Connecting a display via a parallel port is a bit more difficult and depends on
if the Printer Hardware option is enabled. If you are using LPT1 for hardware
control as well as for the display, ArcadeOS will automatically use the 44780
4bit mode. Using LPT1 without Printer Hardware enabled, or using LPT2 will
cause ArcadeOS to send to the port in 8bit mode.

Note that settings for both Serial an Parallel displays are in the
Configuration file. I have included graphics containing the schematics for both
8Bit and 4Bit modes of parallel port operation with this document.

--------------------------------------------------------------------------------
6.0 - CONFIGURATION FILE

The Configuration file stores all ArcadeOS options. Some options are for
internal use only (Will be identified as such) and others are controlled by
above menus. If you find a situation where the limits of the menu don't allow
the settings you need, you can set outside of the range here. Note that if an
item is set out of ArcadeOS's range that it can use, the item will be reset to
the Default setting. Below is a list of User Configurable Options in the
Configuration file. I've left those out that can be adjusted in ArcadeOS's
Menus to simplify locating those options that you really need in this file. Use
a search function to locate any option you wish to change:

mamepath=    Set this to the FULL path to your Mame directory.
mameexe=     Set this to the name of your Mame executable.
infoexe=     Set this to the name of the executable to retrieve the list of 
              games. Note: This is normally the same as "mameexe"
config=      Set this to the name of the configuration file for Mame.
              Note: Currently only "mame.cfg" and "advmame.rc" are supported.
remaplist=   If you genererated a list of Remap codes for use in Mame,
              set this to the name of that file. (Default empty)
backdrop=    Set this to the name of the default backdrop picture if SNAPs are 
              not available.
lcdlogo=     Set this to the Startup Message file name for LCD Display. 
lcdshutdown= Set this to the Shutdown Message file name for LCD Display.
lcdlist=     Set this to the LCD Game list file name in the Emulator directory.

#Custom List names
             A set of 7 titles for Custom Lists. Limit is 12 characters each.

switchoff=   Optional batch file to run on shutdown if Extra Hardware enabled.
switchon=    Optional batch file to run on startup if Extra Hardware enabled.

startupwav=     Names of sound files used within Arcade OS
shutdownwav=     "       "       "       "       "       "
windowwav=       "       "       "       "       "       "
errorwav=        "       "       "       "       "       "
saverwav=        "       "       "       "       "       "
gamewav=         "       "       "       "       "       "

arcmodeopt=  Option passed to Mame to enable Arcade Monitor
              (Not required if set in mame.cfg. Must be empty for ArcadeOS.)

palmodeopt=  Option passed to Mame to enable European PAL Monitor
              (Not required if set in mame.cfg. Must be empty for ArcadeOS.)

soundcard=   Set to type of Sound Card used. Note: Must have drivers loaded and
              functioning or this will automatically be set to None.
samplerate=  Set to desired sound sample rate. (11025, 22050 or 44100)

logging=     Produces "arcadeos.log" for reporting bugs in ArcadeOS.

dateformat=  Chooses between American or European date formats.

clearlog=    If set and Logging enabled, start new log when ArcadeOS is run.

mousex=      Startup Horizontal position of mouse arrow.
mousey=      Startup Vertical position of mouse arrow.

incabinet=   Type of monitor being used. VGA=0, Arcade/NTSC=1, PAL=2
640x480=     Large Screen mode. Only available if ATI card external TSR in use.
scanlines=   Enables hardware scanlines in 320x200 mode or greyscale in 640x480.

printhardware= Enables switch signals from parallel port to turn on and rotate
                Monitor.
extrahardware= Enables batch file (set above) to control external devices when
                ArcadeOS is launched or exited.

menulocked=  Locks out access to ArcadeOS's menus. (keeps little fingers out!)

seedcount=   Seed used to select games at random.

ticks=       Tweek seconds count within ArcadeOS. Default=57 (ticks per sec).

extdriver=   Set to 1 if using a TSR type driver for your display in DOS
              This includes the use of MonArc Pro.

skipspacecheck= Ignore low disk space situations for temp files.
tempdrive=   Drive to store temp file to.

lcdscreen=   Enable LCD/VFD screen support.
lcdport=     Selects Serial Port (1-4) or Printer Port (LPT1=5, LPT2=6)
              for LCD/VFD Display.
lcdmode=     Baudrate if Serial Device.
             Rows/Columns if Parallel Device (Row * 100 + Columns)
              To disable auto-formating of Parallel Device set Columns to >63

--------------------------------------------------------------------------------
7.0 - EMULATOR/GAME DATA FILES (DAT)

.DAT files contain details of items which can be configured
from within ArcadeOS for a given emulator.

.DAT file contents are as follows,
the first line should be:-

@textval,on,off
or
@textval,yes,no

This indicates the available text values for text options, ArcadeOS use the
first 2 values internally to indicate positive/negative

Vert Sync,vsync,1,0,1,1,@
;;This line breaks down as
<menuitem>,<identifier>,<type>,<min value>,<max value>,<default>,<tokens>

If identifier is left empty, menuitem is used in its place.

Valid values for type are:
0 = number   , an integer
1 = text     , text taken from the @textval string - the value of the item
               is just an index into the comma delimted string
2 = floating , this is really an integer, but is written out as <n>.00
4 = special  , this is a mixture between a text and a number
               ArcadeOS will display it as a text item, but will write
               out a number - the number written out will be
               (value - min value)
               This is used for the 'Soundcard' entry in MAME.DAT,
               - ArcadeOS displays the chosen soundcard as text in
                 the config menu, but really sends 0 to 7 to MAME
5 = real     , This is for 'real' floating point numbers. The value is still
               an integer, but will be divded by 100 when displayed or sent
               to the emulator
               i.e a range of 100 to 200, gives  you 1.00 to 2.00
6 = cmd line , This forces the option to appear on the command line, no matter
               what other options are set within the app file.
               This is used for MAME options that are only available through
               command line switches and not the MAME.CFG file
               (-log , -record, -play)

So,"Vert Sync" is a:-
identifyer 'vsync',text value, with a min value of 0 a max value of 1 and a
default value of 1

As this is a text option, the values 0 and 1 are indices into the @textval items
at the start of the file. Which means, the values sent to the emulator by
ArcadeOS will either be

vsync ON
or
vsync OFF

If 'optionsasargs' is set to 1 in the .APP file this will simply be passed to
the emulator through the command line.

If 'optionsasargs=0' and 'writetoini=1' the options will be written into the
emulators config/INI file before it is run.

The use of the <token> item at the end is as follows, in most cases command
line arguments consists of an identifier and a value

-vsync 1  ,  -vsync 0  or -vsync ON , vsync OFF etc.
In these cases simply put a '@' as the <token>.

In some cases the command line argument changes for different values of a
config item. i.e.

-vsync  ,   -novsync

In this case you use the <token> to define these values

Looking at SYSTEM16.DAT you'll see the line

Vert Sync,vsync,0,0,1,1,-NOVSYNC%-VSYNC

This just means that vsync can be 0 or 1 and this is used as an index into
<token> ,which is delimted by '%'

vsync 0 , results in

-NOVSYNC

being sent as a command line argument to the emulator and vsync 1 results in

-VSYNC

NOTE: The index into <token> is calculated as (value - min value), so you can
use it in the following way

@textval,display1,display2,display3,display4
Config 1,config1,1,0,1,0,value1%value2
Config 2,config2,1,2,3,2,other1%other2

'Config 1' will display 'display1' or 'display2' in ArcadeOS and send 'value1'
or 'value2' to the emulator/app

'Config 2' will display 'display3' or 'display4' in ArcadeOS and send 'other1'
or 'other2' to the emulator/app

--------------------------------------------------------------------------------
8.0 - EMULATOR/GAME APPLICATION FILES (APP)

(using CALLUS.APP as example - all text after a ; is a comment)

NOTES:
1)Don't copy this text into a .APP file. The ';''s will stop it from working!

2)For entries which read values from the emulator's INI file (such as
'rompathid') you can now prefix the entry with '@' to denote an actual
directory rather than an ini file entry

e.g.
rompathid = ziproms
 - gets the value of the item 'ziproms' from the emulators ini file and
   uses that as the directory name

rompathid = @zips
 - uses the string 'zips' as the direcrtory name and does not consult the ini
   file

This is useful for emulators which have binary config files, or do not store
all their directory entries in a config file.



--------------------------->>AMENDED CALLUS.APP<<-----------------------------
#Main Section
name            =Callus  ;;easy enough - just the name of the emulator
path            =c:\callus ;;absolute path of the callus emulator
exe             =callus.exe ;;the exectuable
redirect        =1 ;;indicates if we're going to hide DOS text output
backdrop        =callus.pcx ;;file name of backdrop - MUST be in same dir as 
                            ;;ArcadeOS
update          =calgl.exe ;;name of the exe run by ArcadeOS to update an 
                           ;;emulator's 'proper name' list.
                           ;;The exe is passed the path of the emulator and 
                           ;;generates a .NMS file
                           ;;See .NMS files for more details
virtualemu      =0  ;;indicates if this is a 'virtual emulator'
                    ;;virtual emulators aren't emulators , they're just
                    ;;a list of exe, com or bat files which will be run when
                    ;;selected. They're designed to let you list a set
                    ;;of DOS games as one 'emulator'
                    ;;See the section 'Virtual Emulators' for more details

#INI file details
ini             =callus.ini ;;name of the config/ini file
writetoini      =1 ;;indicates if we're going to write changed items
                   ;;to the config/ini file
                     ;;0 = don't write to the file,
                     ;;1 = write to the file
                     ;;2 = don't write to the file - but keep a local copy
iniusesequal    =0 ;;indicates if the config/ini file uses '=' to define items
                   ;;i.e. "soundcard = 0" rather than "soundcard 0"
iniusesminus    =1 ;;indicates if the config/ini file uses '-' before config 
                   ;;items
                     ;;i.e. "-soundcard 0" rather than "soundcard 0"
optionsasargs   =1 ;;indicates if we're passing changed options as command
                   ;;line arguments
zippath         =romdir ;;location of zipped roms (if zips are support)
                        ;;this is *NOT* a directory name, it is the name
                        ;;of the config item in CALLUS.INI which contains
                        ;;the path for zipped roms
commentchar     =;   ;;character used by the config/ini file to indicate a 
                     ;;comment

#Files to display
singlegame      = ;;for single game emulators, just display this game only
                  ;;in the selection list
singledir       = ;;relative path for single game emulators - this is where
                  ;;new roms will be copied to
filepattern     = ;;describes files which will be listed as games in ArcadeOS.
                  ;;some emulators use description
                  ;;files for their games,
                  ;;alternatively could be used
                  ;;for console emulators that display "*.<rom extension>"
                  ;;(like GENECYST - *.smd)

directories     =1 ;;indicates if we're displaying directory names in the game
                   ;;list
zipfiles        =1 ;;indicates if the emulator supports zipfiles
needzipext      =0 ;;indicates if we need to use the '.zip' extension when we're
                   ;;running a zipped game. i.e.
                   ;;<emulator> <game>.zip
                   ;;(like NeoRage)
rompathid       =romdir ;;rom directory path (if one exists)
                        ;;this is *NOT* a directory name, it's the
                        ;;name of the item in CALLUS.INI which contains
                        ;;the rom directory name
useextension    = ;;indicates an extension to use when running a game.
                  ;;Designed for some emulators which need the extension
                  ;;of the rom specified. i.e. GENECYST
lowercase       =0 ;;indicates if the command line is to be passed to the
                   ;;emulator in lowercase



#Arcade monitor options
incabinetopts   =@res,384 224
                     ;;VERY IMPORTANT
                ;;these are the command line options which will set the emulator
                ;;into one of the support AOS arcade monitor modes
                ;;or a 'tv' output mode (if the emulator supports one)
                ;;i.e -ntsc
                ;;if the emulator does not support any of the above
                ;; - it cannot be connected directly to an arcade monitor
                ;;
                ;;NOTE - some emulators ,support the correct video
                ;;mode but don't allow you to set it through command line
                ;;arguments. It has to be set in the INI file instead.
                ;;In this case the line takes the format:-
                ;;@<INI file token>,<value>%<INI File token>,<value>%(etc)
                ;;The above uses this format,
                ;;if it were to use just command line options, the line would be
                ;;-res 384 224

reprogramvga    =1   ;;indicates if ArcadeOS is to set the VGA card into an
                     ;;arcade monitor compatible mode. If the emulator
                     ;;does not natively support 'tv' output then this must
                     ;;be set to 1 if the PC is going to be connected to an
                     ;;arcade monitor.
#ModeX modes
modexdelay      =1 ;;if the emulator does not run in standard VGA 320x200,
                   ;;but instead uses a tweaked or ModeX mode supported by
                   ;;ArcadeOS.
                   ;;You can use this and the next setting to display it on
                   ;;an arcade monitor
                   ;;Set this to 0 to use 320x200, 1 to use any of the
                   ;;following modes...

modexmode       =4 ;;indicates that we're using a special 'tweaked' arcade
                   ;;monitor mode.
                   ;;possible values for this entry are:
                   ;;0 = 320x200
                   ;;1 = 256x240
                   ;;2 = 256x256
                   ;;3 = 320x240
                   ;;4 = 384x224
                   ;;5 = 304x215
                   ;;6 = 384x256

blocktext   =1 ;;This allows you to block VGA text mode
               ;;Some EMUs have a long startup/shutdown during which they switch
               ;;to text mode. You can block this mode change by setting the 
               ;;following flag to 1
               ;;Other EMUs however have debugggers etc. which run in textmode,
               ;;so you may want to enable these to be displayed by setting
               ;;this to 0

#Keyboard Remapper
remaptype=1 ;;This allows you to remap upto 40 keys for a given app/emu
            ;;each key can generate upto 2 keystrokes (which is useful for
mapping escape to generate Alt-Q)
            ;;There are 2 types of remapper,
            ;;'Real Mode' and 'Protected Mode'
            ;;you need to use the real mode wrapper for real mode DOS programs
            ;;(small exe, does not need a DOS extender or DPMI to run - not too
many of these around anymore)
            ;;and the protected mode wrapper for protected mode DOS programs
            ;;(larger exe, needs a DOS extender (such as DOS4GW, or P-MODE) to
            ;;run and/or a DPMI server (such as CWSDPMI or Windows)
            ;;i.e. just about all DOS emus these days
            ;;0 = real mode, 1 = protected mode
            ;;for most emus you'll need to set this to 1

remaplist=  ;;List of (upto 40) scancodes to remap
            ;;The format is
            ;;<input scancode>,<output scancode>[|<output scancode2],<input
scancode>,<output scancode>[|<output scancode2]...
            ;;i.e. say you want to remap a key so that everytime you press 'A' 
            ;;the emulator thinks you're pressing 'B'
            ;;download scancode.exe from the downloads page of the PC2JAMMA 
            ;;site, run that and get the scancodes
            ;;of the keys you're remapping, you'll find that :-
            ;;the scancode of A is 30 and the scancode of B is 48
            ;;so you're remap list would look like
            ;;remaplist=30,48
            ;;now, everytime you press A, B will be sent to the emulator instead


#Command line Options
defaultoptions  =-altkeys  ;;any default options you want
gameprefix      = ;;text to be inserted before the selected game in the command
                  ;;line some emulators require a 'switch' before the game name
                  ;;(see RAINE.APP)




#Config and name files
configfile      =callus.dat   ;;name of the file containing config items
                              ;;Described in the following sections
descfile        =callus.nms   ;;Contains full game names for dirs/zips
                              ;;Format is:
                              ;;<full game name>|<file name>

#Screenshots
screenshots     =1            ;;indicates if we're going to display screenshots
pcxdir          =pcxdir       ;;pcx directory containing screenshots
                              ;;this is *NOT* a directory name, it's the
                              ;;name of the item in CALLUS.INI which contains
                              ;;the pcx directory name
sssuffix        =00           ;;suffix placed at the end of the file
                              ;; i.e. ffight00.pcx
suffixow        =0            ;;indicates if suffix overwrites the characters at
                              ;;the end of the PCX file name, even if there is
                              ;;room not to. i.e. ffig00.pcx

#Custom List
clist1          =Custom1      ;;name of custom list 1
clist2          =Custom2      ;;name of custom list 2
clist3          =Custom3      ;;name of custom list 3

--------------------------------------------------------------------------------
9.0 - EMULATOR/GAME LIST FILES (NMS)

These are just list of proper game names and their associated file or dir name.
They are used by ArcadeOS to
1) Display proper game names
2) Exclude non-supported games

Format is:
<full game name>|<file name>

i.e.
Final Fight|ffight

You can either manual create these files or write a small DOS exe to create
them for you, and specify it in the 'update' option of your .APP file

If you write your own .NMS file generator it must
(i)   Be a DOS exe
(ii)  Reside in the same directory as ArcadeOS
(iii) Generate a .NMS file which:-
      .matches the format shown
      .has the name specified in the .APP file
      .is in the same directory as ArcadeOS

ArcadeOS will call your EXE when 'Update Game Names' is selected from the
control menu. When ArcadeOS calls this EXE it will also pass the path of
emulator to it i.e. when ArcadeOS runs the Callus .NMS file generator
(CALGL.EXE), it uses the command line:-

CALGL c:\callus\

(the path will always end in a '\')

--------------------------------------------------------------------------------
10.0 - OPTIONAL TEXT DISPAY FILES (LCD)

The LCD Support in ArcadeOS has been completely revamped. No offense intended to 
Danny Rego's fine work. It did the job, but turned out to be too complex for 
fomating the data sent to the display. Danny's original code is still used to 
initialize and access the serial ports. The data sent to the display for each 
game is now compacted into an efficient database.

Note: Any Serial Device must be configured for 8 data-bits, 1 start-bit, 1 
stop-bit and no parity. BAUD rate is configured in the arcadeos.cfg file.



LIST.LCD Format - Must be placed in Emulator's folder.

Line 1: <Header>,<Footer>
Line 2: <List 1-ROMname 1>,<List 1-ROMdesc 1>,<List 1-ROMname 2>,<ROMdesc 2>,...
Line 3: <List 1 Description>
Line 4: <List 2-ROMname 1>,<List 2-ROMdesc 1>,<List 2-ROMname 2>,<ROMdesc 2>,...
Line 5: <List 2 Description>
...
Line x: default,<Default Preceed Description>
Line x+1:<Default Proceed Description>



EXPLANATION:

Line 1 contains Header and Footer code for diplay seperated by comma (,). This 
may contain any characters other than control characters, backslash(\) and comma 
(,). If comma is needed substitute "\h2e"and backslash with "\\". Any other 
control characters may be represented by codes below covered later in this 
document.

Line 2, 4, 6, etc. contains list of romset names and game descriptions seperated 
by commas (,). Same character restriction apply as above. List of 
names,descripions can be repeated indefinately (max 4095 characters).

Line 3, 5, 7, etc. contains a description shared by all games in previous list. 
This allows games sharing duplicate info to share the same data located in the 
following line from the list.

   Data sent for found game:
     <Header><List x-ROMdesc x><List x Description><Footer>

Last even line contains the word "default" and a Preceed Description seperated
by comma. The line following that contains the default Proceed Descripton:

   Data sent for not found game:
     <Header><Default Pre Description>ROMNAME<Default Pro Description><Footer>

SUPPORTED CODES:

   \XXX  = Oct code XXX (000 to 277)
   \hXX  = Hex code XX (00 to FF)
   \#NNN = Decimal code (0 to 255)
   \a    = Alert (BELL or Hex 07) *
   \b    = Backspace (Hex 08)
   \t    = Horizontal Tab (Hex 09) *
   \n    = Newline (Hex 0A)
   \v    = Vertical Tab (Hex 0B) **
   \f    = Formfeed (Hex 0C) *
   \r    = Return (Hex 0D)
   \c    = Clear Display (Hex 0E)
   \e    = Escape (ESC or Hex 1B) ***
   \\    = Backslash Character
   \pNNN = Pause NN Milliseconds. NN can be any integer.
   \p    = Pause 500 Milliseconds (1/2 second).

   *     No function on Parallel LCD Display
   **    Home Display on Parallel LCD Display
   ***   Next Character sent as Control Code to Parallel LCD Display

EXAMPLE FILE:

---------------------------- start of file
\c\h16\eH\h00,\eH\h00
PUCKMAN,PuckMan! (Japan - Revision 1),PUCKMANA,PuckMan! (Japan - Revision 1)
\r\nButton A = Speed Up Cheat!
SUPRMRIO,Super Mario Bros.,SIMPSONS,Simpsons (4-player)
 - Great Game!\r\n  Button 1 = Run/Fire  Button 2 = Jump/Swim
default,*
* - Game specs not recorded.\r\n  Please Note Info and add to list.lcd
----------------------------- end of file

If the above is used to run SUPRMRIO the following would appear on LCD:

   Super Mario Bros. - Great Game!
   Button 1 = Run/Fire  Button 2 = Jump/Swim

The header on my device would clear screen, clear cursor and set to position 0.

  If it were used to run RAFLSAU, the following would display:

    *RAFLSAU* - Game specs not recorded.
      Please Note Info and add to list.lcd



AOS.LCD and SHUTDOWN.LCD formats:

Two additional files are used to open ArcadeOS and quit ArcadeOS. These have no 
special formating and are sent directly to the display. Control Characters are 
still ignored and all above supported codes may be used.

--------------------------------------------------------------------------------
11.0 - OTHER ARCADEOS SUPPORT FILES

There are a number of additional support files in the ArcadeOS directory. These
files should not be modified by the user, either because they are data files or
they give credit to those that worked so hard to bring you this fine program.

The additional required files include:

ADVMAME.DAT    - Configuration Parameters for Advance Mame.
ARCADEOS.BIN   - The Protected Mode ArcadeOS program.
ARCADEOS.EXE   - The ArcadeOS loader program.
ARCADEOS.FNT   - ArcadeOS Fonts used in 640x480 mode.
ARCADEOS.HLP   - Help file displayed within ArcadeOS.
LICENSE.TXT    - Licensing information for ArcadeOS (MUST BE PRESENT!).
MAME.DAT       - Configuration Parameters for Mame and variants.
PMWRAP.EXE     - Protected Mode Interface between Mame and ArcadeOS.

Extras - These files are not required, but put there for your use.

4BITLCD.PNG    - Schematic for building LCD Interface with Monitor control.
8BITLCD.PNG    - Schematic for building LCD Interface w/o Monitor control.
AOSTECH.DOC    - Technical Documentation for those so inclined.

GO.BAT         - Can be called from AUTOEXEC.BAT or run from DOS Prompt.
                 Sets directory, clears keyboard buffer and loads ArcadeOS.

--------------------------------------------------------------------------------
The End - Please, if you come across errors in this document, contact me to make
corrections. I can be emailed at: mame@lvcm.com

Thank-you,

Anthony D. Saxton
2, December 2002