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.