forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Fast keyboard method, version 1.1
Goto page 1, 2  Next
 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development
View previous topic :: View next topic  
Author Message
Shine



Joined: 03 Dec 2004
Posts: 728
Location: Germany

PostPosted: Mon Jul 11, 2005 7:00 pm    Post subject: Fast keyboard method, version 1.1 Reply with quote

The D-Pad has 9 directions and there are 4 buttons, so you can enter very fast 36 different characters. With left and right trigger and "Start" for switching the character set, you'll have 76 characters. I've implemented a program for testing this concept (for 1.0 and 1.5 firmware version compiled, with source included) : fastkeyboard-1.1.zip

Copy the layout.txt to the root in the memory stick. The format is a combination of one of this chars:



followed by "=", followed by the special action or character to which this combination should be mapped to. If you press "Start", the second set is choosed, which is defined after the "s" in the layout.txt.

So for example to type "Hello ps2dev!" enter this:

start
left+square
start
left+triangle
up+square
up+square
right+cross
leftTrigger
right+square
down+cross
left+down+triangle
square
left+triangle
left+up+circle
start
right+up+cross

New in version 1.1: The D-Pad directions and the Start selection are displayed:



The layout should be enhanced, for example often used characters should be easier to access, but it is a good start and I'm sure once you've learned the keys, it could be nearly as fast as a normal keyboard.


Last edited by Shine on Tue Jul 12, 2005 6:49 am; edited 1 time in total
Back to top
View user's profile Send private message
madc



Joined: 27 Jun 2005
Posts: 17
Location: Nanking,China

PostPosted: Tue Jul 12, 2005 3:54 am    Post subject: Reply with quote

I think there must be some visible hint on the screen. I don't link PVNC's virtual keyboard, but the inpurt mode switch is necessary.
Back to top
View user's profile Send private message Visit poster's website
Saotome



Joined: 03 Apr 2004
Posts: 182

PostPosted: Tue Jul 12, 2005 6:21 am    Post subject: Reply with quote

How about the analog stick?

I've written an input system for the PS2 that uses the analog stick. It's pretty fast and simple.
(don't have a PSP yet so i don't know if it works as good as on PS2).

here are some screenshots:
pic1,pic2,pic3.
and the ELF-file (for PS2) if anyone wants to test it: test.elf.

the character set only shows up on screen if you push the analog stick in any direction, then you can select a character and enter it with the circle-button.
_________________
infj
Back to top
View user's profile Send private message
Tim



Joined: 12 Jul 2005
Posts: 38

PostPosted: Tue Jul 12, 2005 6:29 am    Post subject: Reply with quote

It'd probably be harder to use the psp analog stick, since you'd have less precision. If it worked... that'd probably be quite a good input method.
Back to top
View user's profile Send private message
zerocool563



Joined: 08 May 2005
Posts: 4

PostPosted: Tue Jul 12, 2005 6:31 am    Post subject: Reply with quote

Ive written a text input using the analog stick, not as pretty as youres, just shows the currently selected character on the screen, not all there positions etc, i want to get it released asap but im trying to intigrate it into a program im workin on and ive hit some snags if you want it though i could write a standalone of just that, let me know.
Back to top
View user's profile Send private message
Shine



Joined: 03 Dec 2004
Posts: 728
Location: Germany

PostPosted: Tue Jul 12, 2005 7:11 am    Post subject: Reply with quote

