diff options
author | Determinant <[email protected]> | 2017-11-17 12:33:51 -0500 |
---|---|---|
committer | Determinant <[email protected]> | 2017-11-17 12:33:51 -0500 |
commit | c0c462b28144cfa2fd900738eb32ab5c7a47a7db (patch) | |
tree | f72dac1268d4358373469245bae437471428bd46 | |
parent | d6192e94a8843d911bcbd8b20c385225e32eb496 (diff) |
add readme
-rw-r--r-- | README.rst | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..240689e --- /dev/null +++ b/README.rst @@ -0,0 +1,40 @@ +RuNES +===== + +As we know, there have been a ton of NES emulators implementation in various +kinds of languages (mostly C). All of these emulators come with different +accuracy and portability. RuNES is an attempt to implement a reasonably +accurate (instruction level accurate), light-weight and efficient emulation +core library written in Rust. Unlike sprocketnes_ or pinky_, RuNES strives to +provide with a clean and minimal core library without standard library (i.e., +without Box, Rc, Vectors, etc.) that could be compiled and easily ported to +embedded environments. Of course, a simple SDL-based GUI is implemented as a +demonstration of use. + +Feature +======= + +- Core library with minimal use of the Rust core crate, and zero use of std. +- Support standard 6502 instruction set (unofficial instruction will be + considered in the future). + +- Instruction-level accuracy with accurate CPU/PPU timing. + +Guidelines +========== + +- Never use std in the core library. +- At the same time, avoid ``unsafe`` as much as possible, but use it at + discretion to improve performance: remove unnecessary checks within a very + localized context. + +- Keep the core library code base minimal. + +.. _sprocketnes: https://github.com/pcwalton/sprocketnes +.. _pinky: https://github.com/koute/pinky + +Build +===== + +:: + cargo build --release |