Mako is a portable stack-based virtual game console. Mako was designed to be simple to port and understand: a basic implementation is only a few pages of code. Work on Mako ceased in 2013, but the archive here is maintained for inspiration and educational purposes. Try out some roms directly from your browser with the Mako.js runtime!

Hardware Overview

Development Tools

The Mako platform includes a complete development toolchain centered around Maker, a Forth-like systems programming language:

# a "Wolfram Rule" 2d cellular automaton
# displayed on 8x8 tiles

:const               RULE 30
:const clear-color   0xFFAA99FF
:array grid-tiles 64 0xFF0000AA

: >>      dup if 1 - for 2 / next else drop then   ; ( a bits -- b )
: pat     0 2 for 2 * over i + @ or next swap drop ; ( addr -- pattern )
: rule    pat RULE swap >> 1 and                   ; ( addr -- new-value )
: cell    41 * + GP @ +                            ; ( y x -- addr )
: get     1 - swap 1 + cell                        ; ( y x -- addr )
: put         swap     cell !                      ; ( val y x -- )
: row     39 for dup i get rule over i put next    ; ( y -- y )
: draw    28 for r> row >r next                    ;
: main    1 29 19 put draw loop sync again         ;

You can also choose from several programming environments that run directly on the VM:

Downloads


back