I have been using Citra for more than one year, and thanks to your efforts I have been enjoying 3DS games on PC. However I do have some questions (or suggestions in some way? ).
First, emulators like Dolphin usually have several video backends for users to choose from. For example, Dolphin has OpenGL, D3D 11, D3D 12 and Vulkan. On my PC, (using Dolphin with) D3D12 is more than 10% faster (compared to OpenGL). So maybe you should try it too? As far as I know, Citra currently supports OpenGL only. It may not be easy to implement other video backends, but I think it’s worthwhile because it do improve emulation speed.
Secondly, are you planning to implement an Android version? (I
do did read the faq but I still want to ask) I think 3DS is a “portable” game console and it won’t make much sense if you can only play it on PC. Network connection (multiplayer support) will also become easier with Bluetooth or Local Wifi. As both the 3DS and many Android devices are based on ARM processors, I think less work is required to be done before executing the code (for example interpreters or recompilers may not be needed). For x86_64 devices implementing Android versions should be as easy as a piece of cake for your strong development team, or at least in my opinion it is.
Thirdly, I know Cemu has a “shader cache” feature. It makes games boot slower (and take up much more memory space), but do improve the speed of emulation quite a lot. Will Citra have similar features in the future?
Fourthly, currently Citra doesn’t seem to benefit from multicore processors. Some emulators use a separate CPU core (or Thread?) for rendering (or the screen process) and another for other work. Will that help with Citra emulation?
Fifthly, Citra can only read decrypted game ROMs. However, NDS emulators usually read both decrypted and encrypted ROMs, and some even read encrypted ones only. I think you can try to implement the feature to read encrypted ROMs too. I saw articles on the Internet saying that all 3DS encryption keys have been revealed and ROM decryption can be done on PC(I don’t remember the details). So, I think it’d be possible to decrypt encrypted ROMs before booting. That would make things much easier for many users who don’t know how to decrypt ROMs or who don’t have a 3DS.
Sixthly(this is a very minor problem), Citra Installers are very nice and help much, but in China it doesn’t work well as the speed is too low, so I have to download it manually from Github (though it is still slow). So will you please use some service like CDN to help? You may put the file on your own server (instead of Github). I don’t think that will cost much but it will make experience much better. Thank you!
Finally, I’d like to express my thanks to you Citra development team. It is because of you I can have so much fun. I will never forget the excitement I
feel felt when I first saw Citra boot Pokemon (Omega Ruby &) Alpha Sapphire and later other titles. I am not good at programming, and I can hardly understand most of your code even though I put quite much effort into it. And I’m just a student and can’t help you much with the things about money. However, I will still support you in the future. I hope you can consider the 6 suggestions above. Thank you very much.
P.S. I’m Chinese and my English isn’t that good. Sorry.