CaPriCe32
v3.52
A 32-bit Amstrad CPC Emulator
Copyright © 1997-2003 Ulrich Doewich
All Rights Reserved

Firmware and BASIC ROMs
Copyright Locomotive Software and Amstrad plc
Amstrad has given permission for their redistribution,
but retains the copyright

Contents

Disclaimer
Synopsis
Requirements
Getting Started
Features
Tools Menu
Loading Disk Games
Loading Tape Games
Troubleshooting
How To Get In Touch
Background Information
Acknowledgements

Disclaimer

This software is provided as is. The author accepts no responsibility for damages occurring as a direct or indirect result of using this software.

^ Back ^

Synopsis

Caprice32 is a software emulator of the Amstrad CPC 8bit home computer series. The emulator faithfully imitates the CPC464, CPC664, and CPC6128 models. By recreating the operations of all hardware components at a low level, the emulator achieves a high degree of compatibility with original CPC software. These programs or games can be run unmodified at real-time or higher speeds, depending on the PC environment used.

^ Back ^

Requirements

Minimum System Requirements
Pentium II 300MHz
32MB RAM
Windows 98/Me/2000/XP
DirectX7

^ Back ^

Getting Started

After selecting CaPriCe32 in Programs/CaPriCe32 on your Start menu, you will be presented with the standard CPC startup screen: yellow text on a blue background. The PC keyboard will now imitate the keyboard of a CPC - so don't be alarmed if a key press results in something other than what you'd expect! If you are not yet familiar with the CPC's keyboard layout, see the picture below for a simplified representation.

CPC 6128 Keyboard Layout

Where possible CPC keys map to the PC keyboard keys in the same positions, but some CPC keys had to be moved to alternate locations:

CPC KeyPC Key
CLRInsert
]\
\Right-Alt
COPYLeft-Alt
ENTERNP Enter
F0-F9NumPad 0-9

The most frequently used emulator commands are initially mapped to the following keys:

PC KeyAction
F2load snapshot (.SNA)
F3insert tape image (.CDT)
F4save snapshot (.SNA)
F5hard reset
F6insert disk image (.DSK) into CPC drive A
F7insert disk image (.DSK) into CPC drive B
F8options menu
F10exit
F12toggle regular / full speed
~toggle windowed / full-screen mode
PAUSEpause emulation

The purpose behind some of the not-so-obvious emulator features (e.g. snapshots) will be revealed in the next section. At this point, feel free to experiment with Caprice32, and return if something is unclear or if you wish to tweak the emulation for best performance.

If you run into any kind of problems, please refer to the TROUBLESHOOTING section.

^ Back ^

Features

Snapshots

Snapshots are used to preserve the entire state of the emulation at the exact moment the snapshot is taken. Used with a game for example, the snapshot facility gives you the ability to save your progress at any time.

NOTE: Snapshots only store what is currently in memory. If for example, you are playing a game that loads level data from disk, you will have to have the DSK image in the CPC drive for the game to continue properly from the point the snapshot was taken. It is generally NOT a good idea to take a snapshot while the CPC is accessing any of its disk drives.

ROMs

Caprice32 allows (just like the original CPC) the use of expansion ROMs. If you had any additional ROMs for your CPC, you may be able to use them under Caprice32 as well. As a bonus, Richard Wilson's replacement disk operating system PARADOS is included in the Caprice32 archive. To activate it, call up the Options dialog by pressing F8 or selecting it from the Tools menu. Click on the "ROM Slot 7" button to get a list of available ROM files. Select "parados.rom" from the list and click on OK to confirm. The button text will now have changed to reflect your choice. Click on OK and the CPC will reset to activate the new configuration. PARADOS is more tolerant of high capacity disk formats, and by default configures CPC drive B to be a double sided, 80 track capable disk drive. Enter the "|DRIVE" command at the BASIC prompt to access the built in utility suite of PARADOS.

^ Back ^

Tools Menu

Options...
General Page

CPC Model

Selects which of the three Amstrad CPC models you would like to work with. Most of the time you should have this set to 6128, as some software will require the additional 64K of RAM. Some older programs might insist on the use of the 464 however.

NOTE: Changing this setting will cause the emulation to reset.

OEM Name

Influences which power-on message the emulated CPC will display.

RAM Slider

This slider allows you add more RAM to the stock CPC you selected. The size can be set in 64KB increments, up to the maximum of 576KB. Several third-party manufactures offered RAM expansions for the CPC. At this time, Caprice32 only emulates an Amstrad/Dk'Tronics type RAM expansion.

NOTE: Changing this setting will cause the emulation to reset.

