BlocksDS - A New Homebrew SDK for the Nintendo DS -- Discussion Thread

NightScript

Well-Known Member
OP
Member
Joined
Feb 7, 2016
Messages
951
Trophies
1
Age
20
XP
2,239
Country
United States
As a clarification, I would like to first point out that this is meant to be a discussion thread regarding something I just think is cool. This is not a thread where a developer would show off what they made, because this is not my project. This is in the hands of AntonioND (with special help from asie).

With that out of the way, I now feel comfortable talking about it.


About a month ago now, a certain message was posted by them on our DS(i) Mode Hacking! Discord Server. It read something of the sort, with a bit of modification to remove outdated information:
Well, I'm tired of waiting, so it's time to make it official. This is BlocksDS v0.1, my SDK for NDS https://github.com/blocksds/sdk I've taken all of the libraries supported in devkitPro and integrated them as part of my SDK. I've removed a few things that weren't licensed under FOSS licenses (like NitroFS) and reimplemented them. The current licensing status of the SDK should be 100% clean (as far as I can tell!). There is still a lot to do, but I think it's stable enough now to announce it.

At this point, it is possible to build devkitPro projects relatively easy (there is a guide here! https://github.com/blocksds/sdk/blob/master/docs/porting-guide.rst). The main difference is that you need to replace the makefile.
The main idea behind this SDK is to have something that can be easily modified by the user. You have to build all the libs yourself, it only takes a few seconds! The only thing I don't make you build is the compiler. You don't like the makefiles? Create your own build system! The makefiles will help you know which command line arguments to use and such. :) Have you found a regression between SDK versions? Use git bisect to find the problem! All the components of the SDK are integrated as submodules, so you always know which version was used at all points of the SDK history.

Thanks to asie for all his advice! He has already made a couple of very early tests, and the final binaries are noticeably smaller than with devkitarm (mainly thanks to using picolibc instead of newlib)

That was v0.1, though. Since then, 4 different updates have been released, with key changes being:

- Intergrated DSi-Camera system
- EEPROM Dumping Fixes (ported from GodMode9i)
- Touch-Frame Delay removal
- Pressure Touch for Nintendo DSi
- Faster VRAM-friendly memcpy function (no more tonccpy)
- Filesize optimizations (.1KB touchscreen keyboard built in as opposed to the 8KB one)
- Rumble Pak detection improvements
- Multithreading

With all of that combined with smaller file sizes by default, this was a chance for the DS Scene to finally pick up some steam from a toolchain POV. Indeed, the DS-Homebrew team effectively already switched over, with myself, lifehackerhansol and Evie already using it.

I am very glad this scene was given a second chance, and I hope we can take better advantage of it.
 

AntonioND

Member
Newcomer
Joined
Feb 17, 2015
Messages
13
Trophies
0
XP
142
Country
It isn't useless. For starters, BlocksDS isn't a complete replacement of everything distributed by devkitPro for NDS development. Things like libfat and nitrofs aren't supported the same way as with devkitPro. There is a compatibility layer, which works for 99% of applications, but it's not perfect. For most homebrew applications, it will just work, but some of them will need to stick to devkitPro for the time being.

At the moment I'm focusing on documentation and code cleanup, and some people have been contributing some code and bugfixes that had been needed for a long time.
 

AntonioND

Member
Newcomer
Joined
Feb 17, 2015
Messages
13
Trophies
0
XP
142
Country
Well, I guess I'll also post this here: http://www.skylyrac.net/2023-08-18-blocksds-sdk.html

It's just an introductory article to BlocksDS, with the advantages and disadvantages over devkitARM along some explanations about the..

Some of the current advantages are:
  • Smaller binary size and smaller RAM usage.
  • The licences of all the code have been clarified and documented.
  • A lot of system code of libnds has been documented to help future work on it.
  • There is basic multithreading support.
  • The DSi camera is supported.
  • NDS ROMs can be generated with animated icons
The main disadvantages are:
  • BlocksDS is Linux-only. There are Docker images that you can use on other OSes, and you can install it in WSL if you're using Windows, but there is no native support, which may be a problem for some potential users.
  • The compatibility with devkitARM isn't perfect. You will need to heavily modify any project that uses features provided by the fork of newlib in devkitARM, like devoptab (but this is a very niche situation).
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • K3Nv2 @ K3Nv2:
    @Veho, where's the poll at?
  • Julie_Pilgrim @ Julie_Pilgrim:
    they're giving the internet an open text box?
  • BigOnYa @ BigOnYa:
    I never played or own any of they devices, but I like small style, but with a somewhat grip
  • Julie_Pilgrim @ Julie_Pilgrim:
    oh man, that always goes great!
  • Julie_Pilgrim @ Julie_Pilgrim:
    im sure half the responses won't be literal racial slurs or "drop table" jokes
  • Veho @ Veho:
    Look, it's China. They know what it's like when you give a poll to half a billion trolls.
  • K3Nv2 @ K3Nv2:
    How much dollar do you think it is?
  • Veho @ Veho:
    ONE MILLION DOLLA
  • Veho @ Veho:
    I know the pricing of electronics nowadays isn't "how much it actually costs" but "how much we can get away with", but putting up a poll is just cynical.
  • K3Nv2 @ K3Nv2:
    Probably $150 someone said Anbernic said around the same price as rg556
  • Julie_Pilgrim @ Julie_Pilgrim:
    you know which game i wish they would rerelease
  • Julie_Pilgrim @ Julie_Pilgrim:
    sonic unleashed
  • K3Nv2 @ K3Nv2:
    Make it a happy meal toy
  • Julie_Pilgrim @ Julie_Pilgrim:
    that game's engine is really fucking intensive so it runs like literal shit on xbox 360 and ps3
  • Veho @ Veho:
    Nah I'm getting value creep again. I look at a $50 console "but for just a few more dollars you could get XYZ" and I end up considering the Steam Deck.
  • Julie_Pilgrim @ Julie_Pilgrim:
    like the lighting in that game was genuinely so good
  • Veho @ Veho:
    Not getting dragged into that again.
  • Julie_Pilgrim @ Julie_Pilgrim:
    i dont get why they didn't port the one game that ran the worst on consoles, to pc
  • Julie_Pilgrim @ Julie_Pilgrim:
    like you port everything to pc except the one game where it would make the most sense. why. what do you gain from this
  • Julie_Pilgrim @ Julie_Pilgrim:
    is sega just personally fucking with me? are they laughing while watching me through my kinect camera as i get up to restart my xbox for the third time because the game froze again
  • K3Nv2 @ K3Nv2:
    Buy handhelds from five below better quality
  • K3Nv2 @ K3Nv2:
    Valve probably going to do another refresh of the deck this fall with rog ally like specs tbh
  • Veho @ Veho:
    A smaller form factor would be nice too.
  • K3Nv2 @ K3Nv2:
    A shield portable 2 would be nice aye Nvidia
    +1
    K3Nv2 @ K3Nv2: A shield portable 2 would be nice aye Nvidia +1