Difference between revisions of "MicroW8"

From SizeCoding
Jump to: navigation, search
(Sound: Fixed a mistake)
 
(8 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
MicroW8 is a WebAssembly based fantasy console inspired by the likes of TIC-80, WASM-4 and PICO-8.
 
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.
+
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 ===
 
=== Setting Up ===
No information yet
+
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:
 +
 
 +
<syntaxhighlight>
 +
uw8 run -w -p -l 9 myintro.cwa -o myintro.uw8
 +
</syntaxhighlight>
 +
 
 +
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.
 +
[[File:Microw8pal.png|thumb|left|MicroW8 Default Palette]]
  
=== Video Display ===
+
 
No information yet
+
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
For full documentation on the graphics capabilities, check out https://exoticorn.github.io/microw8/docs/#graphics
  
 
=== Sound ===
 
=== Sound ===
No information yet
+
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.
  
More information to follow
+
For full documentation on the sound capabilities, check out https://exoticorn.github.io/microw8/docs/#sound
  
 
=== Additional Resources ===
 
=== Additional Resources ===
 
* [https://exoticorn.github.io/microw8/] MicroW8 website
 
* [https://exoticorn.github.io/microw8/] MicroW8 website
 +
* [https://exoticorn.github.io/microw8/docs/] MicroW8 Documentation
 +
* [https://github.com/exoticorn/curlywas] CurlyWas Documentation
 
* [https://www.youtube.com/watch?v=u-OvsbDqLAY] MicroW8 Seminar
 
* [https://www.youtube.com/watch?v=u-OvsbDqLAY] MicroW8 Seminar

Latest revision as of 11:53, 28 January 2024

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 sound capabilities, check out https://exoticorn.github.io/microw8/docs/#sound

Additional Resources

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