plus4emu is an open source, portable emulator of the Commodore Plus/4
computer, written in C++, and supporting Windows and POSIX platforms
(32 bit Windows, and 32 and 64 bit Linux have been tested).
It implements accurate, high quality hardware emulation, however, the
system requirements are higher than that of most other emulators.
General
-------
* graphical user interface using the FLTK library
* software (FLTK based) or OpenGL video, with resizable emulator
window, fullscreen mode, brightness/contrast/gamma can be set
globally or separately for red/green/blue channels, color
saturation control; additional features in OpenGL mode only: single
or double buffered (with synchronization to vertical refresh) mode,
linear texture filtering, and some display effects
* real time audio output uses the PortAudio library (v18 or v19), with
support for many native audio APIs (MME/DirectSound/ASIO on Windows,
OSS/ALSA/JACK on Linux, and CoreAudio on MacOS X); high quality
sample rate conversion with low aliasing; volume control, two first
order highpass filters with configurable cutoff frequency, and an
optional parametric equalizer can be applied to the audio signal
* recording sound output to a WAV format sound file
* saving and loading snapshots of the state of the emulated machine
* demo recording (snapshot combined with stream of keyboard events
which can be played back with accurate timing)
* tape emulation with playback, recording, and setting tape position;
markers can be created for quick positioning to specific tape
locations (useful for tapes with multiple files); uses custom file
format which is PCM audio data with 1 to 8 bits of sample resolution
and variable sample rate, and header including the table of markers;
there is also limited (read only) support for the commonly used C16
tape files
* simple GUI debugger with support for breakpoints/watchpoints,
viewing the current state of CPU registers and memory paging,
displaying memory dump or loading from or saving to a file in ASCII
or binary format, modifying memory or searching for a pattern of
bytes, disassembler with support for all undocumented 6502 opcodes,
address offset for code that runs at a different location than where
it is at the time of disassembling, and saving disassembly to a
file. For memory operations and the disassembler, addresses can be
16 bit CPU (affected by current paging and includes memory mapped
I/O registers) or 22 bit physical (all ROM and RAM data can be
accessed, regardless of memory paging) addresses.
Plus/4 emulation
----------------
* cycle based emulation of the 7501/8501 CPU, supporting all
documented and undocumented opcodes, and fully compatible decimal
mode
* TED 7360/8360 emulation with high level of compatibility, implements
all documented video modes, PAL/NTSC mode switching, as well as most
known display artifacts; all registers can be read and written, and
the internal operation and timing is reproduced with good accuracy
* RAM size can be 16, 32, 64, 256, or 1024 kilobytes (the latter two
using the Hannes memory expansion)
* up to 8 16 kilobyte banks of ROM can be loaded from external image
files
* experimental hardware level emulation of the 1541 and 1581 floppy
disk drives, with support for D64 and D81 files
* load and automatically start .PRG file on start-up
* optional extension ROM (p4fileio.rom) for direct access to .PRG
files by the load/save commands on the host system in a single user
selectable directory