plus4emu features
- cycle exact emulation of the 7501/8501 CPU, with full support for
all documented and undocumented opcodes
- cycle exact TED 7360/8360 emulation with very high level of
compatibility, implements all documented video modes, PAL/NTSC mode
switching, accurate sound emulation, as well as all known display
artifacts; all registers can be read and written, and the internal
operation and timing is reproduced with very 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; using custom ROM files for the emulated floppy drives and
printer is also possible
- limited emulation of the ACIA 6551 registers
- 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 MTAP
file format, as well as read-write (although without markers) support
for sound files like WAV, AIFF, etc.
- hardware level emulation of the 1541, 1551, and 1581 floppy disk
drives, with support for D64 and D81 files; compatibility with 1541 and
1551 fast loaders is fairly good in recent versions of the
emulator
- IEC level 1551 floppy drive emulation for accessing .PRG, .P00,
.R00, .S00, and .U00 files on the PC filesystem; this also supports the
C, I, N, P, R, S, and V DOS commands
- light pen emulation (compatible with the Trojan Light Pen
software)
- IEC level MPS-801 printer emulation
- hardware level 1526/MPS-802 printer emulation
- load and automatically start .PRG, .P00, .D64, .D81, or .TAP file
on start-up
- .PRG, .P00, .D64, and .D81 files can be associated with plus4emu on
Windows
- SID chip (MOS 6581 and 8580) emulation using version 0.16 of the
reSID library written by Dag Lem; the Digi-Blaster expansion by Solder
is also supported
- 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
- high quality television (PAL and NTSC) emulation; implements full
horizontal and vertical synchronization, blanking, equalization, sync,
and burst signals, interlace, and (if OpenGL 2.0 shaders are available)
separate luma/chroma filtering to emulate the blurredness of the TV
picture
- 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 audio output to a WAV format sound file
- recording video and sound output to an AVI format video file, with
RLE8 or uncompressed YV12 video at 24 to 60 frames per second, and
48000 Hz 16-bit PCM audio
- saving screenshots as 768x576 24-bit RLE compressed TGA files
- 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)
- 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,
and disassembler with support for all undocumented 6502 opcodes.
The debugger also includes a TEDMON-like monitor with support for all
the commands, as well as some improvements and additional features
(assemble/disassemble offset, saving disassembly to a file, physical
(22 bit) memory addressing mode, undocumented CPU opcodes in the
assembler and disassembler, trace, search/replace pattern in memory,
and more).
It is also possible to debug the 6502 compatible CPUs in floppy drives
and printers.
The debugger supports scripting in the
Lua language, to allow for advanced
uses like breakpoints with custom defined, complex set of
conditions.
- configurable keyboard map for the emulated machine; it is also
possible to use external game controller devices like joysticks and
gamepads
- mouse and clipboard support for setting the cursor position,
copying, and pasting text in the emulated machine:
- left click:
sets the cursor position
- right click:
sets the cursor position, and copies the selected word to the
clipboard
- ctrl + right click:
sets the cursor position, and copies text from the selected
line to the clipboard
- shift + right click:
copies text from the whole screen to the clipboard without
changing the cursor position
- middle click:
sets the cursor position, and pastes text from the
clipboard
- shift + middle click:
pastes text from the clipboard without changing the cursor
position
- the Plus/4 emulation can be used in other programs as a shared
library with a C interface; see the
plus4lib/plus4emu.h
header file for details, and also
plus4lib/sample.c
for a simple example of using the interface
The emulator package also includes some
utilities:
- compress - compresses Plus/4 .PRG and .P00 files
with very good compression ratio (CA65 assembler source code for the
decompressor is available)
- makecfg - reinstalls the configuration files of
the emulator
- p4fliconv - converts JPEG and other format images
to various Plus/4 video modes (hires/multicolor, FLI, interlace, etc.);
it can be used both from the command line, and as a GUI program which
uses the emulator for accurate previews. CA65 assembler sources for the
FLI viewer are also available.
- p4sconv - converts PixelShop .P4S images to any of
the output formats supported by p4fliconv
- tapconv - converts MTAP format tape files to the
native plus4emu tape format
Back to main page
© Istvan Varga
<istvanv@users.sourceforge.net>, 2008