Nintendo DS Emulation NEWS

Name Dualis

Author Mic


Description Nintendo DS emulator for windows ( plugin based)



Download Release 17 3rd March 2006

CPU: Added SWI 3 and 6
CPU: Fixed some problems with SWI 5
CPU: Modfied MSR a bit
GPU: Added support for the VTX_DIFF command
GPU: Fixed some bugs with rotation parameters on the sub core
GPU: Fixed the GL_INVALID_OPERATION error that could occur when switching back and forth between different renderers
MMU: Fixed accesses by the ARM7 in the 0x02100000-0x023FFFFF memory range
MMU: Changed initial value of WRAMCNT to 3
MMU: Fixed a typo that lead to bad 16/32-bit WRAM writes from the ARM7
GUI: Added a few more Thumb opcodes to the disassembler
GUI: Added a "Turbo SWI" option on the CPU tab for ARM7 binaries that mainly sit and wait for vblanks

:Release 16 1st March 2006

Two are better than one.

This release features the addition of the second CPU (ARM7TDMI). Touchscreen access is still faked in the same manner as in earlier versions, and not all parts of ARM7 memory are handled correctly yet.
Note that earlier versions of the plugins are more or less incompatible with this version.

CPU: Added emulation of the ARM7TDMI
GPU: Modified the hblank/vblank code to handle both processors
MMU: Added the ARM7TDMI memory space (incomplete)
MMU: Added some support for the WRAM control register
GUI: The disassembler can now be used for both processors
GUI: The disassembler now shows the CPSR mode bits
GUI: Fixed overwriting of program code for programs loaded at 0x02000000

Release 15.1 26th February 2006

GPU: Fixed rendering of transparent areas on 256-color bitmap BGs
GPU: Fixed background color in the OpenGL renderer when luma effects are used
MMU: Added support for 64bit/32bit operations to the hardware divider
MMU: Fixed 32-bit reads from the IF register
MMU: Modified IRQ handling a bit

Release 14.3 23rd February 2006

CPU: Added SWI 11 (CpuSet)
GPU: Added support for some paletted texture formats
GPU: Added support for some more vertex formats (VTX_XY, VTX_XZ, ...)
GPU: Added support for multiple textures
GUI: Improved the texture viewer

Release 14.2 22nd February 2006

GPU: Added support for texture wrapping
GPU: Added support polygon alpha and wireframe rendering
GPU: Added support for material commands
GPU: Added polygon depth comparisons
GPU: Fixed OpenGL errors that occured when VTX_BEGIN/END pairs spanned across more than one frame
GPU: Fixed MTX_MULT_4X4 (missing break)

Release 14 17th February 2006

Three bloodclot dee.

Today marks the one year anniversary of the Dualis project. And what better way to celebrate that than with another release? This installment features much improved 3D emulation.

GPU: GPU: Fixed some matrix operation bugs (OGL only)
GPU: Modified 3D layer rendering (OGL only)
GPU: Added limited texture mapping support (OGL only)
GPU: Fixed capture source blending in the D3D renderer
GPU: Added support for luma effects on extended palette OBJs (non-scaled)
GPU: Master screen/char offset is now supported for rotoscale BGs

r 13.1 8th February 2006

Some updates today..

CPU: Fixed crashes when using SWIs in Thumb mode
GPU: Fixed colors of extended palette OBJs in OpenGL mode
GPU: Added emulation of the master brightness setting
GUI: Improved the map viewer

Release 13 8th February 2006

CPU: Optimized Thumb emulation
CPU: Added support for mode changes on MOVS
CPU: The IntrWait SWI can now be interrupted even when IME=0 (as it would on a real DS)
GPU: Added support for main memory (FIFO) display mode
GPU: Modfied reference coordinate calculation for rotoscale OBJs
GPU: Fixed vertical OBJ clipping
GPU: Fixed a problem with 1D bitmap OBJ mapping
GPU: Fixed a bug where BGs would not be drawn if the VRAM selection bits in DISPCNT were non-zero
MMU: Fixed 16- and 32-bit writes to VRAMCNT_*
MMU: VRAM banks mapped to extended palettes are no longer accessible
GUI: Added an OBJ viewer
GUI: Added a map viewer (does not yet support all types of maps)
GUI: Improved the tile viewer (VRAM bank selection)
GUI: Changed the screenshot keyboard shortcuts to Ctrl+1..Ctrl+3 so as to not interfere with dialogs were entering numbers is needed

Release 12 September 25th 2005

CPU: Fixed the Div SWI number (6 -> 9)
CPU: Added BLX (both variants)
GPU: Fixed Y-clipping for rotoscaled OBJs
GPU: Fixed a bug introduced in the last release where the wrong palette would be used for OBJs when uding the GDI renderer
GUI: Fixed a disassembler bug where shift amounts would be missing
GUI: Fixed a disassembler bug where the wrong condition code would be shown
GUI: Added the ability to alter the CPU registers through the disassembler (click on a register in the register list)
GUI: Alt+F4 commands to the video output window are now promoted to the main window
GUI: The short lag between pressing Esc and the emulator actually shutting down should now be gone
GUI: Added AVI recording through VFW
GUI: Added the ability to take screenshots (24-bit BMP only)

Release 11 18th September 2005 Sourcecode

CPU: Fixed a bug in Thumb STRH with register offset
MMU: Fixed accesses to DTCM when it has been mapped within main RAM
GPU: Fixed a bug that closed the emulator when a BG was enabled before the VRAM banks were set up
GPU: Fixed a bug where the wrong screen base block would be used in some cases
GPU: Fixed some OBJ priority issues
GPU: Fixed some luma increase/decrease issues
GPU: Added support for extended palettes on text BGs
GUI: Memory viewer and disassembler now accept arbitrary addresses
GUI: Added an edit function to the memory viewer (click on a memory cell, enter a new value and hit "Set")
GUI: Fixed a few bugs in the palette and tile viewer dialogs

And for the curious types, the full source code of Dualis is now available in the download section.

Here R10


DS emulator running demos :)

A DS emulator

/Mic, 2005



Dualis is a plugin-based DS emulator for x86/Win32 computers. It is
written in x86 assembly and C++.

This version only supports ARM9 binaries, which are loaded into
main memory at 0x2004000 and excuted.

What is emulated

ARM946E-S Most armv4 features, some armv5te features.
Caches are currently disabled.

ARM7TDMI Nothing.

Video Both screens are emulated. Text BGs and VRAM
displays should work. All color effects are
emulated, but alpha-blending is a bit incorrect.
The 3D-hardware commands are mapped directly
onto OpenGL. There are some problems with the
matrix stacks in this release, which causes
perspective errors in most 3D demos.

Audio Nothing.

Input All keys except X and Y are emulated.
Touchscreen input is faked using the IPC method
implemented in NDSLib.

DMA DM1, DM2 and DM3 are emulated.

Timers All timers are emulated in both prescalar and count-up mode.

Interrupts Vblank, hblank, key, DMA and timer interrupts are emulated,
though not completely accurate.


D-Up Up arrow
D-Down Down arrow
D-Left Left arrow
D-Right Right arrow
Start Return
Select Space

Touchscreen Use the mouse to move the stylus around, and the left
button to "touch" the screen.

The Hottest DCEmu Posters

Username: ebayauctionposter Posts: 323,985
Username: wraggster Posts: 129,470
Username: AppleNews Posts: 36,262
Username: DCemumaniac Posts: 32,845
Username: Metareview Posts: 21,733

Part of the DCEmu Network Nintendo DS News