Emux
Emux is a cross-platform project which goal is to emulate multiple kinds of machines related to gaming, such as consoles or arcades. Its philosophy is very much inspired by the Linux kernel (hence the name), which brilliantly manages to support multiple machines while keeping drivers entirely platform-independent. Emux is designed in the same way, keeping a code base of CPUs and controllers separate from machines. The build configuration framework uses Kconfig, which any kernel developer should be familiar with. Emux is available on Github at the following location:
https://github.com/sronsse/emux/
Above is a screenshot of Emux running the Pong CHIP-8 ROM (by Paul Vervalin). Other emulators are currently in development and binaries will be released for Windows, Linux and MacOSX in the near future.
Chippie
Chippie is a port of the CHIP-8 emulator from my Emus project to Javascript using HTML5. As I was completely unaware of WEB technologies in general, I wanted to give it a shot and try something new. The nice thing with HTML5 is that it doesn't really look like web programming (which I'm not really fond of) - you basically get a canvas (a framebuffer) and direct pixel access, which is perfect for what I was interested in. The drawbacks (at the time of writing) include not-so-great performance in all browsers, and terrible audio handling. HTML5 is now officially standardized and hopefully all of this will be fixed soon! Anyway, here is the repository, followed by a screenshot of Maze (by David Winter):
http://chippie.googlecode.com/
Emus
The Emus project (now discontinued) is actually a bunch of separate emulators I worked on a while ago:
- CHIP-8 (interpreted programming language)
- Nintendo Game Boy (console)
- Pacman (arcade)
- Sony PlayStation
Even though they shared the same repository, these were built separately. The main purpose of each one of these emulators was to have clean code (a lot of emulators out there are pretty messy in my opinion), and to reach good enough compatibility. This was achieved for everything but the PlayStation which would definitely require a lot more time to get anywhere. Here's a screenshot of the Game Boy emulator running Super Mario Land 2:
As I am now developing Emux and will eventually integrate these, I will most likely remove the Google Code project at some point. Meanwhile, you may have a look at these here:
http://emus.googlecode.com/
ScummGEN
SCUMM was the engine used to run old Lucas Arts adventure games like the Monkey Island series, Indiana Jones and the Fate of Atlantis, Day of the Tentacle, Full Throttle, and many others.
Passionate about these games, I started a project called ScummGEN, a compiler and set of editors targeting the SCUMM (or SPUTM) engine. After a few years of work, I actually got something worth checking out. The current version definitely lacks a lot of features (mainly editors), but games can still be created with it. Here's a link to a video of ScummVM running a little demo I created with the help of two people:
The purpose of this demo (made already a few years ago) shows what ScummGEN can generate. Notice the animated icons, the water color cycling, the character path-finding, close-up views. Pretty old-school stuff!
This project is now discontinued. I learnt a lot about compilers during that time (I created a high-level C-like language using flex and bison), and I am pleased with the result. Developers who would like to improve/revive ScummGEN are free to contact me and do so. Here are the URLs of interest:
http://scummgen.googlecode.com/
http://scummgen-test.googlecode.com/