ROM Slot 2-15

Clicking on any of these 14 buttons allows you to choose the ROM file to put in the associated slot. For a ROM to be initialized during the CPC's startup sequence, its slot number has to be between 1 and 7 for the CPC 464, and between 1 and 15 for the CPC 664/6128. ROM files should be placed uncompressed in the ROM sub-folder. Naturally, only those ROMs which do not rely on extra hardware will work correctly. If you want to see a specific ROM/hardware add-on emulated by Caprice32, please let me know and I will tell you what additional information I may required to support it. To clear a slot, click the button and simply cancel the selection dialog.

NOTE: Changing a ROM slot assignment will cause the emulation to reset.

CPC Speed

This slider allows you to set the emulation speed as some percentage of the original CPC speed. For example: to make the emulated CPC twice as fast as normal, set the slider to the 200% position. Depending on how fast your PC is, some of the higher settings may not actually achieve the selected speed. To have an indication of how fast the emulation is running, turn on Show Emulation Speed on the Video page.

Video Page

Full Screen Resolution

Select a resolution and bit depth that you would like to use when running Caprice32 in full screen mode.

Rendering Style

Scanlines: imitates the look of an ordinary TV by displaying the black lines that are visible on a TVs picture tube. This is the fastest rendering method.

Line Doubling (Software): Very crisp display with no visible scanlines. Since every picture line has to be drawn twice this method incurs a huge performance hit - should only be used on fast PCs or if the Hardware method does not work.

Line Doubling (Hardware): Slightly blurred display with no visible scanlines. This method uses the graphics card's scaling capability to double the picture lines. Some PC graphics cards do not support hardware scaling, resulting in severe slow-downs if this rendering style is chosen. Select Scanlines or the Software method if your card is one of those.

Synchronize to PC Screen Refresh

A set check mark here means that Caprice32 will wait for the PC video refresh to occur (usually 70 or 85 times per second) before painting the CPC screen. This effectively prevents the CPC video display from "tearing" and should make scrolling motions appear somewhat smoother.

Show Floppy Drive/Tape Activity

A set check mark here means that Caprice32 will indicate CPC floppy and/or tape drive activity by showing a small icon in the upper right corner of the emulator display.

Show Emulation Speed

A set check mark here means that Caprice32 will show the speed at which the emulation is running in the upper left corner of the emulation display. This value is measured in Frames Per Seconds (FPS). 50 FPS is the original CPC speed.

Colour/Green Monitor

CPCs were available in two configurations: with a colour monitor or with a monochrome (green) monitor. These radio buttons allow you to choose which monitor type Caprice32 should emulate.

Audio Page

Enable Sound Emulation

Turns sound output through the PCs sound card on or off.

Playback Rate

Defines the playback rate of your PCs sound card. Higher setting make high notes sound clearer, but demand more processor power from the CPU.

Stereo

Lets you choose between mono and stereo sound. The CPC always outputs sound in stereo; the mono option is only offered here to reduce CPU load on lower-end PCs.

Controls Page

CPC Keyboard

CPCs sold in France and Spain had localized keyboard layouts. This option lets you choose among these two and the default QWERTY keyboard definition.

NOTE: Changing this setting will cause the emulation to reset.

Custom Control Assignments

This section of the Options dialog is used to configure the CPC joystick emulation. The drop down box lists all the control devices that are currently known to Windows. If you don't see a device you would like to use, open Game Controllers in the Windows Control Panel to install it. The list box below the drop down shows the current control assignments for the selected device. To make your own assignments, first select the device to be configured from the drop down box, then click on "Configure...". This will open the Configure Device dialog.

The Configure Device dialog is divided in three sections: the upper left lists the controls found on the selected device. The upper right lists the emulator actions that can be assigned to the control you have selected on the left. At the bottom you can see the currently defined assigments. The buttons on the bottom right do pretty much what they say: add and remove entries, and clear the entire assignment list. Once you're satisfied with your configuration, click on "Done" to exit the dialog.

NOTE: You can assign multiple actions to a the same control. Keep in mind however that these actions will be executed at the same time and not in sequence. For example: if you assign both "Joystick 1 Up" and "Joystick 1 Left" to "Numpad 7" you will have created a single-key control that causes a diagonal movement in CPC games.

Debugger...

The debugger is not yet fully operational - to be completed in a later version.

^ Back ^

Loading Disk Games

Start the emulator and hit F6 to open the file selector for CPC drive A. Navigate to where you placed the DSK or the ZIP which contains it. Highlight the desired file and click on OK. If you selected a ZIP and it contained more than one DSK file, you now have to choose which one to load. Once again, highlight an entry and click on OK. Back on the blue CPC screen, type

