From 702a7ad1a9d2e195dceea2635d7497e201a3e505 Mon Sep 17 00:00:00 2001 From: Patrice Mandin Date: Mon, 13 Oct 2008 20:50:20 +0000 Subject: [PATCH] Disable Xbios video driver if FVDI present, but still allow it to be used when setting SDL_VIDEODRIVER --- src/video/xbios/SDL_xbios.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/video/xbios/SDL_xbios.c b/src/video/xbios/SDL_xbios.c index 9cbb4a8ac..23d4e7129 100644 --- a/src/video/xbios/SDL_xbios.c +++ b/src/video/xbios/SDL_xbios.c @@ -53,6 +53,10 @@ #define XBIOS_VID_DRIVER_NAME "xbios" +#ifndef C_fVDI +#define C_fVDI 0x66564449L +#endif + /* Debug print info */ #if 0 #define DEBUG_PRINT(what) \ @@ -95,6 +99,8 @@ static unsigned long F30_palette[256]; static int XBIOS_Available(void) { unsigned long cookie_vdo, cookie_mil, cookie_hade, cookie_scpn; + unsigned long cookie_fvdi; + const char *envr = SDL_getenv("SDL_VIDEODRIVER"); /* Milan/Hades Atari clones do not have an Atari video chip */ if ( (Getcookie(C__MIL, &cookie_mil) == C_FOUND) || @@ -102,6 +108,17 @@ static int XBIOS_Available(void) return 0; } + /* fVDI means graphic card, so no Xbios with it */ + if (Getcookie(C_fVDI, &cookie_fvdi) == C_FOUND) { + if (!envr) { + return 0; + } + if (SDL_strcmp(envr, XBIOS_VID_DRIVER_NAME)!=0) { + return 0; + } + /* Except if we force Xbios usage, through env var */ + } + /* Cookie _VDO present ? if not, assume ST machine */ if (Getcookie(C__VDO, &cookie_vdo) != C_FOUND) { cookie_vdo = VDO_ST << 16;