                             fMSX MS-DOS 1.3.1
                   MSX emulator for the MS-DOS platform.
    Core emulator code copyright (C) 1994, 1995, 1996  Marat Fayzullin
              MS-DOS port copyright (C) 1996  Marcel de Kogel
                                     
               MS-DOS(tm) is a trademark of Microsoft Corp.

This file contains notes about features specific for fMSX-DOS 1.3.1

Note: fMSX-DOS requires the presence of a DPMI server. If you don't run
the program under a DPMI-hosted environment (Windows, OS/2, QPMI, ...),
put the file CSDPMI.EXE included in CWSDPMI.ZIP somewhere in your path.

Hardware Requirements
=====================
A 486DX-33 (P75 recommended)
A VLB- or PCI-based VGA compatible video card
Adlib/SB2.0/SBPro/SB16/GUS/SB AWE32 and joystick supported. Volume control
requires an SBPro or a GUS compatible sound card

Files included in FMSX-DOS.ZIP
==============================
FMSX-DOS.EXE The emulator
FMSX.DOC     The main documentation file
FMSX-DOS.TXT This file
CWSDMI.ZIP   A dpmi server required by FMSX-DOS.EXE
FILE_ID.DIZ  A small description of this program
The console menu program is no longer shipped with the emulator. If you're
looking for a front end for fMSX-DOS, I recommend downloading YAYA from
the fMSX distribution site

Key Mapping
===========
GRAPH  - Left alt
CODE   - Right alt
SELECT - PageDown
STOP   - PageUp

Special Keys
============
F6  - Rewind tape
F7  - Wind tape
F8  - Toggle sound on/off
F9  - Pause
F10 - Quit emulator
F11 - Increase sound volume
F12 - Decrease sound volume

Command line options
====================
The following command line options are added/modified:
-msx1/-msx2/-msx2+   The default emulation mode is set to MSX2
-tape <filename>     Select tape image[MSX.CAS]. There's no limit to the
                     length of a tape image
-video <mode>        Select video mode[0]
                     0 - 320x200   1 - 320x240
                     2 - 640x480   3 - 256x212
                     Video modes 1 and 3 may not be compatible with your
                     video card and/or monitor. For video 2, you'll need a
                     VESA compatible video card.
-chipset <id>        Select SVGA chipset[255]
                     0 - VESA
                     1 - S3
                     255 - Detect
                     Support for more popular chipsets may be added in
                     future versions
-modeswitch <mode>   Allow/Don't allow VGA mode switches[0]
                     0 - Don't allow VGA mode switches
                     1 - Allow VGA mode switches
                     If this option is enabled, the game will use both
                     video modes 2 and 3
-sound <mode>        Select audio mode[255]
                     0 - No sound
                     1 - Internal Speaker
                     2 - Adlib
                     3 - Sound Blaster
                     4 - Gravis Ultrasound
                     5 - SB AWE32
                     255 - Detect
-speakerchannels     Set sound channel priority list (Internal speaker
<list>               only)[3,2,1]
                     1-3 = PSG Melodic
                     4-6 = PSG Noise
                     7-11 = SCC
                     Most games use channel 3 for their sound effects and
                     channels 1 and 2 for their melodies. Try using 3,1,2
                     if the default list doesn't give the desired sound
                     quality
-volume <volume>     Set initial volume[10]
                     0 - Quiet    15 - Maximum
-reverb <level>      Set reverb send level (SB AWE32 only)[7]
                     0 - None    100 - Maximum
-chorus <level>      Set chorus send level (SB AWE32 only)[0]
                     0 - None    100 - Maximum
-joystick <mode>     Select joystick mode[1]
                     0 - No joystick support
                     1 - Emulate joystick at port 1
                     2 - Emulate joystick at port 2
                     The 2nd PC joystick isn't supported (yet)
-iperiod <cycles>    This option sets the number of T-states per interrupt
                     instead of the number of opcodes. Try using values
                     between 30000 and 60000 if the emulator is too slow
                     for your machine
-ifreq <frequency>   Select interrupt frequency[50Hz]
                     The emulator uses this to sync the emulation to the
                     PC hardware timer. Using -uperiod makes no sense
                     unless -ifreq 0 is given, which disables the sync.
                     Disabling the sync will speed up the emulation.
-adlib               Discarded. Use -sound instead

Tape emulation
==============
The tape emulation isn't nearly finished. Saving and loading files from
BASIC works correctly (Metal Gear saves perfectly as well), but there are
some major problems creating tape images from real MSX tapes. There's no
program shipped with the emulator that does this

Passing options to the emulator
===============================
With the amount of command line options fMSX-DOS supports, it's easy to
create command lines larger than the DOS limit of 126 bytes. If you
experience problems with the command line length, put all options in a
temporary file (say, "TempFile.tmp"), and start the emulator with the
command line "fMSX-DOS @TempFile.tmp". You may also give extra command
line options when using this feature, like in `fMSX-DOS @MyConfig.cfg -
ifreq 60 Pacman.rom'

Configuration files
===================
The emulator loads three configuration files (if present) before it boots
MSX: fMSX-DOS.cfg located in the emulator's directory and CARTA.cfg and
CARTB.cfg located in the cartridge dump's directory. These are plain text
files containing optional command line options. Options can be separated
with spaces, tabs or returns.

History
=======
1.3.1 Increased speed, fixed lots of bugs, added PC speaker, SB, GUS and
      AWE32 support, added S3 support, added tape emulation and
      configuration file support
1.2.3 Added volume control, joystick options, modeswitch option, video
      mode 3, improved sound, increased speed, fixed some bugs
1.2.2 Added joystick support, Added SCC emulation and improved PSG
      emulation, added VESA support, increased speed, fixed some major
      bugs
1.2.1 Initial release

Credits
=======
- fMSX-DOS was compiled using DJ Delorie's DJGPP v2.0. DJGPP is a 32 bit
  C compiler for MS-DOS. Source code and binaries of DJGPP are available
  at http://www.delorie.com
- The SB AWE32 routines are heavily based on `The Unofficial Sound
  Blaster AWE32 Programming Guide' written by Vince Vu a.k.a. Judge
  Dredd. Thanks a million for writing this!
- Martijn Zeedijk tested the GUS routines and helped me fix lots of bugs
- Some parts of the code were taken from Allegro. Allegro is a library
  for DJGPP written by Shawn Hargreaves. Allegro is available at
  ftp://x2ftp.oulu.fi/pub/msdos/programming/djgpp2

Please send your comments to Marcel at
m.dekogel@student.utwente.nl

