https://github.com/x65/emu
X65 microcomputer emulator
https://github.com/x65/emu
65816 8bit emulator wasm x65
Last synced: 8 months ago
JSON representation
X65 microcomputer emulator
- Host: GitHub
- URL: https://github.com/x65/emu
- Owner: X65
- License: 0bsd
- Created: 2024-10-14T11:52:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-05T09:48:47.000Z (over 1 year ago)
- Last Synced: 2025-03-05T10:32:20.556Z (over 1 year ago)
- Topics: 65816, 8bit, emulator, wasm, x65
- Language: C++
- Homepage: https://x65.zone/
- Size: 1.27 MB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# X65 emulator
This is Emu
The [X65 Computer][1] Emulator.
Emu is based on [chip emulators][2] by Andre Weissflog.
> The USP of the chip emulators is that they communicate with the outside world
> through a 'pin bit mask': A 'tick' function takes an uint64_t as input
> where the bits represent the chip's in/out pins, the tick function inspects
> the pin bits, computes one tick, and returns a (potentially modified) pin bit mask.
>
> A complete emulated computer then more or less just wires those chip emulators
> together just like on a breadboard.
[1]: https://x65.zone/
[2]: https://github.com/floooh/chips
## Dependencies
Fedora:
dnf install libX11-devel libXi-devel libXcursor-devel mesa-libEGL-devel alsa-lib-devel
Ubuntu:
apt install libx11-dev libxi-dev libxcursor-dev libegl1-mesa-dev libasound2-dev
## Build
[](https://github.com/X65/emu/actions/workflows/cmake-multi-platform.yml)
Build using CMake and a modern C/C++ compiler.
> [!TIP]
> This repository uses submodules.
> You need to do `git submodule update --init --recursive` after cloning
> or clone recursively:
> git clone --recursive https://github.com/X65/emu.git
### WASM
Install [Emscripten][3] toolchain. Next, run the following commands:
mkdir wasm
cd wasm
emcmake cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
[3]: https://emscripten.org/docs/getting_started/downloads.html
## Running
Linux
> build/emu --help
Usage: emu [OPTION...] [ROM.xex]
> build/emu roms/SOTB.xex
Windows
> build/emu.exe file=roms/SOTB.xex
### Opcode Breakpoints
The emulator supports opcode based breakpoints, if an specified opcode is executed, the emulator will stop. Possible breakpoint values are EA (NOP) 42 (WDM #xx) and B8 (CLV).
> build/emu.exe file=roms/SOTB.xex break=EA