Skip to content

EremusOne/CPCESP_alpha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

CPCESP

This is an emulator of the Amstrad CPC family of 8 bit home microcomputers running on Espressif ESP32 SoC powered boards.

Currently, it can be used "out of the box" with Lilygo's TTGo VGA32 board and Olimex's ESP32-SBC-FabGL board.

Just connect a VGA monitor or CRT TV (with special VGA-RGB cable needed), a PS/2 keyboard, prepare a SD Card as needed and power via microUSB.

This emulator is part of the ESPectrum project and, in the near future, will be integrated on it.

Features

  • Emulation of CPC 464, 664 and 6128 models
  • State of the art Z80 emulation (Authored by José Luis Sánchez)
  • 6 bpp VGA output (384x288, 400x300 and 720x288 resolutions @ 60 and 50hz modes) and CRT 15khz output ( 384x288 and 768x288 @ 50hz modes via VGA to RGB Scart cable).
  • AY-3-8912 sound emulation.
  • Complete CPC keyboard emulation mapped to PS/2 keyboard.
  • Loading of SNA (64K) and DSK file types.
  • Complete file navigation system with autoindexing, folder support and search functions.
  • OSD menu in two languages: English & Spanish.

Work in progress

  • Everything! :D The emulator is in alpha stage (but with a lot of titles yet working perfectly :D ) and there's a lot of pending improvement: better SNA and DSK format support, TZX and CDT format support and snapshot saving and loading are the next things we probably add. Also, CRTC, GA and PPI emulation will get better at every release.

Installing

You can flash the binaries directly to the board. Check the releases section

Compiling

The source code of the emulator will be published soon so you'll be able to compile it in the same way as ESPectrum project. Stay tuned!

How to prepare micro SD Card

The SD card should be formatted in FAT16 / FAT32.

Just that: then put your .sna and .dsk whenever you like and create and use folders as you need.

There's also no need to sort files using external utilities: the emulator creates and updates indexes to sort files in folders by itself.

Video modes supported

Default video mode is VGA 384x288 60hz. Emulator will start in this mode.

To change video mode press repeatedly this combination of keys just after powering on or after cold reset (F12):

  • 1 + Q -> 384x288 VGA 60hz
  • 2 + Q -> 400x300 VGA 60hz
  • 3 + Q -> 720x288 VGA 60hz (real mode 2)
  • 1 + W -> 384x288 VGA 50hz
  • 2 + W -> 400x300 VGA50hz
  • 3 + W -> 720x288 VGA 50 hz (real mode 2)
  • 1 + E -> 384x288 CRT 15khz 50hz
  • 2 + E -> 384x288 CRT 15khz 50hz
  • 3 + E -> 768x288 CRT 15khz 50hz (real mode 2)

You can check current video mode at lower line of help or hardware info dialogs.

PS/2 Keyboard functions

  • F1 Main menu
  • F2 Load SNA
  • F5 Load DSK
  • F8 CPU stats ( [CPU] microsecs per CPU cycle, [IDL] idle microsecs, [FPS] Frames per second, [FND] FPS w/no delay applied )
  • F9 Volume down
  • F10 Volume up
  • F11 Hard reset
  • F12 Reset ESP32
  • CTRL + F1 Hardware info
  • CTRL + F2 Turbo mode
  • CTRL + F5..F8 Screen centering in CRT 15K/50hz mode
  • Pause Pause

Project links

Contribute

CPCESP is open source sofware licensed under GPL v3, you can use modify and share it for free. If you like CPCESP, please consider becoming Patreon or donating through Paypal. Your support help us to maintain and improve the project for all users. You can do it at the following links:

Supported hardware

Thanks to

Thanks also to

And, of course, thanks to