NESFab, a new programming language for NES games, has been released

An interpreter and compiler written from scratch, that’s what NESFab is , the programming language for creating games for NES systems , designed with 8-bit limitations in mind.


The language is more ergonomic to use than C, also producing faster assembly code, it is also easier to use as it comes with a useful set of libraries.

In this way it will be possible to create retro-style homebrew games, and without necessarily having to study specific assembly languages, such as for example the 6502 assembly for the NES.

The language still has limitations, however, as one of the most important drawbacks of the language is that it only supports a select number of mappators for the system, and of course direct game development in assembly code will always outperform any other kind of language .

This will certainly help in the development of new titles, while the makers of NESFab have also released a first NES game developed exclusively with NESFab , titled “Hang Glider”.

Hang Glider can also be run within the web browser via the WebNES  emulator at this address . The entire documentation can be found instead at this address .


New features

  • Built-in functions: minmaxand abs.
  • Exchange statement.
  • Expression nmi_counter.
  • A basic macro system that generates new source files, but lacks online capabilities.

Library editions

  • zapper.fabto interface the NES Zapper. Tip by zrdwiuu.
  • geometry.fabto work with screen space coordinates. This is useful for collision checking.
  • object.fabfor creating object pools.


  • objectsnow shows how to create dynamic objects like projectiles and enemies.
  • zappershow how to read the zapper.

Broken changes

  • Some library files have been renamed and placed in folders.

Download: NESFab v0.4 (Windows AMD64)

Download: NESFab v0.4 (Linux AMD64)

Download: NESFab Source Code v0.4