Files
microw8/site/content/_index.md

5.5 KiB

+++ +++

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

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 to 1 as f32)

Older versions

Find older versions here.