UEFI Input Protocol Hold Down Key?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
chris13524
Member
Member
Posts: 45
Joined: Sat Feb 27, 2016 10:52 pm

UEFI Input Protocol Hold Down Key?

Post by chris13524 »

I'm reading through the UEFI specification so I can make a basic keyboard driver. It seems it supports key presses, but not if it's being held down. It does look like you can see if modifier keys are being held down, but not regular keys.

My use for this is for a simple pong game, it requires holding down keys to move the paddle. I suppose I could make the user press the key multiple times to get it into position, but this seems like a work around.
My operating system:
https://github.com/neonorb/aura
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: UEFI Input Protocol Hold Down Key?

Post by Brendan »

Hi,
chris13524 wrote:I'm reading through the UEFI specification so I can make a basic keyboard driver. It seems it supports key presses, but not if it's being held down. It does look like you can see if modifier keys are being held down, but not regular keys.

My use for this is for a simple pong game, it requires holding down keys to move the paddle. I suppose I could make the user press the key multiple times to get it into position, but this seems like a work around.
UEFI is designed to provide the "minimum" needed to boot an OS and run a small amount of low level utilities. It's not designed to be good for anything (e.g. for performance, for fault tolerance, for scalability, ...) and is especially not designed to be good for games.

Your choices are:
  • Make the user press the key/s multiple times
  • Use the modifier keys for paddle control
  • Use the "simple pointer protocol" (e.g. mouse) instead of using the keyboard
  • Write your own UEFI compatible USB keyboard driver (and get it digitally signed so that it's allowed to work on most systems), and make it provide non-standard support for whatever you like
  • Stop diddling with applications and write an OS like an OS developer would ;)

Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Post Reply