Cycle accurate Mega Drive emulation: Exodus coming in April!

Ask anything your want about Megadrive/Genesis programming.

Moderator: BigEvilCorporation

Oerg866
Very interested
Posts: 211
Joined: Sat Apr 19, 2008 10:58 am
Location: Frankfurt, Germany
Contact:

Post by Oerg866 » Sat Apr 20, 2013 3:03 pm

Countdown is running! I'm so excited haha :)

greatkreator
Very interested
Posts: 158
Joined: Sat May 12, 2012 7:37 pm
Location: Ukraine

Post by greatkreator » Mon Apr 22, 2013 10:13 pm

we are waiting very much.

п.с. если тьі не зарелизишься я начну душить котят - так и знай один крохотньій мильій котенок каждьій день. дерзай заграничньій товарищ.

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

Post by Nemesis » Tue Apr 23, 2013 5:51 am

Oerg866 wrote:Countdown is running! I'm so excited haha :)
Now the countdown is really running:
http://www.exodusemulator.com
:)

Oerg866
Very interested
Posts: 211
Joined: Sat Apr 19, 2008 10:58 am
Location: Frankfurt, Germany
Contact:

Post by Oerg866 » Tue Apr 23, 2013 1:21 pm

Nemesis wrote:
Oerg866 wrote:Countdown is running! I'm so excited haha :)
Now the countdown is really running:
http://www.exodusemulator.com
:)
That is classy :)

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Tue Apr 23, 2013 9:19 pm

Nice, less than one week!

Nemesis, not sure if it's been mentioned but I'm curious about two things. What model of the Genesis/Mega Drive does Exodus aim to emulate currently? I assume the non-TMSS model 1 hardware? This could potentially open up an exciting possibility of multiple hardware revision support from the model 1 to the model 3 in the future. :D

My second question is, I'm assume you can set the region for the hardware from a JP-NTSC/UK-PAL Mega Drive into a US-NTSC Genesis, right?

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

Post by Nemesis » Tue Apr 23, 2013 11:22 pm

King Of Chaos wrote:Nemesis, not sure if it's been mentioned but I'm curious about two things. What model of the Genesis/Mega Drive does Exodus aim to emulate currently? I assume the non-TMSS model 1 hardware? This could potentially open up an exciting possibility of multiple hardware revision support from the model 1 to the model 3 in the future. :D
Primary focus is on non-TMSS model 1 hardware, however, the current system does support TMSS security hardware, with full system bios and VDP TMSS lockout support. These features are optional, you can enable and disable them easily from the menu. My recommendation is actually to run a TMSS system with the VDP lockout disabled, since that's the most compatible hardware config. Some roms don't work with the VDP lockout active, and some roms don't work without the BIOS being loaded first, since they rely on it doing some default initialization of the hardware. Homebrew code is most affected, but some commercial games suffer similar problems.

The goal is actually to have a single system, with options to select between various version compatibility settings. The meaningful differences between the various hardware platforms are actually quite low, but they do exist. I'll add features to allow optional selection of the various quirks of each revision at a later date.
My second question is, I'm assume you can set the region for the hardware from a JP-NTSC/UK-PAL Mega Drive into a US-NTSC Genesis, right?
Yes, the region is fully configurable, even to a PAL Japanese unit if you want to. You can change the region at any time during execution, and the clock rate will be adjusted automatically to match the target platform. The VDP is also designed to handle region changes correctly at runtime, so your border regions and timing will adjust appropriately. The ROM loader also detects compatible regions for each game when loading them, and adjusts the system region accordingly as required.

I should also note, the region settings themselves aren't even hard-coded. They are defined in the XML file that defines the system itself, and just apply changes to the raw region lines and clock settings that the real hardware has. If you want to be able to adjust the actual physical clock rate, domestic/overseas line, and pal/ntsc line separately, you can add a couple of lines to the XML file and you'll now have menu items to do just that. Clock rates can also be controlled and overridden on a per-device basis.

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Tue Apr 23, 2013 11:42 pm

That sounds pretty good and exactly as I hoped, thank you for your answers!

I honestly can't wait to test various games like Eternal Champions' random character SEGA intro and X-Men 2's random starting character upon power on/reset. That, and X-Men's 'reset the computer' soft reset behaviour. Gosh, so much to try and marvel at - I can't wait! Hopefully this week goes by fast.

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

Post by Nemesis » Wed Apr 24, 2013 12:07 am

I honestly can't wait to test various games like Eternal Champions' random character SEGA intro and X-Men 2's random starting character upon power on/reset.
I actually did work on supporting that, and you should know, while it should work no worries on a soft reset, I was surprised to discover that my previous testing was incorrect, and the logo actually isn't random on power-on. On the real hardware, I showed the same logo each time on a cold boot. I worked on getting the right logo showing on cold boot. The exact logo displayed can vary between platforms though, depending on whether that system has a BIOS, and possibly depending on the version of particular chips used in the system.

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Wed Apr 24, 2013 12:16 am

