Finally!
Moderator: Nemesis
Finally!
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.
-
- Very interested
- Posts: 3131
- Joined: Thu Nov 30, 2006 9:46 pm
- Location: France - Sevres
- Contact:
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
Last edited by Stef on Sat Sep 20, 2014 7:05 am, edited 1 time in total.
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.What consisted this internal change?
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:Will the next release be improved in term of speed?
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 |
-----------------------------------------------------------------
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.
-
- Very interested
- Posts: 273
- Joined: Fri Feb 29, 2008 8:12 pm
- Location: United States
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.
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.
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.
-
- Very interested
- Posts: 211
- Joined: Sat Apr 19, 2008 10:58 am
- Location: Frankfurt, Germany
- Contact:
Now taking bets on how many FPS this binary gets on an IBM supercomputer:
http://trapalhadas.no.sapo.pt/BITMAP336.BIN
(PS: Exodus 1.0.0 does 11FPS on my i7-3820 with that ROM)
http://trapalhadas.no.sapo.pt/BITMAP336.BIN
(PS: Exodus 1.0.0 does 11FPS on my i7-3820 with that ROM)
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
http://www.amazon.com/D34010WYKH2-Micro ... B00HXR3YFQ
I mean i see very good this little box under my tv playing all genesis games