DeSmuME Manual for the Windows port

From DeSmuME
(Difference between revisions)
Jump to: navigation, search
(File | Quick Screenshot)
(File | Record WAV)
Line 58: Line 58:
==== File | Record WAV ====
==== File | Record WAV ====
This option lets you capture the sound played in the emulator, and save it in a wav file.
This option lets you capture the sound played in the emulator, and save it in a wav file. In contrast to the other option, this records, as faithfully as possible, the exact emulated audio output (which is not necessarily what you hear), although it will use the interpolation you have specified in the sound config.
==== File | Record User SPU WAV ====
==== File | Record User SPU WAV ====

Revision as of 18:24, 22 November 2009

NOTE: This refers to the 0.9.2 revision of desmume, and may or may not accurately reflect the current revision.


Quick Getting Started Guide

When you start the emulator for the first time, you probably just want to play a certain game. You can do this by going to 'File' in the menu, and selecting 'Open Rom'. This will open up an explorer window, within which you can browse to the rom (nds file) that you wish to play. Once the game has finished loading (and this should only take a few seconds at most), your game will automatically start running. But if you want, you can also compile from source. See the article Installing DeSmuME from source on Windows for details.

Menu Layout

The rest of this manual will be spend on explaining all the other options in the menu.

File Menu

File | Open ROM

This option is for loading games. A game is typically called a rom file. Just use the explorer window to browse to the file, and click on open. The game should just load and start. The desmume windows port is also able to load some compressed formats, like zip and gz. Just as long as there is a valid game (rom) file in the compressed archive ending with an .nds extension, it should load fine.

File | Recent ROM

This menu option contains a list of the roms that you have most recently loaded. You can quickly access a game that way, without having browse to the right directory with the 'Open Rom' option.

File | ROM Info

This option offers some information about the internals of the rom file, like name, code, manufacturer, and size. This should not concern the casual gamer, but may come in handy for developers.

File | Close ROM

Just ends the current game and leaves the emulator more or less how it was when you first launched it.

File | Save State As...

Imagine you have gotten to a certian point in a game, and you need to do something else. The emulator let's you save the current state of the game, so that you can continue the game later at precisely the same point somewhere in the future.

Please note that the use of SAVESTATES is discouraged, as these are likely to break between emulator versions. Instead use SAVE FILES. These are likely to survive between emulator versions. This means that you will have to use save points within the game. SAVE FILES are stored in .sav files.

File | Load State As...

Once you have saved a game's position, or 'state', you can load it again with this option.

File | Save State

This option works fairly similair to the 'Save As' option, altough it let's you save numbers instead os specifying a chosen name. Also, All the states saved via this option end up with a pre-determined name of 'game (rom) name'.dsx. So if the game is called MyGame, the first savefile will be called MyGame.ds0, the second one MyGame.ds1, etc.

File | Load State

This option let's you load the states that you saved via the 'File | Save State' option

File | Import Backup Memory

Backup Memory is the data the game uses to remember its own state. It is stored on the cart in a normal game. Desmume uses the .dsv extension and file format; other formats which can be imported are .duc and raw .sav, as well as no$gba savefiles (also using the .sav extension). People use pro action replays to capture duc files from their card and post it online without using emulators. These are frequently found on See the faq for details on how to use this function, where it has been documented better.

File | Export Backup Memory

This lets you export the game's state for use in other Nintendo DS Emulators. It will write a 'raw' sav file or a no$gba savefile.

File | Save Screenshot As...

This lets you take a screenshot of the current view of the emulator, and specify it's name to save as a bitmap (.bmp) file.

File | Quick Screenshot

This option also dumps a screencapture, but it has a pre-determined filename and location. The name will be based on the name of the rom and somehow sequentially numbered, and placed in the directory specified in the Path Settings.

File | Record AVI

This option lets you capture what's going on in the emulator, and save it in an avi file.

File | Stop AVI

The 'Record AVI' option continues to record the game, untill you press the 'Stop Avi' option.

File | Record WAV

This option lets you capture the sound played in the emulator, and save it in a wav file. In contrast to the other option, this records, as faithfully as possible, the exact emulated audio output (which is not necessarily what you hear), although it will use the interpolation you have specified in the sound config.

File | Record User SPU WAV

This option records the actual audio which you hear from the emulator, including delays/reverbs/retempoes/glitches/etc of the spu resynchronization. Really only useful for diagnostics.

File | Record Movie

This option lets you record the gameplay in TAS format, see for details on TAS (tool-assisted speedruns).

File | Play Movie

This option lets you playback a pre-recorded TAS movie.

File | Stop Movie

This options lets you stop recording a TAS movie.

File | Quit

Choosing this option exits the emulator.

Emulation Menu

Emulation | Pause

This option will pause the emulation, freezing it at the current moment of execution. Selecting it again will resume the execution of the ROM at the exact moment where you paused it.

Emulation | Reset

This option will reset the ROM that is currently loaded to the very start of the ROM, just as if you chose 'File | Open Rom' again.

