Nintendo DS / DSi demo / heombrew setup recommendations (SD card? Flash cart?)
category: general [glöplog]
Longish topic...
I recently got a free DSi to play with, so I thought I'd try to runs some of the few NDS demos floating around Pouet, but I'm not getting anywhere with exploits and my SD card. I have used the MemoryPit exploit, installed TwilightMenu++ and Unlauncher (according to this guide), but neither will run the demos found on Pouet. I'd like to be able to play demos, but also, in time, try to make my own homebrew / demos.
What can you recommend? Is there a good allround solution? Do I have to get a flash cart? Which one to rule / run them all?
I recently got a free DSi to play with, so I thought I'd try to runs some of the few NDS demos floating around Pouet, but I'm not getting anywhere with exploits and my SD card. I have used the MemoryPit exploit, installed TwilightMenu++ and Unlauncher (according to this guide), but neither will run the demos found on Pouet. I'd like to be able to play demos, but also, in time, try to make my own homebrew / demos.
What can you recommend? Is there a good allround solution? Do I have to get a flash cart? Which one to rule / run them all?
Oh man, typos... :/
I have had very good luck running NDS demos using a R4 Gold Pro loader card on an unmodified 3DS. Should work the same on a DSi.
Is that the card from http://www.r4isdhc.com?
I got a used r4isdhc flash cart (aka "R4 clone". All 2019/2020 models have the same hardware). I updated the kernel to the latest 4.0b and installed the newest YSMenu / timebom fix from here. Tested some demos:
- Throb :: T-Rex - C0D3R C0L0RZ - working (not working from SD)
- k2 - k2 - 029: numbering sucks - Guru meditation (not working from SD card either)
- Scarab - Defcon Zero - working (not working from SD)
- SVatG - It's 1975 and this man is about to show you the future - Stuck on white screen (not wotking from SD either)
- Moppi Productions - flower demo (DS port) - working (also working from SD)
Will test some more, but as it is I'm not really satisfied :/ Still looking for that silver bullet...
- Throb :: T-Rex - C0D3R C0L0RZ - working (not working from SD)
- k2 - k2 - 029: numbering sucks - Guru meditation (not working from SD card either)
- Scarab - Defcon Zero - working (not working from SD)
- SVatG - It's 1975 and this man is about to show you the future - Stuck on white screen (not wotking from SD either)
- Moppi Productions - flower demo (DS port) - working (also working from SD)
Will test some more, but as it is I'm not really satisfied :/ Still looking for that silver bullet...
There isn't really a silver bullet, sadly.
First of all, Unlaunch can only launch simple NDS ROMs that only need to load their code blobs to memory and nothing else, so you need to run other stuff like HBmenu or TwlMenu if you want to launch more complicated ROMs. Unlaunch is simply an exploit and a replacement for the second-stage system bootloader (the one that loads the system menu), it is not a full-fledged loader for arbitrary ROMs. (Though maybe the >1.0 versiosn are capable of a bit more, idk, I'm stuck on 0.8 for annoying, boring reasons.)
Most 'old' (before at most 2018, probably earlier) demos use a different way of loading files: file(1) says 'PassMe-style homebrew' for older ones vs 'hybrid DS/DSi format' for newer ones. The mechanism of loading data embedded in the NitroFS archive in the ROMs was changed pretty much completely. Flashcarts work better for older ones, TwlMenu and cohorts work better for newer ones.
My iEvo cart doesn't want to launch any homebrew ROM in DSi-mode, as these don't come with an encrypted "secure area". I need to look into how to fix/work around this, but I haven't found the time yet, and there's lots of other stuff with higher priority.
HBmenu was made specifically to launch homebrew ROMs with the new mechanism. TwlMenu (and nds-bootstrap, which it uses behind the scenes) was made to launch... warezed game ROMs. They don't even think about supporthing any homebrew ROMs much, in fact. Yes this situation sucks.
Now, as for specific demos:
* C0D3R C0L0RZ, Defcon Zero, etc. all use the old loading mechanism, so that's why the flashcart works
* Numbering Sucks (and a few other old K2 demos) use a... peculiar way to load themselves, which is why it's prone to errors. I did get it to work on my CycloDS iEvo cart, though, and people were able to witness it at Evoke 2019.
* Similarly, the SVatG demos also use weird loading stuff, halcy told me them once but I forgot the details. I did get a few SVatG demos to work in TwlMenu two years ago, though.
* The two demos by REN definitely do work on TwlMenu (or at least they did 2 years ago).
* My demos should also work using TwlMenu and HBmenu. However, I mostly ditched the former as it is *so* *slow* at loading anything (file listing, launching a ROM, etc.) HBmenu needed some extra hacks to initialize some DSi-specific hardware components which weren't inited by Unlaunch <1.0 (and these demos don't do that), but that shouldn't be an issue now. Due to the issues with the iEvo cart described above, idk how well they work on flashcarts, though.
TwlMenu semirecently also gained the ability to use "ramdisks" as backing storage instead of the SD card directly, and allegedly it fixes the issue of loading assets from the ROMs. I haven't tried it myself, though (as I stopped using it anyway).
First of all, Unlaunch can only launch simple NDS ROMs that only need to load their code blobs to memory and nothing else, so you need to run other stuff like HBmenu or TwlMenu if you want to launch more complicated ROMs. Unlaunch is simply an exploit and a replacement for the second-stage system bootloader (the one that loads the system menu), it is not a full-fledged loader for arbitrary ROMs. (Though maybe the >1.0 versiosn are capable of a bit more, idk, I'm stuck on 0.8 for annoying, boring reasons.)
Most 'old' (before at most 2018, probably earlier) demos use a different way of loading files: file(1) says 'PassMe-style homebrew' for older ones vs 'hybrid DS/DSi format' for newer ones. The mechanism of loading data embedded in the NitroFS archive in the ROMs was changed pretty much completely. Flashcarts work better for older ones, TwlMenu and cohorts work better for newer ones.
My iEvo cart doesn't want to launch any homebrew ROM in DSi-mode, as these don't come with an encrypted "secure area". I need to look into how to fix/work around this, but I haven't found the time yet, and there's lots of other stuff with higher priority.
HBmenu was made specifically to launch homebrew ROMs with the new mechanism. TwlMenu (and nds-bootstrap, which it uses behind the scenes) was made to launch... warezed game ROMs. They don't even think about supporthing any homebrew ROMs much, in fact. Yes this situation sucks.
Now, as for specific demos:
* C0D3R C0L0RZ, Defcon Zero, etc. all use the old loading mechanism, so that's why the flashcart works
* Numbering Sucks (and a few other old K2 demos) use a... peculiar way to load themselves, which is why it's prone to errors. I did get it to work on my CycloDS iEvo cart, though, and people were able to witness it at Evoke 2019.
* Similarly, the SVatG demos also use weird loading stuff, halcy told me them once but I forgot the details. I did get a few SVatG demos to work in TwlMenu two years ago, though.
* The two demos by REN definitely do work on TwlMenu (or at least they did 2 years ago).
* My demos should also work using TwlMenu and HBmenu. However, I mostly ditched the former as it is *so* *slow* at loading anything (file listing, launching a ROM, etc.) HBmenu needed some extra hacks to initialize some DSi-specific hardware components which weren't inited by Unlaunch <1.0 (and these demos don't do that), but that shouldn't be an issue now. Due to the issues with the iEvo cart described above, idk how well they work on flashcarts, though.
TwlMenu semirecently also gained the ability to use "ramdisks" as backing storage instead of the SD card directly, and allegedly it fixes the issue of loading assets from the ROMs. I haven't tried it myself, though (as I stopped using it anyway).
(yes, the entire situation kinda sucks. there's lots of stuff to fix in the homebrew tools/driver code world in general, which I want to get done before making a Big Blockbuster NDS Demo. which is why that one is far from being finished.)
Thanks porocyon. The last HBMenu version was from 2017, so I was like "meh, too old". But now I will give it a shot. Can I run HBMenu from the SD card too? As it understand it this supports libnds / libfat out of the box for homebrew stuff, right?
Yes, you should run it from Unlaunch. it's not too fancy or anything, but at least it works