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.

357 comments

  • Comment Link luckland casino Wednesday, 13 August 2025 11:07 posted by luckland casino

    The choice of whether to use WITH-SLOTS versus WITH-ACCESSORS is the same as the
    choice between SLOT-VALUE and an accessor function: low-level
    code that provides the basic functionality of a class may use SLOT-VALUE
    or WITH-SLOTS to directly manipulate slots in ways not supported by accessor
    functions or to explicitly avoid the effects of auxiliary methods that may
    have been defined on the accessor functions.
    WITH-SLOTS provides direct access to the slots, as if
    by SLOT-VALUE, while WITH-ACCESSORS provides
    a shorthand for accessor methods. The form of WITH-ACCESSORS is the same as
    WITH-SLOTS except each element of the slot list is a two-item list containing a
    variable name and the name of an accessor function. However, :class
    slots are accessed the same as :instance slots--they're accessed with SLOT-VALUE or an accessor function, which means you can access the slot value only through an instance
    of the class even though it isn't actually stored in the
    instance.

  • Comment Link https://vovangames-spins.top/ Tuesday, 12 August 2025 13:44 posted by https://vovangames-spins.top/

    I am sure this paragraph has touched all the internet viewers, its really really pleasant post on building up new webpage. https://vovangames-spins.top/

  • Comment Link https://gizbogamez.buzz Monday, 11 August 2025 06:29 posted by https://gizbogamez.buzz

    If you are going for best contents like I do, just pay a quick visit this website daily
    because it gives quality contents, thanks https://gizbogamez.buzz/

  • Comment Link long distance moving companies Sunday, 10 August 2025 06:11 posted by long distance moving companies

    Having read this I thought it was really enlightening. I appreciate you spending some time and effort to put this content together.
    I once again find myself personally spending way too much time both reading and commenting.
    But so what, it was still worthwhile!

  • Comment Link https://r7club-spins.buzz/ Sunday, 10 August 2025 02:05 posted by https://r7club-spins.buzz/

    Thank you for the auspicious writeup. It in fact was a
    amusement account it. Look advanced to far added agreeable
    from you! However, how can we communicate? https://r7club-spins.buzz/

  • Comment Link казино анлим Sunday, 03 August 2025 19:29 posted by казино анлим

    Рады приветствовать вас в Анлим Казино, где
    захватывающие игры и щедрые выигрыши сливаются
    в идеальную комбинацию.
    Здесь игроки могут выбрать игры на любой вкус,
    включая игровые автоматы, карточные игры, а также принять участие в акциях и заработать солидные призы.
    Как бы вы ни играли, мы предложим все, что нужно для
    отличной игры.



    Анлим Казино предоставляет профессиональное обслуживание и множество способов выигрыша.
    Присоединяйтесь к многим довольным игрокам,
    и успешно участвуйте в акциях.
    Вас ждут бонусы и уникальные предложения для увеличения ваших шансов на успех.





    Что делает нас особенными?


    Моментальная регистрация — начните
    играть в пару кликов.


    Увлекательные бонусы для новичков — больший шанс на успешный старт.




    Регулярные турниры и акции
    — для тех, кто хочет повысить свои шансы на выигрыш и получить дополнительные
    призы.


    Круглосуточная поддержка
    — всегда готовы помочь по любым вопросам.



    Поддержка мобильных устройств — играйте в любимые игры
    в любое время и в любом месте.








    Пришло время выигрывать! Присоединяйтесь к нам и начните выигрывать прямо сейчас. https://unlimclub-jackpot.top/

  • Comment Link Click Here Sunday, 03 August 2025 17:22 posted by Click Here

    Thanks , I have just been searching for info about this topic for a while and yours is the best I
    have came upon till now. But, what about the bottom
    line? Are you certain about the source?

  • Comment Link гизбо Tuesday, 29 July 2025 21:25 posted by гизбо

    If some one wishes expert view concerning blogging and site-building afterward i
    suggest him/her to go to see this blog, Keep up the nice job. https://gizbo-777-jackpot.top/

  • Comment Link insuranceagents1.z5.web.core.windows.net Monday, 28 July 2025 11:34 posted by insuranceagents1.z5.web.core.windows.net

    Hey there! I've been following your site for a while now and finally got the courage to go ahead
    and give you a shout out from Dallas Texas! Just wanted to say
    keep up the great work!

  • Comment Link vovan casino официальный сайт Sunday, 27 July 2025 03:09 posted by vovan casino официальный сайт

    Vovan Casino — площадка, где азарт
    становятся реальностью. Здесь каждый элемент
    создан для комфорта игроков:
    от интуитивно понятного интерфейса до моментального вывода средств.
    Воспользуйся возможностью — Вован для iOS — и открой для себя настоящую силу удачи.




    Разнообразие игр Vovan Casino впечатляет:
    от легендарных слотов до карточных баталий с живыми дилерами.
    Неважно, новичок ты или профи — игра доставит массу удовольствия.








    Регулярные акции, розыгрыши и VIP-программы


    Играй где угодно — на смартфоне или планшете


    Обращайся в любое время — тебе всегда помогут




    Если ты ценишь надёжность, комфорт
    и выигрышные возможности — Vovan Casino станет идеальным выбором https://roslodka.ru/

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.