MSX Emulator (jsMSX)

What is it?

jsMSX is the first MSX emulator 100% written in JavaScript. Yes, you read it: JavaScript!

It emulates the underlying Z80 CPU, TMS9918 Video Display Processor (VDP), PPI, RAM slots, and Megaram. In its present form, it should be able to run any program or game developed for MSX 1.0.

Since JavaScript currently is mostly an interpreted language in web browsers, it is at least an order of magnitude slower than other languages such as C and Java. Therefore, jsMSX requires a very fast computer to emulate MSX at the normal 50-60 interrupts per second inside a web browser.

Why?

The initial motivation was to find some interesting project to develop while exploring the possibilities of the <canvas> tag and JavaScript language in the most recent web browsers like Firefox 2.

As you may have realized, many challenges on performance are faced when developing in JavaScript. They present an interesting testbed for pushing the current JavaScript implementations to their limits and for comparing their relative speed.

jsMSX can also be used to tightly integrate existing MSX programs in web page logic.

How to help

Lots of work to optimize the performance and add MSX 2.0, 2.0+ and TurboR features are still necessary. Version 1.0 will release an optimized javascript engine for MSX 1.0. Version 2.0, 3.0 and 4.0 will be compatible with MSX 2.0, 2.0+ and TurboR respectively.

An uncompress JavaScript function able to read zip and lhz file streams is also necessary to load compressed rom files. If you think you'd like to participate, are just curious, or want to say hello, please have a look at the project and please drop a line to the project forum.

See Also