Skip to content

feat(libretro-zesarpcw): add ZEsarPCW as the default Amstrad PCW core - #17304

Open
retrodiv wants to merge 1 commit into
batocera-linux:masterfrom
retrodiv:feat/pcw-zesarpcw
Open

retrodiv wants to merge 1 commit into
batocera-linux:masterfrom
retrodiv:feat/pcw-zesarpcw

Conversation

@retrodiv

@retrodiv retrodiv commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Add the ZEsarPCW libretro core and make it the default for the existing pcw system.

ZEsarPCW emulates the Amstrad PCW 8256/8512 and boots .dsk images and .m3u playlists through its own bootstrap, without an external BIOS. Keep the MAME cores available as alternatives, including for the other PCW models.

Add the package, core registration, supported extensions and default selection. Create the core-info placeholder because Batocera's pinned libretro-core-info revision does not include ZEsarPCW yet.

EmulationStation's existing system-wide MAME BIOS warning still applies; this PR does not change BIOS checking.

Validation: the launcher test suite passed after rebasing onto current master (699 tests, without PyGObject). Runtime validation in a Batocera v44 x86_64 VM covered launching Head Over Heels and Batman from EmulationStation with ZEsarPCW. git diff --check passes.

A complete Batocera image/package cross-build has not been run for this PR.

Source: retrodiv/ZEsarPCW-libretro@23af891
License: https://github.com/retrodiv/ZEsarPCW-libretro/blob/23af8913c0ff22b9d89646ca9f98660db17f0057/LICENSE
Bootstrap license: https://github.com/retrodiv/ZEsarPCW-libretro/blob/23af8913c0ff22b9d89646ca9f98660db17f0057/sources/openpcw-os/LICENSE

Add the ZEsarPCW libretro core for the existing pcw system and make it
the system default. It is a libretro port of ZEsarUX limited to the
Amstrad PCW 8256/8512, written in plain C, and it boots disk images
(.dsk, or .m3u playlists) through its own GPLv3 bootstrap, so it needs
no BIOS. The MAME cores stay available for the other PCW models and
still use pcw8256.zip/pcw9512.zip.

The core is selected on all targets. The pinned libretro-core-info
revision has no zesarpcw_libretro.info yet, so an empty one is created,
as done for other cores.
@retrodiv

retrodiv commented Nov 8, 2026

Copy link
Copy Markdown
Contributor Author

A little more context on why I think the PCW deserves a chance as a gaming platform today.

There is an active scene around Habi/HabiSoft and KachorroSoft, with conversions and improvements to classic games already available. Habi's projects include Knight Lore, Alien 8 and Head over Heels Enhanced; KachorroSoft's releases include Phantis, Mad Mix Game and Batman Plus Edition. This gives the PCW library something to offer both returning players and people discovering it for the first time.

Habi's PCW# mini FPGA expansion and the PCW Plus colour/sound ecosystem also give compatible software more to work with. These enhancements are already used by released games: Phantis offers monochrome, four-colour and sixteen-colour modes, plus DK'Sound support; Batman Plus Edition offers four colours and DK'Sound music/effects. They are community extensions to the classic PCW, and the available features depend on the game and configuration.

Already implemented in the ZEsarPCW revision used here:

  • PCW colour-board modes, including four and sixteen colours, and the dk'tronics AY sound interface. This covers the relevant colour/sound functionality, without claiming emulation of every PCW# mini peripheral.
  • Loading DSK images, M3U disc playlists and libretro save states.
  • Automatic per-game RetroPad profiles for recognised disc images, including Head Over Heels, Batman, Mad Mix Game and Phantis. These map the game's keyboard controls to the pad; recognition is based primarily on disc fingerprints, so coverage depends on the particular image.
  • User-defined keyboard-to-RetroPad assignments through the core's Custom Keyboard Bindings device, saved as RetroArch game remaps.
  • A virtual keyboard operated with the controller for menus, prompts and keys outside the selected mapping.

The automatic profiles already exist. Extending them to more new releases and verified alternate disc images is planned follow-up work; that broader coverage is not being claimed as complete. Custom remaps and the virtual keyboard provide ways to handle titles outside the existing profiles.

For me, that combination is the reason to give today's PCW a chance: a library of classics that is still being expanded and improved, colour and sound extensions used by real releases, and controls that make a keyboard-based machine approachable from a gamepad. The integration offers a practical way for more players to discover that work. This is a description of the core's capabilities and the scene, rather than a claim that every listed release has been tested on every supported board.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants