dslink updated again

Martin Korth got in touch to ask about dslink and requested a few improvements since he’s using it to help with research for the DSi updates in no$gba.  I love his notes on the dsi exploit – “Cooking Coach is the best thing ever. This game allows you to make healthy food with dead animals – and, with wintermute’s exploit, it’s allowing to run homebrew code on the DSi” 🙂

I’ve improved the connection speed of dslink a bit by adjusting the way dswifi scans for access points at Martin’s suggestion & these changes are now in the latest dswifi release. Booting minimal a22i compiled nds files doesn’t work just yet but some of the official wmb demos kicking around do boot now when transferred via dslink. There’s no sound or touchscreen unfortunately – the touchscreen is handled differently in DSi mode so I’m not sure that’s fixable without some patching although the audio may just need enabling.

In the meantime, enjoy faster connections & more reliable booting of code with this version. When I get some more time I’ll look into initialising things properly so Martin’s code will boot as well. Pretty sure it’s mainly because the cache is disabled when the nds file is booted which causes issues when both arm7 & arm9 are running in ewram.

For those who’ve been badgering me for the source code I finally got around to tidying everything up & putting it on github. You’ll find the dslink code at https://github.com/devkitPro/dslink, the installer code at https://github.com/devkitPro/install-dsilink and the host application code is in the dstools repo at https://github.com/devkitPro/dstools/tree/master/src/dslink

CycloDS iEvolution and DSiWare Sudoku Hack

Yesterday proved to be a rather interesting day in the world of DSi homebrew with another two means of running code in DSi mode released to the world.

First my CycloDS iEvolution card sample turned up although I had to wait until quite late in the afternoon for the firmware to be released on their website. What surprised me most about the card was that it makes use of the Cooking Coach savegame exploit I released back in 2009 and later used to bootstrap a wifi loader ( see dsi mode homebrew ).  Team Cyclops have taken a somewhat novel approach to distributing the card. I quote here from their announcement.

In order to meet compliance with universal copyright laws, we have taken a completely legal approach for our iEvolution product. Competing products are distributed with content which contains illegally distributed partial ROM images (required for booting on DSi). iEvolution is distributed in a completely blank state and does not contain any illegal content.

What this means is that the card is basically a useless lump of plastic until you obtain ROM dumps for two games which you feed to a utility that constructs an update file for the card. Whether or not this is legal is rather debatable given that most users will in all likelihood obtain the dumps from an illegal source rather than buying the games and dumping them for their own personal use. The interoperability clauses in the US DMCA, the UK CPDA and the European EUCD obviously don’t apply to a card which provides the means to run illegally distributed “backups” so unfortunately this whole setup is still very dodgy as far as the law goes. Right now it’s quite difficult to make the argument that it’s primarily intended to run homebrew since currently the communication between arm7 and arm9 fails in DSi mode – this may be libnds related but I’ll know more when I’ve had a chance to figure out why.

Shortly after Team Cyclops released the firmware and tools for their card YellowStar made an announcement over on hackmii.com of a DSiWare savegame exploit which allows us to boot code from the internal SD card on the DSi. Unfortunately if you’re european and weren’t quick off the mark this avenue of running homebrew is no longer available. Nintendo pulled Sudoku from the European store within 24 hours of the hack’s release. I’m told it’s still currently available for US DSi owners but I can’t confirm this. If you’re American and Sudoku is still available for you then buy it quick – 200 points for DSi mode homebrew is a bargain ;o) UPDATE: Sorry, US people are out of luck now as well.

For DS/DSi related homebrew programming questions visit the devkitPro forums or our friendly IRC channels on blitzed.org.

ds(i)link updated

I’ve updated the dslink tarball with savegame exploits for the french, german and italian versions of Cooking Coach and recompiled the loader with the latest libraries. All the european language versions – spanish, french, german & italian – work on my UK DSi so I assume that the UK version will also work on all EU DSi consoles.

dslink 2.1.0
dslink 2.1.0
View post
177.1 KiB

For those of you who bought a Datel/Codejunkies DSi Action Replay it’s possible to use this to write the savegame exploit by using this save game converter to convert the RAW saves from the dslink archive into files compatible with the ARDSi.

  • For source format, select “RAW”.
  • For target format, select “Action Replay DSi”
  • For size, select “8 Kilo-Bytes – 64 Kilo-Bits”

