While it did mildly suck that the game was unrunnable in V86 mode from OS/2 or Windows 95, I can’t be too upset that Ultima VII used this trick.
The result was a game more sprawling and intricate than anything else that would be seen for decades. And it ran buttery smooth under MS-DOS in 8MB on a Gateway 2000 486DX2/50.
I don’t think the memory manager can claim that much credit.
IIRC, the typical way to access high memory was through DPMI, a protected mode extension. The “unreal mode” used by Ultima VII offered the same flat memory access, but without the slight performance overhead of running the CPU in actual protected mode.
Considering that literally every other high-performance game of the era (e.g. Doom) used protected mode, I’m inclined to think U7 would have been just fine. Maybe the unreal mode made a slight difference on an older 386, but was it worth the configuration headache of having everyone edit their CONFIG.SYS? Probably not.
Did any other contemporary CPU have such arcane operating modes? I have a general memory that the Motorola 68K had user and supervisor modes but the concept seemed much more straigtforward. Why did developers tolerate this mess?
This is all for backwards compatibility. Unreal mode is kind of an "accidental" mode that was not created intentionally by Intel. Intel's idea was that the processor would start in the backwards-compatible real mode, and if you switched to protected mode you would never look back.
But real mode was implemented on top of logic designed for protected mode, because that is a simpler way to do things (think of it like protected mode, but you're not protecting anything).
So you go into protected mode, mess with things, switch back to real mode (all unintended by Intel) and you're in “unreal mode”.
> Why did developers tolerate this mess?
The hardware was cheap, performance was decent, and there were plenty of customers.
Less accidental; more like undocumented. BIOSes have used Unreal Mode, EMMs/XMSs can or temporarily use Unreal mode, Intel's SMM use it. There's even some evidence modern processors still support & use it.
One downside to Unreal Mode is that leaves the processor in in a state where naughty or non-standard TSRs, Interrupts, BIOS ROM code, and programs can cause hard lock ups.
The result was a game more sprawling and intricate than anything else that would be seen for decades. And it ran buttery smooth under MS-DOS in 8MB on a Gateway 2000 486DX2/50.