# research ## DS / DSi emulators wanted features: - **DS and DSi version emulation (DSi for later)** DS version of pictochat can still receive images with rainbow drawings, but doesn't support sending - **firmware booting** the phat DS and DS lite's firmware had pictochat built-in instead of as a standalone app like on the DSi. to launch pictochat, firmware booting must be possible. - **local multiplayer network emulation** required for testing sending and receiving - **local multiplayer packet capture** required for reverse engineering the packet format - **local multiplayer packet injection** required for testing forged packets - **open source** DIY packet injection anyone? - **linux-compatible** just a preference - **debugging (ideally using GDB or similar interface)** if all else fails, reading and/or injecting packets into memory using a debugger might be the only option for testing forged packets. a debugger could also help with reverse engineering the decoding process of a pictochat packet/message ### [DeSmuME][desmume] - phat ds only - no firmware booting - no local multiplayer emulation + open source + cross-platform - no debugger DeSmuME is focused on high quality/performance emulation for single player titles, and actively rejects requests for WiFi emulation. ### [melonDS][melonds] + ds and (experimental) dsi support + firmware booting support + local multiplayer emulation + allows patched-in or real network packet capture using loopback network adapter and wireshark + loopback network adapter also (probably) allows injecting forged packets + open source + cross-platform - no debugger melonDS is a very new emulator that is still actively being developed. melonDS is focused on accurate emulation and is the only one on this list with sufficiently advanced local multiplayer emulation. ### [no$gba][nogba] + supports DS and DSi games + firmware booting support - no local multiplayer emulation - closed source - windows only + very advanced debugger [toolchaingenericds]: https://bitbucket.org/Coto88/toolchaingenericds/src/master/ [nogba]: https://problemkaputt.de/gba.htm [melonds]: https://melonds.kuribo64.net/ [desmume]: https://desmume.org/ ## MelonDS hacking source: ### Findings - melonDS @ Config > Wifi settings "Local multiplayer features do not use the same network protocols as online play" - comment @ src/Wifi.cpp:46 "multiplayer host TX sequence" - references to `RFTransfer_Type{2,3}` @ - nintendo ds ni-fi protocol @