C4CPC is a cartridge replacement for the Amstrad Plus range and the GX4000.
Using a micro-SD card storing cartridge images it also allows direct loading of the cartridge from a PC (Windows/Linux/OSX) through USB.
- Direct access to 16 cartridges selected by dip switches. Cartridge can be up to 512kB
- Access to unlimited number of cartridge images using the provided selector cartridge
- Direct cartridge loading from host computer using USB
- Cartridge file can be in standard .cpr format or raw binary .bin
- Integrated ACID
Using C4CPC on a GX4000 with the original Amstrad power supply may cause damage to the GX4000 please read this forum thread
- Power off you Amstrad Plus / GX4000
- Insert the C4Cpc cart with a prepared SD in the cartridge slot, DIP switch facing up on 464/6128, DIP on joystick port side on GX4000
- Select your favourite cart slot on the DIP switch
- Power on ...
- et voilà !
CprSelect is a special cartridge that allows browsing the SD cart for cartridges to load. The main area displays the current folder contents. Browsing is done using either one of the joysticks or the keyboard.
- Keyboard controls : cursors for browsing, space/enter/copy to select and esc to return to parent folder
- Joystick controls : left/right/up/down for browsing, fire 1 to select, fire 2 to return to parent folder
Left/Right jump from page to page if the folder cannot be displayed in one screen.
SD card preparation
The C4CPC is delivered with a prepared microSD card which contains the Basic Cartridge in slot 0 and the cartridge selector in slot 15. Using your computer, cartridge images can be added to any slots or cartridge selector by writing to the SD card.
The SD must contains at least the following folder tree
- _C4CPC : This is the main folder that contains the dip switch selectable folder.
- _C4CPC/0 to _C4CPC/F folders, which should contain only one valid CPR/BIN file. The cartridge emulator will first look for a CPR then a BIN file and load it to the cartridge.
SD original content can be found in File:C4CpcSdContent base.zip
How it works
At power up, CPC/USB whichever is the first, the uC will check for a valid .CPR/.BIN file to load in the DIP switch selected slot.
- If the file is smaller than 160KB, it will be loaded directly
- If no file is available or the file is bigger than 160KB, a bootloader is 1st loaded. The bootloader will then load the file if any.
C4CPC is powered either by the CPC or/and the USB port. That means that power cycling the CPC will NOT initiate a new cart loading if the cart is also powered by USB.
Cart loading from USB
A connected cart should appear as a serial port (COMx on windows, /dev/ttyACMx on linux, /dev/tty.modemxxxx on OSX). Windows require a .inf file to install the proper drivers. Loading is done using a python3 script which has the following syntax :
C4CpcCom.py -p port cart.cpr
where port is the serial port assigned to the cart.
Example for linux:
sudo python3 C4CpcCom.py -p /dev/ttyACM0 cart.cpr
Latest version available in File:C4CpcCom.zip will only work with FW V1.00.01 and upward
C4CPC microcontroller firmware is user upgradable through the USB port and requires the following tools and drivers :
- dfu-programmer for updating the code
- driver : provided with dfu-programmer windows version, native support on recent linux and OSx
Update procedure requires the dfu-programmer software:
- Executable version is provided for windows users.
- Linux users should find it in they distribution repository or build it from source. Older versions (before 0.7) of dfu-programmer have different commands so they will fail to run the UpdateCartEmu.sh script correctly. It is highly recommended you download the source and build it.
- OSX users will have to build it from provided source and script in dfu-programmer_install_OSX. Check the included readme.txt for detail.
Start C4CPC in usb update mode
- put dip switch 4 ON
- connect the card in one USB port
- press and release the C4CPC reset switch
Install DFU driver (Windows only)
- After the reset, windows will look for the device drivers. These are located in the windows\dfu-prog-usb-1.2.2 folder
You now just need to run the update script :
- Linux/OSx, you need to have root/admin right
- Windows, from the update package windows folder
A successful update looks like this :
Manufacturer Code: 0x58 (88) --- Erase --- Erasing flash... Success Checking memory from 0x0 to 0x6FFF... Empty. --- Flash --- Checking memory from 0x0 to 0x4DFF... Empty. 0% 100% Programming 0x4E00 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success 0% 100% Reading 0x7000 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success Validating... Success 0x4E00 bytes written into 0x7000 bytes memory (69.64%). --- EEProm --- 0% 100% Programming 0x380 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success 0% 100% Reading 0x400 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success Validating... Success 0x380 bytes written into 0x400 bytes memory (87.50%).
File:C4CPC V1.00.05.zip : Fixed cluster truncation error leading to crash when loaded files where on cluster number greater that 65536
File:C4CPC V1.00.04.zip : Added compatibility with Symbiface II, CprSelect can now display text files
File:C4CPC V1.00.03.zip : Fix bad behaviour in file read that may read more sector than available in a cluster
File:C4CPC V1.00.02.zip : Fix an issue in directory list management that prevent browsing reliably folders with more than 247 files
3D printed case
A dedicated cartridge case has been designed to protect your C4CPC. It can be 3D printed using online services using the stl file provided. The source sketchup design is also provided for those willing to customize it.
The following archives includes :
- Original systems (Basic 1.1 + Amsdos + BurninRubber)
- Original system with parados 1.2+ (Basic 1.1 + Parados 1.2 + BurninRubber)
- Original system with parados 1.2 (Basic 1.1 + Parados 1.2)
- FW3.16 32 rom (Basic 1.1 + Amsdos + BurninRubber)
- FW3.16 32 rom with parados (Basic 1.1 + Parados 1.2)
File:SystemCpr English.zip English version
File:SystemCpr French.zip French version
File:SystemCpr Spanish.zip Spanish version
For games that have been converted to cartridge format, see here: Converted_GX4000_games