Skip to content

Latest commit

 

History

History
92 lines (75 loc) · 4.23 KB

README.md

File metadata and controls

92 lines (75 loc) · 4.23 KB

ep128emu-core

Use ep128emu as a libretro core

Leverage the convenience of libretro/retroarch to emulate the Z80 based home computers that the original ep128emu supports - that is, Enterprise 64/128, Videoton TVC, Amstrad CPC and ZX Spectrum. Focus is on Enterprise and TVC.

Features

Content types supported:

  • Enterprise disk images: img, dsk
  • Enterprise tape images: tap (either ep128emu or epte format)
  • Enterprise compressed files: dtf (via "ZozoTools" ROM)
  • Enterprise direct files: com, trn, 128, bas or . (no extension)
  • TVC disk images: img, dsk (TVC type guess from disk layout)
  • TVC direct files: cas
  • CPC disk images: img, dsk (CPCEMU and extended formats)
  • CPC tape images: cdt
  • Spectrum tape images: tzx
  • Spectrum direct files: tap

Input mapping and configuration

  • Default d-pad input mapping for player 1:
    • Enterprise: internal joystick
    • TVC: internal joystick
    • CPC: external joystick
    • ZX: Kempston
    • Fire is X button, L-R-L2-R2 buttons are 0-1-2-3 (several games use these in menu)
    • Keyboard input is enabled, be aware that retroarch uses several hotkeys by default
    • Use A button to display current layout
  • Default d-pad input mappings for further players
    • Enterprise: external 1 (also mapped to numpad), external 2
    • TVC: external 1 (also mapped to numpad), external 2
    • CPC: external 2
    • ZX: Sinclair 1, Sinclair 2, Protek
  • Configurable core options:
    • wait period (set to 0 if there are performance problems, set higher to reduce CPU load)
    • use software framebuffer (experimental, may crash)
    • use high quality sound (disable if there are performance problems)
    • enable resolution changes
    • amount of border to keep when zooming in
    • use original or enhanced ROM for Enterprise (faster memory test)

Other features

  • Save/load state, rewind
  • Content autostart except for disk images
  • Customizable input mapping for player 1
    • See sample.ep128cfg to see how retropad buttons can be assigned for a specific game.
    • Autostart file name can also be specified to enable autostart for disk.
  • System-wide configuration file
    • Following files are recognized in ep128emu/config inside retroarch system directory: enterprise.ep128cfg, tvc.ep128cfg, pc.ep128cfg, zx.ep128cfg
    • Most options from ep128emu configuration are also recognized in .ep128cfg files,
  • Fit to content
    • Pressing R3 will zoom in to the actual content, cropping black/single-colored borders
    • Borders can be cropped completely (default) or using a margin configurable among core options

For the emulation features, see the original README. SD card, SID, MIDI emulation is not available in ep128emu-core.

Using the binaries

Requirements

  • A system with retroarch installed. Currently Linux x86_64 and arm builds are available.
  • ROM files for the systems to be emulated.
    • Enterprise: exos21.rom, basic21.rom, epfileio.rom, exdos13.rom
      • epfileio.rom is a special image for ep128emu, needed only for direct file loading
      • TOSEC ROMs can also be used: Expandible OS v2.1 (1985)(Intelligent Software).bin, BASIC Interpreter v2.1 (1985)(Intelligent Software).bin, Disk Controller v1.3 (1985)(Intelligent Software).bin
      • For extra functions: exos24uk.rom (fast memory test), zt19uk.rom or ZozoTools v1.8 (19xx)(Zoltan Nemeth).bin (DTF support)
    • TVC: tvc22_sys.rom, tvc22_ext.rom, tvcfileio.rom, tvc_dos12d.rom
    • CPC: cpc6128.rom, cpc_amsdos.rom
    • ZX: zx128.rom
      • ROM from TOSEC collection may be used: ZX Spectrum 128K (1986)(Sinclair Research)(128K)[aka Derby].rom
  • Put the files to ep128emu/roms inside retroarch system directory. Example: ~/.config/retroarch/system/ep128emu/roms/

Running the core

retroarch -L ep128emu_core_libretro.so -v

Load content from in-game retroarch menu (default F1). For most content types, there is a startup sequence that will do the loading, if possible. Use fast-forward if loading is slow (such as tape input).

Contributing

Pull requests welcome. Especially for currently unsupported builds (like Windows or MacOS).

Links

Licensing

To be specified, probably staying with GPL2 as ep128emu.