Code Monkey home page Code Monkey logo

jsspeccy2's Introduction

JSSpeccy: A ZX Spectrum emulator in pure JavaScript
===================================================

https://github.com/gasman/jsspeccy2

Foreword to version 2.x
-----------------------
When I started this project in 2009, writing an emulator in JavaScript was a
silly idea. Now, thanks to advances in JavaScript engines, and new APIs
emerging from HTML5 and WebGL, it has become a significantly less silly idea,
which means that the time is right for a more serious attempt at the job.

What's new?
-----------
Everything, basically... it's a ground-up rewrite. In particular:

* Z80 core uses typed arrays[0] where appropriate, for a healthy performance
  boost (and significantly less faffing around with '& 0xff' everywhere to get
  around the lack of strong typing in JavaScript)
* More JavaScript-ish architecture - the Z80 instruction set is built up
  through copious use of closures, rather than borrowing Fuse's Perl generator
  script wholesale. (It's still heavily based on Fuse's Z80 core though.)
* 128K support!
* 99% accurate display emulation, for multicolour effects and the like
* TZX file support (only via tape traps; custom loaders won't work)
* Integration with the World Of Spectrum API, for instant loading of thousands
  of software titles

[0] https://developer.mozilla.org/en/javascript_typed_arrays

Building
--------
Perl, CoffeeScript[1] and Closure Compiler[2] are required. To build:

    make

This will place all web-distributable files into the 'dist' folder.

[1] http://jashkenas.github.com/coffee-script/
[2] https://developers.google.com/closure/compiler/

Browser support
---------------
Tested successfully on Chrome 32, Firefox 26 and Safari 7.0.1. Support for typed arrays and
the PixelData API are absolutely required, and it'll almost certainly stay that
way.

Matt Westcott
<[email protected]> - http://matt.west.co.tt/ - @gasmanic

jsspeccy2's People

Contributors

andyherbert avatar dmcoles avatar gasman avatar mborik avatar petermortensen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.