[HN Gopher] A cycle-accurate IBM PC emulator in your web browser
___________________________________________________________________
A cycle-accurate IBM PC emulator in your web browser
Author : GloriousCow
Score : 145 points
Date : 2025-05-04 17:19 UTC (4 days ago)
(HTM) web link (martypc.net)
(TXT) w3m dump (martypc.net)
| GloriousCow wrote:
| 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.
| WalterGR wrote:
| 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.
| rkagerer wrote:
| 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?"
| nsxwolf wrote:
| Can you imagine sending an Area 5150 disk back in time to 1981?
| trollbridge wrote:
| 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).
| SoftTalker wrote:
| Ought to be enough for anyone.
| voidspark wrote:
| 640 KB in 1981 was more expensive than 640 GB today.
| ForOldHack wrote:
| 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.
| shakna wrote:
| One of my neighbours in Sydney sold a board he made in his
| garage, that gave you an extra ten slots, which I filled with
| way too much RAM. Sort of like a homebrewed 5161, before the
| 5161 existed.
| trollbridge wrote:
| That's kind of neat. Did he just extend the bus in a "raw"
| fashion or put buffers on it? (The downside of the 5161 was
| any memory device in the 5161 had an extra wait state
| thanks to the speed of the buffers, which were necessary to
| deal with the capacitance on the cable to the expansion
| unit.)
| kwertyoowiyop wrote:
| If I had seen this back in the day, I might have given up on
| programming out of sheer awe!
| theogravity wrote:
| That demo was pretty mesmerizing!
| wbhart wrote:
| 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.
| johnklos wrote:
| Temperature? Really? How does that work?
| bonzini wrote:
| 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-...
| creatonez wrote:
| Thanks. Transistor level race conditions will keep me up at
| night.
| kaoD wrote:
| Amazing link. Thanks for sharing.
|
| Where can I find more writeups like this?
| dosman33 wrote:
| I miss Notacon and Jason Scott's Demoscene parties.
| imroot wrote:
| 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.
| p0w3n3d wrote:
| Wow that's amazing. I sometimes play NES emulated games, which
| are (due to hardware limitations) using some tricks while
| displaying larger mobs, to show a few sprites instead of one (and
| using monitor synch to quickly switch the sprites in between
| switching to another scanline). This however renders as blinking
| in my emulator.
|
| I can only imagine that this demo was doing similar tricks to
| "push the limits" on CGA.
|
| Also, I remember my i386-33SX playing full 4 channel music on the
| PC Speaker in the game "Pinball Fantasies". This was state-of-
| the-art (also not working properly on DOSBox emulator nowadays)
| marstall wrote:
| truly epic!
___________________________________________________________________
(page generated 2025-05-08 23:02 UTC)