Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flip phone device overlay #39

Closed
XerTheSquirrel opened this issue May 28, 2019 · 8 comments
Closed

Flip phone device overlay #39

XerTheSquirrel opened this issue May 28, 2019 · 8 comments

Comments

@XerTheSquirrel
Copy link
Member

A new overlay for flip phone device emulation is needed (currently by SquirrelJME). Note that any overlays for ColecoVision, Intellivision, and Atari Jaguar systems will not work here due to lack of information on buttons and the number of available buttons.

Specifically the following keys are required:

  • Up
  • Down
  • Left
  • Right
  • Select
  • Soft 1 (Top-left button)
  • Soft 2 (Top-right button)
  • Talk/Call (vertical green phone facing left)
  • End/Hangup (horizontal red phone facing down)
  • Camera
  • Back
  • Speaker
  • Volume Up
  • Volume Down
  • 1 🖂 or 1 ➿ (Voicemail)
  • 2 ABC
  • 3 DEF
  • 4 GHI
  • 5 JKL (tactile aid)
  • 6 MNO
  • 7 PQRS
  • 8 TUV
  • 9 WXYZ
  • * Shift (Star, Shift)
  • One of these pairs:
    • Space on zero:
      • 0 + ␣ (Zero, Plus, Space)
      • # (Pound)
    • Space on pound:
      • 0 + (Zero, Plus)
      • # ␣ (Pound, Space)

This can be seen in the following picture of a Kyocera Dura XT:
image

@hizzlekizzle
Copy link
Contributor

I can probably help out with this, though my overlays are typically pretty ugly, unfortunately. I can at least get the functionality and layout and someone else can pretty it up.

I do have some questions, though: what are you mapping these functions to in the core? It looks like too many things for the retropad, so I'm assuming retrokeyboard?

Modifier keys like shift are weird in RetroArch. You can't just call shift plus whatever and have it do what it's supposed to, but if someone presses and holds shift on the overlay and then presses another key, it should work. Is that good enough?

@XerTheSquirrel
Copy link
Member Author

Modifier keys like shift are weird in RetroArch. You can't just call shift plus whatever and have it do what it's supposed to, but if someone presses and holds shift on the overlay and then presses another key, it should work. Is that good enough?

There is no actual shift key on phones, that key is just the star key. If you press it, it would send * to the device (same with the number keys and pound for their respective symbol). The stuff below the big number part is just a helper because there will be text input on the device where you have to press a button to enter in a letter (for example b requires pressing 2 twice, but the device will only ever know that 2 was pressed). I will note though that having the extra letters and symbols below the primary symbol just have to be on the key graphic itself.

I do have some questions, though: what are you mapping these functions to in the core? It looks like too many things for the retropad, so I'm assuming retrokeyboard?

That is to be determined whether it be a Retropad or Retrokeyboard. The minimum set of buttons are: Up, Down, Left, Right, Select, Back, End, Soft 1 (L), Soft 2 (R), 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, Star, and Pound.

SquirrelJME right now (outside of RetroArch) has the following key bindings on the keyboard:

  • Up/Down/Left/Right/0/1/2/3/4/5/6/7/8/9/Star/Pound to their respective keys.
  • Back to Backspace.
  • End to Escape.
  • Select to Enter.
  • Soft 1 (L) to F1.
  • Soft 2 (R) to F2.

@XerTheSquirrel
Copy link
Member Author

XerTheSquirrel commented Jun 10, 2019

Okay, so I defined a bare minimum that will fit on RetroPad and it is defined as follows:

/* SOFT LEFT. */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_SELECT, "Soft 1 (Left Shoulder)"},

/* SOFT LEFT. */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_START, "Soft 2 (Right Shoulder)"},

/* [1  o~o] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_X, "1 Voicemail (Game A)"},

/* [2  abc] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_UP, "2 ABC (Game Up)"},

/* [3  def] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_A, "3 DEF (Game B)"},

/* [4  ghi] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_LEFT, "4 GHI (Game Left)"},

/* [5  jkl] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_L2, "5 JKL (Game Fire/Select)"},

/* [6  mno] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_RIGHT, "6 MNO (Game Right)"},

/* [7 pqrs] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_Y, "7 PQRS (Game C)"},

/* [8  tuv] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_DOWN, "8 TUV (Game Down)"},

/* [9 wxyz] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_B, "9 WXYZ (Game D)"},

/* [*  shf] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_L, "Star (Shift)"},

/* [0    +] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_R2, "0 Operator (Plus)"},

/* [# spac] */
{0, RETRO_DEVICE_JOYPAD, 0,
	RETRO_DEVICE_ID_JOYPAD_R, "Pound (Space)"},

It looks like this:

image

@hizzlekizzle
Copy link
Contributor

Ok, that's very doable. Would you care to try this one I whipped up? It's meant for portrait orientation:
https://www.mediafire.com/file/brvy3w3fnmnxfm9/j2me_overlay.zip/file

@XerTheSquirrel
Copy link
Member Author

Ok, that's very doable. Would you care to try this one I whipped up? It's meant for portrait orientation:
https://www.mediafire.com/file/brvy3w3fnmnxfm9/j2me_overlay.zip/file

Hi! This one will work! Thank you!

@hizzlekizzle
Copy link
Contributor

hey, no problem :)

I'll get it pushed into the repo tomorrow.

@XerTheSquirrel
Copy link
Member Author

hey, no problem :)

I'll get it pushed into the repo tomorrow.

Cool! Thank you!

@hizzlekizzle
Copy link
Contributor

Alright, closed by ecccb45

Let me know if it needs anything else added to it in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants