snip
Which is
even more difficult than developing a PC game; take it from a seasoned GBA developer.
Albeit I haven’t released anything in years, I’d consider myself quite knowledgeable in GBA programming; and the 3DS is only a decade after the GBA, things haven’t changed too much at the core.. Look at your goddamn hardware limits for the GBA/3DS, PC beats everything in that regard.
You have to know C
and ASM,
very well. Incredibly well. I made that mistake when I thought I could do anything and jumped into GBA programming, it took me weeks to display pixels on the screen. People didn’t write documentation on it back then, much less now. (Which reminds me of another project of mine I need to get started on.)
You have to know the hardware and software register values. That is a must.
Also let’s go here, where do you begin? Do you use the raw ARM4 (IIRC) compilers and do everything yourself—your way? Do you use devkitAdv? A blend? How do you setup your Makefile, you have to know the build rules. You also need the MinGW msys for ‘make’.
Know how to structure functions…
How do you compress/decompress LZ data?
What was the register for setting mosaic mode?
What resolution should I run my game at?
Do I use the GCC inline ASM or have seperate files for ASM functions that interface with the GBA itself?
How do you write to files?
Display pixels? Sprites?
Do you do ‘void AgbMain(‘ or ‘int main(‘.
What’s the software interrupt for square roots? Is there even one? How many arguments does the function take? What does it return as? An integer? Maybe an unsigned 8-integer? Maybe even a double? Should you handle square roots yourself instead?
And the official documentation on sheds a sliver of light on these things.
The same can be applied to the 3DS, but it also has built in OpenGL capabilities, how do you start an OpenGL context? Is it already applied for you? How many stencil bits do you have? If any? How many functions does the 3DS OpenGL have?
(Upon further research, I was kinda wrong about this, Citrus has OpenGL-esque functions, which is the most common 3DS library you will use.)
I know I’m coming off as a complete asshole, and I know this is exaggerated, but people keep on telling you to start small and you never listen, look at all the stuff you have to know to even get started.
Do you use headers made by someone else, or define common values and functions yourself? Even know how to setup a V-Blank interrupt?
The list can go on for days, I can rant how fucking stupid some decisions Nintendo made.
But you keep biting off more than you can chew. And you never listen. And I feel it’s a recurring problem; not even with you, this website. I notice it. I’m sure others had too. /rant
Note: multiple edits were applied for extended readability.