CAT

to list the contents of the disk image. Two things can happen at this point: a) either a bunch of names appears, or b) you get a "Drive A: read fail" error message. Depending on what you got, follow the instructions in the corresponding paragraph below.

  1. locate the file with the smallest size and a .BAS, .BIN, or no extension. Now type

    RUN"

    followed by the desired file name and hit Enter (you get the quotation marks by hitting SHIFT+2). This should get things going. However, sometimes the file you identified is not the game's loader, and the RUN command results in a "BASIC 1.x" or "Memory full" message. In that case, use CAT to locate a different file and try the same procedure again.

  2. reset the emulation (F5) and try starting the game with the

    |CPM

    command. The | symbol is entered by pressing Shift+[ (US keyboard). If this still results in a read error then most likely the DSK image is corrupt, or not a CPC disk at all.

^ Back ^

Loading Tape Games

Start the emulator and hit F3 to open the file selector for the tape drive. Navigate to where you placed the CDT or the ZIP which contains it. Highlight the desired file and click on OK. If you selected a ZIP and it contained more than one CDT file, you now have to choose which one to load. Once again, highlight an entry and click on OK. Back on the blue CPC screen, type

|TAPE

and hit Enter. The | symbol is entered by pressing Shift+[ (US keyboard). The CPC has now disabled the disk drive and is ready to load from tape. Type

RUN"

and hit Enter (you get the quotation marks by hitting SHIFT+2). The CPC will prompt with

Press PLAY then any key:

Simply hit any key (except ESC, which aborts) to get things going. Loading from tape can take a very long time, so you may want to switch to Full Speed via F12 while it is doing so, to speed things up a bit.

^ Back ^

Troubleshooting

- comming soon -

^ Back ^

How To Get In Touch

If you want to let me know what you think about Caprice32, submit a bug report, or have a suggestion for a future version, drop me a line via one of the following methods:

e-mail:
caprice32@cybercube.com

snail mail:
Ulrich Doewich
112 Tea Rose St
Markham ON  L6C 1X3
CANADA

You can always find the latest version of Caprice32 and other utilities authored by me on the official Caprice32 web site at:

http://www.caprice32.cybercube.com

^ Back ^

Background Information

Working on and writing CPC emulators has been a rewarding and pleasurable experience for me since 1995. Caprice32 came into being as I was struggling with improving Bernd Schmidt's CPE, a DOS based CPC Emulator. Rather than poring over the (undocumented) assembly code of CPE I decided to write my own CPC Emulator. That was the beginning of Caprice32. Versions 1 and 2 were written in x86 assembly code and still DOS based. Since that OS was on the way out I decided in October 2000 that it was time to start over - again. Version 3 is basically a complete rewrite in C code to make it easier to port to different environments. Right now, only a version for Windows and DirectX exists - but who knows what the future might hold?! ;)

For the latest versions of my Z80 and AY-3-8912 emulations I have referenced the sources of MAME (see http://www.mame.net).

^ Back ^

Acknowledgements

Thanks must go out to...

My brother Ralf, who is a great resource when it comes to hard and software problems. Together we have traced quite a few signals of the CPC hardware. He is also responsible for designing the Caprice32 logo and all other graphics used in the emulator.

Kevin Thacker, with whom I have frequent e-mail exchanges. We've pinned down the inner workings of the CRTC/GA combo pretty accurately now, and continue to delve deeper into their secrets until we perfect the video emulation...

Dirk Junker, who was kind enough to send me his Schneider CPC 6128 from Germany. Without having the actual machine to test software and theories on, Caprice32 probably wouldn't exist today!

Brian Watson, for sending me a replacement drive belt for the CPCs 3" floppy disk drive.

Marco Bergman, for sending me his CPC mouse - which shall be emulated in an upcoming Caprice32 version.

Richard Wilson, for giving permission to include his AMSDOS replacement ROM PARADOS with Caprice32, and for his efforts in improving the accuracy of CPC emulation. Check out his excellent WinAPE32 CPC Plus emulator at http://winape.emuunlim.com/.

Sergio Bayarri
Ricardo Bittencourt Vidigal Leitao
Gerardo Briseño
Christophe Copin
César Nicolás González
Craig Harrison
Paul A. Hodgson
Lars Magnus Hvattum
Frederic Herlem
Malcolm Jennings
Vaggelis Kapartzianis
Martin Korth
Noel Llopis-Artime
Brice Rivé
Emmanuel Roussin
Bernd Schmidt
Marco Vieth

...and last, but certainly not least, to all the users of Caprice32!

^ Back ^