Open mikechambers84 opened 5 months ago
@mikechambers84 Thanks for the info. Yes, since then I've now familiar with your project already for a while. But I haven't done too much work in this forked fake86 either, besides of my initial keen moments, to be honest with you.
By the way, as far as I can see, there is plenty of PC or DOS emulators, some of them are more on the hardware emulation some of them more on the DOS side of the story as an OS rather than a hardware. Just to name a few: PCem, DosBOX and forks (including dosbox-x for example), dosemu2, martypc, of course your work, and so on. However I always feel having a very narrow gap in the spectrum of these kind of software: DOS level emulation, with "dumb" terminal. What I mean here: let's say I have an ancient project needs some DOS based compiler/tool which does not have modern Linux (in my case, my choice of OS) equivalent. Then I would like to have an emulation which includes DOS (just like DOSbox) with ultra-fast "boot time" (ideally: no boot at all, DOS is included) no emulation window etc, only using stdout, so basically you can make to DOS tool as part of a Makefile or something even by using its stdout to be redirected with integration on UNIX tools (using pipes etc). So mostly I would need (I am lazy to do, and not too much free time either, as since a while I am the developer of the MEGA65 emulation) an x86 CPU emulator, and mostly that's it, I wouldn't even deal with emulated other hw components since for my need described above that's it, just like DOSbox, DOS itself should be implemented as well by me. Maybe I should hack dosbox instead, which has its own DOS. In any way, I felt, Fake86 is a great place to learn about x86 emulation first, that's my main reason of this repo (well, or at least "was").
Sorry for my long comment, just that you can see my ideas here.
I abandoned Fake86 a long time ago, but in the last few years I started to create a new emulator based on the same CPU core (with some fixes) but have rewritten pretty much everything else. Tons of improvements, addition of NE2000, using NukedOPL, SDL2 and a lot of other stuff.
The EGA/VGA now pretty much works properly as well, though a few games still give it fits. Most are fine, and it works with the Windows 3.0 EGA and VGA drivers now.
It actually already tackled a lot of the goals you set forth for Fake86+
Lots of code clean-up/refactoring/completely new modules. I had only been programming in C for like a year before I started writing Fake86, and it shows for sure. It was a mess.
https://github.com/mikechambers84/XTulator/
There's still work to do, for example I'm currently writing a real IDE interface that works with the XTIDE BIOS so I can get rid of the cheap hack that forces int 13h calls to be grabbed by a high level emulator.
I'm trying to make this a more serious offering as far as old school PC emulation goes, though it still can't compare to something like 86Box.