rsemu 0.0.4

A multiplatform emulator in pure Rust, built bottom-up on a generic framework.
Documentation
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>rsemu in the browser</title>
    <meta
      name="description"
      content="A whole emulated machine running client-side in WebAssembly: pick a machine, load a ROM, take a save state. Nothing is uploaded."
    />
    <meta name="color-scheme" content="light dark" />
    <meta name="theme-color" content="#f4f2ef" media="(prefers-color-scheme: light)" />
    <meta name="theme-color" content="#131316" media="(prefers-color-scheme: dark)" />
    <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='7' fill='%23131316'/%3E%3Crect x='6' y='9' width='20' height='14' rx='2' fill='%23f0a45c'/%3E%3C/svg%3E" />
    <!-- The module is fetched at runtime from ./rsemu.wasm, next to this file.
         It is a cargo build product copied into public/, never a bundler
         input, so its name is stable and the fetch is relative — which is what
         makes one dist/ work both at /rsemu/ on Pages and at / locally.

         Deliberately not preloaded: `rel=preload as=fetch` has to match the
         request's credentials mode or the browser fetches the module twice,
         and 900 KB fetched twice is a worse page than 900 KB fetched late. -->
  </head>
  <body>
    <div id="app"></div>
    <noscript>
      <p style="max-width: 40rem; margin: 3rem auto; font: 15px/1.6 system-ui, sans-serif">
        This page runs an emulator compiled to WebAssembly, so it needs
        JavaScript. The emulator itself runs natively too — see
        <a href="https://github.com/KarpelesLab/rsemu">github.com/KarpelesLab/rsemu</a>.
      </p>
    </noscript>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>