The bottom line is that you need some form of virtualization or code patching.
Virtualization can be hardware-assisted as in Virtual 8086 mode, which emulates real mode, or as provided by VT-x and AMD-V which go far beyond that but require a much more recent CPU.
The dedicated interception mechanisms for Sound Blaster access would count as hardware-assisted virtualization, as well.
Code patching can be done either manually or in an automated fashion, namely by replacing relevant hardware accesses with function calls.
Purely software-based virtualization basically does the same, but dynamically at run-time. The best example is probably old-fashioned VMware.
The problem at hand is that no such virtualization software exists for pure DOS, which is why you have to resort to manual code patching for protected-mode games that do not use a well-known DOS extender.