Next Generation Emulation banner
1 - 5 of 5 Posts

·
Registered
Joined
·
14 Posts
Discussion Starter · #1 ·
Since this seems to be a more actively worked on emu than nocash, I figure I have a better shot at getting a yes/no/go away Noob type thing asking here than anywhere else.

Is there anywhere that a computer geek with way too much time on his hands can go to do some research on how NDS emulation is being approached, what base concepts are being applied, etc.?

Just as an example, take DQ4/5. When running either on DeSmuME, performance for me is in the 25-35 FPS in the overworld (not looking for a system spec debate, I know I need more CPU) whereas in nocash, I get maybe 10 FPS unless I use the "fully discovered map" cheat code. I am interested in reading up on what differences cause those kinds of things, along with what possible options there are for writing in options for more then just directdraw or openGL for rendering options.

I am sure al these things have been considered, but like I said, way too much time on my hands, and I am looking to expand my knowledge of NDS emulation in general.

So if anyone is willing to point me in the right direction, I would be most appreciative, and who knows... maybe with some research I might be able to actually contribute to a scene that has been both fascinating and entertaining me for quite a while.

Thanks in advance.
 

·
Hackin 'n Slashin
Joined
·
28,630 Posts
Before you even think of understanding or doing anything with regards to DS emulation, you would first need a lot of coding knowledge and a fair bit of lighter emu knowledge under your belt (Chip 8, NES, SNES, GB, GBC, GBA).....
 

·
desmume coder
Joined
·
488 Posts
learn to compile the source code. comment out pieces and look at the results in a running game until you understand what does what. when you find the piece thats slow, figure out what it is doing and why. then see if there is any way to make it go faster, maybe always, or maybe in response to user options.
 

·
Registered
Joined
·
828 Posts
Hmm... so you would like to contribute? Great. One more member in "DeSmuME team".

First, as Schumi said, you need coding knowledge. More precisely, C++ in the case of DeSmuME.
You also need knowledge about the DS. The best place to acquire that knowledge is GBATek.
It is an almost complete documentation about the GBA and the DS, by the author of NO$GBA.

Then, get a SVN client (under Windows I recommend TortoiseSVN) and checkout the source code from SVN (on sourceforge).
Get Visual Studio (2008 or 2010 beta1) and compile the source code.

Finally, understand the code. Try to understand how stuff works. You can, as zeromus said, try to comment out stuff and see the results on some games.

Once you've understood enough of the code to be able to fix bugs, well... you are ready to be an emu author.
 

·
Emu author
Joined
·
1,488 Posts
I would not consider SNES lighter than DS. GBA, on the other hand, is a very good primer because its hardware is essentially a subset of what's available on Nintendo DS.

The performance difference you cited could be somewhat of a pathological case. Emulators will often optimize in such a way that typical games are boosted but unlikely scenarios may be much worse. This is usually the result of some form of caching. The goal of caching is to store a lot of generated state in an intermediate or more local representation when a primary state changes. If the primary state changes a significant enough percentage that the secondary state is accessed then the cache will probably be defeated and you'll get worse performance instead of better.

Unfortunately one can't give any real insight into what's actually happening without access to the source code of No$ and performing some kind of profiling to see where it's spending all of its time, followed by a good bit of ROM analysis to see why it's spending its time there. As well as a good understanding of the overall structure of the emulator, and the platform itself.

If you want to talk more about emulation stuff you can feel free to IM me on one of the accounts listed in my profile.
 
1 - 5 of 5 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top