Dualis logo
Home   Download   Screenshots   Tech info   Support   Links   Forum

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

Important information:
Dualis is not able to run dumps of NDS cartridges. Do not ask me if/when it will be able to run said dumps.
Also, do not ask me how/where to get non-public material concerning the DS.
If you didn't understand the last three sentences then get the f*** out. Thanks.

Back to front page


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)


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.


MMU: Added support for new IPC format (memory tab, IPC version, v2)
MMU: Fixed incorrect size for VRAM bank I
MMU: Fixed accesses to VRAM bank I while in LCDC mode
MMU: Mirrored RTC data to new IPC location (0x23FFxxx)
GPU: Added support for extended OBJ palettes
GPU: Added support for extended 1D character OBJ mapping
GPU: Added support for OBJ vertical flipping
GPU: Fixed a bug where screen offsets would be doubled
GUI: Added VRAM bank I to the palette viewer
GUI: Layers can now be enabled/disabled on a per-core basis


CPU: Fixed crashes when unsupported CP15 operations are invoked
MMU: Added optional mirroring of IPC to 0x027FFxxx
MMU: Fixed time/date data
GPU: Added support for direct color OBJs>
GPU: Added support for 16-color rotoscaled OBJs
GPU: Fixed clipping of hflipped 16-color OBJs
GPU: Fixed rotoscaled 256-color OBJs
GPU: Fixed 512-pixel wide text BGs
GPU: Fixed screen size error for the D3D renderer


CPU: The Sqrt SWI is now function number 13 instead of 8
MMU: Fixed DMA word counts
MMU: Touchscreen calibration data can now be entered in the .ini file
MMU: Fixed some VRAM mappings>
GPU: Fixed some hflip issues for 16-color text BGs
GPU: Fixed the VRAM source address for extended rotoscale BGs on the sub core
GPU: Fixed blending of the leftmost column for 16-color text BGs
GPU: Fixed some 16-color OBJ clipping issues
GPU: Proper VRAMCNT values are now enforced
GUI: Added an I/O register viewer
GUI: Added a tile viewer
GUI: Added a -theme commandline switch to select color theme (eg. -theme 0)
GUI: Fixed the file path of dualis.ini


CPU: Fixed a bug in ARM SUBS in IRQ mode
CPU: Changed emulation of the VBlankIntrWait SWI a bit
GPU: Fixed a bug introduced in r6 where VRAM display screens would disappear
GPU: Fixed a bug with incorrect OBJ sizes in some cases
GPU: Added support for extended palettes in VRAM banks F-H
GUI: The close-button on the Video output window is now disabled
GUI: Added support for loading and saving palettes in MS PAL format
GUI: The palette viewer can now view extended palettes
GUI: There is now an auto-update option in the palette viewer
GUI: Fixed a few bugs in the disassembler, and added some more opcodes
GUI: Starting a ROM by double-clicking it in explorer after associating the file type with Dualis now works
GUI: Toggling the OBJ layer on/off now works


CPU: Minor optimizations on the Thumb hireg operations
CPU: Optimized the instruction dispatchers a bit
GPU: Added support for modes 3-5
GPU: Fixed alpha-blending with more than 2 layers specified in BLDCNT
GPU: Fixed alpha-blending of 16-color text BGs
GUI: Added support for .nds files (only ARM9 code is loaded)
GUI: Fixed a bug where toggling the "Enable layer" checkboxes would change the selected renderer
GUI: The palette viewer now supports editing individual colors


CPU: Fixed the Q-flag for SMLAxy
MMU: Fixed halfword reads from LCDC VRAM
MMU: Added the math coprocessor functions (Div, Sqrt)
GPU: Added preliminary support for mode 6 (main core)
GPU: Added optional GDI rendering (no 3D support)
GPU: The preferred renderer can now be specified in dualis.ini
GPU: Added some checks for proper VRAMCNT_* values
GUI: Forgot to unload the plugins and free the memory they were using when closing the emulator (Oops..)

Moved key input to a dedicated plugin. The source for the input plugin is available for anyone who wants to write their own plugin.
Oh, and Dualis now has a forum


ALL: IRQs must now be acknowledged before they can occur again
CPU: Added emultaion of the IntrWait and VBlankIntrWait SWIs
CPU: SWI 0xFF (0xFF0000 in ARM mode) outputs the string pointed to by R0 to the debug console
MMU: Small optimizations on some of the load/store functions
GUI: Added a disassembler, memory viewer and debug console
GUI: Improved the palette viewer
GUI: If a filename is given on the commandline, the emulator will try to load and run the file
GUI: Added keyboard shortcuts for most of the menu selections
GUI: You can now start a binary by drag-dropping it onto the main window


CPU: Fixed ARM->Thumb changes on LDR
CPU: Fixed SP-relative Thumb stores
GPU: OBJs with the "OBJ disable" bit set are not rendered anymore
GPU: Fixed some OBJ clipping issues
GPU: OBJs are now checked for display priority relative to BGs
GPU: Added optional Direct3D rendering (D3D8)
GUI: Made touchscreen IPC address selectable (Memory tab)
GUI: The Run, Pause, and Reset keyboard shortcuts now work even when the video output window has focus


GPU: Fixed transparency for bottom-most 16-color BGs
GPU: Fixed tile flipping for 16-color BGs
GPU: Fixed tile flipping for alpha-blended 256-color BGs
GPU: Fixed alpha-blending for BGs with transparent pixels
GUI: FPS limiter toggling now works
GUI: Made the OpenGL texture format selectable
GUI: Added keyboard shortcuts for Run, Pause and Reset
GUI: The client area of the video output window should now be properly sized even for people with non-standard Windows themes


First release. The emulator is still in early development, but it has come to the point where it's able to run a good deal of the demos available, so here it is for anyone who is interested.

Design, content and whatnot © Mic 2006 - micol972<TheAtSign>gmail.com