One Dog contra el stack gráfico de Windows 3.1
Introducción
- Mientras aprendía sobre hardware VGA, intenté resolver un problema que apareció al modificar controladores de video antiguos.
- Intenté instalar Windows 3.11 en un Asus Eee PC 1000H para obtener una salida de video adecuada.
Salida de video predeterminada en Windows 3.x
- De forma predeterminada, Windows 3.x renderiza a 640x480 en VGA con 16 colores.
- En la pantalla 1024x600 del Eee PC, esa resolución no es adecuada.
Problemas con el controlador Super VGA
- Windows 3.11 incluye controladores para adaptadores de video antiguos, pero no soporta Intel GMA 950.
- El controlador Super VGA soporta 1024x768 y 256 colores, pero no funciona.
Problemas del video de IBM PC
- VGA es un controlador de video muy específico diseñado por IBM en los años 80.
- SVGA significa una tecnología más avanzada que VGA, pero no es un estándar.
VBE (VESA BIOS Extensions)
- VBE es una interfaz que permite al software interactuar con el adaptador de video.
- VBE9x y VBEMP de BearWindows permiten usar VBE en Windows 9x y NT.
- SVGAPatch parchea el controlador Super VGA de 256 colores de Microsoft para usar VBE.
Problemas de SVGAPatch
- SVGAPatch genera problemas de compatibilidad con software de DOS.
- Al abrir el prompt de DOS, la pantalla se corrompe.
Estructura de Windows 3.x
- En Enhanced Mode se ejecutan tres sistemas operativos al mismo tiempo.
- El administrador de máquinas virtuales crea una máquina virtual y Windows en modo estándar se ejecuta dentro de la primera máquina virtual.
Estructura del controlador de pantalla
- Al seleccionar un adaptador de video en Windows Setup se instalan varios controladores.
- Consta de Grabber, Display Driver y Virtual Display Device (VDD).
Cómo funciona SVGAPatch
- SVGAPatch configura modos de video específicos y usa VBE para administrar la memoria de video.
- Reemplaza la funcionalidad de ciertos adaptadores de video para habilitar el soporte de VBE.
Rol de VDD
- Los programas de DOS esperan acceder al hardware directamente.
- Windows maneja eso mediante una implementación virtualizada.
Conclusión
- SVGAPatch ofrece una mejor salida de video usando VBE, pero hay que resolver los problemas de compatibilidad con programas de DOS.
- La compleja gestión de estado del VDD podría ser la causa del problema.
1 comentarios
Comentarios de Hacker News
Me sorprendió que en una PC moderna puedas cargar Windows 3.x y tener acceso inmediato al VGA predeterminado. Sin embargo, en Linux/BSD modernos es difícil obtener soporte de framebuffer VGA con aceleración por software sin el controlador y los archivos de configuración correctos.
La GUI de Windows 3.1 se veía más intuitiva, eficiente y fácil de usar que la actual.
El menú Inicio de Win11 es tan incómodo que casi no sirve para nada salvo para escribir una palabra clave y rezar.
Windows NT y 2k estaban en su mejor estado, y luego los gerentes de producto empezaron a hacer cambios.
KDE y GNOME se ven cada vez más atractivos con el paso del tiempo.
El problema de la corrupción de pantalla al abrir el prompt de DOS en modo ventana se debe a que el prompt de DOS se ejecuta en una VM separada.
Los autores de controladores de pantalla de Windows 3.x/9x usaban trucos de trap de puertos de E/S para virtualizar el acceso al hardware.
El dispositivo de pantalla virtual (VDD) actuaba como un multiplexor del hardware de video y enviaba comandos directamente al adaptador VGA real cuando una aplicación de DOS estaba en pantalla completa.
La GUI de Windows 3.x se ejecutaba en una VM de DOS, y el núcleo del hipervisor VMM32 la multiplexaba con otros VMs de procesos de DOS.
Al escribir el controlador de framebuffer VESA de Win9x descubrí que la forma de guardar y restaurar el estado de la GPU cambia según el fabricante.
En DOSBox, el modo texto se muestra con caracteres corruptos y, en el Eee PC, desaparecen algunos colores de la GUI.
Tengo 32 bits de Debian ejecutándose en un Eee PC, Firefox es pesado, pero mpv funciona lo suficientemente bien para reproducción de vídeo en streaming.
Al leer cómo funcionaban las viejas versiones de Windows basadas en DOS, siempre siento admiración.
Recuerdo haber contactado al soporte técnico de MS para pedir el disco de controladores cuando el ET4000H no era compatible con Windows 3.1.
Tengo un EEEPC 207g, y creo que sería divertido probar juegos retro en él.
Comparé el cambio de estado entre GUI y modo DOS y analicé los patrones.
El diseño del sitio web me recordó lo mejor de la vieja era de Internet y se siente refrescante.