VOGONS


New emulator

Topic actions

First post, by vladstamate

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

I have been working on this emulator for a while now. It is not complete and I am still working on it and perfecting it. I was inspired by PCEm so I wanted to create something as modular as that, where you can virtually build a computer from individual parts: CPU, NPU, memory, type, videocard, sound, etc. This is the product:

https://sites.google.com/site/capex86/home

I am a collector of vintage computers/consoles (see https://sites.google.com/site/digiloguemuseum/) so it made sense for me to write an emulator for older computers. I just put the code up on github but I still have a private repository that I mainly work on. However I do not want to break copyright rules (for BIOS, SW, etc) so I am still cleaning that.

There is a lot of work to do still but I wanted to share with the community what I have. Keep watching this space for updates, and thank you for reading!

Vlad.

YouTube channel: https://www.youtube.com/channel/UC7HbC_nq8t1S9l7qGYL0mTA
Collection: http://www.digiloguemuseum.com/index.html
Emulator: https://sites.google.com/site/capex86/
Raytracer: https://sites.google.com/site/opaqueraytracer/

Reply 2 of 8, by leileilol

User metadata
Rank l33t++
Rank
l33t++
vladstamate wrote:

However I do not want to break copyright rules (for BIOS, SW, etc) so I am still cleaning that.

Not even that XT bios written by that ever-so-talented Anonymous or any of the Bochs/QEMU BIOS images?

apsosig.png
long live PCem

Reply 4 of 8, by vladstamate

User metadata
Rank Oldbie
Rank
Oldbie

For those I provide links on the website to where people can get them. This way I won't be storing an out of date version.

I do not mind distributing Turbo XT BIOS. For example the Bochs BIOS (and the Plex VGA one too) I use a lot in testing when I "build" a 386 in the emulator, but they are easy to get. I have to understand if me distributing those implies I have to distribute their source as well (I do not mind doing that). I figured for the beginning I will just put a link with instructions and improve from there.

Vlad.

YouTube channel: https://www.youtube.com/channel/UC7HbC_nq8t1S9l7qGYL0mTA
Collection: http://www.digiloguemuseum.com/index.html
Emulator: https://sites.google.com/site/capex86/
Raytracer: https://sites.google.com/site/opaqueraytracer/

Reply 5 of 8, by vladstamate

User metadata
Rank Oldbie
Rank
Oldbie
Tertz wrote:

You need to notice wich advantages compared to the existing emulators you plan to make. Or it's hard to understand what is it for.

Oh in order of importance to me:

a) mainly for fun and as a challenge.
b) I want it to be used as a debugging tool for "old DOS" code. That is why I am providing a telnet server connection with commands to inspect the status of the machine, inspect memory, registers, etc. Think of it as an out of band debugger. I also put effort into code disassembly to log files.
c) I like the idea of being able to build a computer from individual parts and see how it goes. Hence the whole philosophy behind this emulator is you specify which parts you want and only those get in. A lot of emulators for example support only VGA. But I wanted MDA, Hercules, CGA all individually supported and not through VGA emulation. It is actually really nice to see a CGA only game not work when I "build" a machine with a Hecrules card only. Same with processors. I can create a V20 based XT machine (which means it won't have a 8402 (PS2) but it will have a 8255 and the V20 will be properly identified (and not as 8086/8088/80186 and so on) but as a V20.
d) I also added in cycle counts per instructions so you can see how it properly behaves. While that does work it is a bit slow as I have not had time improving in.

But really, more is like why not? I thought I can share what I did until now so people can peruse through my code and use what they can. 😀

Vlad.

YouTube channel: https://www.youtube.com/channel/UC7HbC_nq8t1S9l7qGYL0mTA
Collection: http://www.digiloguemuseum.com/index.html
Emulator: https://sites.google.com/site/capex86/
Raytracer: https://sites.google.com/site/opaqueraytracer/

Reply 7 of 8, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Great effort, looks nice.
And indeed it's much easier to just use the bochs and plex bios. A
Some of the other bioses that pcem supports require more emulation of the controller chips for shadowing roms and mapping ram around.
Although been toying with making another x86 emulator myself and it is kinda nice to try and get some random bios to work. But just writing my own bios is still something I'd like to try as well especially if you remove all the plug n play/pci stuff you don't even have to implement that many features.

Reply 8 of 8, by Scali

User metadata
Rank l33t
Rank
l33t
vladstamate wrote:

d) I also added in cycle counts per instructions so you can see how it properly behaves. While that does work it is a bit slow as I have not had time improving in.

Don't forget to emulate that dreaded prefetch buffer!
(Note also that self-modifying code does not affect the prefetch buffer, you can make most emulators crash on that).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/