I've been using MartyPC for a few years and except for emulating glitches in hardware which depend on the manufacturer, date of manufacture or even temperature, it is getting harder to find cycle accurate tricks that MartyPC can't emulate perfectly (believe me, we've been trying).
The whole thing is a marvel of software engineering!
What is remarkable is that the author (GloriousCow) doesn't complain that people are ripping off his code and ideas, but that more people haven't used his learnings to create other cycle accurate emulators for the PC.
MartyPC brings cycle-accurate IBM PC emulation to your web browser.
Run Area 5150 at 60fps on your phone!
Almost every feature from the desktop version is present if practical:
- View the realtime state of nearly every component of the system. - View live disassembly of CPU instructions. - Edit registers and memory. - Slow down or speed up the system. - Peek on how games draw their graphics with the Memory Visualizer.
Pretty incredible!
I’m on mobile right now so I can only comment on the demo that runs automatically, which I understand isn’t the _point_. :)
More about the demo: https://www.vogons.org/viewtopic.php?t=89435
(For those unfamiliar with “demo” in this context, see https://en.m.wikipedia.org/wiki/Demoscene)
I look forward to checking out the features you mention on a proper computer.
I loved it when the Doom floating head demon guy came up. Right when y'all were about to ask "...but can it run Doom?"
Can you imagine sending an Area 5150 disk back in time to 1981?
You’d be fussing around trying to find enough RAM expansion cards to get your system to 640K (including hot patching the BIOS since it had a bug that it could only get to 544K).
640 KB in 1981 was more expensive than 640 GB today.
Ought to be enough for anyone.
That was only the first 64k motherboard. ( Five slots only ). Fixed with the PC that came out less than two years later. My brothers machine only had 384k, and it was more than enough. Only three years after, I built 10Mhz XT w/ a V20 640k running Xenix.
If I had seen this back in the day, I might have given up on programming out of sheer awe!
I miss Notacon and Jason Scott's Demoscene parties.
Some of my best hacker/nerd friends I met at notacon. It had a vibe that no other con I’ve been to has had.
That demo was pretty mesmerizing!
Temperature? Really? How does that work?
If you program a register at a moment and in a way that causes two signals to "collide", the result effectively depends on transistor behavior. That in turn can be temperature dependent.
For an example on the PC see https://int10h.org/blog/2023/03/cga-6845-crtc-phantom-vsync-...