README.md 2.51 KB
Newer Older
Andre Leiradella's avatar
Andre Leiradella committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 81-libretro

**81-libretro** is an *work in progress* port of the [EightyOne](http://www.chuntey.com/) (a.k.a. THE Sinclair Emulator) to [libretro](http://www.libretro.com/). It's being developed on Windows with MinGW (64 bits) and Debian 8, and tested on RetroArch 1.2 frontend.

## Emulated Machines

EightyOne emulates a number of ZX80, ZX81, clones, and other computers based on the same hardware:

* Sinclair ZX80
* Sinclair ZX81
* Timex TS1000
* Timex TS1500
* Lambda 8300
* Ringo R470
* MicroDigital TK85
* Jupiter ACE

However, **81-libretro** only emulates the Sinclair ZX81 with 16Kb RAM for now. Other machines will be added as time permits. Push requests are welcome.

The port correctly loads and runs ~~some~~ many games I have around in the `p` format. `tzx` format is not supported yet.

Andre Leiradella's avatar
Andre Leiradella committed
22
EightyOne also emulates some ZX Spectrum machines, but those were left out of this core on purpose. For a ZX Spectrum core for libretro, see the [Fuse core](https://github.com/libretro/fuse-libretro).
Andre Leiradella's avatar
Andre Leiradella committed
23
24
25
26
27

## Core Options

The only core option available on the frontend is:

28
29
30
31
* Emulate Chroma 81 (disabled|enabled): Enable the [Chroma 81](http://www.fruitcake.plus.com/Sinclair/ZX81/Chroma/ChromaInterface.htm) interface
* Video Presets (clean|tv|noisy): Change how the video is emulated (if Chroma 81 is enabled, the video is set to "clean" regardless of this option)
* Transparent Keyboard Overlay (enabled|disabled): If the keyboard overlay is transparent or opaque
* Time to Release Key in ms (500|1000|100|300): How many milliseconds to wait before releasing the key pressed using the keyboard overlay
Andre Leiradella's avatar
Andre Leiradella committed
32
33
34
35
36
37
38
39
40
41
42

## Keyboard and Controllers

A keyboard and a cursor joystick are configured and should work out-of-the-box.

## Supported Formats

The only format supported is the `p` format. I wanted to support `tzx` tapes but the emulator refuses to load them. Push requests are welcome.

## Save States

43
Save states are supported, but are likely to change when more machines are emulated.
Andre Leiradella's avatar
Andre Leiradella committed
44
45
46

## Setup

Andre Leiradella's avatar
Andre Leiradella committed
47
48
1. Compile **81-libretro** with `make -f Makefile.libretro`
1. Copy the resulting `81_libretro.dll` or `81_libretro.so` into the `cores` folder of your libretro frontend
Andre Leiradella's avatar
Andre Leiradella committed
49
50
1. Profit!

Andre Leiradella's avatar
Andre Leiradella committed
51
52
## Thanks

53
* Erik Olofsen, for the correct values to set the Z80 registers and some memory variables to successfully load .P files, and for the Chroma 81 emulation
Andre Leiradella's avatar
Andre Leiradella committed
54

Andre Leiradella's avatar
Andre Leiradella committed
55
56
## Versions

Andre Leiradella's avatar
Andre Leiradella committed
57
Versions that are being used to build and test **81-libretro**:
Andre Leiradella's avatar
Andre Leiradella committed
58
59
60
61
62
63
64
65
66

* EightyOne version 1.0 (test a)

## TODO

See the open issues.

## Bugs

Andre Leiradella's avatar
Andre Leiradella committed
67
Many, probably. Open issues or send push requests.
Andre Leiradella's avatar
Andre Leiradella committed
68
69
70
71

## License

GNU GPLv3.0