Perhaps my method could be combined with the analog stick: Instead of selecting single characters with the analog stick, like Saotome implemented it, you can select a group of characters with it and then select one char out of the group with the cross/circle/triangle/square. Could be easier than with the D-Pad (it's sometimes difficult to press the diagonal directions) and perhaps more than 9 directions are possible.
Back to top
View user's profile Send private message
Saotome



Joined: 03 Apr 2004
Posts: 182

PostPosted: Tue Jul 12, 2005 7:42 am    Post subject: Reply with quote

Maybe it's just me, but now that i look on your screenshot I don't think I could get used to that system. It's just as simple as entering the characters as binary codes with just two buttons, you just have to learn the binary codes of each char ;) j/k
ok, maybe its faster (if you practise long enough) for 'typing' (for example in a text editor) than my system, but for someone that just wants to enter some chars (for example his name in the hiscore-list after a game), it's better to keep it as simple as possible.
_________________
infj
Back to top
View user's profile Send private message
ktan91



Joined: 12 Jul 2005
Posts: 3

PostPosted: Tue Jul 12, 2005 7:46 am    Post subject: Reply with quote

i like one of those progs on the xbox... u use X[]/\O to select and joystick to select between boxes.. so theres nine i think and move ur joystick to the boxes and press the buttons that correspond w/ the letters ;D
Back to top
View user's profile Send private message
Shine



Joined: 03 Dec 2004
Posts: 728
Location: Germany

PostPosted: Tue Jul 12, 2005 7:55 am    Post subject: Reply with quote

Saotome wrote:
maybe its faster (if you practise long enough) for 'typing' (for example in a text editor) than my system, but for someone that just wants to enter some chars (for example his name in the hiscore-list after a game), it's better to keep it as simple as possible.


You are right, it is not as intutive as the OSK from Sony or your system, but perhaps could be enhanced with a better GUI, for example instead of displaying the directions of the D-Pad, arranging the 4 character groups in a circle, where you can see immediatly where to move the D-Pad (and in the center the group without moving the D-Pad) and displaying the button symbols for every character and with some nice animations.

Anyone who wants to implement it? Could be the new homebrew standard text input OSK :-)
Back to top
View user's profile Send private message
Shine



Joined: 03 Dec 2004
Posts: 728
Location: Germany

PostPosted: Tue Jul 12, 2005 7:58 am    Post subject: Reply with quote

ktan91 wrote:
i like one of those progs on the xbox... u use X[]/\O to select and joystick to select between boxes.. so theres nine i think and move ur joystick to the boxes and press the buttons that correspond w/ the letters ;D


Yes, you understood my program :-) Should be easy to port the 440 lines of C code to the xbox.
Back to top
View user's profile Send private message
liquid8d



Joined: 30 Jun 2005
Posts: 66

PostPosted: Tue Jul 12, 2005 10:20 am    Post subject: nice Reply with quote

Actually, at first I didn't think this would work at all, but when I saw your pic, it got me thinking it would be excellent with the right graphical implementations on screen.. I would suggest using the dpad and analog l/r/u/d each for changing chars.. using select as a switch that would give you 96 chars..

Only problem I see is not everyone would want to implement it, so it would be hard to get users used to it.

... okay here we go :)



This might be nice, problem now would become a smaller onscreen, and not fullscreen implementation...

Some key points, highlighting the key pressed (also select button when 'on') helps the user picture what they are selecting in their mind, also, letters on the buttons should be from top to bottom, left to right, just like you are reading, cuz that's how us english speaking ppl read :) This just makes it all more usable.

Thoughts?

LiQuiD8d
Back to top
View user's profile Send private message AIM Address
wulf



Joined: 13 Apr 2005
Posts: 81

PostPosted: Tue Jul 12, 2005 11:48 am    Post subject: Reply with quote

I have an idea... what about using the analog stick kinda like the iPod's pad? one could use it to "roll" past letters using a circular motion.. similar to the post above about it, but with all 26 letters at once...
Back to top
View user's profile Send private message
Agoln



Joined: 08 Jun 2005
Posts: 326
Location: Fort Wayne, IN

PostPosted: Tue Jul 12, 2005 3:31 pm    Post subject: Reply with quote

I have modified this orginial code just a bit to make it a little easier for anyone to use.

I have created three functions,

void getLayout() -- gets the layout from the text.

char getCharacter(SceCtrlData*,u32*) -- gets the next character that someone types and returns it.

char* getLine(char*,char) -- takes the first arg and adds the second arg. Almost a strcat, but it uses the R trigger to delete a key.

I will probably start using this in my IRC client until a *real* keyboard comes out.

