VOGONS


First post, by VileR

User metadata
Rank l33t
Rank
l33t

In development since 2006, the first public release is out now, and soon to be open source:
http://www.exodusemulator.com/

It currently emulates a Mega Drive, but more interestingly, it should be capable of emulating almost everything else:

Exodus is a software program designed to allow real physical hardware to be emulated in software. This is not a revolutionary id […]
Show full quote

Exodus is a software program designed to allow real physical hardware to be emulated in software. This is not a revolutionary idea. There are many other emulators out there for a wide variety of tasks and systems. What makes Exodus a little different is what goals it tries to achieve, what it does that other emulators do not, and what it doesn't do that other emulators do. More detail is given about the goals of Exodus in the "Design Philosophy" section. In this section, you'll get a quick overview of what makes Exodus different.

So, what does make Exodus different from other emulators? There are a few key points:

Plugin model, with XML-based system definitions
Perfect timing synchronization
Effective multithreading
Debug and development focused

The first and most significant thing to understand about Exodus, is that it is not actually an emulator. Exodus is a generic emulation platform, which allows systems to be assembled from individual components at runtime. Plugins are used to add actual emulation support for real devices. A device may be an individual discrete component, such as a processor, sound, or video chip. This plugin model itself isn't as interesting as how Exodus builds systems from these devices. With Exodus, nothing that makes up a "system" is hardcoded. Exodus uses XML files, called modules, to build an actual system from a set of discrete components. The current system is simply defined as the current set of loaded modules, and any selected settings for those modules.

...a future possibility for cycle-exact PC emulation, maybe?

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 2 of 4, by Alegend45

User metadata
Rank Newbie
Rank
Newbie
VileRancour wrote:
In development since 2006, the first public release is out now, and soon to be open source: http://www.exodusemulator.com/ […]
Show full quote

In development since 2006, the first public release is out now, and soon to be open source:
http://www.exodusemulator.com/

It currently emulates a Mega Drive, but more interestingly, it should be capable of emulating almost everything else:

Exodus is a software program designed to allow real physical hardware to be emulated in software. This is not a revolutionary id […]
Show full quote

Exodus is a software program designed to allow real physical hardware to be emulated in software. This is not a revolutionary idea. There are many other emulators out there for a wide variety of tasks and systems. What makes Exodus a little different is what goals it tries to achieve, what it does that other emulators do not, and what it doesn't do that other emulators do. More detail is given about the goals of Exodus in the "Design Philosophy" section. In this section, you'll get a quick overview of what makes Exodus different.

So, what does make Exodus different from other emulators? There are a few key points:

Plugin model, with XML-based system definitions
Perfect timing synchronization
Effective multithreading
Debug and development focused

The first and most significant thing to understand about Exodus, is that it is not actually an emulator. Exodus is a generic emulation platform, which allows systems to be assembled from individual components at runtime. Plugins are used to add actual emulation support for real devices. A device may be an individual discrete component, such as a processor, sound, or video chip. This plugin model itself isn't as interesting as how Exodus builds systems from these devices. With Exodus, nothing that makes up a "system" is hardcoded. Exodus uses XML files, called modules, to build an actual system from a set of discrete components. The current system is simply defined as the current set of loaded modules, and any selected settings for those modules.

...a future possibility for cycle-exact PC emulation, maybe?

That's not possible until the 8086/8088 microcode is dumped, and so far, Visual 6502 seems to be making no progress on that whatsoever. Not even a better die shot.

Reply 3 of 4, by VileR

User metadata
Rank l33t
Rank
l33t
Alegend45 wrote:
VileRancour wrote:

...a future possibility for cycle-exact PC emulation, maybe?

That's not possible until the 8086/8088 microcode is dumped

Are you sure? some think otherwise - this makes sense on the level that, if you can accurately measure the output timings for every operation possible within each cycle, and reliably replicate your results, you don't necessarily need to know exactly how they're generated internally.
I'm not an engineer, so I don't have the first clue how to go about doing that, but the guy who wrote this certainly knows his stuff - he's posted here occasionally so perhaps he can weigh in on this.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]