Emulation | Shut Up

This option turns off all the sound.

Emulation | GBA Slot

This menu option pop-ups a new window, which lets you specirfy what to do with the GBA slot of the Nintendo DS. It has the following choices : NONE, Compact Flash, Rumble Pack, GBA Game, Guitar hero. Rumble pack allows some games to use vibration. Memory extension... Extends memory. And some DS games can have bonuses, unlockable by GBA cart. For example in Megaman ZX you can fight some Megaman Zero Bosses when correct cartridge is inserted. There are also other GBA slot extensions. a controller. But these are currently not emulated by desmume. Flash Cartridge is used for homebrew software emulation, for example that uses DLDI ( Dynamically Linked Device Interface).

Emulation | Cheats

This option pulls down a drop-down menu, and presents the options list and search. Be aware though, that cheats are sort of half baked right now. If you are not having luck, wait for some news on an improved cheat system. Also, it is impossible yet to use "commercial" codes, such as Action Replay and Codebreaker, so what you'll have to do is manually search for, and alter the memory positions to your advantage. They are called 'raw' or 'internal' cheats. There's an excellent article in the wiki on Using Cheats in DeSmuMe . In post-0.9.2 development builds, there is also the support for Action Replay cheat codes.

Emulation | Cheats | List

Choosing 'list' will list all the currently known cheats. Please refer to the article Using Cheats in DeSmuMe for further details on how to use the cheat mechanism in desmume.

Emulation | Cheats | Search

Choosing 'search' will let you search for cheats. Please refer to the article Using Cheats in DeSmuMe for further details on how to use the cheat mechanism in desmume.

View Menu

View | Rotation

This option will let you rotate the screen a pre-determined amount of degrees in order to adjust the angle of the display. Some programs require that you normally turn the DS on its side. You can set it up in that manner using this. The options are 0 (no rotation),90 ,180, and 270.

View | Window size

This option will let you enlarge the windows a pre-determined size. The resize options are: 1x, 1.5x, 2x, 3x, and 4x the default size. You can also adjust the window size by clicking on the edge of the window, and dragging the mouse.

View | Screen Separation

This option controls how far the two windows should be apart of each other, in other words: how big the border between them should be. Valid choices are: None (which is the default), narrow border (which is slightly larger), DS (which is about the wsame amount of room there is on a real Nintendo DS).

View | Force Maintain Ratio

Here you can choose, when re-sizing the windows, if you wan to maintain the ratio of the windows. Sometimes when the window size is changed it doesn't look correct on the screen. This option forces the window to maintain a correct ratio so it looks correct. You can select or de-select this option.

View | Display Frame Counter

Selecting this option causes a counter to run, that counts all the frames that have been displayed.

View | Display FPS

Selecting this option causes the 'frames-per-second' (or 'fps', for short) to be displayed. It also displays an additional '3D' counter, which tells how frequently the game is updating its 3d graphics. But unlike the fps counter, the 3d counter has nothing to do with the power of your system. If it is low, then the game is running slow on a retail cart, and so it runs slow in an emulator.

View | Display Input

Selecting this option displays the keys you press on the keyboard, which is the input

View | Display Lag Counter

This option causes a counter to display that counts frames where the game doesn't poll input.

View | HUD Editing Mode

This option will let you drag around hud elements to pick their position.

Config Menu

Config | Save Type

This option lets you specify the save type of a particular game. The default is 'automatic'. However, this is not fail-safe in all cases, so you might need to manually select one of the other savetypes.

Config | 3D Settings

This option lets you select the method that is used to draw the screen. You can choose between OpenGL (an open standard) or SoftRasterizer (a desmume specific method).

Furthermore, you have two checkboxes that you can either enable or disable:

  • Unrealistically High-Precision Color Interpolation. Presently only effective for SoftRasterizer.
  • Alternate Flush Mode. This fixes some games with flickering graphics. This is apllicable to both the OpenGl and the SoftRasterizer.

Config | Control Config

This option lets you configure keyboard keys or a joystick. The joystick support is implemented using a DirectInput control interface.

Here are the default key mappings (they may be subject to change):

 Up arrow             - Up
 Left arrow           - Left
 Down arrow           - Down
 Right arrow          - Right
 x                    - A button
 z                    - B button
 s                    - X button
 a                    - Y button
 q                    - Left Trigger
 w                    - Right Trigger
 Enter                - Start button
 Right Shift          - Select button
 Backspace            - Lid fold/unfold
 n                    - Frame advance
 Space                - Pause/Unpause 
 p                    - Load current state
 1,2,3,4,5,6,7,8,9,0  - Select current state
 F1-F10               - Load relevant state
 Shift+F1-F10         - Save relevant state

Config | Hotkey Config

This menu option lets you define keys, that can be used to quickly select other options without having to go through the entire menu structure. Some examples are a hotkey for 'pause', or a hotkey for loading a specific savestate.

Config | Sound Settings

