DSpico - An open-source flashcart for the DS(i)

banner2.png


Over the past four years, we - the LNH team - have been working hard on a project that some of you guys may have already heard about: an open-source flashcart that supports the DS, DSi and 3DS (in DSi mode), by the name of DSpico.


The project evolved from a simple flashcart, to a collection of individual components that work together. Each component has been separated in their own repositories, and can be modified to your liking. Each repository comes with their own README's and documentation.The DSpico project consists of the following components:
  • DSpico Hardware - The hardware of the DSpico.
  • DSpico Firmware - The firmware for the DSpico.
  • DSpico Bootloader - Bootloader for the DSpico.
  • DSpico DLDI - The DLDI for the DSpico.
  • WRFUxxed exploit - Full-access DSi-mode exploit for WRFU Tester that can be used with DSpico.
  • Pico Launcher - Front-end for Pico Loader.
  • Pico Loader - DS(i) rom loader. Supports various flashcards, including the DSpico.
Guides to build your own DSpico, as well as instructions for compiling the software are also available. We tried to make the process as friendly as possible. An overview of the features can be found on the website, although each README has much more extensive documentation.

DSpico project index and guide: https://github.com/LNH-team/dspico
Our website: https://www.lnh-team.org/




Here are a few images of DSpico:

dspico-1-3-real-hw-top-res.jpg

dspico-top-1.png

image-min.png

HorizontalCustom.png






QUICK FAQ (will be updated over time)​

- Q: Why use micro-usb over usb-c ?
- A: When we were making the hardware, using USB-C introduced more components that simply didnt fit on the board. We also had concerns of the usb-c port fitting nicely in the cartridge port, and fragility concerns with the shell.

- Q: Where can I order one ?
- A: Your best shot is joining a group buy, or finding a store that manufactures DSpico. We (the LNH Team) will not sell any boards.

- Q: How is compatibility ?
- A: Most of the DS library, as well as homebrew, should work. We do not have an official compatibility list, and we are aware of a few titles that do not work correctly at the moment.

- Q: Does this plays 3ds executables ?
- A: No.

- Q: Am I forced to use Pico launcher ?
- A: No. For instance, Wood menu and TwilightMenu++ work just fine. And vice versa as well, pico launcher is usable on other flashcarts.

- Q: Can i use ntrboot with this ?
- A: Yes, you can perform ntrboot on both 3ds and DSi. We recommend powering the board via micro-usb for DSi ntrboot.

- Q: I need assistance. Where do i go ?
- A: Join the DSi hacking discord, there is a dedicated dspico channel where you can ask your questions.
 
Last edited by XLuma,
Currently not. You need to go through secure mode. However, some changes to the firmware might be possible.
By secure mode do you mean the card going through the normal card init first before DLDI being accessible? I recall my og R4 is like that too. Card init required before DLDI works on that one too as I recall.
 
  • Like
Reactions: SuffahBish
By secure mode do you mean the card going through the normal card init first before DLDI being accessible? I recall my og R4 is like that too. Card init required before DLDI works on that one too as I recall.
Yeah. It's because of the way I handle commands and the different modes. You can check it out in the firmware source. A command could most likely be added to skip from normal mode straight to unscrambled game mode.
 
Yeah. It's because of the way I handle commands and the different modes. You can check it out in the firmware source. A command could most likely be added to skip from normal mode straight to unscrambled game mode.

I see. Well in most circumstances it's not a big issue. For one it's obviously already in game mode if you init DLDI from the rom the cart was booted from. And apps like Gm9i can easily just run the needed card init to get DLDI up and running. Just can't do that within the DLDI driver itself obviously.
 
I see. Well in most circumstances it's not a big issue. For one it's obviously already in game mode if you init DLDI from the rom the cart was booted from. And apps like Gm9i can easily just run the needed card init to get DLDI up and running. Just can't do that within the DLDI driver itself obviously.
The DSpico also needs an extra command to switch from scrambled game mode to unscrambled game mode. And the scrambler then needs to be seeded with zero. It is done here in the bootloader: https://github.com/LNH-team/dspico-...9bae562e98d955afdbc5/arm9/source/main.cpp#L14

You can see all currently supported modes and commands here:
https://github.com/LNH-team/dspico-firmware/blob/develop/docs/commands.md
 
  • Like
Reactions: 0yeah
oh my word, its finally done!
used to hang out on discord, just talking with people working on it and i thought it was such an awesome idea.
last i heard people were still pondering how to do the shell.
Youve come a long way!
 
Finally, a truly new flashcart for NDS, not just a clone.

