Masto3DS
I've always loved implementations of modern software on obsolete hardware, so-called 'de-makes'; Remakes, but accomodation the limitations of the system they're being ported to. This is my attempt to make a mastodon client for the 3DS. Luckily, the Mastodon API is enjoyably well-documented online, and the process has gone relatively smoothly when I have time to dedicate to it.
Some progress this month!
Progress in both the font and images department! For fonts I copied the system used in Fourthtube which got it from Thirdtube which got it from Video Player for 3DS. Lot's of work went into this, and I think it is stable now! And it falls back to the built-in font rendering system for some specified glyphs for international languages.
Image progress is less interesting: lodepng obviously only supports pngs, so I've had to switch image libraries to one that is more versatile. The current code mostly just segfaults, but I'll probably be able to narrow that down soon enough. The big headache is going to be if I have to reimplement my swizzline algorithm or change it all. I don't remember how it works. I though it didn't work, but it seems to be and I don't want to jinx it. Hopefully I can avoid this though!
Initial update!
Except for images. The 3ds graphics libraries expect you to process the images locally on your development machine before embedding them in the program. This makes sense for game assets, but is not applicable to emoji's from mastodon. This pre-processing? Something called swizzling. It reorders all the pixels so that pixels that are nearer on the screen are nearer in memory, allegedly improving speed by makeing caching more efficient. However, this means I need to 'pre-un-swizzzle' the images before I display them, which I have working for some image sizes but not others. Apparently the algorithm scales differenly than I expected. Anyway, this will require an amount of work I've been putting of for a while now.
The other problem is fonts/emojis. As best I understand it, the emojis are being processed correctly. It's just that the font that provides the glyphs for those characters is not properly hooked into the text drawing routines. Or something like that. If I remember correctly, the whole program is currently commented out to create a minimal testing framework as I debug this, but it's been a while since I've worked on it.