Matcha9000

Saved games stay in this browser only.

About the game

Matcha9000 puts a small robot on a walled grid and never lets you touch it directly. Instead, the left side of the screen holds a numbered program of up to twenty lines, and the bottom right shows the op codes you can use. Click one and it is added to the end of the program; the robot runs the program from the top, over and over, at a steady beat, and the board resets each time the program reaches its last line.

The goal of every level is the exit square. Some levels first ask you to pick up all the coins, shown as a counter at the top, before the exit opens. Others add buttons that have to be pressed, and lasers that sweep across the board. New op codes unlock along the way:

Op code From level What it does
STEP 1 move one square forward
SLEEP 2 wait one beat
ROT N 3 turn clockwise N times
USE 4 press the button in front
GOTO N 5 jump to line N
ADD N 6 add N to the accumulator
DEC N 7 subtract N from the accumulator
JIF N 8 jump to line N if the accumulator is zero

By the last levels you are writing small loops with a counter, which is exactly how real assembly language works. The game has nine levels and saves the one you reached on the WASM-4 disk.

Playing it here

Matcha9000 was made for WASM-4, a fantasy console: an imaginary handheld with a 160 by 160 screen, four colours, a D-pad and two buttons, for which independent developers write new games. The developer dosisod wrote it in AssemblyScript for the second WASM-4 game jam, in August 2022. The version that runs here is release 1.0.2, in the official WASM-4 runtime. Click Play, read the short instructions and click NEXT.

The game is played with the mouse. Your current level is kept in this browser. Enter opens the WASM-4 menu, where you can also save and load the state while the page is open.

Controls

Input Action
Left-click an op code (bottom right) add it to the end of the program
Right-click a program line delete it
Click an argument (N) open the + / - buttons to change it
R restart the cart at the current level
Hold Z or X while the cart restarts reset the progress to level 1
Enter WASM-4 menu

A few things worth knowing

The program loops on its own. There is no Run button: as soon as you add a line, the robot starts executing, and the board starts over each time the last line has run. Watch a full cycle before adding the next instruction.

Count the squares. Most early levels are solved by counting how many STEPs the robot needs before each turn.

GOTO saves space. Twenty lines go fast. A short sequence followed by a GOTO back to line 1 repeats it as long as you need.

Credits and licence

Matcha9000 was created by dosisod, who wrote the game, its graphics and its sound effects in AssemblyScript. It is free software under the GNU General Public License version 3, and the source code of the release served here is hosted alongside the game. The compiled game also contains the AssemblyScript runtime (Apache License 2.0) and the WASM-4 bindings (ISC licence), and it runs here in the WASM-4 runtime (ISC licence). The licence texts are linked from this page.