Originally Posted by robbbert
I tested this and the keyboard is having significant problems. For example typing R gives H, A gives @, etc. The current svn works properly.
Yes, it's a weird side-effect of the change I explain at this post.

In MC-1000, the joystick positions & buttons are equivalent to the pressing of certain keys:
  • Player one: up=I, down=Q, right=Y, left=1, button=9;
  • Player two: up=H, down=P, right=X, left=0, button=@

In the current svn, these keys are defined only as IPT_JOYSTICK_... ports. When you PASTE a text to the emulation, the corresponding characters are not inserted because MESS doesn't find a corresponding IPT_KEYBOARD port for them.

(Paste 10 PRINT "HELLO WORLD" and you'll see only RNT "ELLO WORLD"

It works when a PERSON types something, though, because, in the code, the joystick lines are "wired" to the keyboard lines.

What did I do? Defined separate, proper ports for the keyboard and joystick, and then "wired" them.

It did work (now pasting a text to the emulation does work... But now MESS' own keyboard mapping of joystick is causing that weird side-effect.

MESS keyboard-to-joystick mapping is:
  • Player one: up=UP, down=DOWN, right=RIGHT, left=LEFT, button=LEFT CTRL;
  • Player two: up=R, down=F, right=G, left=D, button=A

What is happening is that MESS is mapping these keys to the keys above, and we have:
  • UP->I, DOWN->Q, RIGHT->Y, LEFT->1, LEFT CTRL->9 (in fact, we get the equivalent to CTRL+9);
  • R->H, F->P, G->X, D->0, A->@

But it is enabled by default, so the keyboard is confused.

Probably, disabling MESS' keyboard-to-joystick mapping should solve the problem, but how can we do it?

In mc1000.ini I found an option "joystick" with value "1"; I changed it to "0", but the mapping is STILL enabled.

HOW CAN WE DISABLE MESS' JOYSTICK MAPPING when the machine starts, in a way that the user can enable it only when needed (i.e., to play a game using the arrow keys)? frown

Last edited by Ensjo; 10/31/10 02:51 AM.