This option lets you configure the way sound is generated.
The sync/async modes and sync methods give you different output:

  • Dual sync/async: the traditional mode, which generates more sound when the game slows down. Gives clear sound in most cases but can cause streamed sounds to be garbled sometimes.
  • Sync: always generates the same amount of sound, and uses one of the three available methods to compensate for too low or too high framerates. This mode shouldn't make streamed sounds garbled.
    • Sync method 'N': created by Nitsuja. Basically stretches the sound. Sounds like No$GBA (without the crackling).
    • Sync method 'Z': created by Zeromus. Stretches the sound to compensate for slowdowns, and resamples it to compensate for too high framerates. That resampling causes latency and can behave weird sometimes.
    • Sync method 'P': taken from SPU2-X, an SPU2 plugin for PCSX2. Stretches the sound intelligently, giving clear sound in most cases, but also latency.

The sound core setting allows you to choose between the DirectX sound core and the dummy one which produces no sound. The WAV write core has been removed since the new "Record WAV" option made it useless.
The buffer size setting should be kept to its original value. However, if your sound isn't clear even at 60 fps, you can try increasing it.
The interpolation setting allows you to choose between three interpolation methods:

  • None: Fast, but may sound bad.
  • Linear: typical, sounds good
  • Cosine: maybe slower than linear, but doesn't sound much better

Note that the DS has no interpolation method. While sometimes interpolation can make a noticeable improvement, it can also be unnoticeable or distort some sounds.

The ADPCM caching has been removed. It was needed due to a bug in ADPCM decoding which has been fixed.

Config | WIFI Settings

WIFI support is currently under heavy development, but it is not useful yet. Therefore, you may find this option missing, or simply 'greyed-out' for now. Even if you can fiddle with it, it won't do anything useful.

Config | Firmware Settings

This option provides you with the same set of options that a real Nintendo DS firmware does. The most important here is the language, because multi-lingual games will often look at how this option is set.

Config | Emulation Settings

These options let you boot from the extracted BIOS and Firmware of a real Nintendo DS. unless you have extracted/downloaded the firmware or bios from a Nintendo DS that you actually own yourself, these settings have no value for you qas desmume does not require them to run correctly.

Config | Frame Skip

This option lets you select how many frames should not be displayed, in order to gain speed improvements. The default is 'Auto'. If you have speed problems, you could decide to skip (not display) one or more frames in order to improve the speed. 'Limit Frameskip' let's you limit the frame rate to 60fps maximum. 60fps is essentially the speed that the game plays at on the actual console itself. So by selecting this option, you're limiting the framerate to the actual speed of the actual console.

Config | Language

This lets you set the langguage the emulator displays it's menu's and options in.

Config | Background Pause

Selecting this oiption will pause the emulation whenever you put desmume in the background, or the window loses focus.

Tools Menu

Tools | Disassembler

This option displays the ARM9 and ARM7 disassembler. Be aware though, that the windows are drawn exactly on top of each other, so that you have to move (drag n drop) the first windows before the second window shows.

Tools | View Memory

This tool displays the ARM7 and ARM9 memory. Be aware though, that the windows are drawn exactly on top of each other, so that you have to move (drag n drop) the first windows before the second window shows.

The "View mode" radio buttons allow you to choose how the memory will be shown:

  • 8-bit : shows the memory as bytes
  • 16-bit : shows the memory as words
  • 32-bit : shows the memory as dwords

The "View address" textbox and button allow you to jump to a different address:

  • Enter an hexadecimal address without 0x prefix, with up to 8 digits
  • Click "Go" to jump to the entered address

The "View dump" buttons allow you to dump the current view:

  • Text dump : dumps the view to a text file, in an human-readable form
  • Raw dump : dumps the memory directly to a binary file which can be read with an hex editor

Note that if you dump memory to a file already containing (a) dump(s), the new dump will be appended to the existing one(s).

The scrollbar... well, you surely know how a scrollbar works.

The viewers additionally allow to edit the memory. For it, click on the value you want to edit, then type the new value. The new value is applied only once you've entirely entered it.

Tools | View Registers

This option lets you view the ARM7 and ARM9 I/O registers.

Tools | View Palette

This option lets you view the palette in detail.

Tools | View Tiles

This option lets you view the tiles in detail.

Tools | View Maps

This option lets you view the maps in detail.

Tools | View OAM

This option lets you view the OAM layer in detail.

Tools | View Matrices

This option lets you view the matrices in detail.

Tools | View Lights

This option lets you view the lights in detail.

Tools | View Sound State

This option displays the sound output.

View | RAM Watch

This option will pop-up a new window, with extensive and advanced features to watch the emulated RAM memory.

View | RAM Search

This option will pop-up a new window, with extensive and advanced features to search through the emulated RAM memory.

Tools | View Layers

This option lets you view the Layers one by one.

Help Menu

Help | Website

This option directs your browser to the desmume homepage.

Help | Forums

This option directs your browser to the desmume forums.

Help | Submit a bug report

This option directs your browser to the SourceForge bugtracker for desmume.

Help | About

This option displays the authors of the emulator.

Personal tools