Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/imagineeeinc/lychee

A small assembly emulator
https://github.com/imagineeeinc/lychee

Last synced: about 9 hours ago
JSON representation

A small assembly emulator

Awesome Lists containing this project

README

        




Lychee

A bare bones 8 bit computer emulator.
### About
Lychee is a simple and bare bones emulator for a fictional computer with an instruction set heavily based on the GameBoy's CPU. Lychee is built to be restraining with no graphics, only supporting text mode graphics, and a ascii based keyboard.

**Still a work in progress, as the instruction set and docs is being added**

## Docs
Check out the [`docs`](docs) folder for all the docs. Or, go to the auto generated [gitbook (imagineee.gitbook.io/lychee)](https://imagineee.gitbook.io/lychee)
## Specification
Check out the [`docs/specs`](docs/spec) folder for more on opcodes and specification.

## ROMS
Roms are either written in raw hex, using a hex editor (example roms in `/examples/roms`). Or use the official assembler found in the `/assembler` directory. Assembly examples are found in `/examples/asm`.

And more info on the assembler at [`docs/assembler`](docs/assembler)

## Usage
To use the desktop app for emulation and debugging, read the [`docs/desktop`](docs/desktop).
### Compilation
#### Compiling the Emulator
Make sure the [Nim compiler and Nimble package manager](https://nim-lang.org/) is installed.

Clone this repo and compile using nimble.
```bash
git clone https://github.com/imagineeeinc/lychee.git
cd lychee

# Debug (Run)
nimble debug -- ./rom

# Build release
nimble release
```
#### Compiling the assembler
```bash
# cd into the assembler
cd assembler
nimble build

# Try the example project
./lasm examples/loopchars.asm ../rom
# For windows
./lasm.exe examples/loopchars.asm ../rom
# Then run it in lychee
cd ..
nimble debug -- ./rom
```