aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeterminant <[email protected]>2017-11-17 12:33:51 -0500
committerDeterminant <[email protected]>2017-11-17 12:33:51 -0500
commitc0c462b28144cfa2fd900738eb32ab5c7a47a7db (patch)
treef72dac1268d4358373469245bae437471428bd46
parentd6192e94a8843d911bcbd8b20c385225e32eb496 (diff)
add readme
-rw-r--r--README.rst40
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