Overview
CPR (Cartridge ROM) files are cartridge images for Amstrad GX-4000 and CPC Plus systems. DevCPC can automatically generate CPR files that boot instantly when inserted.What is a CPR?
CPR is the cartridge format for:- Amstrad GX-4000 - Console (cartridge-only)
- CPC 464+ - Computer with cartridge port
- CPC 6128+ - Computer with cartridge port
- Instant boot - No loading time
- Plug & play - Insert and power on
- Large capacity - Up to 512KB
- Professional feel - Console-like experience
Hardware Compatibility
| Hardware | Compatible | Notes |
|---|---|---|
| GX-4000 | ✅ Yes | Console (cartridge only) |
| CPC 464+ | ✅ Yes | Plus series with cart port |
| CPC 6128+ | ✅ Yes | Plus series with cart port |
| CPC 464/664/6128 | ❌ No | Classic models (no cart port) |
| Emulators | ⚠️ Some | RVM, WinAPE (Plus mode) |
Configuration
Add to yourdevcpc.conf:
Simple Configuration
Only specify the filename, not the full command:run"..." command automatically.
CPR Creation Process
Duringdevcpc build, if CPR is configured:
Step 1: Verify DSK Exists
CPR is generated from the DSK, so DSK must be created first.Step 2: Convert DSK to CPR
Usesnocart.py to create cartridge:
Step 3: Patch ROMs
Includes required system ROMs:- OS ROM
- BASIC ROM
- AMSDOS ROM
Step 4: Configure Boot
Sets auto-execute command that runs on power-on.Step 5: Show Info
Displays cartridge details:Build Output Example
CPR Execute Options
BASIC Loader
Most common - load BASIC program first:Direct Binary
Load binary directly (no BASIC):Default Program
Load first program on disk:RUN"DISC" on CPC.
Complete Example
Project Configuration
File Structure
Build Result
Distribution
Provide users with all formats:- mega-game.dsk - For CPC 664/6128, M4 Board, emulators
- mega-game.cdt - For CPC 464, tape loading
- mega-game.cpr - For GX-4000, CPC Plus
CPR Advantages
For Users
✅ Instant boot - No waiting for tape/disk ✅ No setup - Just insert and play ✅ Authentic feel - Real cartridge experience ✅ Reliable - No loading errorsFor Developers
✅ Professional - Polished distribution ✅ Large capacity - Up to 512KB vs 178KB (DSK) ✅ Copy protection - Harder to pirate than disk ✅ Demo friendly - Perfect for showcasesCPR Limitations
Hardware
❌ Not compatible with classic CPC (no cart port) ❌ Requires GX-4000 or Plus models ❌ Can’t modify - ROM is read-onlyDevelopment
❌ Slower testing - Must rebuild CPR each time ❌ No saves - Can’t write back to cartridge ❌ Emulator support - Limited emulator compatibilityUsing CPR Files
In Emulator
RetroVirtualMachine:- File → Cartridge → Insert Cartridge
- Select your .cpr file
- System → Reset (CPC Plus mode)
On Real Hardware
GX-4000:- Flash to cartridge with FlashGordon or similar
- Insert cartridge
- Power on
- Flash to cartridge
- Insert in cartridge port
- Power on or press Reset
Multi-Format Projects
Generate all formats for maximum compatibility:Format Comparison
| Feature | DSK | CDT | CPR |
|---|---|---|---|
| Speed | Fast | Slow | Instant |
| Capacity | 178KB | Variable | 512KB max |
| Access | Random | Sequential | Random |
| Boot | Manual load | RUN" | Auto |
| Hardware | 664/6128 | All CPCs | GX-4000/Plus |
| Emulators | All | All | Some |
| Development | Fast | Slow | Slow |
| Distribution | Common | Retro | Professional |
Troubleshooting
CPR Not Created
DSK must exist first:CPR Won’t Boot
Wrong execute file:- File must exist on DSK
- Check filename spelling
- Use
.basextension for BASIC
- Use filename only, not
run"..." - Example:
loader.basnotrun"loader.bas"
- Ensure Plus ROMs are available
- Rebuild with
devcpc clean && devcpc build
Emulator Issues
CPR won’t load:- Switch to Plus/GX-4000 mode
- Some emulators have limited CPR support
- Try different emulator
- Check DSK contents are valid
- Verify auto-execute file works from DSK first
- Test DSK before building CPR
Best Practices
- Test DSK first - Ensure DSK works before CPR
- Simple loaders - Keep CPR_EXECUTE simple
- Provide alternatives - Distribute DSK + CDT + CPR
- Document requirements - Tell users GX-4000/Plus needed
- Use for releases - CPR for final distribution
Advanced Usage
Multiple CPR Variants
Create different CPRs from same project:Custom Boot Sequence
Create elaborate boot sequences:Manual CPR Creation
See Also
- Disk Images - DSK format (required for CPR)
- Tape Images - CDT alternative
- Compiling Code - Build process
- Creating Projects - Project setup