Cycle accurate emulation: Exodus 2.0 + Open Source Release

Ask anything your want about Megadrive/Genesis programming.

Moderator: BigEvilCorporation

Post Reply
Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Cycle accurate emulation: Exodus 2.0 + Open Source Release

Post by Nemesis » Mon Apr 27, 2015 2:38 pm

You may or may not have heard about Exodus. Exodus is a generic and extensible emulation platform I have been developing for almost 9 years now, which aims to support cycle-level accuracy in emulation, combined with powerful debugging and development tools. Unlike other emulators which are statically compiled to support a particular set of systems, Exodus is open an extensible, with every emulation core supplied through plugins. The platform itself constructs systems from an XML definition of the connections between individual components in the system. This design allows the emulator itself to focus on managing the timing and interaction between the components, and allows the emulation cores to be totally modular and reusable in other systems that share the same components. A lot more information about this is available on the website.

On the 30th of April 2013 I released Exodus 1.0, with support for the Sega Mega Drive. The plugin SDK wasn't ready for use at that stage though, so I held off on the open source release until I could get it up to scratch. Since then I've had delays and setbacks in getting the next release out the door, but the long process is now complete. I'm pleased to announce that Exodus 2.0 will be released both as binaries, and an open source repository, on the 30th of April 2015. Developer documentation will also be published detailing the API. The code will be licensed under MS-RL, and the repository will be hosted on Bitbucket. Refer to the website for more information on how to build Exodus from the source, and how to contribute ideas or code changes to the project.

In terms of Mega Drive emulation, the main differences in Exodus 2.0 are as follows:
-Major speed improvements (average 90% on dual-core systems, 30%-40% on quad-core systems)
-Around 40% reduction in memory usage
-Completely redesigned user interface, with a very powerful docking system for window management.
-Gamepad/joystick support
-Lots of bugs fixed and new debugging features

Image
The release will be made available on the official website at http://www.exodusemulator.com, so head over there for download links and more information about this project. I hope this emulator of use to some people out there, and I hope other people will be interested in contributing to this project, and helping me to expand it into other platforms.

Edit:
Exodus 2.0.0 has now been released! You can download the new version on the release page at http://www.exodusemulator.com/index.php ... nt-release
Last edited by Nemesis on Thu Apr 30, 2015 8:04 am, edited 1 time in total.

mickagame
Very interested
Posts: 256
Joined: Sat Jun 07, 2008 7:37 am

Post by mickagame » Mon Apr 27, 2015 4:24 pm

Do u think would be easy to compil Exodus like a core for retroarch? I know the interface of the core because i do my self a core version of my emulator.
Last edited by mickagame on Tue Apr 28, 2015 5:09 am, edited 1 time in total.

Stef
Very interested
Posts: 3131
Joined: Thu Nov 30, 2006 9:46 pm
Location: France - Sevres
Contact:

Post by Stef » Mon Apr 27, 2015 9:33 pm

Awesome ! Counting down remaining seconds... :D

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Post by Nemesis » Tue Apr 28, 2015 10:10 am

mickagame wrote:Do u think would be easy to compil Exodus like a core for retroarch? I know the interface of the core because i do my self a core version of my emulator.
Exodus is very modular, so it should be easy enough. I don't know anything about the Retroarch API though so take it with a grain of salt.

ehaliewicz
Very interested
Posts: 50
Joined: Tue Dec 24, 2013 1:00 am

Post by ehaliewicz » Tue Apr 28, 2015 6:07 pm

90% performance improvement over the previous version?
That's seriously impressive.

Raijin
Newbie
Posts: 4
Joined: Tue Sep 10, 2013 2:25 am

Post by Raijin » Tue Apr 28, 2015 7:32 pm

I am curious if there will be something like a sample bank which can be checked for each game with sample rates and such.
I was thinking about this not too long ago and just thought it might be something cool to have.

specialt1212
Newbie
Posts: 2
Joined: Tue Apr 21, 2015 3:35 am

Post by specialt1212 » Tue Apr 28, 2015 10:29 pm

Will the 2.0 version support loading roms from command line?

As far as I can tell, the previous version didn't have command line support.

mickagame
Very interested
Posts: 256
Joined: Sat Jun 07, 2008 7:37 am

Post by mickagame » Wed Apr 29, 2015 8:29 pm

I don't have access to the site.
What hour exodus will be released? :-)

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Post by Nemesis » Thu Apr 30, 2015 1:51 am

specialt1212 wrote:Will the 2.0 version support loading roms from command line?

As far as I can tell, the previous version didn't have command line support.
Nope, haven't even thought about adding command line support. What do you want to achieve by having command line options? You still need a GUI in order to actually interact with the emulator, so I'm trying to understand how having command line options would make things easier. Not saying your idea is bad, just want to understand your process is and how command line support would help it, because there might be a better way to go about getting the result you want. If it's a front end you're really after, there's actually an API that'd allow you to build your own one. The actual core of the emulator is a dll.
mickagame wrote:I don't have access to the site.
What hour exodus will be released? :-)
6PM Australian Eastern Standard Time, around 6 hours from now.

specialt1212
Newbie
Posts: 2
Joined: Tue Apr 21, 2015 3:35 am

Post by specialt1212 » Thu Apr 30, 2015 2:01 am

Nemesis wrote:
specialt1212 wrote:Will the 2.0 version support loading roms from command line?

As far as I can tell, the previous version didn't have command line support.
Nope, haven't even thought about adding command line support. What do you want to achieve by having command line options? You still need a GUI in order to actually interact with the emulator, so I'm trying to understand how having command line options would make things easier. Not saying your idea is bad, just want to understand your process is and how command line support would help it, because there might be a better way to go about getting the result you want. If it's a front end you're really after, there's actually an API that'd allow you to build your own one. The actual core of the emulator is a dll.
Thank you for the reply. You guessed correctly, I launch my games from a front end (Emulator Organizer). I prefer accurate emulators when possible and since this is (to my knowledge) the most accurate Sega Genesis emulator available I was hoping to use it in conjunction with Emulator Organizer to launch my games.

Unfortunately I don't have any coding abilities except running basic command line options or writing bat file so I wouldn't be able write any type of code to get the two programs to communicate.

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Post by Nemesis » Thu Apr 30, 2015 8:01 am

Exodus 2.0.0 has now been released! Please head over to the release topic in the SpritesMind Exodus forum to discuss it.

Post Reply