Link: www.cs.purdue.edu/~ljbuesch/fkM.tar.gz
_________________
Lego of my Ago!
Back to top
View user's profile Send private message AIM Address
Arwin



Joined: 12 Jul 2005
Posts: 426

PostPosted: Tue Jul 12, 2005 7:15 pm    Post subject: Reply with quote

Shine wrote:
ktan91 wrote:
i like one of those progs on the xbox... u use X[]/\O to select and joystick to select between boxes.. so theres nine i think and move ur joystick to the boxes and press the buttons that correspond w/ the letters ;D


Yes, you understood my program :-) Should be easy to port the 440 lines of C code to the xbox.


Good job, I like it. I think it could work pretty well. Just missing the delete button, which could be the opposite from the shoulder button. Also I suggest the following changes:

1. Use the analog stick for selecting the right character group

The d-pad is a tad rough for selecting the diagonal directions.

2. Show only the character group that you are currently selecting.

This will make the input screen compact, and allow for a nice editing interface. You can always add a full layout as a help function.

3. Use the d-pad for cursor functions, walking through the text.

With these modifications, I think it should work very well!
Back to top
View user's profile Send private message
Kamilion



Joined: 01 Mar 2005
Posts: 24

PostPosted: Wed Jul 13, 2005 5:58 am    Post subject: Reply with quote

In my opinion, this would work fairly well for a SSH client implimented on the PSP. Additional input options would be able to use the two UARTS as well.
I'll look into it.
Back to top
View user's profile Send private message
qleyo



Joined: 06 May 2005
Posts: 21
Location: Nottingham, UK

PostPosted: Mon Jul 25, 2005 5:28 pm    Post subject: Reply with quote

So is there not a way to call the already existing keyboard feature on PSP?

Otherwise I am thinking of the 7280 text input feature, its left or right to run through the keys and that way we can use the analogue stick aswell.

Otherwise I'm stealing one of your keypad programs :-p I need keypad input.
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Feisar



Joined: 31 Jul 2005
Posts: 1

PostPosted: Sun Jul 31, 2005 9:09 am    Post subject: Reply with quote

I must admit, I like this idea. When my PSP arrives, I may try something similar. Supposedly there's non-keyboard methods of input for the PC that are used for people with disabilities which are just as good as a keyboard, so with the limited inputs on a PSP it makes sense to try something like this :)
Back to top
View user's profile Send private message
Souls85



Joined: 30 Jul 2005
Posts: 21

PostPosted: Sun Jul 31, 2005 10:40 am    Post subject: Reply with quote

here is my idea for a keyboard

then X would be shift
and triangle would be delete
Back to top
View user's profile Send private message Visit poster's website
spawn968



Joined: 31 Jul 2005
Posts: 1

PostPosted: Mon Aug 01, 2005 4:52 pm    Post subject: Reply with quote

While you guys are thinking of alternate ways to speed up keyboard entry, you might want to have a look at the dasher project at http://www.inference.phy.cam.ac.uk/dasher/ . I used to have this on my Ipaq and got proficient enough that it was faster than the handwriting recognition system. It was originally designed for people with disabilities, but I think that they'd agree that not having a keyboard is a bit of a disability in and of itself.
Back to top
View user's profile Send private message AIM Address
Arwin



Joined: 12 Jul 2005
Posts: 426

PostPosted: Mon Aug 01, 2005 10:35 pm    Post subject: Reply with quote

spawn968 wrote:
While you guys are thinking of alternate ways to speed up keyboard entry, you might want to have a look at the dasher project at http://www.inference.phy.cam.ac.uk/dasher/ . I used to have this on my Ipaq and got proficient enough that it was faster than the handwriting recognition system. It was originally designed for people with disabilities, but I think that they'd agree that not having a keyboard is a bit of a disability in and of itself.


It's a very interesting concept! But the advantage of a good system that does not rely on linguistics are that it's really lightweight - just some combining of controller data and key mappings and you're done. However, I do agree that the underlying principles of a system like dasher are the way to go if you really want something reasonably fast.

