<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<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">
<h1>One R<span class="o-in-rom">O</span>M WASM Library</h1>
<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 mask programmed and 27 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>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>
</html>