HaxxStation: DS Download Station exploit



13 years.

The original DS was released in 2004, and to this day, no hax for Download Play had been made.

Until now.

Gericom found an exploit in DS Download Station, allowing us to run any homebrew we'd like over DS download play.

Source code for dspatch: https://github.com/Gericom/dspatch

Enjoy!

Credits:
Exploit: shutterbug2000, Gericom, and Apache Thunder
Graphics: Jaames, Robz8

And if you want to load unsupported flashcarts on a DSi:

Yes.
Here's Apache Thunder's flashcard launchers edited for HaxxStation. @shutterbug2000 should put this in the first post.
https://www.odrive.com/s/23b9f39c-ae15-4c1b-8ff7-64344fa6f2d2-5939fc7f
 

Attachments

  • dspatch.zip
    19.4 KB · Views: 2,283
  • dspatchv1.1.zip
    19.8 KB · Views: 1,725
Last edited by shutterbug2000,

jeffyTheHomebrewer

Neato Burrito!
Member
Joined
Aug 24, 2018
Messages
1,625
Trophies
1
Location
his house!
Website
catboybeebop.neocities.org
XP
3,509
Country
United States
Fun fact for everyone using this- if you do this with a single supported rom, the total is likely to be less than 3 MB itself.
Fun fact 2: Using fw2nds (a tool to turn firmware.bin into firmware.nds, over at this thread -> https://gbatemp.net/threads/release-fw2nds-build-firmware-nds-from-firmware-bin.508831/), it turns out that the firmware.nds file is only around half a megabyte.
Fun fact 3: You can create absurd meta "station trees" by patching Download Station with Haxxstation with Haxxstation with Haxxstation and so on... and make the final rom at the bottom the freaking nds firmware!
I don't have three DSes, so I haven't tested this absurdity out yet.
If any of you is crazy and/or meta enough to do so for me, please do and tell me if it works.

Oh, and you can probably confuse the heck out of people with a DS or DS Lite by sending them the firmware through haxxstation download play. They see it, get a tad confused, launch it and end up... at the main menu??

IMPORTANT NOTE: If this weird crud bricks anything or corrupts anything, I am sincerely sorry and I do not have nearly enough DSes to test it properly. All I'm saying is that the patcher let me patch it with firmware.nds and then patch it with the patched file repeatedly. I hope to god it doesn't brick anything. (It does freeze emulators when you try to launch firmware stuff itself, but that's for obvious reasons- a lack of anything else other than the firmware file.)
if you want to put in a nes rom, I can make it into a portable version of nesds as a single .nds file

--------------------- MERGED ---------------------------

also, this wont work in a ds emulator you silly goose, this will only work on a real ds or 2/3ds. if you use a homebrewed ds you can use TWiLightMenu++ to launch the server rom

--------------------- MERGED ---------------------------

Also, ive also thought about making a station tree, but havent tried it till now, it could work in theory

--------------------- MERGED ---------------------------

btw do you have devkitpro installed

if you dont, id recommend installing it, and make sure to have the installer install the stuff for ds development.
 

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Trophies
1
Age
19
Location
somewhere that may or may not exist
XP
2,531
Country
United States
if you want to put in a nes rom, I can make it into a portable version of nesds as a single .nds file

--------------------- MERGED ---------------------------

also, this wont work in a ds emulator you silly goose, this will only work on a real ds or 2/3ds. if you use a homebrewed ds you can use TWiLightMenu++ to launch the server rom

--------------------- MERGED ---------------------------

Also, ive also thought about making a station tree, but havent tried it till now, it could work in theory

--------------------- MERGED ---------------------------

btw do you have devkitpro installed

if you dont, id recommend installing it, and make sure to have the installer install the stuff for ds development.
1) yeah I want to do that. can you do so? I want to send out the fan translation of the fighting game Joy Mech Fight. It's really fun.
2) I knew that- that was part of what I said, that it has plenty of reason not to work in desmume
3) yeah I've made a "2-tree" (haxxstation distributes haxxstation distributes firmware.nds- of course I can't give you the rom of it, but I know you can easily patch it just like I did) but nothing further- just haven't had the time
4) no, what is that?
pity I can't find the file for ds download play itself anywhere and we can't distribute it here, because it would be really funny to have someone get a ds download play game, open it, be booted back to download play and be like "wait... what"
 

jeffyTheHomebrewer

