Traveling to the past. (DS Harware)

Welcome it is 2005 just kidding.

So I want to talk about the difficulties that DS developers have (mainly because the problems i am having while making darniell for cubed pixel when cubed pixel is me) when people are like "PORT MARIO ODYSSEY FOR THE DS", it not that easy lol, says it the guy who ported palib to modern devkitarm, a task near impossible.

first of all the cpus are so bad, you are like CPUS BUT THE DS ONLY HAS ONE you are wrong it is 2, arm7 and arm9, the arm9 is where most code is executed, arm7 is basically there for backwards compatibility, here is the thing, there are some things the arm7 can only acess (wifi, audio, some keys, the touchpad) so you need to send data from the arm7 to arm9 to arm7 so it is kinda, cool, still libnds does this job for you and most libs do it for you so no a big deal, the biggest deal with the ds cpus is that, they are like 33MHz (67 MHz arm9 and 33MHz arm7) making it harder since you need to optimize A LOT, MP3 audio is near impossible, ASlib has done it well but it runs so slow and uses way too much memory.

The DMA write speeds are fast but the RAM is 4 MEGABYTES, 4 MEGABYTES. The worst part of this is that your code needs to be loaded into RAM to be executed into memory, which means that if your game code is more than 4MB you are screwed, there is nitroFS but that only works for assets, the only way around this is you need to split your game into separate parts into the SD card, create a bootloader by yourself or just use one, and load those fucking files from FAT as nitroFS does not work for that.

The screen resolutions are so small. Both screens have the same resolution, 256x192 pixels, this has some side effects on my game, like for example for some reason my game made me motion sick because the stuff was moving around, and not many things can fit in the screen.

The tools oh god, you need to use either devkitARM and libnds or use the oficial nintendo tools, using libnds will cause you a mental collapse so i recommend installing another library, here is a problem, there are no good libraries today, the best we got is NFlib, it can only load stuff off nitroFS but that is ok anyways, You have mdpalib or my palib ports but those are so badly maintained that i do not recommend them

The documentation is the absolute worst thing ever, i use a custom mdPAlib (for older devkitarm because my game needs MP3 support) which means i know some of the functions i removed or added, so instead i go to the palib documentation and see stuff there, the palib docs are so bad, the libnds is quite good but i mean if you can read whatever language they have there (it is so confusing), the nflib one is the best.

Anyways so you may think, oh just do not make games for the ds, the problem is that 1. CubeSDK (a toolkit that has some pretty interesting internal tools by Cubed Pixel) is adapted to work on the DS and porting it to PC would be impossible 2. My platformer engine relies on PAlib and porting it to PC would be near-impossible or take too long.

Edit: amaizing how people are defying the specs and making awesome games, it really gave me motivation but i mean, the ds will always have a special place in my heart as it was the first console that i ever had, the first console i ever tried to make a game on. it is just not for me to be optimizing or finding optimal solutions or having near-impossible collisions that will always bug, thanks everyone.
  • Like
Reactions: Archerite

Comments

I've tried writing my game for the DS directly too, and had to give up mostly because of the low resolution. Also the development cycle witch swapping SD cards got old quite fast!

Then I tried the 3DS and it was way easier to write for as it has much better hardware! But still had some development issues not related to the console. It made me rethink my game engine and development cycle to be PC first, later also: GameCube, WII, 3DS, PSP, PS2, WII U and Switch. I did try porting to GBA, DS and DSi but ran into limitations again.

If you really need the extra RAM the look into DSi. It has 16MB instead of the 4MB of regular DS. There is also the MemoryPack that was officially for the webbrowser which adds an aditional 8MB. If slow RAM is 'ok' then you could use cheap flashcarts from china for the GBA...they have 32MB and only cost like 15-20 euro's.

If the standard DS is really to limited for you, just go to 3DS. Mostly the same form factor and a slightly bigger top screen resolution. Faster CPU's, storage, wifi, shoulp play MP3's well, and 128MB RAM! Even more on the 'New 3DS)

You won't get away with not optimizing stuff if you really want to stay on the DS. I know from experience...and I still want to make it work one day! But it needs LOT's of optimizations and rewrite's! And the same for the GBA...which I also want to port my game to! It's working partially on DSi though...but the graphics are to big to fit in VRAM.

Good luck. ;)
 

Blog entry information

Author
Deleted member 591971
Views
278
Comments
1
Last update

More entries in Personal Blogs

More entries from Deleted member 591971

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Well start walking towards them +1