I imagine this will be ULTRA expensive if I dare to send it to JLCPCB with assembly.
 
Finally, a truly new flashcart for NDS, not just a clone.

I imagine this will be ULTRA expensive if I dare to send it to JLCPCB with assembly.

Not at all, it really depends on the quantity, the surface finish you choose, and whether you go for an edge connector.

PCBWay, for example, charges around $5 for 10 simple 2‑layer boards. Once you add ENIG and edge plating, the price can jump closer to $100 for 10 boards.
For a flashcart you’d realistically need both ENIG and an edge connector, so it makes more sense to order in higher quantities, those options are more like fixed fees than per‑board multipliers. Hard gold would be overkill and far more expensive.

Assembly isn’t that bad either. PCBWay’s prototype assembly starts at about $29 for 20 boards plus the parts. With only ~10–15 components, the effective assembly cost per board is close to €1–2. The parts themselves are cheap, RP2040, microSD slot, USB port, flash, and a few passives add up to maybe €2 total.
The only thing to watch out for is that some components may need to be bought in reel quantities for pick‑and‑place, but even then the overall cost is still very reasonable.
 
  • Like
Reactions: JORGETECH
What do you mean? As said, DSi mode only works on the DSpico flashcard itself, no other available flashcard is able to fully boot in DSi mode.

I've gotten some TWL stuff working on DSTT by accessing it via DSi mode homebrew app I built (modified build of hbmenu more or less). This has to be booted from DSi SD (preferably as an installed app from DSi System Menu, though I think booting this app via Unlaunch would work too).

The lack of DMA support for that platform causes the few games I tested to not work right. I think I did manage to get Pampered Pets 2 to boot in TWL enhanced mode. Sonic Classic Collection and Pokemon Black 2 didn't want to work. :P

I do have a Ace3DS X which does have DMA support for DS Pico Loader but since I can't do an external DLDI init of that cart right now, it's not possible for me to try launching stuff off it in TWL mode with the method I devised though if I could I would bet TWL stuff would have a better time running on that one. :P

EDIT:

Oh yeah here's a link to my WIP hbmenu for autobooting pico launcher off DSTT in DSi mode when booted off DSi SD with the correct privileges:

https://github.com/ApacheThunder/ntr-hb-menu/tree/deluxe

It has partial support for og R4 too but my bootloader hangs trying to boot anything from that cart for some reason. I am not sure why at the moment. DSTT is what works for now. I haven't gotten DLDI init working for Acekard 2i yet... I think I can get that one working with this if I can figure out why it's not working in my app but does work in Gm9i. :P
 
Last edited by Apache Thunder,
I've gotten some TWL stuff working on DSTT by accessing it via DSi mode homebrew app I built (modified build of hbmenu more or less). This has to be booted from DSi SD (preferably as an installed app from DSi System Menu, though I think booting this app via Unlaunch would work too).

The lack of DMA support for that platform causes the few games I tested to not work right. I think I did manage to get Pampered Pets 2 to boot in TWL enhanced mode. Sonic Classic Collection and Pokemon Black 2 didn't want to work. :P

I do have a Ace3DS X which does have DMA support for DS Pico Loader but since I can't do an external DLDI init of that cart right now, it's not possible for me to try launching stuff off it in TWL mode with the method I devised though if I could I would bet TWL stuff would have a better time running on that one. :P

EDIT:

Oh yeah here's a link to my WIP hbmenu for autobooting pico launcher off DSTT in DSi mode when booted off DSi SD with the correct privileges:

https://github.com/ApacheThunder/ntr-hb-menu/tree/deluxe

It has partial support for og R4 too but my bootloader hangs trying to boot anything from that cart for some reason. I am not sure why at the moment. DSTT is what works for now. I haven't gotten DLDI init working for Acekard 2i yet... I think I can get that one working with this if I can figure out why it's not working in my app but does work in Gm9i. :P

Oh wow, it would be really great to see old flashcards repurposed as DSi mode ones, I now remember testing this in my Ace3DS+ some time ago, but as you said, it doesn't work well yet.
 
  • Love
Reactions: SylverReZ
Yes. You can also just copy the ace3ds+ build from the launcher to the SD card and test it. Or you can use flashcart-bootstrap to chainload it replacing the original launcher. Pico launcher also supports pokemon black/white 2 which doesn't work properly on these cards, but there might be issues with other games (so chainloading can make sense).
That's awesome to hear! I'll have to check out flashcart-bootstrap, thanks for pointing me to it!
 

Site & Scene News

Popular threads in this forum