I was curious about this...<p>"8253 PIT - Recently rewritten after microcontroller-based research. At least one previously undocumented feature discovered. Accurate enough for PCM audio."<p>... and it turns out that it's this ...<p><a href="https://github.com/dbalsom/martypc/blob/main/core/src/devices/pit.rs#L516">https://github.com/dbalsom/martypc/blob/main/core/src/device...</a><p><pre><code> // If the counting element was reloaded between load of LSB and MSB, it is an incomplete load.
// Reload the counting element again when we get the MSB.
// Note: This is completely undocumented behavior</code></pre>
The author has done a superb job here. Not only does it have a cycle-exact Intel 8088 implementation (matched with disassembled microcode timings and hardware-verified) - it does the same for the CGA, where the dot clock is 3 times the CPU clock frequency... and it correctly represents the monitor's output, overscan included, which most other PC emulators have never bothered to do.<p>And those debugging tools are something else, too!
My first computer was a hand me down IBM XT. No hard drive, but two 5.25 floppy drives. I never tried running The Secret of Monkey Island on it, but it did run games like Night Mission Pinball. Paratrooper. and JBIRD.
This is so neat!
I'll have to incorporate it into my Unreal Engine x86 emulator plugin menagerie!<p><a href="https://youtu.be/yVO2VDPnI0Y" rel="nofollow noreferrer">https://youtu.be/yVO2VDPnI0Y</a>
(the first 1.5 minutes are fine to watch, the rest is of dubious worth)
There seems to be an issue with keys such as !"£$%%^&*():{} with this emulator, I can't even type in D: to change drive as the colon does not get sent. It might be that I am on an UK keyboard? Otherwise, it works very well, if a bit slowly.