Interesting, I actually didn't know that. Over the weekend I'll have to get out my various Genesis models out and try that for myself.

One observation though regarding the ideas and voting. I see people voting for Saturn and Dreamcast, but I have my doubts that the current generation (and perhaps 4 or more to come) of CPUs could even get playable frame rates, assuming accuracy's the main focus of all supported future systems. :P

I think you did mention somewhere you'd give out system requirements before release? Any ETA on that? Just curious.

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

Post by Nemesis » Wed Apr 24, 2013 1:32 am

King Of Chaos wrote:I think you did mention somewhere you'd give out system requirements before release? Any ETA on that? Just curious.
Quad-core minimum. As for clock speed, the faster the better. I'll try and give a rough clock speed requirement soon, but it's a little hard for me to give performance requirements right at this minute, for several reasons:
1. I do my main development on what is, by today's standards, quite a slow laptop, so I only run it on a machine capable of pulling full framerate every now and then, usually when I want to test something in particular.
2. There's a complex performance optimization process I'll be putting actual release builds through, which involves gathering performance information at runtime, and feeding that performance data back into the compiler to optimize the build. That process takes awhile to run through, and I haven't done it in ages, so I don't really know how fast the release build will be until I actually try generating and optimizing one.
3. Performance scales based on how tight the timing requirements are of the current code you're running. Some games need more precise timing than others, so it can depend on the actual game you're running. Just because you pull full framerate on a given game doesn't mean you'll pull full framerate on every game.

That said, I'll try and get a number out there, but I probably won't publish it until actual release, simply because it could be pretty inaccurate. I'll probably be relying in part on you guys telling me how fast it runs on your machines to figure out what that number is.

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

Post by Nemesis » Wed Apr 24, 2013 1:35 am

Oh, by the way, can someone here who's got an account on Sega16 post the initial announcement I made for Exodus there on my behalf? I've created an account, but I can't create topics there until I reach 50 posts, and the admin seems unable or unwilling to waive this for my account, and I want to let those guys know about this. I'll post in the thread once it's made, I just can't make it myself. Kudos to whoever's able to do this for me.

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Wed Apr 24, 2013 2:49 am

Nemesis wrote:Oh, by the way, can someone here who's got an account on Sega16 post the initial announcement I made for Exodus there on my behalf? I've created an account, but I can't create topics there until I reach 50 posts, and the admin seems unable or unwilling to waive this for my account, and I want to let those guys know about this. I'll post in the thread once it's made, I just can't make it myself. Kudos to whoever's able to do this for me.
Done.
Nemesis wrote:Quad-core minimum. As for clock speed, the faster the better. I'll try and give a rough clock speed requirement soon, but it's a little hard for me to give performance requirements right at this minute, for several reasons:
1. I do my main development on what is, by today's standards, quite a slow laptop, so I only run it on a machine capable of pulling full framerate every now and then, usually when I want to test something in particular.
2. There's a complex performance optimization process I'll be putting actual release builds through, which involves gathering performance information at runtime, and feeding that performance data back into the compiler to optimize the build. That process takes awhile to run through, and I haven't done it in ages, so I don't really know how fast the release build will be until I actually try generating and optimizing one.
3. Performance scales based on how tight the timing requirements are of the current code you're running. Some games need more precise timing than others, so it can depend on the actual game you're running. Just because you pull full framerate on a given game doesn't mean you'll pull full framerate on every game.

That said, I'll try and get a number out there, but I probably won't publish it until actual release, simply because it could be pretty inaccurate. I'll probably be relying in part on you guys telling me how fast it runs on your machines to figure out what that number is.
Can't wait! After release I'll probably suggest something like a benchmark-type of feature. However I'm going to hold off on suggesting anything else besides Game Gear and Pico, since we have no clue what goodies you have to surprise us with. :D

Huge
Very interested
Posts: 197
Joined: Sat Dec 13, 2008 11:50 pm

Post by Huge » Wed Apr 24, 2013 1:04 pm

King Of Chaos wrote:Can't wait! After release I'll probably suggest something like a benchmark-type of feature. However I'm going to hold off on suggesting anything else besides Game Gear and Pico, since we have no clue what goodies you have to surprise us with. :D
Screw that, let's emulate the Picture Magic instead. :D

Mamizou
Interested
Posts: 25
Joined: Thu Apr 19, 2012 4:50 pm
Contact:

Post by Mamizou » Wed Apr 24, 2013 8:02 pm

Nemesis wrote:Quad-core minimum. As for clock speed, the faster the better.
My body is ready. I don't think my laptop is though. :O (1.6GHz i7 Q720)
Nemesis wrote:...which involves gathering performance information at runtime, and feeding that performance data back into the compiler to optimize the build.
The Firefox ebuild on Gentoo had the option for PGO. It took FOREVER to build, and I didn't really see much difference performance wise. Maybe your emulator will be different.

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

Post by mickagame » Thu Apr 25, 2013 5:36 pm

Does exodus have a uml object model?

Post Reply