Cycle accurate Mega Drive emulation

Discussion in 'General Sega Discussion' started by Nemesis, Apr 9, 2013.

  1. winterhell

    winterhell

    Member
    1,165
    7
    18
    Hope it supports 1440p
     
  2. Is that really your concern right now? .___________."

    Anyway, I think 99.9% of people here don't really appreciate the emulator for what it really is (CIP: see above). it's a marvellous development aid, powerful debugger and overall a fucking awesome thing.

    Looking forward to it =)
     
  3. LocalH

    LocalH

    roxoring your soxors Tech Member
    3,301
    26
    28
    wouldn't you like to know
    Guitar Hero II Deluxe
    I love seeing emulation get more accurate as time goes on. Hopefully one day computers will be powerful enough to do the same thing for more modern consoles as well.
     
  4. Aesculapius Piranha

    Aesculapius Piranha

    つづく Oldbie
    4,385
    45
    28
    Unknown
    Diva
    Less than a day!

    [​IMG]
     
  5. Nemesis

    Nemesis

    Tech Member
    The website for Exodus is now properly up and running, check it out at http://www.exodusemulator.com. Please bear with me as I work out the kinks. There's some more detailed information about Exodus on the website, including some screenshots, so take a peek if you're interested. I've also published some information about system requirements in the news section.

    Things are on track for the official release of Exodus in just under 12 hours now. :)
     
  6. MarkeyJester

    MarkeyJester

    A D V A N C E Resident Jester
    2,084
    217
    43
    Japan
    Well I must say, this looks to be a very powerfully impressive emulator, the debugging tools look rather useful, the interface is interesting and feels quite dynamic, and (from what Oerg was shoving down my neck on IRC) this is apparently a very accurate emulator, so that's a bonus, I am very impressed with what I see currently, I'll admit though, I'm not anallly excited about it as a few others are, but I still see it as a ground breaking advance in emulation and debugging tools, and from what I've read of your posts on other forums regarding chip layouts, it's clear to me that you've really gone that extra mile and you truely deserve a great deal of distinction.

    Of course, considering the emulator isn't currently available right now, I do have a one or two minor questions to ask, I apologise if these answers have been documented well somewhere close by, but I'm not in any mood to go hunting at 4:45am, so I feel the need to re-ask regardless, sorry, so firstly; is turning on and off individual PSG channels an option? I find a lot of emulators do lack this feature, where strangely enough they support on and off control of FM channels, this question also goes towards FM channels as I don't currently see the options in those screenshots anywhere. I was about to ask if you would be interested in programming a window specifically for displaying the VDP planes in their full size and glory, but noticed that there's something in one of those screenshots that looks to be just that, cool stuffs.

    Additionally, there are certain hardware specific sound quirks, such as the test register (at YM2612 address 2C I believe), and minor stuff such as the DAC channel not being disabled after the DAC bit in address 2A is enabled and then disabled, are they currently supported in some form? And the final question; is the relationship between the Z80 and the 68k memory space accurate in terms of halting? By this I mean, Z80 accessing the 68k memory space through the bank window, but during DMA transfer, the 68k is halted and the Z80 remains in a loop waiting for a response. I ask as most emulators tend not to perform this which makes it difficult to define the speed of the Z80, as most games use the bank window for transfering PCM data, on hardware, the quality is destroyed by the constant stopping and waiting.

    And my final question; what else do you have planned for future releases (if any)?

    Once again, fantastic work, this is real treat and deserves a lot of merrit, well done!
     
  7. I, too, wonder what Markey asked (Even though I don't completely understand what he just said :v)


    I have been waiting for this since...like, ever. How accurate exactly is this? 90%? 100%? I can imagine that it'll need a lot more juice than Gens, but so far it looks snazzy :). Hope to test this out real soon.
     
  8. Nemesis

    Nemesis

    Tech Member
    I don't have a convenient tickbox to turn them off, but you can do that very easily. The YM2612 and PSG support "register locking", where you can force the emulator to hold onto the current value and ignore attempts to change it through code. If you lock a PSG channel at maximum attenuation, or lock a YM2612 operator/channel in the off position, you can effectively disable those channels. I will be adding a "mute" option for each channel later though. It's one of many things on the to-do list. There is a suggestions page where people can suggest ideas and vote on what ideas they want to see happen most, so I'd suggest any ideas like this get added to that system. I'll be referring to that list when I decide what to work on.

    Someone else asked about the same thing just a few hours ago. I'm afraid that's not in there right now, BUT, it's easy to add, and I very much want to add it. That was a debug feature I really wanted to get in there myself, but I had to draw a line somewhere for the first release. Expect this one to come very soon.

    The YM2612 and VDP test registers are not currently supported. Full support for them will be added later. The YM2612 core is insanely accurate though. I spent a lot of time doing extensive research on the YM2612 back in 2008 (see this thread: http://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=0 ), and I wrote this core based on my findings. The most significant accuracy problem with the YM2612 right now is that I haven't measured and emulated port access delays, so you can write to the DAC register faster on this emulator than in the real hardware. That's something I plan to correct, once I've performed the necessary hardware tests to determine the correct timing.

    The bus timing is perfect. If the Z80 attempts to access M68000 banked memory, the bus arbiter requests bus ownership at the correct cycle relative to M68000 access and VDP DMA operations, and that bus ownership request is then handled as it would be on the real hardware. Same goes for M68000 access into the Z80 memory space.

    A lot more than I could possibly write here right now. Suffice to say, there are a million debug features I still want to add, and a higher degree of accuracy I want to achieve. I also have my sights set on other systems.
     
  9. MarkeyJester

    MarkeyJester

    A D V A N C E Resident Jester
    2,084
    217
    43
    Japan
    Ah cool, I'm glad to hear I'm not the only one with these specific requests :P

    Thanks for the confirmation.
     
  10. Meat Miracle

    Meat Miracle

    Researcher
    1,654
    4
    18
    You use Joomla on that site? What on earth...
     
  11. winterhell

    winterhell

    Member
    1,165
    7
    18
    Can we have a memory recorder? Saving the current RAM state every frame for a desired duration, and then being able to play it back. I realize this is an odd one and it'll take couple of MB per second but it has its uses.
     
  12. Here's Exodus running Sonic 2 on my i7 3770 3.4Ghz. The framerate looks a bit jittery only because of the FRAPS recording, but it actually runs quite smoothly on my PC, and can maintain about 65-70fps if I disable the framerate limiter. In my limited testing, the Sonic games are among the more intensive of the Mega Drive / Genesis games, so other games have typically had slightly higher framerates, closer to 80fps.

     
  13. Nemesis

    Nemesis

    Tech Member
    Ehh, works for me. As someone who knows very little about web development with no desire to learn, and with limited time to maintain a site, Joomla seems like an easy way to make a reasonable site with very little maintenance burden.

    Just saving the RAM state isn't enough, you need a full savestate in order to be able to properly rollback the system to a previous state. A feature like this could be added, but it will have a performance impact, since the entire system has to be halted in order to generate a savestate. This brief delay is almost unnoticeable as a one-off event, but taking a snapshot every frame will definitely take a bite out of performance. That said, it's a good suggestion, and I can see the uses, we'll just have to make the time interval configurable. Make a feature request on the suggestions page, I'll get to this one at some point. Someone else has asked for a similar thing already I believe.

    Woah, I had no idea you were registered here! BlobVanDam is the only one who's got access to the release build at this point. He's helped me with testing, and also made the spiffy icon and site logo/colour scheme.
     
  14. Nemesis

    Nemesis

    Tech Member
    Exodus version 1.0.0 has been released! :) Head on over to the downloads section at http://www.exodusemulator.com and give it a try. If you get an error about a missing DLL, you need to install the latest Visual Studio 2005 x64 runtimes. You'll find a link for that in the downloads section too.

    I hope you find Exodus useful. Feel free to let me know what you think, I'm interested in any and all feedback. If you run into any difficulties using it, let me know and I'll do my best to help. Have fun.
     
  15. Testing it out now, for some reason it won't open the Sonic 3 Prototype 0517 ROM; it gives me an error about loading a module file. Judging by the event log, SRAM related. Runs about half speed on my 2.2 GHz dual core Intel Pentium, but I'm loving how this looks. I'll have a more thorough look when I get some rest. Oh this makes me so happy :o
     
  16. Spanner

    Spanner

    The Tool Member
    3,313
    118
    43
    United Kingdom
    Sonic Hacking Contest
    Just a heads up Nemesis that I cross-posted your thread over at SSRG so you might want to keep a track of things in that thread should any reports come up there.
     
  17. The Taxman

    The Taxman

    Tech Member
    673
    2
    0
    Retro Engine & Related Projects
    It's giving me "The application failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command line sxtrace.exe tool for more detail."
     
  18. Nemesis

    Nemesis

    Tech Member
    You need to install the Visual Studio 2005 x64 runtimes. You'll see a download link for it in the downloads section of the website.
     
  19. winterhell

    winterhell

    Member
    1,165
    7
    18
    There is a problem with the input with Golden Axe 3 on the menu and the character select screen.