DraStic Nintendo DS emulator teaser video


Mr_Loon said:
What sort of performance boost do you see for DrasTic if you overclock your Pandora? No need for benchmarks, just curious if overclocking has obvious benefits.

In my very limited testing it scales pretty linearly. It's not like mupen64plus which can be limited by the GPU instead.
How likely is it that you could enough speed increase through optimization to run NSMB at full speed at 600 Mhz ? Any gut feeling so far?
 
600 MHz is not really a necessary requirement, since all units can clock to at least 750 MHz at OPP3 and 900MHz at OPP5.
 
I really don't know what in hell are the term "foo bar".

from where that come from?

I know that at several programming examples.

MarTinazzI
 
How likely is it that you could enough speed increase through optimization to run NSMB at full speed at 600 Mhz ? Any gut feeling so far?
Right now a frame from a fairly normal area takes about 28-29ms (small Mario, no other 3D stuff on the screen). Full speed is 16.67ms. 3D is taking around 11ms of that, so it's not quite even fullspeed with no 3D at all. CPU emulation is taking more time here than I would expect it to, and I hope that more optimizations to it, 2D, and audio will bring the numbers down. But I wouldn't expect it to hit full speed at 600MHz, even if the 3D was brought down tremendously to something well under 5ms. Possibly with frameskip.
 
Last edited by a moderator:
How much of those 29ms are rendering (which can be frameskipped) and how much is cpu/audio emulation (which has to be done even if the frame is skipped)? If it runs fullspeed at 900MHz when skipping every other frame (30 FPS instead of 60), that would be good enough for me. I can't tell the difference between 30 FPS and 60 FPS anyway.

Is the 3D emulation done in software or hardware?
 
How much of those 29ms are rendering (which can be frameskipped) and how much is cpu/audio emulation (which has to be done even if the frame is skipped)? If it runs fullspeed at 900MHz when skipping every other frame (30 FPS instead of 60), that would be good enough for me. I can't tell the difference between 30 FPS and 60 FPS anyway.

Is the 3D emulation done in software or hardware?
This is from memory so it's not going to be a perfect answer, and I can't do the test atm, but currently it's around 28.5ms, 6.5ms for 2D, 6.5ms for 3D rendering, and 4.5ms for geometry. Last three can all be frameskipped, meaning if you threw out every other frame you'd gain back a little under 9ms and still wouldn't be full speed, but it gets closer to realistic after enough other optimizations. You could throw out more frames for one screen and gain more, but it wouldn't help you a ton since the subscreen tends to be less demanding (but not always). Audio which is somewhere like 2-3ms can be lowered by reducing the sample rate (it's at 44.1KHz I think), but is also probably rife for optimization - just moving to GCC 4.7 helps its performance significantly so you can tell the compiler isn't doing a good job with it. I'm not ready to move to GCC 4.7 just yet but I can probably do okay with more ASM.

Note this is from an area with just little Mario on the screen, which is light in 3D. The gold coins use 3D too, although they're also pretty small. Mega Mario uses a lot more 3D (hence why it starts slowing down the 1.2GHz video). I don't really remember but I think that's mostly it, aside from the mega mushroom and maybe some enemies, and the world map which is fully 3D.

3D emulation is purely in software, and it's very unoptimized, especially for Cortex-A8 since it uses floats. Geometry can be optimized too, it uses some 64-bit arithmetic which the compiler sucks at and could be improved somewhat with NEON. I don't want to start optimizing 3D until I have a more thorough idea of how the thing works, so I do it right (although there's a good chance I won't bother with anti-aliasing, it's very expensive here)

If you can't tell the difference between every other frame thrown out or not in something that's predominantly 2D then no offense, but something is wrong with your eyes. I think you probably just think you can't tell the difference but easily can :p Try it some time. I remember on gpSP on PSP it made a huge difference when I was first able to run some games at fs0 instead of fs1 (before it had auto frameskip).
 
Last edited by a moderator:
Just as a throw-away question, will you support DLDI-enabled binaries? I'm assuming you know what that is, but if not: A binary (.nds) that runs from the SD card on a flashcart, able to read the filestructure and thus pull data files from SD. A lot of homebrew uses this, and it would be very nice if that was supported. Just thinking that it would be awesome to be able to play Knytt Stories on the go :)

I suspect it would be pretty low-down on the list of priorities, but as I say - would be nice.

D.
 
There's currently no support for virtual filesystems or emulated SD cards or anything like that. It sounds like what I'd have to do is develop some special in-hardware extension to allow direct access to the native filesystem (probably just within some designated subdirectory) and auto-patch the ROM with a DLDI library to access this virtual hardware. Doesn't really look like a trivial amount of work. It's something I might look at at some point but it's a low priority, like you say.

It looks like desmume actually emulates some real flashcart, the GBA movie player, that could be easier than doing my own hardware specification + library, and it'd also mean that I could just make you use an external patcher. On the other hand, it could be more work to emulate real hardware which probably has a much lower level interface than what I could do with fake hardware.
 
Last edited by a moderator:
I suspected as much :)

It's kind of ironic that emulating the illegal stuff is actually easier than the homebrew ;-) Thanks for considering it though.

D.
 
I suspected as much :)


