Skip to content
Vitorio edited this page Nov 3, 2013 · 10 revisions

Want to contribute to JSMESS? Here are some general areas that we would appreciate help with.

Also, be sure to drop into the IRC channel #jsmess@irc.efnet.org to chat with us!

Step 1: Build a JSMESS System

Before you do anything, you should learn How to build and test JSMESS 0.142! If you encounter a problem, have a question, or want to complain, feel free to say somethingon IRC, or you could open up an issue here on GitHub.

SDL Support in Emscripten

We currently instruct MESS to use SDL 1.2 to write things to the browser window. Newer versions of MESS use SDL 1.3/2.0. Emscripten currently only supports a subset of these libraries, and apparently these functions are not well tested (see their library_sdl.js file).

It would be great to have someone on board who is interested in porting SDL functions to JavaScript, and getting them pushed into Emscripten.

It would also be cool to get the libsdl testsuite hooked up to Emscripten in a repository somewhere so we can track its progress / problem areas. :)

Testing Other MESS Platforms

Follow How to write a new 0.142 makefile, and test if it works / doesn't work. Why doesn't it work? Try to address the problem in a way that minimizes changes to the MESS source.

Make JSMESS a Module

Ultimately, it would be cool if people could include a JSMESS emulator on their page in a simple way. If you are a JavaScript/web-dev dude, this task may be interesting to you!

Currently, I'm thinking that it would be nice if JSMESS existed as a jQuery module. You could start this by making a JSMESS template that builds a JSMESS system as a jQuery module. The user could potentially override the default options to MESS, specify the game to load up, etc.

Make a JSMESS Menu System

This is somewhat in conjunction with the module goal above. We need a menu system that allows you to select the system and then select the game/software. Then, it should download the required files (emulator/bios/software) with a neat progress bar. Once it loads, it should display a JSMESS logo or something, and the user should have to e.g. press spacebar to launch the emulator.

sherlock_ is working on this right now, and has set up a repository for what he has done here!

Improve the JSMESS loader

Also related, the JSMESS loader puts the game on the page. Some additional wishlist items are detailed in JSMESS Loader Wishlist.

Benchmark JSMESS

Check out where JSMESS is being bottlenecked in the various browsers, and look into ways that Emscripten could improve generating code for that case (or ways that we could improve MESS!). This would involve comparing the C++ source, LLVM bitcode source, and the code that Emscripten generates, figuring out where the source of slowness comes from, and coming up with a plan of action (or no plan of action, if it's just a heavy part of the codebase).

(You should be able to enable the debugging and symbols options in the current JSMESS makefile to get a build suitable for profiling.)