As usual, please don’t rehost the archive but link to this post. Have fun.

DSi mode homebrew, anyone?

It was about this time last year when I released open source save game hacks for two DSi hybrid games, Cooking Coach and Classic Word Games. I kind of expected somebody somewhere to pick these up and make them do something a little bit more useful than change the screen colors but it looks like I was a little optimistic on that front. Most people that have done anything at all seem to have been trying to do as much as possible in the 8KiB or so available in each save game. Interestingly not one single DSi hybrid game I’ve been able to find since appears to have a name entry – bit odd considering how easy it is to test for and correct buffer overflows for this specific situation. If anyone knows any different, please let me know.

Since last year I’ve spent a bit of time hunting around DSi hybrid games and playing around with a few ideas I had about how best to utilise the exploits for homebrew. Mostly I’ve been updating devkitARM & libnds with a few things needed to allow normally compiled homebrew to use the extra 12meg when run in DSi mode. I’m still a little undecided on how best to approach the hybrid model – Nintendo seem to be using a system where extra code is loaded in DSi mode from separate binaries in the .nds container format.

So anyway, lest I ramble on for several pages with background and random thoughts, on to the meat of this post. One of the first things that I did on getting into DSi mode was dump the DS mode firmware. As I expected this was identical to the dump made in DS mode – it contains only the wifi module settings and the user data at the end of a 128K flash chip. Most interesting of all was the large block of unwritten space between the two but unfortunately the first 64KiB is protected but that still leaves 61KiB writable – plenty for my nefarious purposes. After some further testing I confirmed that the wifi module flash chip could be written from DS mode and later read when we use the save game exploits to get into DSi mode. This gave me the motivation I needed to revisit a half finished project I had to upload homebrew to a DS over wifi. As an added bonus the wifi uploader also works with a standard DS, everything you need is in the archive.

Nintendo seem to have pre-empted an approach like this in more recent consoles, both the DSiXL and later model DSi units seem to deny write access to the wifi module chip. Even when using other methods to load code via the save exploits there seems to be no access to the wifi hardware at all – that’s probably dependent on a wifi enabled hybrid game. Whether Nintendo can or will update earlier units with similar security remains to be seen. Currently all early consoles I’ve tried this method with have been able to run code with wifi access regardless of updated firmware or not. I bought a DSiXL a few days ago to confirm this but I have another couple of methods which work on that – they’re not yet in a releasable state but hopefully that won’t be the case for long.

In order to use this method you’ll need three things, a DSi compatible flashcard,  one of the two exploited games and a means to write to the eeprom on your chosen game. Eepinator will work if you have a standard DS or there are a couple of devices which allow you to do this from a PC. If you’re one of the many homebrewers who likes to play with mcus then you can probably rig up something with a dev board. I have an arduino and a Fletchtronics Bumble-b sitting at the back of my desk, I might have a play around with those over the next few days and post a howto for those. If you’ve already done something like that then please do get in touch, no point in reinventing the wheel.

One word of warning before we get to the all important download link. Nintendo will probably declare your warranty void due to unauthorised software so proceed at your own risk. This method also won’t allow you to run rom dumps and it’s not something I plan to support at any point in the future. Obviously I can’t control what you do when you have the ability to run code but please consider not releasing anything that’s piracy related or has the potential to enable piracy. I believe homebrew can thrive as long as we distance ourselves from the people who want to get their games for free.

dslink 2.1.0
dslink 2.1.0
View post
177.1 KiB

Please don’t mirror this file, I intend to update it as I add features. Pay attention to the  license in the README. It would also be nice if the various news sites that pick these things up would make a bit of an effort and not just copy this post verbatim.

If you’d like to help support devkitPro here are some amazon affiliate links for Cooking Coach

My Healthy Cooking Coach (US edition)

My Cooking Coach (UK edition)

Note for UK users, I ordered a couple of copies of Cooking Coach from the main amazon.co.uk listing from inet video. Unfortunately  no-one  told them that DSi hybrid games are region locked on the DSi, order from the Indigo Starfish listing instead.

If IRC is your thing then come join the rest of the homebrew gang in #dsdev on irc.blitzed.org.

Follow Me