video/mac.cpp has some code to force the view depending on the monitor type, which is what causes the weirdness when using a machine with built-in video plus a card. That was considered the best possible solution ~10 years ago to get the right aspect ratio for the full-page display (3:4), can we do something that sucks less now?
I’ve thought about this a bit, and I can’t think of a simple solution yet. Two things that won’t work:
- Using a machine configuration setting for the monitor type, but the time you can read the I/O port to find out what it is, it’s too late to set the screen’s physical aspect ratio. You can’t read I/O ports before the machine starts, but you need to set screens’ physical aspect ratios before layout geometry is calculated.
- If you put the screen in a slot device representing the monitor, its tag changes depending on the monitor type. Slot cards are set up too late to tell device_screen_interface things what the actual screen tags are.
Another annoyance is that there’s no way from within a layout to get a screen’s aspect ratio by tag. That’s still only exposed by index, and screen indices change depend on card setup.
I guess we just leave it for now.