This program emulates the Pac-Man hardware environment, allowing the arcade Pac-Man ROMs to run (almost) unmodified on the SAM Coupé. The Z80 code is executed natively, but the sprite and tile display hardware is emulated. The sound and input are mapped to the closest SAM equivalents.
The Pac-Man ROMs cannot be distributed with this program, so you must provide your own copies of the following files (from the Midway ROM set):
pacman.6e pacman.6f pacman.6h pacman.6j
The pacemu.dsk
disk image is created by combining the supplied disk image
fragments with the Pac-Man ROM images:
- Copy the Pac-Man ROM images (detailed above) to the pacemu directory.
- Windows users: run
make.bat
. Linux/Mac/Unix users runmake
. - Open the .dsk image with a SAM emulator, such as SimCoupe.
Key | Action |
---|---|
1 | 1 Player Start |
2 | 2 Player Start |
3 | Insert Coin |
F9 | Hard difficulty (hold during ROM boot) |
Cursor Keys | Joystick Control |
Q/A/O/P | Joystick Control |
SAM Joystick 1 | Joystick Control |
To check the difficulty setting, watch the cyan ghost at the start of the game. On Hard it exits the ghost box immediately, on Normal it waits around 6 seconds.
You may also build the emulator from source code, which requires a few extra tools.
- The pacemu source code.
- The arcade Pac-Man ROM images detailed above.
- tile2sam.py to create sprite data.
- pyz80.py assembler to build Z80 code.
Ensure tile2sam.py
and pyz80.py
are in your path, then run make.bat
(Windows)
or make
(Linux/Mac/Unix) to generate pacemu.dsk
.
- Added support for diagonal control inputs from keyboard and 8-way joysticks
- Added screen clear for compatibility with ROMs that skip RAM wipe
- Improved sprite draw/restore/clip code for extra speed
- Faster tile updates when no sprites are visible
- Added boot-time selection of Hard difficulty
- Added SAM joystick 1 and QAOP input methods
- Improved control handling, favouring latest direction change
- Skip RAM-check for faster startup
- Easier method to add ROMs to form final disk image
- Added build-time control of tile strip count, for Mayhem accelerator
- Changed code from Assembly Studio 8x to pyz80 (Comet) format
- Simplified build setup, moving a few things around
- Initial release
Simon Owen
https://simonowen.com/sam/pacemu/