WHAT IS THIS?
-------------

DesmumeX is a Nintendo DS emulator for Xbox. It is based on the version 0.9 of Desmume, plus the port DSONPSP of Yoshihiro, and some specific changes for Xbox. Besides, lots of things related to 3D functionality have been gathered from version 0.9.2, and the dynamic recompiler has been taken from the 0.9.10 version.

Please, don't expect a good emulation in many of your roms. This emulator is still not fully optimized. Anyways, this version can play some games quite well. 

IMPORTANT: To toggle between the different display modes, press the BLACK BUTTON (read the "Controls" section for more information). If all the action happens in only one screen, you will feel a much better experience if you choose to show only that screen at full resolution :)

Only uncompressed roms are supported.


WHAT IS NEW?
------------

DesmumeX v0.7 has several improvements over the past v0.6 version, including:

* Important change in the texture rendering mode (thanks to Freakdave, Madmab and Weinerschnitzel for their help!). This gives us a nice boost!

* Ported another small part of the dynamic recompiler, which gives us another small boost. 

* Added some changes here and there, that have fixed several bugs ("Dementium" works again, graphics in "Petz Catz 2" are correct now...)

* Added 720p and 1080i video modes

* Added an option to limit the speed of the gameplay at 60 FPS. This is very usefull to get the proper speed in games that ran too fast. Now some games like "Yoshi Island DS" or "Zoo Keeper" run exactly at the speed that they should (sample configurations for these games have been included in the "cfg" folder). Anyways, this options should only be used if the game runs too fast.

* Added more options to the "Auto-frameskip" feature: you can choose Auto frameskip only with odd numbers (1,3,5...), only with even numbers (0,2,4...), or with both numbers (0,1,2,3,4...). Although this is usefull in a few games, the Auto-frameskip feature is still running bad, so it is usually better to use a FIXED FRAMESKIP, combined with the "LIMIT TO 60 FPS" option explained above, if the game runs too fast.

* When you exit from a game, the emulator now goes to that game in the rom list.

* The rom list writes the full name of the selected rom in the lower part of the screen. This is usefull to see roms with long file names.


IMPORTANT!!!!!
---------------

* Roms MUST be placed in the "roms" directory. 

* Roms must be UNCOMPRESSED, with the .NDS extension. 

* Games can be trimmed with a program like "NDSTokyoTrim25Beta2.exe" to make them smaller, and they will use less space in disk. 

* This emulator can only work from hard disk.

* Remember that when you have selected a configuration for your rom in the GUI, you can press the "Y" button (before starting to play the game) and then the emulator will create a config file for that game (stored in the "cfg" folder). Next time that you play that game, the emulator will "remember" your favorite configuration. This system needs that the folder "cfg" is existing, to be able to create the config files.


PROBLEMS WITH SAVE FILES?
-------------------------

Some games will show a message when starting, telling that they are not able to read or write the save file. A few times, resetting the game is enough to fix it, but if it does not work, I have programmed a trick that will fix this issue in many cases: in the rom list, place the cursor over the problematic game, and press the "X BUTTON". This will create a BLANK SAVE FILE. You only need to do this step once. After that, you will be able to play the game properly (and you will be able to save your progress normally). 

Please, do this trick only if you found problems with a game. If you do it with another games, you may have issues (for example, you will loose all your current saved games for that game). This trick is only usefull in the case that you cannot play a game, due to save file troubles.


CONTROLS
--------

The Nintendo DS has 2 screens. The screen of below can be touched with a digital pen named "Stylus". In DesmumeX, I have implemented both the physical buttons of the DS, and the possibility of "touching" the screen with a virtual "stylus".

Physical buttons:

 * D-pad: It's mapped to the D-pad of the Nintendo DS

 * A,B,X,Y buttons: They are mapped to the Triangle, Square, Circle, Cross buttons of the DS. 

 * Left and right triggers are mapped to the triggers of the DS. Start button is mapped to the Start button of the DS.

Control of the Stylus:

 * Left thumbstick: Move the virtual cursor. 

 * White button: Touch the screen with the virtual cursor. You can even drag and drop, keeping the white button pressed.

 * Pressing the right thumbstick changes the color of the cursor.

If you don't need the Stylus, you can move the cursor down below the screen, and it will disappear. Move it up, and it will appear again.

Change of screen:

 * Black button: Changes the screen to be displayed on the TV. We can toggle between seeing both 2 screens (above and below), only the first screen at full resolution, or only the second screen at full resolution.

Note: Showing only one screen is slightly faster than displaying the 2 screens.

With the BACK button, the configuration menu is displayed. Pressing START + BACK simmultaneously, you will exit to the rom list.


CONFIGURATION OPTIONS:
----------------------

