Skip to content

Commit c4c92ae

Browse files
Revert "chore: Document I/O port handler system and improve docs UX"
This reverts commit 8d9d80f.
1 parent 0b4de16 commit c4c92ae

2 files changed

Lines changed: 0 additions & 83 deletions

File tree

README.md

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,6 @@ NOTE: This is a port, and a continuation from the [original Java Spice86](https:
1818

1919
It requires [.NET 10](https://dotnet.microsoft.com/en-us/download/dotnet/10.0) and runs on Windows, macOS, and Linux.
2020

21-
## Quick navigation
22-
23-
- [Approach](#approach)
24-
- [Running your exe](#running-your-exe)
25-
- [Command line options](#command-line-options)
26-
- [I/O port handlers (replacing IOPortHandler)](#io-port-handlers-replacing-ioporthandler)
27-
- [Dynamic analysis](#dynamic-analysis)
28-
- [Overriding emulated code with C# code](#overriding-emulated-code-with-c-code)
29-
- [HTTP server](#http-server)
30-
- [How to build on your machine](#how-to-build-on-your-machine)
31-
- [Some screenshots](#some-screenshots)
32-
3321
## Approach
3422

3523
Rewriting a program from only the binary is a hard task.
@@ -160,22 +148,6 @@ Spice86 -e program.exe --CpuHeavyLog \
160148
- OplMode: OPL synthesis mode. Values: None, Opl2, DualOpl2, Opl3, Opl3Gold. Default is Opl3.
161149
- SbMixer: Enable Sound Blaster mixer control of OPL voices. Default is true.
162150

163-
## I/O port handlers (replacing IOPortHandler)
164-
165-
Spice86 routes emulated hardware port I/O through the dispatcher / handler system:
166-
167-
- `IIOPortHandler`: contract implemented by a device that handles one or more I/O ports.
168-
- `IOPortDispatcher`: central router that maps ports to handlers.
169-
- `DefaultIOPortHandler`: fallback behavior for unhandled ports.
170-
171-
If you need to replace an `IOPortHandler` implementation in your integration:
172-
173-
1. Implement `IIOPortHandler` in your device class.
174-
2. Register your handler for the port range in the dispatcher wiring.
175-
3. Keep `--FailOnUnhandledPort` enabled when validating to catch missing routes early.
176-
177-
This makes it easier to incrementally swap hardware behavior while keeping unsupported ports visible during reverse engineering.
178-
179151
## Dynamic analysis
180152

181153
Spice86 speaks the [GDB](https://www.gnu.org/software/gdb/) remote protocol:

docs/index.html

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@
2020
--code-bg: #1a2236;
2121
--warn: #d29922;
2222
--danger: #f85149;
23-
--info-bg: rgba(88,166,255,.12);
24-
--success-bg: rgba(63,185,80,.12);
25-
--warning-bg: rgba(210,153,34,.14);
2623
--nav-width: 240px;
2724
}
2825

@@ -317,23 +314,6 @@
317314
}
318315
.callout strong { color: var(--warn); }
319316

320-
.callout-info {
321-
border-left-color: var(--accent);
322-
background: var(--info-bg);
323-
}
324-
.callout-info strong { color: var(--accent); }
325-
326-
.callout-success {
327-
border-left-color: var(--accent2);
328-
background: var(--success-bg);
329-
}
330-
.callout-success strong { color: var(--accent2); }
331-
332-
.callout-warning {
333-
border-left-color: var(--warn);
334-
background: var(--warning-bg);
335-
}
336-
337317
/* ── Mobile nav toggle ── */
338318
.mobile-header { display: none; }
339319
.mobile-overlay {
@@ -417,7 +397,6 @@ <h1>Spice86</h1>
417397
<div class="section-label">Reference</div>
418398
<ul>
419399
<li><a href="#cli">CLI Options</a></li>
420-
<li><a href="#io-ports">I/O Port Handlers</a></li>
421400
<li><a href="#gdb">GDB Integration</a></li>
422401
<li><a href="#debugger">Built-in Debugger</a></li>
423402
<li><a href="#overrides">Code Overrides</a></li>
@@ -466,10 +445,6 @@ <h1>Spice86</h1>
466445
<a class="btn btn-secondary" href="https://github.com/OpenRakis/Spice86/wiki/Spice86-internal-debugger">Debugger Wiki</a>
467446
<a class="btn btn-secondary" href="https://github.com/OpenRakis/Cryogenic">Example project: Cryogenic</a>
468447
</div>
469-
470-
<div class="callout callout-info">
471-
<strong>Quick start:</strong> Run <code>Spice86 -e game.exe</code>, inspect with GDB on <code>:10000</code>, then incrementally replace assembly with C# overrides.
472-
</div>
473448
</div>
474449

475450
<!-- ── What is Spice86? ── -->
@@ -761,33 +736,6 @@ <h3>Logging</h3>
761736
</div>
762737
</section>
763738

764-
<!-- ── I/O Port Handlers ── -->
765-
<section id="io-ports">
766-
<h2>I/O Port Handlers</h2>
767-
<p>
768-
Spice86 routes hardware port reads and writes through a dispatcher/handler model.
769-
This keeps devices isolated and makes hardware behavior easier to swap during
770-
reverse engineering.
771-
</p>
772-
773-
<div class="table-wrap">
774-
<table>
775-
<thead>
776-
<tr><th>Component</th><th>Role</th></tr>
777-
</thead>
778-
<tbody>
779-
<tr><td><code>IIOPortHandler</code></td><td>Interface implemented by hardware device handlers.</td></tr>
780-
<tr><td><code>IOPortDispatcher</code></td><td>Routes I/O port operations to the correct handler.</td></tr>
781-
<tr><td><code>DefaultIOPortHandler</code></td><td>Fallback behavior when no specific handler is registered.</td></tr>
782-
</tbody>
783-
</table>
784-
</div>
785-
786-
<div class="callout callout-success">
787-
<strong>Replacing IOPortHandler:</strong> Implement <code>IIOPortHandler</code>, register it in the dispatcher wiring, and run with <code>--FailOnUnhandledPort true</code> to catch missing routes early.
788-
</div>
789-
</section>
790-
791739
<!-- ── GDB ── -->
792740
<section id="gdb">
793741
<h2>GDB Integration</h2>
@@ -1072,9 +1020,6 @@ <h2>Game Compatibility</h2>
10721020
This list reflects the state as of early 2026. A program crashing usually indicates
10731021
an unimplemented BIOS/DOS interrupt or a video mode that has not been implemented.
10741022
</p>
1075-
<div class="callout callout-warning">
1076-
<strong>Reading this table:</strong> Use it as a quick snapshot. For the latest status and detailed notes, prefer <a href="https://github.com/OpenRakis/Spice86/blob/master/COMPATIBILITY.md">COMPATIBILITY.md</a>.
1077-
</div>
10781023
<div class="table-wrap">
10791024
<table>
10801025
<thead>

0 commit comments

Comments
 (0)