Overview
About
MicroW8 is a WebAssembly based fantasy console inspired by the likes of TIC-80, WASM-4 and PICO-8.
The initial motivation behind MicroW8 was to explore whether there was a way to make WebAssembly viable for size-coding. (Size coding being the art of creating tiny (often <= 256 bytes) graphical effects and games.) The available examples so far are all in this space, however, I very carefully made sure that all design decisions make sense from the point of view of bigger projects as well.
Specs
- Screen: 320x240, 256 colors, 60Hz
- Modules: Up to 256KB (WASM)
- Memory: 256KB
- Gamepad input (D-Pad + 4 Buttons)
For detailed documentation see here.
Examples
- Skip Ahead (249 bytes): A port of my TIC-80 256byte game from LoveByte'21, now with sound
- Fireworks (127 bytes): Some fireworks to welcome 2022.
- OhNoAnotherTunnel (175 bytes): A port of my entry in the Outline'21 bytebattle final
- Technotunnel (157 bytes): A port of my entry in the Outline'21 bytebattle quater final
- Font & Palette: Just a simple viewer for the default font and palette.
Examplers for older versions:
- Technotunnel B/W (199 bytes uncompressed): A port of my entry in the Outline'21 bytebattle quater final (older MicroW8 version with monochrome palette)
- XorScroll (50 bytes uncompressed): A simple scrolling XOR pattern. Fun fact: This is the pre-loaded effect when entering a bytebattle.
- CircleWorm (126 bytes uncompressed): Just a test for the circle fill function.
Versions
v0.2.2
Changes:
- call
start
function after loading cart if the cart exports one - fix
sndGes
having the wrong name and not being included in the auto imports - fix control codes 4-6 (change text output mode) being invoked when used as parameters in other control sequences
- only open browser window once a cart was compiled sucessfully when running with
-b
v0.2.1
Changes:
- new gpu accelerated renderer with (optional) crt filter
- optimized
hline
function, a big speed-up when drawing large filled circles or rectangles - print fractional size of packed
uw8
cart
v0.2.0
Changes:
- add sound support!
- add support to redirect text output to the console for debugging using control code 6
- update curlywas:
- add support for
else if
- add support for escape sequences in strings
- add support for char literals
- add support for binop-assignment, eg.
+=
,^=
,<<=
etc. (also support for the tee operator:+:=
) - "integer constant cast to float" literal syntax in CurlyWas (ex.
1_f
is equivalent to1 as f32
)
- add support for