Page 1 of 2

Finally!

Posted: Fri Sep 19, 2014 2:37 am
by Nemesis
I just checked in a major commit for Exodus that I've been working on for Exodus for 11 months. 11 long, painful months. It was the job from hell, really. You ever have one of those tasks that you think is going to take you a certain amount of time, but it seems to just continually expand out to a bigger and bigger task, and each step of the way, it feels like you're "almost done"? It feels so nice to be able to work on something new now. That job was the biggest blocker to the next release, so with it cleared, the next version of Exodus really is a huge step closer towards being a reality. There's a bit more work to go still, but everything seems easy after that job.

Posted: Fri Sep 19, 2014 4:59 am
by mickagame
Great !!!!!!!!!!!!!!!!!!!

Posted: Fri Sep 19, 2014 5:28 am
by tryphon
YAY !!!

Posted: Fri Sep 19, 2014 3:55 pm
by Stef
Well done Nemesis ! I understand what you meant by "long, painful months", when you start those major modifications and realize the more you are doing and the more will to be done X'D

Posted: Fri Sep 19, 2014 7:31 pm
by mickagame
What consisted this internal change?
Will the next release be improved in term of speed?

Posted: Sun Sep 21, 2014 1:25 am
by Nemesis
What consisted this internal change?
Complete restructure of how debug windows are implemented and managed, expansion of the abilities of extension plugins, and better separation between the emulation platform itself and the GUI. This model gives better separation between components and make everything more extensible.
Will the next release be improved in term of speed?
Yes, in a major way! I've heavily profiled and aggressively optimized the major bottlenecks in the emulator, as well as restructuring some critical areas of the bus system to reduce overhead. I've also made some critical improvements to the threading model which give a significant performance boost, the effects of which are magnified on dual-core systems. Here are some comparisons I just took between the 1.0 release version of Exodus and the current Exodus 1.1 development build:

Code: Select all

-----------------------------------------------------------------
                     |Exodus 1.0|Exodus 1.0|Exodus 1.1|Exodus 1.1
                     |   FPS    |  Memory  |   FPS    |  Memory  
-----------------------------------------------------------------
Core 2 E7400         |
(2.8GHz dual core)   |   28FPS  |   869MB  |   50FPS  |  510MB
Oct 2008             |
-----------------------------------------------------------------
Core i7 920          |
(2.67 GHz quad core) |   61FPS  |   894MB  |   85FPS  |  538MB
Nov 2008             |
-----------------------------------------------------------------
Core i7 3840QM       |
(2.8 GHz quad core)  |   78FPS  |   906MB  |  100FPS  |  567MB
Sep 2012             |
-----------------------------------------------------------------
That's an average 40% memory usage decrease, with a 90% performance increase for the Core 2 E7400, a 40% performance increase for the i7 920, and a 30% performance increase for the i7 3840QM. These ratings were taken on Sonic 2 using the first level for comparison. Note that this makes what is a 6 year old processor be able to run Sonic 2 (one of the more demanding Mega Drive games) at 85FPS. It might also be possible for a dual-core system to achieve a full framerate too. The E7400 gets 83% of full framerate. The Core 2 Duo E8600 might be up to the task. At the very least, it's now usable on a dual-core system for development and debugging.

These numbers may change before release. I've got another critical change to the bus system that could introduce more overhead, but it's important in order to be able to make it flexible enough to apply to all systems.

Posted: Sun Sep 21, 2014 9:33 am
by Stef
Wow that is greats news ! My laptop will finally be able to make Exodus run at full speed, very important when i was testing about sound output quality ;)
I'm impatient to see the next realease =)

Posted: Tue Sep 23, 2014 6:13 pm
by King Of Chaos
Awesome, thanks for the update Nemesis. I can't wait to benchmark my 4790K with this! :D

Posted: Tue Sep 23, 2014 6:31 pm
by flamewing
Out of curiosity, are these numbers for the microcode-accurate 68k core or for the old core?

Posted: Wed Sep 24, 2014 8:11 pm
by Nemesis
With the significant delays I had while working on the 1.1 release, I decided to suspend development of the new M68000 core and focus on getting Exodus open source first. I've got the new M68000 core partially written, but it's in early stages and not functioning yet, so these numbers are with the original M68000 core. It's hard to estimate how the new M68000 core will affect performance at this stage.

Posted: Fri Sep 26, 2014 12:38 am
by Nemesis
I may as well make this a rolling blog of my development work for Exodus 1.1, just so you guys know progress is happening. I've just completed migration of the codebase from Visual Studio 2005 to Visual Studio 2013. This was a critical change in order to get access to newer features, in particular (partial) C++11 support, which I've been wanting to get in there for awhile. Using a newer version of Visual Studio will also be very useful when I make the open-source release, as the Visual Studio 2013 Express version can be used to compile and develop for Exodus for free.

As part of this code migration, apart from the project file changes, I've replaced the Boost.Threads library with the new C++11 STL threading features, which has removed any dependencies on boost, so it's no longer required for compilation. I've switched to using C++11 scoped enumerations throughout the codebase. Other C++11 code changes, such as the use of lambda expressions where appropriate, will be done when I wander into those areas of the code later on.

I'm showing a further 1.5% performance increase since the switch, which is better than when I tested Visual Studio 2010 a few years back, where I got a noticeable performance decrease.

What I'm working on now is a proper build process for my remaining third party library dependencies, so that it's easy to pull and build the entire codebase. Building the third party library components is very manual and difficult right now.

Posted: Mon Sep 29, 2014 7:16 am
by Nemesis
Just finished a proper build system for third party libraries. I'm starting work now on a major revision of the bus system. This is probably the last blocker before release.

Posted: Mon Sep 29, 2014 11:25 am
by mickagame
Great news !!!!!!!!!!!!!

Posted: Tue Oct 07, 2014 4:11 pm
by Oerg866
Now taking bets on how many FPS this binary gets on an IBM supercomputer:

http://trapalhadas.no.sapo.pt/BITMAP336.BIN

:P

(PS: Exodus 1.0.0 does 11FPS on my i7-3820 with that ROM)

Posted: Tue Oct 07, 2014 6:46 pm
by mickagame
U think it would be possible to have full framerate on an intel nuc like this :

http://www.amazon.com/D34010WYKH2-Micro ... B00HXR3YFQ

I mean i see very good this little box under my tv playing all genesis games ;-)