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

                   YAGE - the CPC emulator - v0.91

                         by Antoine Pitrou

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


The YAGE web page is at http://www.stud.enst.fr/~pitrou/
(nothing much to see there, I must warn you).


* What's new :
--------------

- v0.91 - 24/10/1998
(didn't keep track of the changes, but there's not many of them.
some more software will work correctly, however)

- v0.90 - 09/07/1998
this is the first version.


* Installation :
----------------

To install YAGE, just unzip it to the directory of your choice. You must
take care to preserve the directory structure during this operation (option -d
with pkunzip). The ROM directory is necessary and must contain the ROM files
(else you'll get some rather cryptic error message). The DSK directory is
selected by default when you want to load a disk image under the emulator.


* Minimum configuration :
-------------------------

- a 386 or 486 processor
- Ms-Dos (compatibility with Windows 95 not guaranteed)
- a 32-bit SVGA card that allows 800*600 in 256 colours
- probably 2 Mb RAM, perhaps more
- a VESA driver (if you don't have one, try Scitech Display Doctor,
which can be downloaded from http://www.scitechsoft.com)


* Recommended configuration :
-----------------------------

- Pentium or equivalent
- SVGA card with a good bandwidth

On my Cyrix P150+ with a Cirrus Logic video card (not very good), YAGE
is 2 to 4 times faster than a real CPC with 'odd-lines mode' on (and, of
course, realtime mode switched off).

If you don't like the 'odd-lines mode', you can switch it off but it will
take a lot more machine time, as the video card is the bottleneck of the
emulator (especially on the overscan screens you can find in many demos and
a few games). To compensate this you can reduce the frame rate if your
machine isn't fast enough (see control keys below). You can check the
average relative speed by reading the file CPC.LOG that is generated during
the emulation.


* Command line options :
------------------------

You can start the emulator simply by typing 'yage'. You can also specify
the name of one or two CPC discs to load :

yage [driveA.dsk [driveB.dsk]]


* Emulator control keys :
-------------------------

You can press the following keys at any time :

- F1 or mouse button left : load image disk for drive A
- F2 or mouse button right : laod image disk for drive B
- F3 : switch realtime or full-speed (realtime by default)
- F4 : switch 'odd-lines mode' on/off (on by default)
- F5 : reset the CPC
- F10 : quit the emulator
- Print Screen : display only every one 50th frame
- Numpad '+' and '-' : decrease or increase frame rate (default is the
  maximum, i.e. 50 frames/sec.)
- Pause : pauses the emulation


* Emulated parts of the CPC :
-----------------------------

- processor : all opcodes, NOP cycles, all interrupt modes
- video : CRTC Type 0 + Gate Array, with line-precise emulation
          (i.e. normal screen-splittings and horizontal rasters)
- memory : 576 K RAM + 48 K ROM (ROM will be expandable in a future version)
- keyboard : QWERTY keyboard + first joystick
- disc : write instructions not emulated for the moment
- sound : none for the moment
- tape & printer : none (who cares ?)


* Emulation accuracy :
----------------------

The emulator is accurate enough to display correctly a good number of demos,
so there should be no problem with the vast majority of games and utilities
(except in the case of nasty disc protections).

The correctly emulated software includes for example :
- The Demo, Divine Megademo, Voyage'93 (probably the three best demos on cpc,
in that order) are reproduced correctly, except from a couple of parts
- Super Cauldron, Prehistorik II, Zap't'Balls Advanced Edition (three games
by Elmar Krieger, quite boring but making the use of sophisticated hardware
techniques)
- Better Than Life (a very good disc fanzine that features some advanced
hardware tricks too)

I haven't tested YAGE on much material however, so if you find software
that doesn't work with it, please leave me a message.


* File formats supported :
--------------------------

- disk images : DSK format (normal and extended), incl. double-sided discs
- snapshots : none

** Attention ** : please take good note that disk images cannot be written to
for the moment. So, don't start doing some important job under this version
of yage.


* Keyboard mapping :
--------------------

The emulated keyboard is a CPC 6128 QWERTY keyboard. The physical mapping is
nearly the same as the original one. The non-intuitive keys are the following:

- ALT is the COPY key
- DEL is the CLR key


* Joystick :
------------

There is no support for PC joysticks for the moment. The first CPC joystick
is mapped onto the following keys :

- UP : Stop Scroll
- DOWN : End
- LEFT : Insert
- RIGHT : Page Up
- FIRE : Home

The second fire button isn't mapped, mainly because of lazyness...


* Credits :
-----------

All code by : Antoine Pitrou
except :
- keyboard and interrupt handling, video hardware configuration,
  graphical interface routines (not much used for the moment) :
  Allegro library 3.0 by Shawn Hargreaves
- CWSDPMI by Charles W. Sandmann

The ROMs (which are in files CPC6128.ROM and CPCADOS.ROM) are copyright
by Amstrad and Locomotive Software.

YAGE was coded in C++ and assembler (only a few chunks) with DJGPP, the
Ms-Dos port of the GNU C compiler. DJGPP produces code for 32-bit protected
mode in linear memory mode (only one segment). DJGPP was mainly coded by
DJ Delorie ; you can get more info at http://www.delorie.com/djgpp.

YAGE is *freeware*, which means you can copy and distribute it as long as
you don't alter the distribution files (particularly this readme file).


* Contact :
-----------

Do you want to report bugs ? make suggestions ? or even contribute ?
Drop an e-mail to the following address : Quiche.Eaters@mail.dotcom.fr
(not a joke)

Or if you don't have an Internet access, write to :

Antoine Pitrou
323, rue de Belleville
75019 Paris

