-
Notifications
You must be signed in to change notification settings - Fork 50
Prerequisites and Dependencies for 0.142
JSMESS is a complex project with many moving parts. This document attempts to explain all of the tools, libraries, etc. that you need installed in order to build JSMESS.
Emscripten uses these to work its magic. As this is the latest version of LLVM and Clang, chances are you will need to compile it from scratch.
Too lazy to read the LLVM build instructions? Make sure you have g++
installed (not just gcc
!) and run these commands:
wget http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz
wget http://llvm.org/releases/3.2/clang-3.2.src.tar.gz
tar xf llvm-3.2.src.tar.gz
cd llvm-3.2.src/tools
tar xf ../../clang-3.2.src.tar.gz
mv clang-3.2.src clang
cd ..
./configure
make
sudo make install
Follow the official instructions for installing the latest version of NodeJS. Emscripten expects a recent version of node, and you might have problems with old versions. Keep your node up to date to match your emscripten releases.
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
We have Emscripten as a submodule in our git repository, but git
won't grab it unless you tell it to. Run this command from the root directory of the repository to grab it:
git submodule update --init --recursive
Then, run emcc
to generate a configuration file:
cd third_party/emscripten
./emcc
Run emcc
one more time to ensure that it is working correctly. If it complains, edit ~/.emscripten
to point to your LLVM installation and Emscripten directory.
Note that we pin to a particular, tested build of emscripten, rather than just follow master. It's necessary to occasionally update emscripten and test it against a bunch of systems so we don't get too far out of date.
Java is required to run the Closure compiler.
You'll need at least one game for the platform you want to play.
In order to build the buildtools, MAME / MESS requires you to have the following installed:
sdl
sdl_ttf
libfontconfig1-dev
Each system has a set of bios files that are required for it to function properly in MESS. You should place these files into the bios
folder. Each system and system peripheral in MESS typically has a standardized zip file associated with it.
To figure out what a system needs, check out the file make/systems/SYSTEMNAMEHERE.mak
. For example, here's where we specify the bios files that Atari 800 requires: https://github.com/jsmess/jsmess/blob/no_cothreads/make/systems/a800.mak#L6