Neato Burrito!
Member
Joined
Aug 24, 2018
Messages
1,625
Trophies
1
Location
his house!
Website
catboybeebop.neocities.org
XP
3,509
Country
United States
1) yeah I want to do that. can you do so? I want to send out the fan translation of the fighting game Joy Mech Fight. It's really fun.
2) I knew that- that was part of what I said, that it has plenty of reason not to work in desmume
3) yeah I've made a "2-tree" (haxxstation distributes haxxstation distributes firmware.nds- of course I can't give you the rom of it, but I know you can easily patch it just like I did) but nothing further- just haven't had the time
4) no, what is that?
pity I can't find the file for ds download play itself anywhere and we can't distribute it here, because it would be really funny to have someone get a ds download play game, open it, be booted back to download play and be like "wait... what"
Ie made a little thing to automate the whole .nes to .nds process, but it needs devkitpro to work, even without the automation. I'd also recommend having at least python 2 installed as well
 

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Trophies
1
Age
19
Location
somewhere that may or may not exist
XP
2,531
Country
United States
Ie made a little thing to automate the whole .nes to .nds process, but it needs devkitpro to work, even without the automation. I'd also recommend having at least python 2 installed as well
I have python 3 and pycharm, would that work?
Also, can you provide me with links to devkitpro and the nes to nds tool along with how to use it? Sorry for asking a lot, but I want to be able to send nes stuff like Joy Mech Fight via download play.
 

jeffyTheHomebrewer

Neato Burrito!
Member
Joined
Aug 24, 2018
Messages
1,625
Trophies
1
Location
his house!
Website
catboybeebop.neocities.org
XP
3,509
Country
United States
I have python 3 and pycharm, would that work?
Also, can you provide me with links to devkitpro and the nes to nds tool along with how to use it? Sorry for asking a lot, but I want to be able to send nes stuff like Joy Mech Fight via download play.
Yes, python 3 will work.

Devkitpro installer:
https://github.com/devkitPro/installer/releases/download/v3.0.3/devkitProUpdater-3.0.3.exe

Nes-2-DS:
See the attached .zip.

OH! and before I forget, I HIGHLY recommend getting Notepad++.

And for editing the icon, use https://www.coranac.com/projects/usenti/
 

Attachments

  • Nes-2-DS.zip
    974.2 KB · Views: 100
Last edited by jeffyTheHomebrewer,

ParzivalWolfram