It's kind of ironic that emulating the illegal stuff is actually easier than the homebrew ;-) Thanks for considering it though.


D.
What do you mean with "illegal stuff" ? I don't see how Drastic does anything illegal. Are Snes, Nes, C64 and whatnot emulators doing anything illegal in your opinion?
 
Can you get a speed improvement from disabling one screen? At least in mario the second screen seems not to be necessary.
 
Last edited by a moderator:
Can you get a speed improvement from disabling one screen? At least in mario the second screen seems not to be necessary.
You would get a relatively minor speed increase entirely disabling the second screen. It'd be almost the same to give it a high frameskip, so you at least get something out of it.
 
I suspected as much :)

It's kind of ironic that emulating the illegal stuff is actually easier than the homebrew ;-) Thanks for considering it though.

D.
What do you mean with "illegal stuff" ? I don't see how Drastic does anything illegal. Are Snes, Nes, C64 and whatnot emulators doing anything illegal in your opinion?
Not in my opinion; in many countries the act of "format shifting" a cartridge you own into a ROM file is unlawful... Downloading a ROM image is unlawful. The emulators aren't doing anything unlawful, but by running commercial ROM images on them you most certainly are barring a very few more permissive countries. I know, I live in one of them.

And yes, I have written my own emulators so I'm pretty well-versed on their legalities thanks.

D.
 
900MHz at OPP5.
minor correction: my old CC Units could only clock up to 870 MHz, so maybe the bar should me lowered to 850 MHz ?
Couldnt the cc units clock to different speeds on different hot fixes if I recall. Mine used to go to 1080 fine then after one of the updates trying to go that high made it freeze instantly. Am sure I red ages ago that the older hotfixes allowed you to go higher but it wasn't necessary on the latest releases to clock up that high.  Even on the final release I can go up to 980 (not tried going higher) for playing n64 however don't do this very often, I would quite like my cc unit to last as long as possible
 
I suspected as much :)


It's kind of ironic that emulating the illegal stuff is actually easier than the homebrew ;-) Thanks for considering it though.


D.
What do you mean with "illegal stuff" ? I don't see how Drastic does anything illegal. Are Snes, Nes, C64 and whatnot emulators doing anything illegal in your opinion?
Not in my opinion; in many countries the act of "format shifting" a cartridge you own into a ROM file is unlawful... Downloading a ROM image is unlawful. The emulators aren't doing anything unlawful, but by running commercial ROM images on them you most certainly are barring a very few more permissive countries. I know, I live in one of them.


And yes, I have written my own emulators so I'm pretty well-versed on their legalities thanks.


D.
in my country, if I have a cartridge / cd / dvd / whatever original and make a copy, I can allege use for original protection.

MarTinazzI
 
Back
Top