gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > DeSmuME : nds emulator

#62898 - YopYop - Tue Dec 06, 2005 8:31 pm

Hi,

I want to present you my Nintendo DS emulator here http://yopyop156.ifrance.com/ there?s two version one that support 2D (not that much only mode 0) and another one that support the 3D engine and the second 2D engine. There?s a lot of work but, the 2 second emu (3D one) can run Meteos E3 demo (when the title screen appears press enter) and it?s quite playable.

If you find an instruction that don?t work as it must do make a post.

yopyop

#62907 - Vich - Tue Dec 06, 2005 9:32 pm

V?ry nice! It runs s? fast compared to other emulators! Even faster than Ensata! B?t it does only run a few demo's:
- my own test app runs (3D on one screen and console on the other, accepting keyboard input)
- most test apps run, but without key input
- apps with advanced textures(environment mapping) or lighting don't run

I've got one app that locks. Here's a screenshot of the debugger:
http://warehouse.lifeisdigital.net/pictures/development/desmumebug1.png

Nice job! Keep up the good work! I hope to see updates soon :D
ps: if you want me to send applications that don't behave like they should, I can upload them? Just ask :)

[edit]
- When I set vertex backface culling on, it doesn't cull it. (although that's just a minor bug :P)
- Mouse clicking (touchscreen) feature is missing?

I also wonder why French people don't make their applications in English. Since English is th? common language on the internet. Since I'm Belgian, I know French aside from Dutch, but most people here won't. If you want, I can translate your app?

#62910 - FloFri - Tue Dec 06, 2005 9:41 pm

Looks interesting! Please keep it up!

#62940 - Mr Snowflake - Wed Dec 07, 2005 1:21 am

Nice to see a new emulator.
_________________
http://www.mrsnowflake.be

#62958 - YopYop - Wed Dec 07, 2005 7:41 am

Vich wrote:
I've got one app that locks. Here's a screenshot of the debugger:
http://warehouse.lifeisdigital.net/pictures/development/desmumebug1.png


Since its swi5 it could have a lot of explications:
- The interruptions run too fast to be seen.
- You don?t acknowledge the interruption in DTCM + 0x3FF8 (but I don?t think so)
- When a proc is in swi wait state they run 2500(x2 for ARM9) cycles and it could produce a bug. It will be correct when the optimisation time will come.
For the key input it support only NDS UP DOWN RIGTH LEFT (same key on keyboard) START (enter) SELECT (backspace) A B (A and Z but for a azerty keyboard) the other key will be done tonight.
The toushscreen is emulated but there?s steel a little bug due to the conversions from screen unit to touchscreen unit.

For the web page in Frensh, it?s because there?s not much information on it ans it will bring nearly nothing to spend time to translate it. But if you want you can make a English page and send me it here yopyop156 AT ifrance DOT com.

And thank you all for the comments.

yopyop

#62965 - Vich - Wed Dec 07, 2005 9:38 am

YopYop wrote:

Since its swi5 it could have a lot of explications:
- The interruptions run too fast to be seen.
- You don?t acknowledge the interruption in DTCM + 0x3FF8 (but I don?t think so)
- When a proc is in swi wait state they run 2500(x2 for ARM9) cycles and it could produce a bug. It will be correct when the optimisation time will come.

Cool =)

Quote:

For the key input it support only NDS UP DOWN RIGTH LEFT (same key on keyboard) START (enter) SELECT (backspace) A B (A and Z but for a azerty keyboard) the other key will be done tonight.
The toushscreen is emulated but there?s steel a little bug due to the conversions from screen unit to touchscreen unit.

