Gordon Bennett!!
I knew, going in, that this wasn't going to be easy, but..
*sigh*

It's taken about a day and half to get it to the point where it'll compile without "too" much whinging.
Of course, the thing won't actually run in the emulator, and cries blue murder about memory issues. I imagine all my crazy oversized arrays might be something to do with that.
But it's a first step on a long road to possibly maybe getting things running.

Progress has been made!!
This is the framework running on the 3DS emulator.
Of course, no file access or sound or graphics or buttons or anything are actually functioning, yet, but this is a good start.

I’m now about 75% confident that the engine is loading .png image data into the mid-buffer, from the RomFS. Quick debugging of numbers seems to be showing the right kinds of values, and then my Framework is chopping the images up, adding transparency where there's magenta, and so on.
Next I need to load that information into the video ram, and that will be tomorrow's big task.

Today's been some of the toughest coding I’ve done since starting the Framework, but I’m finally up to the point where I can open a project's build.bat file, hit 3 for 3DS, and have it compile that particular game for 3DS without too much additional tweaking. (Namely the icon, game title, etc)

...or at least, it'll manage to compile and run without crashing.. none of the images display, audio doesn’t work at all, and I’ve not coded the input. So it's not very "working", but it is at least a huge improvement on yesterday.

But, yeah, I’ve made a lot of progress, today, and I’m quite happy with how it's gone.

.. But then it crashes in the Emulator, too, so I'm not too worried about that, yet.

I have to say, setting up 3DS Homebrew was a RIGHT fucking pain in the arse. Considering I bought a flashcart specifically for that purpose, I was expecting it to be "put rom on cart, pop into 3DS, run!"
Was it fuck..
I've just spent the best part of 3 hours going through step after step after step to get that working.
And that's just for the homebrew!
I've now got the homebrew launcher running on the device, so have put away the R4 card for future fuckups. For now I'm happy that the system will launch my .3dsx files, assuming I get them to actually work properly.
Or at least, I think it will.

Another step to a working 3DS game!!
This is the first time I’ve had ClearColor working on the bloody thing.
Spent about two sodding days trying to figure out why the blue screen would appear on the emu, but not the 3DS itself.
Apparently if you don’t actually draw anything, at all, the whole damn thing crashes and you need to reboot the 3DS.

So I’d geometric shapes are novelty working, but still broken.
Had to put the lappy on charge, so will be continuing it later.
Next step : Getting the (hopefully) loaded textures to be added to the polygons!

Sprites Ahoy!
But, that's only currently one single spritesheet.
Next I need to figure out how to load and switch between multiple spritesheets, and then .. with any luck.. the main menu of my framework won't look like this anymore!!

I've now got multiple textures loading into memory (for test purposes, a font and a bloke!) but no matter how hard I try, I can't quite figure out how to flip between the two, mid-frame.
I can draw a frame full of text, or a frame full of sprites, but if I try to change mid-frame, I end up with a garbled mess, whereby both sprites are drawn atop each other.

Really struggling to figure this one out!
Made a post about it, over at GBATemp, but .. Hmm.. :\

OK, ignoring the "switch texture" issue, I'm continuing to use "Immediate" draw calls, instead. Works alright for the meantime, I think.. Maybe..!

I've no idea what's up with the font, by the way. Works fine on the template test, but in the actual framework it's all smushed up. Might need to look into how I'm drawing the font, again.

Tweaks that were required for the above.
1. Copy the few "#ifdef ThreeDS" references over to main.cpp so that it could load the correct .h's and deal with OS specific quitting and things.
2. Had to tweak the scaling, slightly, as it was hardcoded to assume 32x32 sprites, when the DS ones are scaled down to 8x8.
3. Copy the newest version of Build.bat across.
4. Run the Build.bat, hit 3.

Running!!! ... In the emulator. Not on the hardware, though, but that's hopefully just down to an easily fixable bit of badly managed memory.