stringtranslate.com

Biblioteca SVGA

SVGAlib es una biblioteca de gráficos de bajo nivel de código abierto que se ejecutaba en Linux y FreeBSD y permitía a los programas cambiar el modo de video y mostrar gráficos en pantalla completa, sin el uso de un sistema de ventanas . [3] [4] Junto con X11 y la Interfaz Gráfica General , fue una de las primeras bibliotecas que permitieron videojuegos gráficos en Linux .

Historia

La primera versión de SVGALib se basó en la versión 1.2 de otra biblioteca, VGALib de Tommy Frandsen. [5]

Varios juegos como Maelstrom de Ambrosia Software por Sam Lantinga , los juegos en primera persona Freaks! y Space Plumber [6] [7] que usan la biblioteca QDGDF, [8] [9] y el más famoso Doom de id Software (junto con una versión X11 ) y Quake (después del envío de un parche de terceros basado en el código fuente filtrado [10] ) fueron portados para usar SVGALib desde otros sistemas operativos, [11] al igual que Abuse del porter de Doom Dave Taylor .

Wolfenstein 3D también fue portado después de que su código fuente fuera lanzado en 1995, [12] así como los producidos por id Heretic , Hexen y Hexen II después de 1999, [13] y Descent y Descent II por Parallax Software después de 1998. [14] Ciertos puertos fuente para Doom , Quake y Abuse mantuvieron soporte para SVGALib. [15] La biblioteca también es compatible con elemulador MAME / MESS . [16]

Los juegos de Linux de primera parte que lo han soportado incluyen Alizarin Tetris , [17] Bdash , [18] Fleuch , [19] Hatman , [20] Intelligent FRAC , [21] Koules , [22] LinCity , [23] [24] Linberto , [25] Quadra , [26] Repton , [27] SABRE , [28] Thrust (también soportado GGI ), [29] Zarch , [30] y Zblast , [31] entre otros. [32] [33] [34]

SVGALib fue popular a mediados y finales de los años 1990. [35] [36] Jay Link escribió un libro de referencia, Linux Graphics Programming with SVGAlib , en 2000. [37] Alrededor del cambio de milenio, muchas aplicaciones que lo usaban migraron a X11 y SDL , [38] que podían (hasta SDL 2.0) hacer uso de SVGAlib como controlador de video. [39] [40] Esto se debió en parte a los riesgos de escalada de privilegios debido a que SVGAlib requería que las aplicaciones se ejecutaran desde la raíz . [41] [42] [43]