In my own application, the key input works, so it might be wrong code in the other apps (where it didn't work). I didn't check the code of those other (faulty apps), so my guess it's that.

Quote:
For the web page in Frensh, it?s because there?s not much information on it ans it will bring nearly nothing to spend time to translate it. But if you want you can make a English page and send me it here yopyop156 AT ifrance DOT com.

And thank you all for the comments.

yopyop

Oh, I didn't mean an English web page, but I meant an English user interface :) Shall I translate that for you?

Oh, and there was nothing wrong with texture loading. The application that didn't show anything was displaying a display list. My guess is that display lists aren't implemented yet in your code?

One last question: since the application is s? fast, do you limit the virtual CPU computing time to 67MHz and 33MHz for respectively ARM9 and ARM7?

Anyway, v?ry nice work!

#62967 - Xgame - Wed Dec 07, 2005 10:08 am

seems good but touch screen not work(only in dualist works with a few of game).
i tested the 3d emulator: touch_look example work, but yeti3D not Work.
the only emulator can run yeti3d is ensata, but it is very slow.

#62995 - YopYop - Wed Dec 07, 2005 5:10 pm

Quote:

The application that didn't show anything was displaying a display list. My guess is that display lists aren't implemented yet in your code?

One last question: since the application is s? fast, do you limit the virtual CPU computing time to 67MHz and 33MHz for respectively ARM9 and ARM7?


Yes the display lists aren't implemented yet.
If you were thinking that the old emulator is fast, what would you say for the new one (I add some optimisations)? And yes the CPU have to run to their normal speed but I didn't limit the number of fps you have to chek the upper bar and make your mind.

yopyop

#62998 - Webez - Wed Dec 07, 2005 6:33 pm

Hi.
Your emulator looks promising!!

I have run my demo and it has two problems.

1) If I load a texture it crashes.
2) If I enable vblank interrupt what should be drawn doesn't display.

Thanks for your hard work!

#63000 - YopYop - Wed Dec 07, 2005 6:59 pm

yop,

Try it now or send your demo to me to yopyop156 AT ifrance.com
Thanks

yopyop

#63002 - bahnhof - Wed Dec 07, 2005 7:54 pm

Great work, this emulator is the only one so far which runs my demo like it does on hardware! Excellent. But you really need to make an english version of the emulator :)

#63237 - Webez - Sat Dec 10, 2005 10:50 am

For those who have not visited his webpage again, yopyop has released a new version with some bugs corrected and more features!!

#63248 - Vich - Sat Dec 10, 2005 3:17 pm

Very nice! My app runs at 140FPS now!
:D

- Please include a commandline option, so you can start the application like this: dsmume3d.exe myrom.nds -autostart
This will be v?ry helpful for people that want to run it from their IDE.
- I use lcdSwap() from devkitPro, but it doesn't affect the screens in your emulator.
- Display lists would be nice :)

#65044 - Two9A - Thu Dec 29, 2005 9:41 pm

(I feel like I'm resurrecting dead threads here...)

YopYop: I don't suppose you could let me in on the secret to the insane speeds we're seeing here? I can only assume you've got some kind of direct binary translation (dynamic, most probably) going on, since my plain old interpreter struggles along at 20fps right now.

Also, I don't suppose you'll be releasing source anytime soon? It'd be nice to be able to flick through an example of a _working_ emulator.

#65144 - YopYop - Fri Dec 30, 2005 5:14 pm

Vich wrote:
Very nice! My app runs at 140FPS now!
:D


lol! The FPS is just an indication. The instructions cycle count and the memory wait sates must be a little bit wrong.

Vich wrote:
- Please include a commandline option, so you can start the application like this: dsmume3d.exe myrom.nds -autostart


The commandline is done.

Two9A wrote:

YopYop: I don't suppose you could let me in on the secret to the insane speeds we're seeing here? I can only assume you've got some kind of direct binary translation (dynamic, most probably) going on, since my plain old interpreter struggles along at 20fps right now.

Also, I don't suppose you'll be releasing source anytime soon? It'd be nice to be able to flick through an example of a _working_ emulator.


For the emulator I proced like that :
I've seted up this table http://yopyop156.ifrance.com/instruction_tabdef.inc (in fact it was at the end) and I used it to call the good instruction. I don't know that much about emulator programming so I can't tell you if it's a direct binary translation or an interpreter but I was thinking it was a good methode to do this work.

You must know that at the begining of this project it wasn't supposed to be an emulator but just a desasembleur to understand how wifi work but when I found sgstair work, I changed my mind and I decid to do an emulator.

For the source I'll do a public releas when I'll do a better framework for the 2D GPU and some other correction.

yopyop