DraStic Nintendo DS emulator teaser video


You know what would make this a lot better is if you could switch from dual screen to single screen because you only need one screen to play many ds games
 
3: Does touchscreen work?
Yes. I think slaeshjag said that with TV out he got nothing on his Pandora screen which would make it hard to use it. I haven't tested TV-out at all personally so it's something I'll have to look into.
If you need a TV out cable for testing, I have a few. I would be willing to send one to you, for free of course.
 
You know what would make this a lot better is if you could switch from dual screen to single screen because you only need one screen to play many ds games
I'll see if I can add something like that down the road. I was going to add a key that lets you swap which screen is showed where; this would be useful in conjunction with this feature.

If only one screen is visible it'd also make the emulation a little faster since I wouldn't have to render the other one at all unless it's being used as capture input. On that note, I think it'll be a useful feature to have some kind of asynchronous frameskip where the less important screen is allowed to skip more frames. Usually unimportant screens aren't that expensive to render but in some cases they're moderately so, like Super Princess Peach which has big animated affine sprites on its subscreen.

If you need a TV out cable for testing, I have a few. I would be willing to send one to you, for free of course.
I may take you up on that at some point.

Does Pandora allow any kind of non-mirrored TV out? It'd be cool to be able to have one screen on the Pandora and one on the TV, kind of a Wii U mode ;p
 
As you mentioned zipped files.

Do I have to zip them. The ones I have are simple .nds files.

I like the idea of different frame skip.

Map screen or menu doesn't need lots of fps.

Only displaying one screen would be a nice feature.

I'd also like to shrink down the less important screen for a bigger important screen.

No Castlevania?

I think I have to live without (I didn't have any NDS before)

I'll give you some test report how my games run as soon as the emulator is out.
 
It can run unzipped ROMs, but of course NDS ROMs can get pretty large so many will want to keep them zipped. I may add bz2 support as well.
 
Last edited by a moderator:
Nice Programm, not for Comercial DS Games, because, therefor, i have a 3DS XL (whit the 20 Embarasor Games and the Layton Game from the Promoaktion from Nintendo where i had to registry my 3DSXL..) ,

but as the 3DS ditnt work whit a Flashcard, a DS Emu on the Pandora would be great  for DS Homebrewgames like the 2D Portal "Still alive DS"
 
/applause

Saw this and had to check the calendar twice to confirm it wasn't April already!
 
Fantastic work Exophase, DraStic seems very promising.

BTW did you try Metal Slug 7 and Mario & Luigi: Partners in Time. If yes how well/bad they currently run?
 
Last edited by a moderator:
Okay, here's some benchmarks. These help break down where the emulator is spending its time and what the problem areas are. All of these tests are done at 600MHz.

Phoenix Wright

The opening cutscene for the first case runs fullspeed. Its performance looks like this:


  Full run time:                12.99ms per frame
  Video 2D run time:            8.20ms per frame
  Video 3D run time:            2.31ms per frame
  Video Geometry run time:      0.00ms per frame
  Screen Update run time:       0.37ms per frame
  Audio run time:               0.75ms per frame
You can see a bit of time is spent on 3D. A single command here will cause the buffers to be cleared which all by itself probably takes quite a bit of time. Also, just having 3D enabled even with nothing rendered currently adds a lot to the 2D rendering time as well, as this huge buffer has to be converted. This is something I'm going to be focusing on improving near term.

Unfortunately, when you get more in-game the speed drops to about 50%, a big sign that either 3D is getting used heavily or the CPU is being pegged hard. Here's how it performs:


  Full run time:                35.05ms per frame
  Video 2D run time:            8.84ms per frame
  Video 3D run time:            22.07ms per frame
  Video Geometry run time:      0.09ms per frame
  Screen Update run time:       0.45ms per frame
  Audio run time:               2.08ms per frame
As you can see it's the 3D killing it. Interestingly, you can barely tell a difference with 3D enabled vs disabled, so it isn't actually doing much.

Children of Mana

Title sequence full speed. Name entry a little below full speed. Then the opening with the writing on the book is under half speed. Here's how it performs:


  Full run time:                39.70ms per frame
  Video 2D run time:            5.69ms per frame
  Video 3D run time:            27.90ms per frame
  Video Geometry run time:      0.24ms per frame
  Screen Update run time:       0.02ms per frame
  Audio run time:               2.77ms per frame
3D strikes again. Hard. I couldn't really figure out what the 3D is doing from looking at it.   After finally suffering through the intro it's even slower (a little over 1/3rd speed) :(


  Full run time:                56.40ms per frame
  Video 2D run time:            6.41ms per frame
  Video 3D run time:            39.76ms per frame
  Video Geometry run time:      0.00ms per frame
  Screen Update run time:       0.51ms per frame
  Audio run time:               2.99ms per frame
3D runtime is through the roof, but it also looks like the CPU load (the stuff left over after you take everything out of the full run time.. well more or less) went up quite a bit. That's not especially surprising though.

Metal Slug 7

This one's pretty slow up to the player select screen then it crashes, so I won't give anything on this yet (it probably crashes because DMA modifies code, so hopefully not too hard to track down).

So unfortunately it looks like all three are using 3D to do 2D. Takeaway is the same as before: optimized 3D will help a lot. Then special paths for "simple" 3D will help even more. Overclocking/1GHz unit will of course improve things, and frameskip will help tremendously.

One other thing - the audio runtimes are higher than I'd really like, so I hope to do some optimizations for that too. It's small compared to the big 3D costs but an ms or two of savings can be really helpful.
 
Last edited by a moderator:
Thanks for you detailed information.

As there's still lots of room for improvements I'm sure lots of stuff will run great.
 
Back
Top