Nintendo Ds Emulator (Source)


rock88

Still Fresh
Joined
Jun 12, 2010
Messages
4
Age
35
Location
Russia, Omsk
Website
forum.motofan.ru
This Source of the DesMuME 0.9.4
I porting them on Linux Moto, but with optimization at me problems and I have decided to lay out them here, can to whom will be engaged interesting in optimization, copy something on assembly etc.
For compilation and work libraries SDL are necessary.

And now about speed:
GTA CW - 1-3fps
Yoshi Island - 6-8fps

At me Motorola EM30, cpu arm11 532Mhz, 64Mb + swap 300Mb
Unfortunately I can not collect under Wiz since at me isn't present SDK
 
Not worth the effort, IMO. Do you have any information at what kind of frameskip you were using? Those frame rates are probably percentage of real-time speed, if you look at actual frames rendered it's probably even less.

For those who are wondering, Yoshi's Island DS is one of the least demanding games on the system. So those speeds are going to be the exception more than the rule.

To put it into perspective, 1-3 fps is 333 to 1000 milliseconds per frame, when your target for real time speed is 16.67ms. You only improve speed by chipping away chunks of milliseconds in frame emulation time and the amount to go here to even get something like 25% speed (66.67ms) is simply staggering.

So if you're thinking about optimization, forget it. A new emulator from scratch would get you further if you really, really know what you're doing when it comes to programming emulators, but it still won't be close enough. Wiz level hardware just isn't strong enough.

On the bright side, performance on the Wiz would at least probably not be worse..
 
FPS is not right there is probably a speed of emulation.
6fps/60 * 100% = 10% fullspeed
FrameSkip slightly adds fps.
But I ran some HomeBrew Games and they were 30-40 fps, with FrameSkip could be even more.
This is what I thought - this emulator is used disassembler arm9. But we have the same and so arm, so you can do without disasma
 
Well, DS emulation almost struggles on my PC.
I thought it would be impossible for something quite less powerful but good luck!
I would still love to see something like this even as a proof of concept, even if it runs at 1fps.
How about the Pandora?
 
rock88 said:
FPS is not right there is probably a speed of emulation.
6fps/60 * 100% = 10% fullspeed

FrameSkip slightly adds fps.

Yeah, that's what I was saying.

rock88 said:
But I ran some HomeBrew Games and they were 30-40 fps, with FrameSkip could be even more.

For many platforms you can probably concoct a demo that uses almost no resources of the original platform which runs much faster than everything else. That doesn't really mean anything. I remember someone threw together a package containing an old DOS version of No$GBA running under DOSBox on PSP and it too ran some cherry picked homebrew at double digit FPS and everyone was going nuts. The whole thing was absurd.

Like I said, Yoshi's Island is one of the least demanding DS games on the platform, so unless your goal is to run extremely simple homebrew you can use that as a benchmark for the very best performance you'll get, while normally it'll be much worse, for any game that uses a significant amount of CPU time or 3D.

rock88 said:
This is what I thought - this emulator is used disassembler arm9. But we have the same and so arm, so you can do without disasma

You're not the first person to come up with that idea, but there are several reasons why it won't work reliably. Even if it did, DS games often write to MMIO registers tens or even hundreds of thousands of times a second (often without using DMA, mind you) and trying to emulate these accesses under page faults captured by Linux would be very slow.

Optimus said:
I would still love to see something like this even as a proof of concept, even if it runs at 1fps.

Not to sound excessively harsh, but I don't know why people keep referring to things like desmume ports as proof of concepts... they're not concepts, they're ports of software that was meant to be really portable.
 
Last edited by a moderator:
What prospective homebrew would be available on DS platform worth the challenge to get them running. Although not fast enough for games, what about utilities?

On a sidenote: DesMuME is known to be slow. Especially when compared to NO$GBA which probably uses a good portion of assembly optimization. However it's not known exactly as its a closed source emulator.
 
Back
Top