Thursday, 30 April 2015 06:36

Exodus 2.0 released, project now open source!

Written by

Exodus 2.0 has now been released! You can download the new version now on the current releases page. I'm dedicating this release to my beautiful wife Judi, and my two boisterous little boys Justin and Aiden.

As promised, Exodus is now also open source. Check out the Source Code section for instructions on how to obtain and compile the source, and information on how you can contribute code changes to the project.

Note that you won't see a massive improvement in Mega Drive game compatibility with this version, as the focus has been on other areas, like performance, user interface, and the plugin API. There are still a number of games I know of that will greet you with a black screen for example when you try and load. This is due to the fact that although Exodus aims for cycle-level accuracy, it's not actually there yet, and there's a number of games that use a kind of wait loop against flags on the VDP that technically requires at the very least sub-opcode level timing emulation to pass. No other emulators have sub-opcode level timing emulation for their CPU cores, but they use incorrect timing on the VDP as well in order to make the tests pass.

The biggest thing that needs to be done for Exodus at this stage in order to improve Mega Drive compatibility is write Z80 and M68000 cores that emulate individual bus cycles, rather than emulating at an "opcode" level. For the M68000 at least, nobody seems to have ever done this, and a lot of information needs to be gathered on the hardware in order to determine the correct timing and order for each bus access within instructions. Emulating it properly will also require a major change to the bus system, which I currently have in the works. I was originally planning to have this bus change in Exodus 2.0, but I didn't want to delay the release any further. The bus system redesign, along with cycle-exact M68000 and Z80 cores, will now be my primary focus of development for the next major release. After this is complete, Exodus will have CPU emulation which is truly cycle-exact.

Despite the lack of perfection with the CPU cores at this stage though, Exodus is already much more accurate than other emulators at Mega Drive support for graphics and sound. Exodus has the most advanced YM2612 core ever written, as it was written entirely from scratch during my detailed reverse engineering of the YM2612 back in 2008.

In terms of the VDP, Exodus is the only Mega Drive emulator that has a cycle-exact VDP core, which allows it to emulate many quirks and tricks of the real hardware that other emulators can't, like Direct Color DMA. Aside from rendering accuracy, the VDP core is also fundamentally more accurate in handling basic communication from the CPU. Try this test ROM for example, which tests VDP port access:


http://nemesis.exodusemulator.com/MegaDrive/Tests/VDPFIFOTesting/VDPFIFOTesting.zip
(Detailed discussion: http://gendev.spritesmind.net/forum/viewtopic.php?p=20975#20975)

This test ROM isn't perfect, a couple of the tests fail intermittently on the real hardware, but it's pretty stable, and it's very thorough and brutal. Even Exodus doesn't get a perfect score here yet, it gets 121 out of 122. Most other Mega Drive emulators will only score around 20 or so. I'm hoping with Exodus now open source, other Mega Drive emulators which are still being maintained can use Exodus as a reference, and improve their accuracy on these kind of tests too.

Anyway, I hope some other people can make use of this. It's been a very long road to get to this point. Exodus was around 200,000 lines of code at the last count, and most areas of the code have gone through numerous revisions to get to where they are now. I daren't even estimate the number of hours that have gone into this project. I hope you find it interesting and useful.

EDIT: I forgot to say, if you want to check out the debugging features, you'll be best off using one of the pre-made workspaces. Select "File -> Load Workspace" from the main menu and select "Mega Drive Debugger.xml". That'll give you a pretty good debug environment ready to go.

279 comments

  • Comment Link روانشناسی ترک اعتیاد Friday, 22 March 2024 08:12 posted by روانشناسی ترک اعتیاد

    Hey I am so happy I found your blog page, I really found you by error,
    while I was looking on Digg for something else,
    Anyways I am here now and would just like to say thanks for a tremendous post and a all round exciting blog (I also love the theme/design), I don’t
    have time to browse it all at the moment but I have bookmarked it and also added in your RSS feeds, so
    when I have time I will be back to read much more,
    Please do keep up the superb b.

  • Comment Link درمان افسردگی بدون دارو Friday, 22 March 2024 06:36 posted by درمان افسردگی بدون دارو

    Hello, Neat post. There's an issue along with your website in internet explorer, might test this?
    IE still is the marketplace leader and a large element of other folks
    will miss your magnificent writing due to this problem.

  • Comment Link id.savefrom.net Friday, 22 March 2024 05:20 posted by id.savefrom.net

    Perlu diketahui, cara untuk download video TikTok tanpa menggunakan watermark sebenarnya terbilang mudah.

  • Comment Link مشاوره روان شناسی کیست Friday, 22 March 2024 01:50 posted by مشاوره روان شناسی کیست

    I do not even know the way I stopped up here, but I believed this put up used to be good.
    I don't understand who you are however definitely you're
    going to a well-known blogger should you are not already.
    Cheers!

  • Comment Link خیانت در زندگی زناشویی Friday, 22 March 2024 00:32 posted by خیانت در زندگی زناشویی

    Thanks designed for sharing such a good opinion, post is good,
    thats why i have read it fully

  • Comment Link بهترین مرکز مشاوره روانشناسی در صادقیه تهران Thursday, 21 March 2024 22:15 posted by بهترین مرکز مشاوره روانشناسی در صادقیه تهران

    Excellent site you have got here.. It's hard to find quality writing like yours
    these days. I seriously appreciate individuals like you!

    Take care!!

  • Comment Link علائم افسردگی در نوجوانان Thursday, 21 March 2024 21:43 posted by علائم افسردگی در نوجوانان

    I'm more than happy to find this page. I need to to thank you for your
    time just for this wonderful read!! I definitely appreciated every bit of it
    and i also have you book marked to check out new stuff on your web site.

  • Comment Link ویژگی همسر خوب برای ازدواج Thursday, 21 March 2024 16:17 posted by ویژگی همسر خوب برای ازدواج

    Do you mind if I quote a couple of your articles as long as I
    provide credit and sources back to your website?
    My website is in the very same area of interest as
    yours and my users would truly benefit from some
    of the information you provide here. Please let me know if this okay with you.

    Cheers!

  • Comment Link بهترین قرص ضد استرس گیاهی قوی Thursday, 21 March 2024 15:46 posted by بهترین قرص ضد استرس گیاهی قوی

    Your way of telling all in this paragraph is actually nice, every one be able
    to effortlessly be aware of it, Thanks a lot.

  • Comment Link درمان استرس فکری Thursday, 21 March 2024 07:18 posted by درمان استرس فکری

    Unquestionably imagine that which you said. Your favourite justification seemed to be on the web the easiest thing to bear in mind of.
    I say to you, I definitely get irked at the same time as people think about worries that they plainly do not understand about.
    You managed to hit the nail upon the top and outlined out the entire thing
    without having side effect , other people can take a signal.
    Will likely be again to get more. Thank you

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.

If you wish to make a donation to show your appreciation for this project, you can do so here. Your donation may go towards the hosting costs of the website, or equipment or reference hardware to assist in the development of Exodus. It may also go towards a bunch of flowers for my beautiful wife, to say thanks for your support and patience all those nights I stayed up late working on this project.