melonDS 0.4 is out! The highlights of this release are several 2D and 3D fixes and improvements, but also, working wifi multiplayer. The full changelog is below. • implement access modes for certain IO registers that were unhandled • actually implement RCNT instead of hardcoding it • wifi: emulation of multiplayer cmd/reply/ack transfers • wifi: more accurate RFSTATUS/RFPINS • wifi: some games can go into multiplayer now (Pictochat, NSMB, Pokémon known working) • improved savemem detect heuristic • implement firmware write, fix SPI bugs • accurate emulation of 'main memory display FIFO' • 2D: fix render/capture order • 2D: implement mode6 large BG • 2D: fix bitmap BG sizes • 2D: fix rotscaled bitmap sprites • 3D: fix missing term in MatrixTranslate • 3D: fix toon highlight mode • 3D: fix boxtest bug • 3D: accurate viewport transform • 3D: polygon Y-sorting • 3D: more accurate interpolation, still not perfect • 3D: more accurate Z and W transforms, fix some cases of Z-fighting • 3D: separate polygonID attributes for opaque and translucent pixels • 3D: start documenting and implementing depth test edge cases • emulate delays for SPI transfers and div/sqrt • misc bugfixes/additions as usual pile of copypasta How to use melonDS requires BIOS/firmware dumps from a DS. You can dump them with the following dumper. The files must be placed in the same directory as the melonDS executable, as follows: * bios7.bin -- ARM7 BIOS, 16KB * bios9.bin -- ARM9 BIOS, 4KB * firmware.bin -- firmware, 256KB or 512KB Note: the DS-mode firmware in the 3DS isn't bootable. It only contains the bare minimum required to run DS games. Be sure to enable direct game boot when using a firmware dump from a 3DS. Settings Emulation: settings related to emulation. For now it lets you enable direct game boot (directly runs the game instead of going through the firmware) and the threaded 3D renderer. There's also a wifi-related setting (which only ended up there because I'm lazy and I need to redo the UI). You should try toggling it if you have trouble getting multiplayer working. Input: allows you to configure keyboard and joystick input. You can change a mapping by clicking the corresponding entry, then pressing a keyboard key or joystick button. For now, joystick input uses the first joystick available if multiple joysticks are plugged. If your game fails to save Check the size of the savefile. melonDS can, in some circumstances, misdetect the save memory type. Save memory type detection is done only when no existing savefile is present. If you provide an existing savefile with the correct size, melonDS will use the correct save memory type and saving should work properly. Downloads * Windows 64-bit * Linux 64-bit If you feel generous melonDS Patreon Have fun!