I would probably opt for a simple system that combines the two. Sentences are often very predictable (someone wrote a talking robot based on that principle) and a very large percentage of all tekst consists of just a very limited set of words and phrases.

I think I might have a go at this a little later on. You can use all kinds of linguistic properties of English for this. For instance, on the word level, certain letters normally never follow another certain letter. And the same goes for certain word categories. Certain words are almost always followed by other words. I guess the dasher works a lot like that, but I would like to see it a little more compact if possible, and perhaps also just text-only.

EDIT: I designed a first simple, low-space usage method first in Visual Basic, that has no complex logic or dictionaries and seems to work pretty nicely. I'll work on it some more at home - still need caps and symbols, but I do already have normal characters, numbers, space and backspace, and the dynamic on-screen help working. I'll post the design here later.
Back to top
View user's profile Send private message
Arwin



Joined: 12 Jul 2005
Posts: 426

PostPosted: Tue Aug 02, 2005 9:49 am    Post subject: Reply with quote

Hi Guys,

I've been working a bit. Let me know what you think!

p-sprint simple psp button keyboard
VB.NET proof of concept version
(c) 2005 Arwin van Arum

download:
http://www.niwra.nl/psp/p-sprint/p-sprint0.1.rar

screenshot:


C version for PSPSDK will follow soon.

Contact me on the forums or at arwin@niwra.nl if you want to use this system in your program. I don't want money for it, just want to design a standard interface with you guys. ;)

The idea is to use as few buttons as possible, preferably leaving the analog stick and R and L buttons free for text selection and/or mouse simulation.

I have taken an Oxford list of key occurrances, and mapped the keys according to how often they occur in the English language. The most used keys have the shortest sequence.

I have used a confirmation button because ultimately you can type very fast combinations, and systems that require a pause get in the way of that.

It is of course possible to combine this system with dictionaries and so on. But I want a good base that doesn't require anything else than (almost) direct key-mappings.

I also wanted something that would do with very little extra space for typing guidance. In theory, the outline as shown on the picture in the main program, should fit on a single line of text.

In this pc demo-version, the PSP keys are mapped as follows:

PSP - PC

directional pad - direction keys

triangle, circle, cross, square - num-locked keypad 8,6,2,4

SELECT (changes input mode) - num-locked keypad 0

Currently supported input modes:

normal
Type a key combination and press -> (right arrow on directional pad) to confirm sequence and output the key. Eg. 'x' -> 'e'
-> after another -> = space
<- after another <- = backspace

caps-lock (obvious)

numeric
Very simple, but funny. Circle is 0, Cross is 1, Square is 2, Triangle is 3. Again, confirm with '->'. If you want to type 4, simply press 2 (Square) twice, and then press '->.'

