noop wrote:Games will be able to measure port read latency properly and the rest will work the same.
Not really.
The first time you still pass through the virtualization layer, with extra overhead for the patching.
Besides, how many games, if any, do even measure port latency at all?
It doesn't make sense.
The delay times are given by Yamaha: 3.3 us and 23 us respectively. Nothing to do with reads.
The port-reads are done because with a regular IO cycle, you get the correct delay with 6 and 35 reads respectively (regardless of CPU-speed). So that is what most games hard-code as delays.
If you can't assume a fixed speed for the IO cycle, then why bother doing reads anyway? You can create delay loops with any kind of instruction. Choosing reads doesn't make sense in that scenario.