Nicolas Allemand

Music, game dev and emulation.

Projects

Here's the list of all the work I've done during my free time. Note that you need LÖVE to run .love files.


Invaders

invaders screenshot

An emulation of the famous "Space Invaders" arcade machine from 1978. The most complex task was to emulate the whole Intel 8080 processor, with all its registries, opcodes and peculiar flags.
The emulator currently passes a fair share of test roms.

The whole project was made in C with some (basic) OpenGL, and has been tested on macOS and Linux. You can find it on GitHub.


Chipote

chipote screenshot

An interpreter of CHIP-8 programs. It was a fascinating project that introduced me to the world of emulation. Indeed, the system itself isn't complicated (only 35 opcodes); but it's a quick way to understand a bit how simple machines work.

The project, programmed in C++ with the SFML, works on macOS, Windows and Linux and can be found here.


quadLÖVE

quadLÖVE screenshot

A koalastothemax clone. It is a little experiment where the user can choose an image and gradually uncover some parts of it with his mouse.

The process is based on quadtrees: for each child, I compute its colour (average of all the corresponding pixels of the original image). The results are sometimes really beautiful, in their own "lowres" kind of way.


Lua librairies

Here are some Lua libraries I made over the years to facilitate my game development with LÖVE:

  • denver.lua: audio waveform generation (basic synthesizer included)
  • stackie.lua: teeny tiny game state manager module
  • bluclass.lua: class implementation in pure Lua with simple inheritance
  • signals.lua: simple implementation of signals (inspired by the observer pattern)
  • sandwich.lua: resource manager

Community

  • participation in the french translation of IINA, a video player for macOS.
  • contributions to Emu-Docs project, a repository that aims to archive emulation documentation.
  • contributions to pylibui project, a Python binding for libui, a multiplatform GUI lib in C.

Misc