MicroW8

From SizeCoding
Jump to: navigation, search

MicroW8 is a WebAssembly based fantasy console inspired by the likes of TIC-80, WASM-4 and PICO-8.

At the time of writing it currently is the most powerful fantasy console out there in terms of performance, code density, graphics and audio capabilities.

The initial motivation behind MicroW8 was to explore whether there was a way to make WebAssembly viable for size-coding. However the author also made sure that all design decisions make sense from the point of view of bigger projects as well.

Setting Up

MicroW8 is pretty lightweight and easy to setup. Just download the latest version of MicroW8 for you favorite platform at: https://exoticorn.github.io/microw8/

After which you can open up your favorite editor and either open an existing example or create your own program. The MicroW8 supports the following languages: CurlyWas, WASM (wat), C, Rust and Zig.

Then open up your console and type the following:

uw8 run -w -p -l 9 myintro.cwa -o myintro.uw8

This will compile, pack and start your intro in the microW8 environment and will watch the original sourcefile for any changes, so that upon saving the latest changes in your favorite editor, it will automatically compile, pack and relaunch your intro.

Graphics

The MicroW8 has a resolution of 320x240 pixels with 256 colors, accessable via framebuffer (located at memory address 120) or via primitive functions like setPixel, line, circle, rectangle.

The palette consists of 12 hues of 16 shades each, followed by a shiftable version of the sweetie16 palette in 1,2,4,8,16 and 32 color variants in the last 64 color indices.

MicroW8 Default Palette












For full documentation on the graphics capabilities, check out https://exoticorn.github.io/microw8/docs/#graphics

Sound

The MicroW8 support sound via a custom soundchip (registers located at location 80 in memory) or via a dedicated soundcall for bytebeat. Expect Sound capabilities somewhere in between the AY/YM chipset and a SID chip.

For full documentation on the graphics capabilities, check out https://exoticorn.github.io/microw8/docs/#sound


Additional Resources

  • [1] MicroW8 website
  • [2] MicroW8 Documentation
  • [3] CurlyWas Documentation
  • [4] MicroW8 Seminar