The ASCII to Character table isn't my problem really. It's that I can't get access to the KeyCodes for Characters which share a key with a main key.

For instance. In the USA, to get the @ key, you use Shift and 2
The only Keys SDL tells you have been pressed are the Shift Key (via a modifier) and the 2 Key.

From this, one could wrongfully assume that to get the @ key, one just has to check for the Shift+2 keys..

However, on some Keyboards, the @ key is accessed by pressing the AltGr+Q keys

In the UK, the @ key is where the " key is in the USA. In Italy, it's where the Semi Colon should be.

I just want the damned @ key.. It shouldn't matter what country the keyboard is from. The OS knows about it, so SDL should be able to pick that information up. But apparently it's not that simple.

I set my Keyboard to AZERTY mode, pretended I was French, even played som accordian music in the background and drank strong coffee.. but SDL still was convinced that I had a QWERTY keyboard. SDL was technically right, but the settings should have told it to map the Q key to the A key (amongst others).

This is quite an international forum so I'm wondering how others are handling this.. Throughout the development of Crashblock, I've had to deal with all manner of internationalization issues.. but they've all been handled in code, by Delphi or FreePascal. SDL, I have little control over.

Apparently, SDL 1.3 formalizes the concept of the KeySym (which may solve the AZERTY issue), but I don't want to wait for 1.3 to come out.. and apparently, it works all the time on Linux.

So far, my investigations have led me to believe that the developer has to check the machine themselves, thus defeating the object of having a Direct Media Layer. If we can't trust SDL Input to give us the correct codes, what use is it?..

The answers on various forums appear to be "Allow the users to define their own game controls" well, that's fine.. apart from when the user wants to enter their name, or chat to another player.

Any ideas?