This is not really a Citra related question unless you wanted a Citra exclusive solution (i.e. game won’t work in other [future] 3DS emulators / real 3DS).
Before I get into the details a bit more, I’d like to warn you that the 3DS has 4 texture units and a programmable pipeline (shaders) which complicates some things.
You can already view the textures which are supplied to a draw call using the “Pica Surface Viewer” in the debug options. You can also export individual textures from that window.
However, there is no standardized way of replacing textures on the fly (yet).
If you know how to code you can easily generate a hash of each texture, save it to disk, and if one already existed, load the version from disk instead [which could be loaded with arbitrary resolution into the GPU surface cache].
Similar about shaders.
However, especially for meshes this will be tricky as there is no proper caching mechanism and interpretation of the mesh data is very flexible (so you’d need a very flexible file format + shaders).
If you can code, this is still possible but not exactly easy.
I’ve done similar things (= export all textures (.bin and .png) / meshes (.obj) / shaders (.shbin)) to debug graphics issues in Citra in the past and I still intend to write articles or make videos about this (but mostly explaining the concepts on how to debug issues, not how to add these exporters). However, this won’t happen anytime soon I believe.
I’ve just tried looking for the code (which would be about a year old) and unfortunately I couldn’t find it anymore. I might try again in a couple of days - remind me please if necessary.
Furthermore I was working on an external GL hook at some point which would replace meshes, shaders and textures of any GL application by hashing the data and reorganizing the draw calls. This kind of approach might also work here? (You’d probably still want to annotate the GL data from within Citra due upscaled rendering messing with the texture data and to save some performance etc.)
I’ve also tried to help Romsstar with similar things in the past to translate Digimon, however, he decided to crack / patch the games files instead (which I do not recommend if you want to change texture or mesh data sizes).
Aside from that, I’m really interested in seeing this