Emul8080r is an Intel 8080 emulator written in Swift! Created initially to support a full emulation of the classic Space Invaders 👾 game on Apple platforms, found here.
The core type to get started with is
CPU, this is where the all the instruction handling is interpreted, with all the helper functions for each instruction found in
CPU+InstructionHelpers. Get started by initialising an instance of
CPU with the available RAM and an implementation of a
SystemClock to allow the emulate to approximate the speed at which it should be operating on the native system.
The Intel 8080 supported 256 instructions and emul8080r handles this via a switch from
0x00 through to
There are still many unimplemented instructions as the initial goal was to get Space Invaders running, over time will finalise populating these missing instructions and contributions are of course welcome!
There is a chance there are currently issues with certain instructions that yet to be discovered - I did not prioritise unit tests during the initial implementation but this is something planned to be improved over time! If you spot an issue, feel free to raise a PR.
|Instruction Value||Instruction Name|
Happy to receive any and all contributions relating directly to making this package a more accurate reflection of an Intel 8080 processor! Please do raise PRs including instruction implementations/bug fixes/enhancements alongside a unit test.
|Last commit: 4 weeks ago|
This release adds some missing instructions and improves the approach for unit testing so it's easier to cover any new instructions with tests.