Difference between revisions of "JSMESS"
(→Features and status) |
|||
Line 1: | Line 1: | ||
[[File:Jsmess in Chromium.png|thumb|upright=1.1|JSMESS emulating a CPC6128 in Chromium 30 on Linux]] | [[File:Jsmess in Chromium.png|thumb|upright=1.1|JSMESS emulating a CPC6128 in Chromium 30 on Linux]] | ||
'''JSMESS''' is a JavaScript port of [[MESS]] that runs in modern web browsers like Chrome and Firefox and is considered to be in its public beta stage right now. Particularly sound is still a problem. | '''JSMESS''' is a JavaScript port of [[MESS]] that runs in modern web browsers like Chrome and Firefox and is considered to be in its public beta stage right now. Particularly sound is still a problem. | ||
+ | |||
+ | ==History and development roadmap== | ||
+ | |||
+ | The JSMESS project was originally proposed in a blog post by Jason Scott of textfiles.com and The Internet Archive in October 2011.[http://ascii.textfiles.com/archives/3375] The idea was to have a system for preservation of old computers and game consoles that runs directly in the web browser without any plugins. | ||
+ | |||
+ | Initial progress was slow because the Emscripten transcompiler had to be fixed and improved during development. In 2013, JSMESS reached a fairly usable state and was declared to be in public beta. | ||
+ | |||
+ | Ideally JSMESS should later also have snapshot capabilities so if e.g. a certain feature is discussed on a web page, JSMESS can take you directly to that point in the game. | ||
+ | |||
+ | Also, keymapping and a virtual keyboard on the screen are planned for JSMESS, although in principle you should already be able to create keymaps in MESS and use them with JSMESS. | ||
+ | |||
+ | JSMESS development is heading toward its 1.0 version. The [https://github.com/jsmess/jsmess/wiki/JSMESS-v1.0-Systems list of systems] that are supposed to be officially supported by 1.0 also includes the CPC464/664/6128 (although the printer is erroneously listed as the program medium for the CPC on the list). | ||
==Building from source== | ==Building from source== | ||
Line 14: | Line 26: | ||
Note that the ROM file cpc6128.zip also needs to contain the AMSDOS ROM from cpc464.zip because unlike regular MESS, JSMESS only loads a single ROM ZIP file per machine. | Note that the ROM file cpc6128.zip also needs to contain the AMSDOS ROM from cpc464.zip because unlike regular MESS, JSMESS only loads a single ROM ZIP file per machine. | ||
− | As of October 2013, sound only works in Firefox and not in Chrome/Chromium. Emulation speed in Firefox is better than in Chrome, presumably because Firefox has better support for Emscripten's asm.js-based JS code | + | As of October 2013, sound only works in Firefox and not in Chrome/Chromium. Emulation speed in Firefox is better than in Chrome, presumably because Firefox has better support for Emscripten's asm.js-based JS code. The joystick is mapped to Alt and the arrow keys by default. |
− | + | ||
− | + | ||
==CPC demo page== | ==CPC demo page== | ||
Line 27: | Line 37: | ||
*[https://github.com/mdoege/jsmess Fork] with added CPC6128 makefiles | *[https://github.com/mdoege/jsmess Fork] with added CPC6128 makefiles | ||
*[http://mdoege.github.io/jsmess/ CPC6128/SubHunter demo page] | *[http://mdoege.github.io/jsmess/ CPC6128/SubHunter demo page] | ||
+ | *[http://en.wikipedia.org/wiki/Jason_Scott_Sadofsky Jason Scott], initiator of the project, at Wikipedia | ||
[[Category:Emulator]] | [[Category:Emulator]] |
Revision as of 07:17, 12 October 2013
JSMESS is a JavaScript port of MESS that runs in modern web browsers like Chrome and Firefox and is considered to be in its public beta stage right now. Particularly sound is still a problem.
Contents
History and development roadmap
The JSMESS project was originally proposed in a blog post by Jason Scott of textfiles.com and The Internet Archive in October 2011.[1] The idea was to have a system for preservation of old computers and game consoles that runs directly in the web browser without any plugins.
Initial progress was slow because the Emscripten transcompiler had to be fixed and improved during development. In 2013, JSMESS reached a fairly usable state and was declared to be in public beta.
Ideally JSMESS should later also have snapshot capabilities so if e.g. a certain feature is discussed on a web page, JSMESS can take you directly to that point in the game.
Also, keymapping and a virtual keyboard on the screen are planned for JSMESS, although in principle you should already be able to create keymaps in MESS and use them with JSMESS.
JSMESS development is heading toward its 1.0 version. The list of systems that are supposed to be officially supported by 1.0 also includes the CPC464/664/6128 (although the printer is erroneously listed as the program medium for the CPC on the list).
Building from source
Out of the box only a small selection of MESS machines can be immediately compiled to JavaScript from the JSMESS package. Compiling MESS in its entirety would create a JavaScript file that is far too big for web browsers to handle. So one has to find out which parts of MESS are really needed for a given machine and create Makefiles with that subset. (JSMESS now also includes scripts that automate this task.)
It is recommended to build JSMESS modules on Linux which also makes it easier to install the dependencies for Emscripten. The basis for JSMESS is MESS 0.142 and a custom version of Emscripten.
A JSMESS fork that includes the necessary Makefiles to build the CPC6128 version exists.
Features and status
Note that the ROM file cpc6128.zip also needs to contain the AMSDOS ROM from cpc464.zip because unlike regular MESS, JSMESS only loads a single ROM ZIP file per machine.
As of October 2013, sound only works in Firefox and not in Chrome/Chromium. Emulation speed in Firefox is better than in Chrome, presumably because Firefox has better support for Emscripten's asm.js-based JS code. The joystick is mapped to Alt and the arrow keys by default.
CPC demo page
This JSMESS CPC demo page (with the SubHunter disc in drive A) also has a ZIP file download of the build.
Links
- Official site
- GitHub page with source code (without any CPC makefiles right now)
- Fork with added CPC6128 makefiles
- CPC6128/SubHunter demo page
- Jason Scott, initiator of the project, at Wikipedia