LotusText - easier text input on the NES

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

Post Reply
User avatar
dustmop
Posts: 136
Joined: Wed Oct 16, 2013 7:55 am

LotusText - easier text input on the NES

Post by dustmop »

Inspired by the "lotus keyboard" that Valve showed off years ago, I put together a simple demo ROM showing off an alternative text input technique for the NES. The idea is that 12 leaves are displayed, different d-pad combinations select each leaf, and then B & A are used to select symbols on a selected leaf. Though I haven't spent a ton of time playing with it, I already feel like its a faster and more enjoyable way to input text than just a linear row of symbols.
Saying "hello" in LotusText.
Saying "hello" in LotusText.
lotus-hello.gif (15.64 KiB) Viewed 2701 times
I want this to be a library that other homebrew developers can integrate without too much work, so that text heavy projects can be easier to use. You can check out the demo ROM, and all the source is on github. Making a library for nesdev is kinda rough; though I was inspired in part by Famitone, it's much harder for code that relies on CHR and nametable data being in a certain format.

Would be interested to hear if anything thinks this is useful, or has any critiques, suggestions for improvement, for neat projects that could make use of it.

Also, I put up a blog on my personal blog talking about it for a more general audience: http://www.dustmop.io/blog/2016/03/10/lotus-text/
User avatar
zeroone
Posts: 933
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: LotusText - easier text input on the NES

Post by zeroone »

That's really cool. Could you add the animated gif to that github page? The project might attract more attention that way.
User avatar
zeroone
Posts: 933
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: LotusText - easier text input on the NES

Post by zeroone »

I just tested this out. Could you reorder the characters to put the most frequently used ones toward the center? E.g. vowels should never require double taps.
User avatar
dustmop
Posts: 136
Joined: Wed Oct 16, 2013 7:55 am

Re: LotusText - easier text input on the NES

Post by dustmop »

Thanks! Adding the gif to github totally makes sense, gonna do that right away.

I struggled for a while about the exact order of characters to use. I want to balance keeping adjacent leaves consecutive alphabetically, with putting common letters towards the middle, just as you said. I think it makes sense having E, M, N, S, T right at the center, and the only vowel that's tricky is A. If there's a layout that better represents both of these goals, I'm interested to see it.

From a developer standpoint, changing the order is as simple modifying the *_INDEX constants in lotus_text/highlighting.asm, and updating the lotus_text/image.png file. The code assumes characters are in order and uses the formula [character = index * 3 / 8 + selected]. I've thought about adding an arbitrary mapping, but that's a future feature.
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: LotusText - easier text input on the NES

Post by tepples »

...tryst by my crypt...

Depends on what you call "vowel" and "never".

...pwnt...

R, S, T, L, N, and E, Vanna? Our system is too cheap for HDMA.
User avatar
heardtheword
Posts: 20
Joined: Mon Feb 08, 2016 1:22 pm
Contact:

Re: LotusText - easier text input on the NES

Post by heardtheword »

I like the idea but I feel like this is much more complex than the lotus keyboard. Valve's design was clear because the letters had colors that matched the buttons on the controller. At first glance, it reminded me of older phone keyboards where you had to press a button multiple times to key a letter.

The layout below makes more sense to me because you would use up/down/left/right to select the pair and B/A to select the letters. Select would switch between the two grids of letters. Obviously the layout of letters could be improved but I did this as an example.
keyboard.png
keyboard.png (7.36 KiB) Viewed 2648 times
Either way, it's great that you are trying to improve text input! Most of the keyboards in commercial NES games were terrible so this is a welcome improvement. :)
User avatar
dustmop
Posts: 136
Joined: Wed Oct 16, 2013 7:55 am

Re: LotusText - easier text input on the NES

Post by dustmop »

Interesting. I was holding off on using select in case I wanted to add things like punctuation or special characters. Also, select is pretty far away from any other buttons; I would anticipate that needing to press it often (~every 2 characters) would be very uncomfortable.

I totally understand the critique of being less elegant than Value's 4-button version, which is why characters are only typed upon release of A/B, and why the detection of releasing them is smoothed slightly. You don't have to let go of A+B at exactly the same time, more like within 8 frames of each other. It's not quite so bad once you spend a bit of time with it, certainly better than pre-T9 input. I imagine (and I could be totally wrong here), that a game that uses this kind of input extensively would cause users to grow pretty significant muscle memory for the UX.
lidnariq
Posts: 10677
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: LotusText - easier text input on the NES

Post by lidnariq »

You might find the fitaly keyboard interesting. (fitaly.com, wikipedia)
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: LotusText - easier text input on the NES

Post by tepples »

Previous topics mentioning Valve's flower:
zzo38
Posts: 1080
Joined: Mon Feb 07, 2011 12:46 pm

Re: LotusText - easier text input on the NES

Post by zzo38 »

Adding support for Famicom keyboard would be another way; if Famicom keyboard is not connected then it can display the on-screen text entry
[url=gopher://zzo38computer.org/].[/url]
Post Reply