Homebrew Suggest me libraries for a 2D Game homebrew devving?

Coburn64

Member
OP
Newcomer
Joined
Apr 16, 2009
Messages
12
Trophies
0
Location
Down Under
XP
211
Country
Australia
A little background on what I'm trying to do.
I've been wanting to work on a Pokemon-esque type game for some time. While it's not a complete copy, it's in the same style. Or maybe it's a clone, I don't know. :unsure:
While I have Unity as my primary go-to tool in my arsenal when making games for mobile or PC, I wanted to give myself a challenge and learn a little more about how sprites are stored in memory, loaded into VRAM and displayed on the screen. I also have a (stalled) ESP32 project that is basically a Arduino-compatible board attached to a SPI screen + joypad, but that's even more technical and literally gave me the shits when trying to solve IRQ conflicts.

I have tried NFLib for libnds and while it seems simpler than calling raw libnds functions directly, the author of that library is spanish and as a result, the example C source code files are in spanish. While I can use Microsoft Translator to get a reasonable translation, there's hardly any documentation on the examples themselves apart from code that is just "here, take this, pass it to gcc in devKitARM, good luck".

The question
So, this is the part that I get stuck on and I just can't make up my mind because I don't know if what I'm trying to do is too complex or I just don't have enough knowledge of libraries.

I've been looking around for libraries that I can use. I figured that I might work on the Nintendo 3DS because it has much nicer screen than what the original Nintendo DS has, more graphical power and less memory restrictions... I mean, sure - my game isn't going to use up all the work RAM on the 3DS unless I'm sloppy and load everything into memory. And it seems that the 3DS homebrew community is still alive.

Input Libraries
Input is fine since libctru has available examples that poll the input layer, so I don't need to get any libraries to make that work.

Graphics Libraries
I found xerpi's 2D library, sf2dlib (https://gbatemp.net/threads/release-beta-sf2dlib-simple-and-fast-2d-library-using-the-gpu.384796) but it has the big statement that bugs will not be fixed because it's deprecated/outdated. Oh, and apparently it's not compatible with the latest changes to libctru? He also suggests to use citro3d directly, but looking at the 3D examples available to me in libctru, my brain hurt. Why do I need to use a 3D-oriented library when I want to do 2D stuff with possibly some GPU-backed acceleration? :wacko:

Note: That above statement is not a 'stab' at xerpi or anyone involved with that library, it is just the impression I got originally and it potentially could be a wrong impression (and I'm hoping it is).

Audio/Sound Libraries
I am failing to find an audio library for the 3DS that would allow me to play (AD)PCM samples as well as streamed media, like OGG/MP3 or whatever is fast for the 3DS to process. I could try to make some sort of chiptune generator but I want to be able to at least stream some audio from SD or ROMFS. Gotta use that high quality audio blast processin' capabilities, you know?

The GBA/NDS had MaxMod that allowed you to play MOD Files and Tracker modules, but information on that was scarce because the official website was replaced with some random empty wordpress blog, and then the sites before it seemed to be in japanese when looking at them through the wayback machine. IIRC if you wanted to use custom music, you had to make sound banks for MaxMod, and the tools are literally nowhere to be found anymore. Or at least all the links i found are dead.

The endgame
Failing that I suppose I could still program for the Nintendo DS with it's limited 4MB (or more memory if I had that memory expansion pack?) only if there was a source of good libnds tutorials that aren't designed for total noobs but people who have an idea but need gentle guidance getting started with their idea in code. No, I am not expecting a libnds for dummies book, but how to do things like a menu, tile based collision, player sprite + scrolling, etc.

So, that's where I'm at. I appreciate all the advice and pointers that you can give, because as much as I love the Nintendo 3DS and want to write my own homebrew games, these roadblocks kinda makes me shy away. I could do this easily inside Unity with C# for a different target, but that kinda defeats the challenge.

If you got this far, you're awesome - thank you for time in reading my lengthy post (better to detail than just post a few words, right?). I look forward to your assistance. ^_^

Stay safe,
Coburn.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: @BakerMan, https://youtu.be/KaMSXIRReOo?si=2hRoijJtiwPUHXk5