Software Keyboard Not Implemented Workaround?


Hi to all!I read that software keyboard is not emulated yet…but there is a way to bypass this problem?


From my knowledge, there is no way to get past the software keyboard. Perhaps dumping your save game past the point that the keyboard is required?

Everything named Citra

Yes,it would work but the software keyboard is important to continue the game…anyway it means i’ll wait.


I wrote the code for it, but its not in any build yet as far as I know. I’ll be fixing it up eventually and it’ll be in a build after its fixed up.


Fantastic! Good job! :smiley:



What, is this fixed now? Otherwise, I have a workaround in my mind.

I think it would be nice if a new Qt msgbox appears asking the user to enter text. That text could then be sent to the game instead of “Citra”.

Example :

Now :

  1. Game asks for software keyboard.
  2. The program send back “Citra”.

Then :

  1. Game asks for software keyboard
  2. Citra pauses emulation
  3. A new Qt dialog box opens, asking user to enter text.
  4. User enters : “abcd123Q”
  5. Bingo ! Program resumes emulation, sends “abcd123Q” to the game, which parses it.

Can this be implemented ? I am currently working on the code.

[DEV] Can anyone point out where

this is a little more complicated than you are making it out to be. this would involve setting up a callback from the frontend to the core that the service would need to call. This callback would need to handle all of the different parameters that the software keyboard does including things like configurable buttons, filtered input, and a software callback to run after the input is sent. A lot of people just assume the software keyboard is just “Type in whatever here” but it does much more than that.

also this is likely to get bikeshedded even if you did it well. While I personally am not opposed to having a callback for applets so we can do cool things like a qt dialog for the software keyboard, I know from personal experience that there are other devs who don’t like that idea. We only have one other callback system in core right now and thats for telemetry. the right approach is to use HID to receive input and draw on the buffer thats already setup there.

probably whats the best way to go about this is to make a 3ds homebrew application that acts like the software keyboard. citra is almost ready to launch applets like the software keyboard through LLE, but it would be nice to have a redistributable software keyboard that everyone can use.


I know exactly where to find that.

Link removed by Moderator due to copyrighted material.

Needs to be redumped from a cfw 3ds however.
Can anyone do a dump to .3dsx or any Citra readable format ? My 3DS is broken… :cry:

This is in .3dsx, .cxi, & .elf …


Anyways, should I do it & open a PR ?


I’d never seen that before but thats actually really cool :slight_smile: You shouldn’t have to dump this person’s keyboard from a real 3ds. Citra can load .3dsx just fine. Also its source is available so you can build it with devKitPro

So theres three things that would have to happen for this persons software keyboard to be able to be used as the system keyboard.

  1. it’d have to actually work in citra (haven’t tested but it probably will)
  2. we’d need to change the code so it communicates with applications in the same way that the system software keyboard does
  3. we’d need subv to finish system applet LLE

then we would need to test to see if we can load it as if it was a system app :slight_smile:


Hey, that’s open for downloads. How is that copyrighted ? Yeah it further links to copyrighted material, so, should I remove that part & post the open mirrors only ?


I’m not sure what you’re asking, but that video is just a modification of Nintendo’s SWKBD. The system title is copyrighted, and so is any modification of it.


Ok, I did not know that. Sorry to bother.