TO DO:
- add a symbol mode
- add up/down key function for special related characters (eg. e, é, è, E, É, etc.)
- add option to insert ascii/unicode keycode (easy combination with numeric mode)
- write a neat c-class for PSP for others to use (shouldn't be too hard, with so many nice sample code available)
Back to top
View user's profile Send private message
Souls85



Joined: 30 Jul 2005
Posts: 21

PostPosted: Tue Aug 02, 2005 10:41 am    Post subject: Reply with quote

wow thats complicated lol
not too bad Id have to actually try it on my psp to see if I liked it
also the dasher program would be a great idea. I can type almost 40 wpm with it.
_________________
Feel free to take a look at my website.
I made some pretty cool psp backrounds.
Back to top
View user's profile Send private message Visit poster's website
27Bstroke6



Joined: 07 Jul 2005
Posts: 23

PostPosted: Tue Aug 02, 2005 1:41 pm    Post subject: Reply with quote

I started a thread on Dasher (of which I'm a big fan) for the PSP sometime back. Please see:

http://forums.ps2dev.org/viewtopic.php?t=2506&highlight=dasher&sid=084746e7815ed53eff921dd06403bcbe
Back to top
View user's profile Send private message
Arwin



Joined: 12 Jul 2005
Posts: 426

PostPosted: Tue Aug 02, 2005 6:16 pm    Post subject: Reply with quote

Souls85 wrote:
wow thats complicated lol
not too bad Id have to actually try it on my psp to see if I liked it
also the dasher program would be a great idea. I can type almost 40 wpm with it.


Its really not that complicated, actually! This might help:

> 'i' > 't' > 's'

> 'r' > 'e' > 'a' > 'l' > 'l' > 'y'

Compare the colors of the button to the chart:



And you see that the colors give it away.

I'm also making a mono, single line input that needs just one extra line for showing how to type.
Back to top
View user's profile Send private message
Arwin



Joined: 12 Jul 2005
Posts: 426

PostPosted: Tue Aug 02, 2005 9:35 pm    Post subject: Reply with quote

I worked on making a compact interface:



about 470x40 :)

TO A MODERATOR PASSING BY:

Sorry for cluttering this topic. If you see a chance to move the p-sprint related posts to a separate topic, that would be highly appreciated.
Back to top
View user's profile Send private message
Arwin



Joined: 12 Jul 2005
Posts: 426

PostPosted: Wed Aug 03, 2005 12:14 am    Post subject: Reply with quote

And now a dynamic interface, demonstrated in this animated gif:



And if you want to test yourself (requires .NET Framework runtime):

http://www.niwra.nl/psp/p-sprint/p-sprint0.2.rar
Back to top
View user's profile Send private message
dlists99



Joined: 03 Aug 2005
Posts: 3

PostPosted: Wed Aug 03, 2005 8:19 am    Post subject: Reply with quote

Did any of you guys play Beyond Good and Evil? That had a great virtual keyboard method. It uses the analog-circular method shown above. But instead of fitting all of the characters into one circle, they kind of overlapped to give each character a wider range of the selection arc. They dealt with the overlap by making it more of a corkscrew rather than just a circle. So if you'd spin the analog one way you'd go lower in the characters and the other way you'd go higher. Its mildly difficult to explain but it worked out great.
Back to top
View user's profile Send private message
Arwin



Joined: 12 Jul 2005
Posts: 426

PostPosted: Wed Aug 03, 2005 8:28 am    Post subject: Reply with quote

dlists99 wrote:
Did any of you guys play Beyond Good and Evil? That had a great virtual keyboard method. It uses the analog-circular method shown above. But instead of fitting all of the characters into one circle, they kind of overlapped to give each character a wider range of the selection arc. They dealt with the overlap by making it more of a corkscrew rather than just a circle. So if you'd spin the analog one way you'd go lower in the characters and the other way you'd go higher. Its mildly difficult to explain but it worked out great.


I agree that was pretty decent. But say you were chatting, with my system you would fairly easily be able to keep most of your screen devoted to showing the conversation and related stuff. So that's why I'm going to continue with this system for a while.

Would love to hear some feedback on it, from someone who's tried it him/herself.
Back to top
View user's profile Send private message
cwbowron



Joined: 06 May 2005
Posts: 76
Location: East Lansing, MI

PostPosted: Wed Aug 03, 2005 11:38 pm    Post subject: OSK in pspChess Reply with quote

I had to use an OSK for the upcoming network interface version of pspChess and this is what I came up with:





The key layout is

LEFT/RIGHT - change character frame
TRIANGLE/CIRCLE/SQUARE/CROSS - select character
LTRIGGER - backspace
RTRIGGER - space (1x) / enter (2x)
UP - toggle shift lock

If anyone wants the code, let me know, or wait for the next release of pspChess (which could be a while)
Back to top
View user's profile Send private message Visit poster's website
Shine



Joined: 03 Dec 2004
Posts: 728
Location: Germany

PostPosted: Wed Aug 03, 2005 11:48 pm    Post subject: Reply with quote

This looks worse than the origninal Sony OSK, because you have to hit 11 keystrokes for some keys. What about arranging it in a 3x4 matrix? This would reduce the maximum number of keystrokes from one char to another to 6 at least.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development All times are GMT + 10 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group