@Capehill
Quote:
Capehill wrote:@Maijestro
No SDL2, just intuition.library.
@Capehill
Did the pure intuition.library test, no SDL2 involved. Here's what I found:
First try, OpenScreenTags() with just Width/Height/Depth, no explicit SA_DisplayID:
Opening custom screen 1920x1080 via intuition.library only (no SDL2)...
Screen opened OK: 1920x1080
API reports success and the Screen struct says 1920x1080 — but the monitor only actually shows a 640x480 screen. So without an explicit DisplayID, something falls back to a wrong/default mode even though it claims success.
Second try, this time explicitly getting the mode ID via BestModeIDA() first and passing it through SA_DisplayID:
Workbench screen ModeID: 0x500c1300, dims 1920x1080
BestModeIDA for 1920x1080@24bpp returned: 0x500c1300
Screen opened OK with explicit DisplayID: 1920x1080
Same ID as the Workbench screen is already using, and this time the screen actually opens at 1920x1080 for real, monitor's happy.
So the system/driver can clearly do 1920x1080 fine, but only with an explicit correct DisplayID. Now digging into whether SDL2 on this setup actually ends up with the same 0x500c1300, or whether it's skipping the mode switch entirely — there's this bit in SDL_os4modes.c:
(SDL_memcmp(mode, &display->desktop_mode, sizeof(SDL_DisplayMode)) == 0) {
// Don't create another "Workbench"
return 0;
}
Since 1920x1080 happens to be my desktop resolution, this shortcut triggers and no new screen ever gets opened — it just reuses the existing Workbench screen. Wondering if that's related to what we're seeing in Unreal/ScummVM. Will report back once I've confirmed what's actually happening on the SDL2 side.
