In Windows NT, there are only two I/O privilege levels used i.e. level 0 & level 3. Usermode programs runs in privilege level 3. All usermode programs should talk to a device driver that arbitrates access i.e. to minimise conflicts.
...
Yeah, that's the rule. But if the at ring0 you had standardized hardware, you can write more efficient code.
>Define this "big problem nowadays." in terms of numbers. One could write a kernel mode driver for I/O level 0 access. Most PC games talks to DirectInput or xInput APIs i.e. userland programmers do not have worry about specific implementations i.e. makes development easier.
If those implementations were standardized like 8253 example I gave or even VGA standard modes, you can have more efficient code. On Amiga, writing to OCS registers works for all OCS/ECS/AGA amigas.
>...IF you notice with PC GPU(a type of stream co-processor array) market, they annually change their micro-architecture i.e. they went from SIMD(Geforce 4 TI), VLIW (Geforce FX), SIMD (Geforce 6/7), SIMT(Geforce

, MIMT**(Geforce GT300). “Hitting the metal” requires userland software rewrites.
Hitting the metal can be done and product enhanced. I still use same I/O ports and memory address of A000:0000 for VGA access on ISA-based VGA cards, VESA-based VGA cards, PCI-based VGA cards, and AGA-based VGA cards. So they improved the video cards and yet maintained backward compatibility at hardware level.
>The Xbox 360 controller assumes lack of PC keyboard access. Note that, the mouse is one form of analogue control.
But mouse is usually read as digital data so it's more exact than reading an analog value which tends to fluctuate between various values.
>In real world controls, analogue controls reigns supreme.
I wasn't speaking from marketing point of view-- but one of ease of use and learning in a majority of games.