<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>One ROM WASM Library</title>
<link rel="stylesheet" href="https://onerom.org/style.css">
<link rel="stylesheet" href="style.css">
<link rel="icon" type="image/png" href="https://onerom.org/images/favicon.png">
<title>One ROM WASM Library</title>
<meta name="description" content="Supporting Web Assembly Implementation for One ROM - The Most Flexible Retro ROM Replacement">
<link rel="canonical" href="https://wasm.onerom.org/" />
<meta property="og:url" content="https://wasm.onerom.org/">
<meta property="og:type" content="website">
<meta property="og:title" content="One ROM WASM Library">
<meta property="og:description" content="Supporting Web Assembly Implementation for One ROM - The Most Flexible Retro ROM Replacement">
<meta property="og:image" content="https://onerom.org/images/one-rom/one%20rom%20image%20social.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://wasm.onerom.org/">
<meta name="twitter:title" content="One ROM WASM Library">
<meta name="twitter:description" content="Supporting Web Assembly Implementation for One ROM - The Most Flexible Retro ROM Replacement">
<meta name="twitter:image" content="https://onerom.org/images/one-rom/one%20rom%20image%20social.png">
</head>
<body>
<div class="app">
<div style="display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 0rem; border-bottom: 1px solid var(--border-color);">
<h1 style="margin-bottom: 0; border-bottom: none;">One R<span class="o-in-rom">O</span>M WASM Library</h1>
<div style="display: flex; gap: 1rem;">
<a href="https://onerom.org/" class="gold-button" target="_blank"><span class="michroma">Main Website</span></a>
</div>
</div>
<details open>
<summary>About</summary>
<p>
This site hosts One ROM Web Assembly library, which can be used to:
<ul>
<li>Retrieve properties of generic ROMs, including 23-series mask programmed and 27-series EPROMs</li>
<li>Parse One ROM firmware .bin files</li>
<li>Parse One ROM firmware read from flash</li>
<li>Retrieve information about One ROM hardware versions and supported MCUs</li>
<li>Generate One ROM firmware metadata and ROM image files (coming soon)</li>
</ul>
</p>
<hr style="margin-bottom: 1rem;">
<h3>Project Information</h3>
<div class="info">
<p>
<strong>Source Code</strong> <a href="https://github.com/piersfinlayson/one-rom-wasm" target="_blank">GitHub</a>
</p>
<p>
<strong>Licence</strong> <a href="LICENSE.md" target="_blank">MIT</a>
</p>
<p>
<strong>Author</strong> <a href="https://piers.rocks/" target="_blank">Piers Finlayson</a>
</p>
<p>
<strong>Release Files</strong><a href="releases/" target="_blank">releases/</a>
</p>
</div>
<hr style="margin-bottom: 1rem;">
<div class="info">
<h3>This Version</h3>
<p>
<strong>Version</strong> <span id="version"></span>
</p>
<p>
<strong>API Docs</strong><a href="docs/" target="_blank">docs/</a>
</p>
<p>
<strong>Package Files</strong> <a href="pkg/" target="_blank">pkg/</a>
</p>
</div>
<hr style="margin-bottom: 1rem;">
<div class="info">
<h3>Functionality and Examples</h3>
<p>
The remainder of this page demonstrates some of the functionality of the library. See the page source for the code.
</p>
</div>
</details>
<hr>
<details>
<summary>One ROM Visualizer</summary>
<p>
<a href="https://onerom.org/visualizer/" target="_blank" style="margin-bottom: 1em; display: inline-block;">Opens in a new window</a>
</p>
</details>
<hr>
<details>
<summary>ROM Types</summary>
<div class="info">
<table>
<thead>
<tr>
<th>Type</th>
<th>Size (bytes)</th>
<th>Pins</th>
<th>Address Lines</th>
<th>Control Lines</th>
</tr>
</thead>
<tbody id="romTable"></tbody>
</table>
<p style="font-size: 0.9em; margin-top: 0.5em;">* = configurable polarity</p>
</div>
</details>
<hr>
<details>
<summary>One ROM Hardware Versions</summary>
<div class="info">
<table>
<thead>
<tr>
<th>Board</th>
<th>Description</th>
<th>MCU Family</th>
<th>ROM Pins</th>
<th>Address Lines</th>
<th>Data Lines</th>
<th>SEL Lines</th>
<th>Features</th>
</tr>
</thead>
<tbody id="boardTable"></tbody>
</table>
</div>
</details>
<hr>
<details>
<summary>Supported MCUs</summary>
<div class="info">
<table>
<thead>
<tr>
<th>Variant</th>
<th>Family</th>
<th>Flash (KB)</th>
<th>RAM (KB)</th>
<th>Max Clock (MHz)</th>
<th>Features</th>
</tr>
</thead>
<tbody id="mcuTable"></tbody>
</table>
</div>
</details>
<hr>
<details>
<summary>Firmware Parsing</summary>
<p>Select a One ROM firmware file and click Parse Firmware</p>
<div class="controls">
<div>
<label>Firmware File: <input type="file" id="fileInput" accept=".bin,.elf"></label>
</div>
<div>
<button class="gold-button" id="parseBtn">Parse Firmware</button>
</div>
</div>
<div class="firmware-details" id="output"></div>
</details>
<div id="footer"></div>
<script src="js/footer.js" type="module"></script>
</div>
<script type="module" src="js/config.js"></script>
</body>
<script data-goatcounter="https://onerom-wasm.analytics.piers.rocks/count" async src="//onerom-wasm.analytics.piers.rocks/count.js"></script>
</html>