mirror of
https://github.com/exoticorn/microw8.git
synced 2026-01-20 11:16:42 +01:00
198 lines
8.9 KiB
HTML
198 lines
8.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title></title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<link rel="icon" type="image/png" href="/favicon.ico">
|
|
|
|
<style>
|
|
:root {
|
|
/* Primary theme color */
|
|
--primary-color: #202024;
|
|
/* Primary theme text color */
|
|
--primary-text-color: #808070;
|
|
/* Primary theme link color */
|
|
--primary-link-color: #8080a0;
|
|
/* Secondary color: the background body color */
|
|
--secondary-color: #e0e0e8;
|
|
--secondary-text-color: #1a1818;
|
|
/* Highlight text color of table of content */
|
|
--toc-highlight-text-color: #d46e13;
|
|
}
|
|
</style>
|
|
<link href="https://fonts.googleapis.com/css?family=Alfa+Slab+One&display=swap" rel="stylesheet">
|
|
<link href="https://fonts.googleapis.com/css?family=Fira+Sans:400,500,600&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="/normalize.css">
|
|
<link rel="stylesheet" href="https://exoticorn.github.io/microw8/juice.css">
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
<header class="pos-absolute" style="background-color: transparent">
|
|
|
|
|
|
<a href="https://exoticorn.github.io/microw8/">
|
|
<div class="logo">
|
|
<img src="https://exoticorn.github.io/microw8/img/microw8.svg" alt="logo">
|
|
MicroW8
|
|
</div>
|
|
</a>
|
|
|
|
<nav>
|
|
|
|
<a class="nav-item subtitle-text" href="https://exoticorn.github.io/microw8/docs/">Docs</a>
|
|
|
|
|
|
|
|
<a class="nav-item subtitle-text" href="https://github.com/exoticorn/microw8">Github</a>
|
|
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="hero">
|
|
|
|
<div>
|
|
<section>
|
|
<h1 class="text-center heading-text">A WebAssembly based fantasy console</h1>
|
|
</section>
|
|
<a href="v0.1.0">
|
|
<img class="demonstration-gif" style="width:640px;height:480px;image-rendering:pixelated" src="img/technotunnel.png"></img>
|
|
</a>
|
|
</div>
|
|
<div class="explore-more text"
|
|
onclick="document.getElementById('features').scrollIntoView({behavior: 'smooth'})">
|
|
Explore More ⇩
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<main>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="toc">
|
|
<div class="toc-sticky">
|
|
|
|
<div class="toc-item">
|
|
<a class="subtext" href="https://exoticorn.github.io/microw8/#about">About</a>
|
|
</div>
|
|
|
|
|
|
<div class="toc-item">
|
|
<a class="subtext" href="https://exoticorn.github.io/microw8/#specs">Specs</a>
|
|
</div>
|
|
|
|
|
|
<div class="toc-item">
|
|
<a class="subtext" href="https://exoticorn.github.io/microw8/#examples">Examples</a>
|
|
</div>
|
|
|
|
|
|
<div class="toc-item">
|
|
<a class="subtext" href="https://exoticorn.github.io/microw8/#versions">Versions</a>
|
|
</div>
|
|
|
|
|
|
<div class="toc-item-child">
|
|
<a class="subtext" href="https://exoticorn.github.io/microw8/#v0-1-0"><small>- v0.1.0</small></a>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="content text">
|
|
|
|
<div id="features" class="heading-text">Overview</div>
|
|
<h2 id="about">About</h2>
|
|
<p>MicroW8 is a WebAssembly based fantasy console inspired by the likes of <a href="https://tic80.com/">TIC-80</a>, <a href="https://wasm4.org/">WASM-4</a> and <a href="https://www.lexaloffle.com/pico-8.php">PICO-8</a>.</p>
|
|
<p>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.</p>
|
|
<h2 id="specs">Specs</h2>
|
|
<ul>
|
|
<li>Screen: 320x240, 256 colors, 60Hz</li>
|
|
<li>Modules: Up to 256KB (WASM)</li>
|
|
<li>Memory: 256KB</li>
|
|
<li>Gamepad input (D-Pad + 4 Buttons)</li>
|
|
</ul>
|
|
<h2 id="examples">Examples</h2>
|
|
<ul>
|
|
<li><a href="v0.1pre5#AgwvgP+M59snqjl4CMKw5sqm1Zw9yJCbSviMjeLUdHus2a3yl/a99+uiBeqZgP/2jqSjrLjRk73COMM6OSLpsxK8ugT1kuk/q4hQUqqPpGozHoa0laulzGGcahzdfdJsYaK1sIdeIYS9M5PnJx/Wk9H+PvWEPy2Zvv7I6IW7Fg==">Fireworks</a> (127 bytes): Some fireworks to welcome 2022.</li>
|
|
<li><a href="v0.1pre5#AgyfpZ80wkW28kiUZ9VIK4v+RPnVxqjK1dz2BcDoNyQPsS2g4OgEzkTe6jyoAfFOmqKrS8SM2aRljBal9mjNn8i4fP9eBK+RehQKxxGtJa9FqftvqEnh3ez1YaYxqj7jgTdzJ/WAYVmKMovBT1myrX3FamqKSOgMsNedLhVTLAhQup3sNcYEjGNo8b0HZ5+AgMgCwYRGCe//XQOMAaAAzqDILgmpEZ/43RKHcQpHEQwbURfNQJpadJe2sz3q5FlQnTGXQ9oSMokidhlC+aR/IpNHieuBGLhFZ2GfnwVQ0geBbQpTPA==">Skip Ahead</a> (229 bytes): A port of my <a href="http://tic80.com/play?cart=1735">TIC-80 256byte game</a> from LoveByte'21</li>
|
|
<li><a href="v0.1pre4#Ag95rdCB5Ww5NofyQaKF4P1mrNRso4azgiem4hK99Gh8OMzSpFq3NsNDo7O7pqln10D11l9uXr/ritw7OEzKwbEfCdvaRnS2Z0Kz0iDEZt/gIqOdvFmxsL1MjPQ4XInPbUJpQUonhQq29oP2omFabnQxn0bzoK7mZjcwc5GetHG+hGajkJcRr8oOnjfCol8RD+ha33GYtPnut+GLe4ktzf5UxZwGs6oT9qqC61lRDakN">OhNoAnotherTunnel</a> (177 bytes): A port of my <a href="http://tic80.com/play?cart=1871">entry</a> in the Outline'21 bytebattle final</li>
|
|
<li><a href="v0.1pre4#AqL8HeK1M9dn2nWNIF5vaq/Vh64pMt5nJIFoFKpBMPUsGtDtpqjo1JbT9LzPhAxCqJ7Yh4TA6oTGd4xhLowf+cWZMY73+7AZmfXJJsBi4cej/hH+4wlAgxFIrnOYnr/18IpnZbsHf0eGm1BhahX74+cVR0TRmNQmYC7GhCNS3mv/3MJn74lCj7t28aBJPjEZhP9fGXdG2u5Egh/Tjdg=">Technotunnel</a> (158 bytes): A port of my <a href="https://tic80.com/play?cart=1873">entry</a> in the Outline'21 bytebattle quater final</li>
|
|
<li><a href="v0.1pre4#AgKaeeOuwg5gCKvFIeiitEwMpUI2rymEcu+DDB1vMu9uBoufvUxIr4Y5p4Jj2ukoNO4PE7QS5cN1ZyDMCRfSzYIGZxKlN2J6NKEWK7KVPk9wVUgn1Ip+hsMinWgEO8ETKfPuHoIa4kjI+ULFOMad7vd3rt/lh1Vy9w+R2MXG/7T61d3c7C6KY+eQNS0eW3ys4iU8R6SycuWZuuZ2Sg3Qxp826s+Kt+2qBojpzNOSoyFqyrVyYMTKEkSl0BZOj59Cs1hPm5bq0F1MmVhGAzMhW9V4YeAe">Font & Palette</a>: Just a simple viewer for the default font and palette.</li>
|
|
<li><a href="v0.1pre2#AQrDAQHAAQIBfwp9A0AgAUEAsiABQcACb7JDmhkgQ5MiBCAEIASUIAFBwAJtQfgAa7IiBSAFlJKRIgaVIgcgByAAskHQD7KVIgIQAEPNzEw/lCIDlCAHIAeUIAOUIAOUQQGykiADIAOUk5GSIgiUIAOTQQqylCACkiIJqCAFIAaVIAiUQQqylCACkiIKqHMgCEEyspQgBpUiCyACkkEUspSocUEFcbJBArIgC5OUQRaylJeoOgB4IAFBAWoiAUGA2ARIDQALCw==">Technotunnel B/W</a> (199 bytes uncompressed): A port of my <a href="https://tic80.com/play?cart=1873">entry</a> in the Outline'21 bytebattle quater final (older MicroW8 version with monochrome palette)</li>
|
|
<li><a href="https://exoticorn.github.io/microw8/v0.1pre2#AQovAS0BAX8DQCABIAFBwAJvIABBCm1qIAFBwAJtczoAeCABQQFqIgFBgNgESA0ACws=">XorScroll</a> (50 bytes uncompressed): A simple scrolling XOR pattern. Fun fact: This is the pre-loaded effect when entering a bytebattle.</li>
|
|
<li><a href="https://exoticorn.github.io/microw8/v0.1pre2#AQp7AXkCAX8CfUEgEA0DQCABskEEspUiAkECspUgALJBiCeylSIDQQWylJIQAEEBspJBoAGylCACQQOylSADQQSylJIQAEEBspJB+ACylCADQRGylCACQQKylJIQAEECspJBELKUIAFBAmxBP2oQEiABQQFqIgFBP0gNAAsL">CircleWorm</a> (126 bytes uncompressed): Just a test for the circle fill function.</li>
|
|
</ul>
|
|
<h2 id="versions">Versions</h2>
|
|
<h3 id="v0-1-0">v0.1.0</h3>
|
|
<ul>
|
|
<li><a href="https://exoticorn.github.io/microw8/v0.1.0">Web runtime</a></li>
|
|
<li><a href="https://github.com/exoticorn/microw8/releases/download/v0.1.0/microw8-0.1.0-linux.tgz">Linux</a></li>
|
|
<li><a href="https://github.com/exoticorn/microw8/releases/download/v0.1.0/microw8-0.1.0-macos.tgz">MacOS</a></li>
|
|
<li><a href="https://github.com/exoticorn/microw8/releases/download/v0.1.0/microw8-0.1.0-windows.zip">Windows</a></li>
|
|
</ul>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</main>
|
|
|
|
|
|
|
|
</body>
|
|
<script>
|
|
function highlightNav(heading) {
|
|
let pathname = location.pathname;
|
|
document.querySelectorAll(".toc a").forEach((item) => {
|
|
item.classList.remove("active");
|
|
});
|
|
document.querySelector(".toc a[href$='" + pathname + "#" + heading + "']").classList.add("active");
|
|
}
|
|
|
|
let currentHeading = "";
|
|
window.onscroll = function () {
|
|
let h = document.querySelectorAll("h1,h2,h3,h4,h5,h6");
|
|
let elementArr = [];
|
|
|
|
h.forEach(item => {
|
|
if (item.id !== "") {
|
|
elementArr[item.id] = item.getBoundingClientRect().top;
|
|
}
|
|
});
|
|
elementArr.sort();
|
|
for (let key in elementArr) {
|
|
if (!elementArr.hasOwnProperty(key)) {
|
|
continue;
|
|
}
|
|
if (elementArr[key] > 0 && elementArr[key] < 300) {
|
|
if (currentHeading !== key) {
|
|
highlightNav(key);
|
|
currentHeading = key;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</html>
|