2 puntos por GN⁺ 2025-01-06 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2025-01-06
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.

    • El proyecto xfree86 intentó resolver esto, pero ese enfoque no se mantuvo en los forks de Xorg.
  • 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.

    • Es posible que la BIOS ROM de la VGA sea un wrapper de VBE, lo que podría incluir instrucciones IN y OUT para comunicarse con los puertos de E/S de VBE.
  • 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.