Referencias

  1. ^ Pitzel, Brad (12 de febrero de 1994). "Lanzamiento de Sasteroids v1.0 (juego arcade VGA)" . Consultado el 1 de octubre de 2023. Comenzó como un puerto directo de xasteroids para ejecutarse con svgalib (biblioteca de gráficos super-VGA de Harm Hanemaayer)
  2. ^ ab "SVGALIB" . Consultado el 16 de octubre de 2022 .
  3. ^ Link, Jay. "Tutoriales SVGAlib". www.svgalib.org . Consultado el 16 de octubre de 2022 .
  4. ^ Link, Jay (30 de septiembre de 1999). "Gráficos sencillos: guía para principiantes de SVGAlib". Developer.com . Consultado el 29 de septiembre de 2023 .
  5. ^ "svgalib(7): biblioteca de gráficos de bajo nivel para - Página del manual de Linux". linux.die.net . Consultado el 16 de octubre de 2022 .
  6. ^ Wilson, Hamish (3 de septiembre de 2024). "Construcción de una computadora para juegos retro Linux, parte 43: demonios y ángeles". GamingOnLinux . Consultado el 4 de septiembre de 2024 .
  7. ^ "Reseña de Space Plumber 1.1.0 RC1". Nixbit . Consultado el 29 de septiembre de 2023 .
  8. ^ Equipo de desarrollo de TTC (1 de enero de 2001). "Marco de desarrollo de juegos rápido y sencillo" . Consultado el 7 de junio de 2024 .
  9. ^ "Revisión de Quick and Dirty Game Development Framework 0.9.1". Nixbit . Consultado el 7 de junio de 2024 .
  10. ^ Wilson, Hamish (27 de febrero de 2023). "Construcción de una computadora para juegos retro Linux - Parte 27: Almas perdidas". GamingOnLinux . Consultado el 27 de febrero de 2023 .
  11. ^ Karim, Jawed. "Portar aplicaciones gráficas MS-DOS". ACM . Consultado el 29 de septiembre de 2023 .
  12. ^ DarkOne (10 de abril de 2005). "Enlaces de Wolfenstein3D". NewWolf . SourceForge . Consultado el 26 de septiembre de 2023 . Linux Wolf: se ejecuta en una ventana (xwolf3d) o con svgalib (swolf3d).
  13. ^ Wilson, Hamish (15 de marzo de 2022). "Construcción de una computadora para juegos retro con Linux - Parte 16: Todos estamos condenados". GamingOnLinux . Consultado el 29 de septiembre de 2023 .
  14. ^ ptesone (6 de abril de 2004). "¡Solo se puede ejecutar d1x como root!". Preguntas sobre Linux . Consultado el 4 de octubre de 2023 .
  15. ^ Wilson, Hamish (6 de noviembre de 2023). "Construcción de una computadora para juegos retro Linux, parte 34: abuso del sistema". GamingOnLinux . Consultado el 7 de noviembre de 2023 .
  16. ^ "Ayuda SVGAlib". Easy MAMECab . Consultado el 7 de diciembre de 2023 .
  17. ^ "Tetris de alizarina". El hogar de los desvalidos . Archivado desde el original el 3 de enero de 2006. Consultado el 29 de septiembre de 2023 .
  18. ^ "Freeware Boulder Dash Clones - Unix". Boulderdash - Sitio de fans de Boulder Dash de Martijn . Consultado el 7 de noviembre de 2023. Un clon de Boulder Dash para Linux con gráficos de 256 colores y sonidos digitalizados. Requiere la biblioteca svgalib.
  19. ^ Kroll, Jason (31 de enero de 2000). "GAMES FOCUS". Linux Journal . Consultado el 18 de diciembre de 2023 .
  20. ^ Wilson, Hamish (12 de diciembre de 2023). "Building a Retro Linux Gaming Computer Part 36: Entertainment for X Windows". GamingOnLinux . Consultado el 15 de diciembre de 2023 . Hatman - The Game of Kings es un clon SVGAlib impresionante pero poco elaborado de Pacman que tiene un paquete RPM en el disco, pero lamentablemente tenía el soporte de sonido deshabilitado en la compilación. Se presentaron varios otros clones de Pacman, pero este era el que tenía más potencial.
  21. ^ "FRAC inteligente". Caminantes sobre hielo . 20 de noviembre de 2003. Consultado el 29 de septiembre de 2023 .
  22. ^ "Cómo impresionar a tus amigos con RPM". Preguntas frecuentes oficiales de Red Hat Linux . Instituto Tecnológico de Massachusetts . Consultado el 29 de septiembre de 2023 .
  23. ^ Heuser, Werner; Hampton, Wade W. (2003-02-27). "Juegos". Linux Ecology HOWTO . Consultado el 29 de septiembre de 2023. lincity construye y mantén una ciudad/país. Debes construir y mantener una ciudad. Debes alimentar, alojar, proporcionar trabajo y bienes a tus residentes. Puedes construir una economía sostenible con la ayuda de energía renovable y reciclaje, o puedes arriesgarte y construir cohetes para escapar de un planeta contaminado y falto de recursos, tú decides. Debido a los recursos finitos disponibles en cualquier lugar, este no es un juego que puedas dejar por largos períodos de tiempo. Este juego es similar al juego de simulación comercial con un nombre similar. Este paquete proporciona archivos comunes a las versiones X y SVGALIB del juego.
  24. ^ Wilson, Hamish (4 de septiembre de 2023). "Construcción de una computadora para juegos retro Linux, parte 32: dos pasos adelante, un paso atrás" . Consultado el 29 de septiembre de 2023. Además de no estar en consonancia con la estética, la pantalla LCD también tenía la molesta costumbre de mostrar una advertencia sobre estar fuera de rango sobre lo que de otro modo parecía ser una pantalla funcional, especialmente al jugar juegos que utilizaban SVGAlib para gráficos. Podría solucionar esto iniciando ciertos juegos SVGAlib más flexibles, como la versión final de LinCity, antes de iniciar las aplicaciones ofensivas, ya que, por alguna razón, esto parecería calmar los nervios de la pantalla, pero estaba más que feliz de dejar esos dolores de cabeza atrás.
  25. ^ "Linberto". El tomo del juego de Linux . 2001-04-05 . Consultado el 2023-09-29 .
  26. ^ "Qundra". Caminantes sobre el hielo . 26 de febrero de 2012 . Consultado el 29 de septiembre de 2023 .
  27. ^ Marten, Jonathan (8 de diciembre de 2015). «KRepton versión 4» . Consultado el 29 de septiembre de 2023. KRepton fue escrito originalmente por Sandro Sigala para Linux utilizando la biblioteca SVGAlib, y luego reescrito en su totalidad utilizando las bibliotecas QT y KDE para la versión 1.0 de KDE.
  28. ^ Ayers, Larry (1 de julio de 1998). "Sabre: un simulador de vuelo de Svgalib". Linux Gazette . Consultado el 29 de septiembre de 2023 .
  29. ^ Payne, Dennis (20 de septiembre de 2021). "Open Game Source: Inertia Blast". Linkedin . Consultado el 29 de septiembre de 2023 . Cuando instalé Linux por primera vez, me topé con una nueva versión de Thrust. Fue brutalmente difícil, pero disfruté el juego. En ese momento lo ejecuté con svgalib, un antiguo sistema gráfico de consola que requería acceso root.
  30. ^ Van Os, Thom. «Software». Thom's Toys . Archivado desde el original el 2016-03-03 . Consultado el 2023-12-18 .
  31. ^ "zblast-svgalib". Linux Mint . Consultado el 29 de septiembre de 2023 .
  32. ^ "Índice de /pub/Linux/games/video". ibiblio . Consultado el 29 de septiembre de 2023 .
  33. ^ Weller, Michael. "svgalib(7) - Página del manual de Linux". die.net . Consultado el 29 de septiembre de 2023 .
  34. ^ "Juegos". Preguntas frecuentes oficiales de Red Hat Linux . Instituto Tecnológico de Massachusetts . Consultado el 29 de septiembre de 2023 .
  35. ^ Pranevich, Joseph (1 de abril de 1999). "Linux 2.2 y el software de consola Frame-Buffer". Linux Journal . Consultado el 29 de septiembre de 2023 . Dejando de lado las limitaciones, SVGALib ha demostrado ser una solución estable y popular para el problema de la consola y es la interfaz principal utilizada en Quake y otros juegos.
  36. ^ Wallis, Alistair (26 de mayo de 2008). "Entrevista adicional: '¿El estado de... los juegos en Linux?'". Desarrollador de juegos . Consultado el 29 de septiembre de 2023 . Siempre he sido un nerd de los videojuegos, por lo que para mí era importante ver cuánto podía jugar en este nuevo sistema. Recuerdo lo emocionante que fue hacer que Doom se ejecutara en pantalla completa: [la biblioteca de gráficos] svgalib era un monstruo que estoy seguro de que nadie extraña hoy en día. También me cautivó mucho Maelstrom, un puerto para Linux de un elegante clon de Asteroids para Mac.
  37. ^ timothy (26 de octubre de 2000). "Programación de gráficos para Linux con SVGAlib". Slashdot . Consultado el 29 de septiembre de 2023 .
  38. ^ "SDL Sasteroids". El tomo de juegos para Linux . 2005-04-01 . Consultado el 2023-09-29 . SDL Sasteroids es una revisión importante del juego sasteroids original para permitir su ejecución en sistemas modernos. Además de proporcionar una jugabilidad muy similar a la del juego sasteroids original, se han insertado algunas sorpresas y actualizaciones para que sea divertido para los fanáticos nuevos y antiguos. :) Sasteroids fue originalmente un juego de Asteroids escrito para svgalib.
  39. ^ "Preguntas frecuentes: uso de SDL". wiki.libsdl.org .
  40. ^ Armstrong, Ryan (18 de noviembre de 2020). "Old X Games". Zerk Zone . Consultado el 29 de septiembre de 2023 . Dicho esto, probablemente publique información sobre los juegos de SVGAlib en el futuro, ya que fueron un paso fascinante y olvidado hacia SDL.
  41. ^ "Itetris 1.6.1/1.6.2 - Ejecución de comandos arbitrarios privilegiados". Base de datos de exploits . 19 de diciembre de 2000. Consultado el 29 de septiembre de 2023 .
  42. ^ Wilson, Hamish (27 de febrero de 2023). "Construcción de una computadora para juegos retro Linux - Parte 27: Almas perdidas". GamingOnLinux . Consultado el 29 de septiembre de 2023 .
  43. ^ Zimbinski, Bob (1998-08-30). "Linux Quake HOWTO". 0.1.14 . Consultado el 29-09-2023 . Los servidores Quake y QuakeWorld pueden ser ejecutados por cualquier usuario. Sin embargo, los clientes Quake necesitan acceso a sus tarjetas de sonido y gráficos, lo que requiere privilegios que los usuarios normales no tienen. Una (mala) forma de lidiar con esto es ejecutar siempre Quake como root. Los administradores de sistemas responsables se estremecerán ante esta sucia sugerencia. Hacer que los binarios de Quake sean setuid root es una solución más aceptable. Quake puede ser ejecutado por usuarios normales y aún así tener los privilegios que necesita para acceder a los dispositivos de sonido y gráficos. Sin embargo, setuid presenta un riesgo de seguridad. Un usuario inteligente podría explotar un error o un agujero de seguridad en Quake para obtener acceso root a su sistema. Por supuesto, si no ejecuta un sistema multiusuario, esto puede no ser una gran preocupación.

Enlaces externos