Difference between revisions of "Javascript Mess"

From Archiveteam
Jump to navigation Jump to search
 
(27 intermediate revisions by 8 users not shown)
Line 1: Line 1:
This is the organizing page for the Javascript Mess Project, an effort to port the MAME and MESS emulators to Javascript. Manifesto and References will be at the bottom of the page, and actions at the top of the page. ''This entry is currently a work in progress, and more information is still being added.''
__NOTOC__


==Actions==
The JAVASCRIPT MESS project is a porting of the [http://www.mess.org/ MESS emulator], a program that emulates hundreds of machine types, into the Javascript language. The MESS program can emulate (or begin to emulate) a majority of home computers, and continues to be improved frequently. By porting this program into the standardized and cross-platform Javascript language, it will be possible to turn computer history and experience into the same embeddable object as movies, documents, and audio.


After writing the initial weblog entry and announcement for the project, a number of people have responded with interest. Feel free to use the discussion page of this wiki entry to add your thoughts and questions. I think the group is small enough to not need a mailing list, although that can change.
We have a long way to go, but [http://jsmess.textfiles.com this open beta] is now available.


* '''Action Item''' - Someone should take a "devil may care" attempt to put MESS or MAME through Emscripten. [https://github.com/kripken/emscripten] See what breaks, what they run into. E-mail Jason Scott (jscott at archive dot org) or edit this wiki to take a shot at it. It'd be good to see what we're up against. '''Currently Devesine is taking a shot but others should too.'''
[[Image:Jssmurf2.png|300px|right|caption|Javascript MESS currently runs Colecovision cartridges well]]
 
== Functioning Demonstrations ==
 
The main JSMESS site [http://jsmess.textfiles.com/demos.html has some classic software demos] guaranteed to work. The [http://jsmess.textfiles.com JSMESS home page] links to every system which MESS v0.142u6 supports, although not all systems have their required ROM files and game files in the right place yet, so some of them just spin the disk loader icon forever.
 
''The latest versions of Chrome and Firefox run JSMESS emulators the best.  IE10 might work.  It will have spotty performance elsewhere.''
 
== More Information and Source Code ==
 
Information on how to build JSMESS, the status of JSMESS, and the future of JSMESS can be found out on its [https://github.com/jsmess/jsmess/wiki GitHub Wiki]. The source code can be found on its [https://github.com/jsmess/jsmess GitHub page].
 
If you have a problem building JSMESS or have a feature suggestion, feel free to [https://github.com/jsmess/jsmess/issues open up an issue on our issue tracker].


==Manifesto==
==Manifesto==
Line 16: Line 28:


* The dream/goal is to provide access to computer software and artwork that would otherwise require the user to have the original hardware and software at hand to bring into existence. While nothing beats having vintage, well-maintained computer hardware to show what software "was", it requires advocacy and often physical presence to do so. Games like ''Pac-Man''' or ''Super Mario'' have been re-done many times and provided in all manner of online and offline presentations... not so much examples of ''Wordperfect'', ''Peachtree Accounting'', or the Atari TOS. By providing this method of calling in software, historians and academics and the merely curious can get near-instantaneous access to the gist of these early programming works. As a side benefit, people with collections of old software will be more inclined to share or donate their piles of materials knowing that universal access will come shortly after.
* The dream/goal is to provide access to computer software and artwork that would otherwise require the user to have the original hardware and software at hand to bring into existence. While nothing beats having vintage, well-maintained computer hardware to show what software "was", it requires advocacy and often physical presence to do so. Games like ''Pac-Man''' or ''Super Mario'' have been re-done many times and provided in all manner of online and offline presentations... not so much examples of ''Wordperfect'', ''Peachtree Accounting'', or the Atari TOS. By providing this method of calling in software, historians and academics and the merely curious can get near-instantaneous access to the gist of these early programming works. As a side benefit, people with collections of old software will be more inclined to share or donate their piles of materials knowing that universal access will come shortly after.
==Communication Channels==
Currently, most communication is done in the '''#jsmess''' channel on the EFNet IRC network. If you don't use IRC or just have questions, please mail jsmess@textfiles.com to inquire.


==References==
==References==
Line 21: Line 37:
* A team of Google engineers launched a project to port MAME to their own plugin runtime, NaCL (Native Client, or pronounced "Salt"). The report is [http://code.google.com/chrome/nativeclient/docs/portingMAME.html here]. High level summary: They did it in 4 days of work, pulled out parts that were too intense or time-involved, but still could emulate 75% of the games. The diff was 1200 lines of code. The report is useful for understanding MAME's unique structure.
* A team of Google engineers launched a project to port MAME to their own plugin runtime, NaCL (Native Client, or pronounced "Salt"). The report is [http://code.google.com/chrome/nativeclient/docs/portingMAME.html here]. High level summary: They did it in 4 days of work, pulled out parts that were too intense or time-involved, but still could emulate 75% of the games. The diff was 1200 lines of code. The report is useful for understanding MAME's unique structure.


* Most people think the way to go is to use the Javascript converter Emscripten. The page for Emscripten is [https://github.com/kripken/emscripten|https://github.com/kripken/emscripten].
* Javascript Converter [https://github.com/kripken/emscripten Emscripten].
 
* GitHub collection of Javascript MESS Code: https://github.com/jsmess/jsmess
 
* [https://github.com/kripken/emscripten/issues/131 Issue 131 on Emscripten issue tracker] - Now closed. Further issues will have to be opened as needed.
 
* [http://www.progettoemma.net/mess/ http://www.progettoemma.net/mess/] - An excellent MESS information site.
 
* [http://www.progettoemma.net/mess/sysset.php/ http://www.progettoemma.net/mess/sysset.php/] - List of supported systems mapped to drivers, from above.
 
==Posts by Jason Scott about the Project==
 
* October 2011: [http://ascii.textfiles.com/archives/3375 Javascript Hero: Change Computer History Forever] - Original Blog Post
* March 2012: [http://ascii.textfiles.com/archives/3502 Javascript Hero: A Hero Appears] - Cosmo Fighter 2 on Colecovision works
* May 1, 2012: [http://ascii.textfiles.com/archives/3559 Javascript Hero: Success/Your Big Moment] - Smurfs: Rescue from Gargamel's Castle works
* May 3, 2012: [http://ascii.textfiles.com/archives/3569 Javascript Hero: Well, That Was Fast] - Odyssey 2 Emulation Appears
* September 2012: [http://ascii.textfiles.com/archives/3685 Javascript Hero: The New Batch] - Call for more Coders
* October 2012: [http://ascii.textfiles.com/archives/3745 JSMESS Breakthroughs] - Progress on a handful of systems
* January 2013: [http://ascii.textfiles.com/archives/3923 The Javascript MESS Enters Beta] - A public-facing site and playable demos for those systems
* August 14, 2013: [http://ascii.textfiles.com/archives/4029 The Javascript MESS Plays Atari Today] - Atari 800 works
* August 15, 2013: [http://ascii.textfiles.com/archives/4034 The Javascript MESS Plays Commodore 64, Commodore PET, and Apple IIc] - Three more major systems
* August 16, 2013: [http://ascii.textfiles.com/archives/4044 More JSMESS: Little Help Here] - Call for help creating makefiles for new systems
* August 19, 2013: [http://ascii.textfiles.com/archives/4056 One Last Bit on JSMESS for a While] - The possible future for JSMESS
* September 2013: [http://ascii.textfiles.com/archives/4069 The JSMESS Triumph] - Public site relaunch because every system compiles now
* October 2013: [http://ascii.textfiles.com/archives/4117 JSMESS and the Big Day] - JSMESS debuts at the Internet Archive Historical Software Collection, and its future
* November 20, 2013: [http://ascii.textfiles.com/archives/4142 JSMESS Now Supports USB Joypads. Sort of.] - Browser support for gamepads is a little finicky, but works
* November 22, 2013: [http://ascii.textfiles.com/archives/4147 JSMESS Makes a Little Noise] - Fairly reasonable audio support is now in place
* December 2013: [http://ascii.textfiles.com/archives/4170 The JSMESS Endgame] - Thoughts on the totality of the JSMESS project
* January 2014: [http://ascii.textfiles.com/archives/4196 Let a Thousand Cartridges Play] - A thousand playable cartridges on the Internet Archive
* May 2014: [http://ascii.textfiles.com/archives/4266 Three Times the Consoles, Three Times the Carts, Three Times the Library] - Console Living Room call for patrons
* July 2014: [http://ascii.textfiles.com/archives/4343 The JSMESS Sound Emergency] - A call for critical help with Web Audio
* August 2014: [http://ascii.textfiles.com/archives/4363 The Need for JSMESS Speed] - A call for performance and optimization help
* September 2014: [http://ascii.textfiles.com/archives/4380 OASIS at SXSW: An Asking Thing] - Vote for Jason Scott to present at SXSW
* October 13, 2014: [http://ascii.textfiles.com/archives/4406 Making Historic Software Eternal] - Vying for a grant to support JSMESS
* October 29, 2014: [http://ascii.textfiles.com/archives/4414 The Software Library] - 24,000 vintage computer software titles
* November 1, 2014: [http://ascii.textfiles.com/archives/4419 The Internet Arcade] - Announcing the Internet Arcade, built on MAME
* November 3, 2014: [http://ascii.textfiles.com/archives/4423 So, You Found the Internet Arcade] - Some notes on the Internet Arcade
* November 4, 2014: [http://ascii.textfiles.com/archives/4427 The Internet Arcade: And Where Are You?] - Please help with the Internet Arcade
* November 6, 2014: [http://ascii.textfiles.com/archives/4433 Before It All Arrives] - The Internet Arcade continues to receive a lot of attention
* November 11, 2014: [http://ascii.textfiles.com/archives/4442 Gamepads!] - Using joysticks with JSMESS
* December 2014: [http://ascii.textfiles.com/archives/4471 Each New Boot a Miracle] - JSMESS is joined by EM-DOSBOX
* January 5, 2015: [http://ascii.textfiles.com/archives/4487 The MS-DOS Showcase (And The Ascension of Version 2)] Announcing 2,500 MS-DOS games on the Internet Archive
* January 7, 2015: [http://ascii.textfiles.com/archives/4494 The MS-DOS Flood (And the High Flight of V2)] - Everyone's playing MS-DOS games now
* January 10, 2015: [http://ascii.textfiles.com/archives/4501 That Whole Thing With Sound in In-Browser Emulation] - The state of web audio APIs
* January 13, 2015: [http://ascii.textfiles.com/archives/4526 The Digital Nostalgia Heat Differential] - The state of these emulation projects
* January 23, 2015: [http://ascii.textfiles.com/archives/4546 The Emularity] - Browsing the web from a browser in an operating system in JavaScript in a browser
* February 2015: [http://ascii.textfiles.com/archives/4588 Embed-able Computers are a Thing] - Shareable, embeddable emulators
* April 2015: [http://ascii.textfiles.com/archives/4604 Behold the Emularity] - The JavaScript wrapper for JSMESS and EM-DOSBOX gets its own project
* May 2015: [http://ascii.textfiles.com/archives/4641 MAME and the New Emulation Reality] - A call to support MAME development
* November 2015: [http://ascii.textfiles.com/archives/4864 JSMESS Achieves a Hero’s Death] - JavaScript cross-compilation now supported directly by MAME
 
{{Navigation box}}

Latest revision as of 16:28, 26 November 2015


The JAVASCRIPT MESS project is a porting of the MESS emulator, a program that emulates hundreds of machine types, into the Javascript language. The MESS program can emulate (or begin to emulate) a majority of home computers, and continues to be improved frequently. By porting this program into the standardized and cross-platform Javascript language, it will be possible to turn computer history and experience into the same embeddable object as movies, documents, and audio.

We have a long way to go, but this open beta is now available.

Javascript MESS currently runs Colecovision cartridges well

Functioning Demonstrations

The main JSMESS site has some classic software demos guaranteed to work. The JSMESS home page links to every system which MESS v0.142u6 supports, although not all systems have their required ROM files and game files in the right place yet, so some of them just spin the disk loader icon forever.

The latest versions of Chrome and Firefox run JSMESS emulators the best. IE10 might work. It will have spotty performance elsewhere.

More Information and Source Code

Information on how to build JSMESS, the status of JSMESS, and the future of JSMESS can be found out on its GitHub Wiki. The source code can be found on its GitHub page.

If you have a problem building JSMESS or have a feature suggestion, feel free to open up an issue on our issue tracker.

Manifesto

  • The goal is to provide a ubiquitous, flexible, comprehensive-as-possible emulator that will appear in as many browsers as possible without installing a plugin or runtime. While a number of emulation solutions exist that allow much of what is wanted, they nearly all require plugins and most are directed towards a single machine or small sets of machines.
  • Currently, the most flexible runtime is current versions of Javascript, a horribly named runtime that utilizes a Turing-complete programming language to provide all manner of applications, effects and trickery to the browsing public. All major browsers support Javascript, and the language also allows support for cleanly informing end-users what is going on if something goes wrong.
  • MESS and MAME were started over a decade ago to provide ubiquitous, universal emulation of arcade/gaming machines (MAME) and general computer hardware (MESS). While specific emulation implementations exist that do specific machines better than MAME/MESS, no other project has the comprehensiveness and modularity. Modifications are consistently coming in, and emulation breadth and quality increases over time. In the case of MAME, pages exist listing machines it does not emulate. [1]
  • The dream/goal is to provide access to computer software and artwork that would otherwise require the user to have the original hardware and software at hand to bring into existence. While nothing beats having vintage, well-maintained computer hardware to show what software "was", it requires advocacy and often physical presence to do so. Games like Pac-Man' or Super Mario have been re-done many times and provided in all manner of online and offline presentations... not so much examples of Wordperfect, Peachtree Accounting, or the Atari TOS. By providing this method of calling in software, historians and academics and the merely curious can get near-instantaneous access to the gist of these early programming works. As a side benefit, people with collections of old software will be more inclined to share or donate their piles of materials knowing that universal access will come shortly after.

Communication Channels

Currently, most communication is done in the #jsmess channel on the EFNet IRC network. If you don't use IRC or just have questions, please mail jsmess@textfiles.com to inquire.

References

  • A team of Google engineers launched a project to port MAME to their own plugin runtime, NaCL (Native Client, or pronounced "Salt"). The report is here. High level summary: They did it in 4 days of work, pulled out parts that were too intense or time-involved, but still could emulate 75% of the games. The diff was 1200 lines of code. The report is useful for understanding MAME's unique structure.

Posts by Jason Scott about the Project