there are known issues when trying to read the scancodes of similtanious keypresses, this appears to be a limitation in hardware and it can vary from machine to machine. this has been discussed before in the TTYT thread, there are solutions depending on the requirements of your program. one usefull thing is the windows keyboard entry buffer.
beware scancode overlapping issues, it requires a bit of logical thinking on your behalf. I myself managed to get a half decent implimentation of scancodes up and running for the TTYT mini game base code, but it has limitations with shifting. the same as you do.
so forget keystate() if you need to read any more than 2 keys at the same time. even if you do manage to get a decent implimentation of it yourself, its not garunteed to work on all keybaords, cheap keyboards have rubbish encoders, and laptops have generally DIRE encoders / decoders. some wont recognise space at the same time as the cursors, prooved time and time again in games on this forum.
its a bit of a grey area when it comes to detecting multiple scancodes in a single pass.
cheers Grant.
Ohd Chinese Ploverb say : Wise Eskimo, not eat yerrow snow.