Well-Known Member
Member
Joined
Jun 28, 2017
Messages
294
Trophies
0
Age
54
XP
754
Country
United States
Fun fact for everyone using this- if you do this with a single supported rom, the total is likely to be less than 3 MB itself.
Fun fact 2: Using fw2nds (a tool to turn firmware.bin into firmware.nds, over at this thread -> https://gbatemp.net/threads/release-fw2nds-build-firmware-nds-from-firmware-bin.508831/), it turns out that the firmware.nds file is only around half a megabyte.
Fun fact 3: You can create absurd meta "station trees" by patching Download Station with Haxxstation with Haxxstation with Haxxstation and so on... and make the final rom at the bottom the freaking nds firmware!
I don't have three DSes, so I haven't tested this absurdity out yet.
If any of you is crazy and/or meta enough to do so for me, please do and tell me if it works.

Oh, and you can probably confuse the heck out of people with a DS or DS Lite by sending them the firmware through haxxstation download play. They see it, get a tad confused, launch it and end up... at the main menu??

IMPORTANT NOTE: If this weird crud bricks anything or corrupts anything, I am sincerely sorry and I do not have nearly enough DSes to test it properly. All I'm saying is that the patcher let me patch it with firmware.nds and then patch it with the patched file repeatedly. I hope to god it doesn't brick anything. (It does freeze emulators when you try to launch firmware stuff itself, but that's for obvious reasons- a lack of anything else other than the firmware file.)
The firmware won't always boot from anywhere at any time. It needs a little more hardware access than userland (the privelege level games and such start with) most likely has access to. A few posts I also saw from you need correcting as well:

  • The max ROM size is 4MB, yes... but that'd leave the ROM with no RAM free for use as RAM once downloaded on another console. This situation is more than likely going to end with the game crashing as it will either overwrite itself in RAM or refuse to boot as it can't use any RAM at all.
  • DS Download Play doesn't support sending multiple files at once. There's a garbage NES emulator out there that requires you bake the ROM into it, this emulator (usually) works over Download Play. (MoonShell2 often has a version of it included, albeit modded for DLDI loading, but that version can't see any files on its own. May help find it, though.)
  • Yes, you can embed HaxxStation into HaxxStation, it only checks size and whether it's a valid NDS ROM when embedding. It may even work like that, but you're not going to pile on several at a time, as it needs something like 2MB of free RAM or it won't boot, and each layer is pretty big.
 

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Trophies
1
Age
19
Location
somewhere that may or may not exist
XP
2,531
Country
United States
The firmware won't always boot from anywhere at any time. It needs a little more hardware access than userland (the privelege level games and such start with) most likely has access to. A few posts I also saw from you need correcting as well:

  • The max ROM size is 4MB, yes... but that'd leave the ROM with no RAM free for use as RAM once downloaded on another console. This situation is more than likely going to end with the game crashing as it will either overwrite itself in RAM or refuse to boot as it can't use any RAM at all.
  • DS Download Play doesn't support sending multiple files at once. There's a garbage NES emulator out there that requires you bake the ROM into it, this emulator (usually) works over Download Play. (MoonShell2 often has a version of it included, albeit modded for DLDI loading, but that version can't see any files on its own. May help find it, though.)
  • Yes, you can embed HaxxStation into HaxxStation, it only checks size and whether it's a valid NDS ROM when embedding. It may even work like that, but you're not going to pile on several at a time, as it needs something like 2MB of free RAM or it won't boot, and each layer is pretty big.
1) I mean the firmware won’t exactly do much but it could still load
2) I know, 3mb limit.
3) jeffyTheHomebrewer just provided me with a tool to do what I intend, so...
4) Dude. It was a funny idea I thought of. No reason to ruin it so fast before anyone can even test it.
Edit: Although not for the emulator idea (as I said, there's a separate tool for that), DS Download Play can send multiple files at once- just not available to download at once. Just look at the 16 MB Download Station 1 rom with a bunch of different demos on it.
 
Last edited by Plasmaster09,

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Trophies
1
Age
19
Location
somewhere that may or may not exist
XP
2,531
Country
United States
Yes, python 3 will work.

Devkitpro installer:
https://github.com/devkitPro/installer/releases/download/v3.0.3/devkitProUpdater-3.0.3.exe

Nes-2-DS:
See the attached .zip.

OH! and before I forget, I HIGHLY recommend getting Notepad++.

And for editing the icon, use https://www.coranac.com/projects/usenti/
so I got the stuff but there's a couple problems
a bunch of devkitpro stuff won't install when I installed it- something something public keyring something.
and as for nes-2-ds, I got the first part working but when I use built to scale it says it does the thing... and does not do the thing.
 
Last edited by Plasmaster09,

jeffyTheHomebrewer

Neato Burrito!
Member
Joined
Aug 24, 2018
Messages
1,625
Trophies
1
Location
his house!
Website
catboybeebop.neocities.org
XP
3,509
Country
United States
so I got the stuff but there's a couple problems
a bunch of devkitpro stuff won't install when I installed it- something something public keyring something.
and as for nes-2-ds, I got the first part working but when I use built to scale it says it does the thing... and does not do the thing.
in order to compile it all, it needs msys2 and the main ds development libs installed. Can I see a screenshot of the installer?
 

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Trophies
1
Age
19
Location
somewhere that may or may not exist
XP
2,531
Country
United States
in order to compile it all, it needs msys2 and the main ds development libs installed. Can I see a screenshot of the installer?
honestly I just gave up
plus the error windows disappear too fast to screenshot anyway
any idea if you could build it into a thing that just uses the files in it and nothing else? a simple thing like dspatch? I have no clue how to do the devkit crud.
 

jeffyTheHomebrewer

Neato Burrito!
Member
Joined
Aug 24, 2018
Messages
1,625
Trophies
1
Location
his house!
Website
catboybeebop.neocities.org
XP
3,509
Country
United States
honestly I just gave up
plus the error windows disappear too fast to screenshot anyway
any idea if you could build it into a thing that just uses the files in it and nothing else? a simple thing like dspatch? I have no clue how to do the devkit crud.
Is your PC 32 or 64 bit? I forgot to ask...
 

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Trophies
1
Age
19
Location
somewhere that may or may not exist
XP
2,531
Country
United States
Huh. Well, I don't understand why the installer isn't working. Can you use something like bandicam or unregistered hypercam 2 to record the error?
I don't have those, and as I said I ended up giving up. Besides, NESDS itself is more than good enough for me, and I can wait to beam out nes thru download play for when it's a simple tool usable on its own.
 

jeffyTheHomebrewer

Neato Burrito!
Member
Joined
Aug 24, 2018
Messages
1,625
Trophies
1
Location
his house!
Website
catboybeebop.neocities.org
XP
3,509
Country
United States
ok
maybe at some point you could try to compress the tool into a prebuilt thing?
nah, I don't know how to do anything like that, I'm just making a .zip with only the devkitpro stuff needed to compile the nds rom,
once i have it ready just extract the zip to your C:\ drive
 

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Trophies
1
Age
19
Location
somewhere that may or may not exist
XP
2,531
Country
United States
Itll be ready soonish, gimme 1 more hour just to be safe. also, maybe the reason why it woudnt install in the first place might be because you didnt have enough space
ok
but I DEFINITELY have enough space- terabyte of memory and I've only used around a fifth of it
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    AncientBoi @ AncientBoi: Chips Ahoy cookies :D:wub::D