mirror of
https://github.com/exoticorn/microw8.git
synced 2026-01-20 11:16:42 +01:00
5.9 KiB
5.9 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)
Examples
- Fireworks (127 bytes): Some fireworks to welcome 2022.
- Skip Ahead (229 bytes): A port of my TIC-80 256byte game from LoveByte'21
- 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.0-rc3
Changes:
- improve timing stability some more. essentially now guaranteeing that "frame = time_ms * 6 / 100" returns consecutive frame numbers, provided the module can be run at 60 fps
- 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
-
- 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:+:=)
- add support for binop-assignment, eg.
v0.2.0-rc2
Changes:
- fix timing issues of sound playback, especially on systems with large sound buffers
v0.2.0-rc1
Changes:
- add sound support
- "integer constant cast to float" literal syntax in CurlyWas (ex.
1_fis equivalent to1 as f32)
Known issues:
- timing accuracy/update frequency of sound support currently depends on sound buffer size
v0.1.2
Changes:
- add option to
uw8 runto run the cart in the browser using the web runtime - CurlyWas: implement
includesupport - CurlyWas: implement support for constants
- fix crash when trying to draw zero sized line