EmuCR Feeds
Email Us

EmuCR: Fake86Fake86 v0.11.10.26 Test is released. Fake86 is an 8086 PC emulator written in C. It is written from scratch, including the CPU core and has been under development since October 2010. It was originally written in FreeBASIC, however I have since re-written it in C for greater speed and portability.

Fake86 v0.11.10.26 Test Changelog:

Hey all, I've been a lurker on this site for a while but I decided to register and share my emu project Fake86. Some of you guys may have heard of it somewhere before. It's not exactly new, I've been working on it for almost a year. I am really looking forward to talking with other emu devs here, though. It's hard to find people that really understand how this stuff works for the most part.

It's a cross-platform x86 PC emulator I've been writing in C. It's the first emulator I've written that is 100% my own code. I wrote a NES emulator before, but used somebody else's 6502 core and built around it. Writing an x86 core on my own has been a GREAT learning experience! I can't think of any type of programming that's more interesting than computer emulation, fascinating stuff on the technical level.

At this point, Fake86 only supports real-mode and 8086/80186 instructions, but 386 and protected mode is on the way. I've begun re-writing the core with protected mode in mind, but it will be a few months until it's ready I'm sure. Anyway, here's an overview of where it stands:

-100% of the 8086/80186 instruction set emulated
-i8259 interrupt controller emulated
-Hercules/CGA/MCGA/VGA video adapter emulation (I don't have EGA or VGA planar modes like 640x480@4-bit working, I've been having problems with this.)
-Floppy and hard disk images support at the int 13h BIOS level, I would like to eventually implement true I/O register-level emulation of the controllers
-Adlib FM music card emulated (it needs work, but it's pretty acceptable... I haven't figured out the percussion stuff yet though)
-Disney Sound Source sound adapter emulated (this works great with Wolfenstein 3D)
-Windows version supports using WinPCap to emulate a network adapter, but it's a custom implementation that requires the use of a special DOS packet driver I made... Later I really want to emulate something like an NE2000 instead.

Also, a few VGA programs/games can show some graphical glitches but most stuff seems fine. I am going to rewrite the whole VGA/EGA emu code and try to get it all right.

It's capable of running just about anything that doesn't require EGA video, including Windows 3.0. So, I thought I would provide a download if anybody would like to try it out and offer advice/criticism/comments. I will also happily share the source code, but give me a few hours to clean it up a bit first.

That has the current compiled Win32 version, and a 20 MB test hard drive image with MS-DOS 6.22, shareware Wolfenstein 3D, and Ultima VI. Extract it to somewhere and run this command line to boot from the image:

fake86.exe -hd0 test.raw

If anybody wants to get involved in the development, let me know. It's been all me so far. I am hoping this ends up becoming a really viable option for a PC emulator in the future. It's no QEMU, but I think it's a start! Plenty of work to do...

Here's a video to really demonstrate what it's like so far. This is booting MS-DOS 6.22 and playing a bit of Wolfenstein 3D and Ultima VI: The False Prophet.


Download: Fake86 v0.11.10.26 Test
Source: Here

2 Comments:

  1. This emulator looks to be pretty promising. The video clips run nicely.

    ReplyDelete
  2. I'm the guy who is writing this, while I don't mind you posting this one (I appreciate you keeping track of it actually, thanks) I just wanted to make it clear this this v0.11.10.26 is not actually an official release. Future official releases will not have MS-DOS and Ultima 6, since they are still protected by law even though they are as old as dirt. :)

    I'd be keeping Wolf 3D shareware version, and use FreeDOS. I will probably add a few other old shareware/freeware games as well.

    ReplyDelete

Can't post a comment? Try This!