If a game crashes during the gameplay or it is hung, you can try to enable/disable the 3D functionality, or enable/disable the dynamic recompiler. Please, if you find a game that needs to disable the dynamic recompiler to work, let me know. My final goal is that the dynamic recompiler is used all the time.

If a game is slow, you can play with these options to try to make it playable. For example, first of all I try to put a higher Frameskip. If frameskip is not enough, we can go with the sound: disabling the sound can bring a boost of 20% of speed (depending of the game). If you don't want to disable sound, you can decrease its quality (for example overclocking it, or reducing the number of audio channels) and this can make things speed up too.


Here is a description of the configuration options:

* 3D funcionality: You can enable or disable it. Disabling it, the emulator can work a bit faster in a few games, although you can loose some things of the game.

* Frameskip: There are two options related to Frameskip: a Mode (Auto/Fixed) and a Value. Let's explain this with an example: if you select FIXED frameskip and value=3, the emulator will use a constant value of 3 for the Frameskip. On the other hand, if you select AUTO-frameskip and a value of 3, the emulator will change the value of the frameskip automatically, with a maximum value of 3 (i.e, between 0 and 3) to try to achieve a ratio of 60 frames per second. So, in the "AUTO" mode, you configure a value that is the maximum frameskip that you are going to tolerate.

Besides, the "Auto" option has 3 different choices: you can have auto-frameskip using only even values (0,2,4...), only odd numbers (1,3,5...) or both (0,1,2,3,4...). The "odd" and "even" options are only usefull in a few games that have problems with some frameskip values (for example, if a game only refreshes the screen in odd frames, a frameskip of 1 should be avoided).

Anyways, my advice is forgetting about the "Auto frameskip", because in several games it doesn't work very well, so many times the best choice is using the FIXED frameskip, combined with the "Limit to 60 FPS" option if the game runs too fast.

* Sound: You can disable sound (of course this brings the greatest boost) or overclock it. Overclocking x2 has no effect (I still don't know why), overclocking x3 or x4 will reduce the audio quality and boost the emulation.

* Number of audio channels: The DS has 16 audio channels. We can configure to play 16, 8, 4 or only 2 channels. This speeds up things too. There is no "cracking" sound (as in the overclocking option) but you will feel a lack of notes in the played songs.

* Graphics: We can select if the emulator is going to draw only the screen that we are seeing ("optimized"), or both screens ("everything"). The "optimized" choice is faster, but some games will not refresh the screen properly with this method. If your game does not refresh the screen, try selecting "Graphics: everything".

* Pointer speed: We can select the speed that the virtual cursor uses in its movement.

* JIT/Dynamic recompiler: This should be ALLWAYS ENABLED, because everything will run faster. Please, if you find a game that needs to disable the dynamic recompiler to run, let me know. If a game runs too fast, you can disable the dynamic recompiler, and it will run slower.

* Limit to 60 FPS: This options limits the speed of the emulator, trying to avoid it running too fast. Enable this option if you feel that a game is running too fast, and you will hopefully get proper speed. Obviously, this option should not be used if a game is not running too fast.

* Video mode: You can choose between 480 (low resolution mode), 720p or 1080i video modes. This option cannot be changed during the gameplay.


INSTALLING:
-----------
To install the emulator, simply copy it to your hard disk, and put the roms inside the "roms" folder. Create a "cfg" folder if you want to store config files.



BACKGROUND LOGO, MUSIC and SCREENSHOTS:
---------------------------------------
The image of the screen is the logo.jpg one. You can replace it if you want. The background music is the BGM.ogg file, and you can also replace it if you want. 

You can put screenshots of your games in the media/artwork/action folder. Some sample screenshots are included. I recommend resizing your screenshots to the same size of these samples (200 pixels height), and they will show very well in the GUI.


TRUSTY XBOX / MODIFIED XBOX OWNERS
----------------------------------
Trusty and modified Xbox owners can use the same executables now. The emulator will probably work much better for them. Also, the "Limit to 60 FPS" option may be very usefull if a game runs too fast ;)


FAQ:
----

Q: Can I use compressed/zipped roms?
A: No

Q: The game is running, but the image is frozen!
A: Try selecting "Graphics: everything", or selecting a different value for Frameskip. Some games only refresh the screen on odd frames or on even frames. So, if we use an odd value for frameskip and the game refreshes in odd frames, we will not see any change on the screen...

Q: Can I use some software to make the big roms smaller?
A: Yes, some programs like "NDSTokyoTrim25Beta2.exe" can make roms a bit smaller. 

Q: This game is too slow, even changing the configuration options!
A: I'm sorry, this emulator is still not fully optimized. If you want to help to improve this emulator, let me know ;)

Q: This game is too fast!
A: Try enabling the "Limit to 60 FPS" option, and the game should work at a proper speed now. If it does not work, then disabling the dynamic recompiler will make things much slower.

Thank you for reading this! :)

HCF

