P96 v3.0

Nueva versión del paquete de software RTG para Amiga “Picasso96” o “P96”. Entre las muchas novedades que encuentras en la lista podemos citar, el arrastre de la pantalla, incluido el descenso de toda la pantalla con posibilidad de mostrar una segunda pantalla y los controladores agregados para la CyberVision con compatibilidad API Warp3D

Todas las novedades del P96 3.0:

– Este es un GRAN cambio. Esta versión proporciona una característica nueva (importante), y es el arrastre de pantalla. Requiere soporte del conjunto de chips, es decir, el registro de comparación de línea VGA y controladores actualizados para incluir la nueva API.
– Los controladores para los chips Cirrus, los chips S3, el chip NCR y el chipset Tseng se han actualizado en consecuencia para proporcionar la nueva API.
– Tenga en cuenta que el arrastre de pantalla tiene ciertas restricciones que se derivan de la limitación de los chips VGA y las placas correspondientes:
– Debe haber suficiente memoria para contener al menos dos pantallas en la memoria de la tarjeta gráfica.
– Las dos pantallas deben compartir el mismo diseño de píxeles (es decir, truecolor, hicolor o colores indexados)
– Los colores de la pantalla superior no serán correctos para las pantallas indexadas ya que los chipsets VGA no incluyen el cobre, por lo que solo se puede cargar una paleta a la vez.
– Las pantallas de desplazamiento automático que permiten la panorámica horizontal no se pueden arrastrar. Ésta es una limitación del mecanismo de panorámica VGA.
– Las tramas planas (planas de 16 colores) solo se pueden arrastrar si la profundidad es idéntica.
– Se pueden mostrar como máximo dos pantallas a la vez, con la pantalla más superior alineada con la parte superior del monitor.
– La gestión de la memoria es completamente nueva. En particular, P96 intenta mantener la pantalla en el tablero si es posible. El código más antiguo podría haber eliminado por error características especiales del tablero sin desactivarlas primero.
– La gestión de la memoria para los modos planos se rompió por completo. Siempre asignó 4 veces más memoria de la solicitada. En su lugar, debería haber limitado la memoria a la memoria máxima VGA heredada disponible de 256K.
– Se actualizó la API del chip para permitir la señalización de la memoria planar máxima.
– La asignación y administración de mapas de bits se limpió mucho, pasando ahora por un asignador unificado y funciones modularizadas.
– En caso de que falle la asignación del mapa de bits, ahora se informa a la intuition V47 de un código de error adecuado.
– Intuition V47 comunica ahora los colores en P96, lo que permite el relleno adecuado de mapas de bits de color verdadero y de color alto, sin mirar a escondidas estructuras de intuition privadas.
– La activación y descarga de mapas de bits tenía un error y, en algunos casos, no se podían recuperar los mapas de bits para descargarlos. En particular, la asignación de mapa de bits y la verificación de descarga podrían haber estado en desacuerdo, eliminando un mapa de bits de la placa incluso si no fuera necesario.
– Se corrigió el manejo del modo de memoria. El código antiguo podría haber intentado rellenar un mapa de bits con un color con el modo anterior aún activo, provocando defectos al cambiar de plano a grueso o inverso.
– Las pantallas de color verdadero de tamaño insuficiente ahora se llenan con el color de fondo para reflejar lo que harían los modos de paleta.
– Se corrigió el dibujo del cursor en mapas de bits de tamaño insuficiente. El cursor ahora puede entrar en las áreas fuera del mapa de bits, excepto en los mapas de bits planos. Esto permite el desplazamiento adecuado de la pantalla superior en arreglos de pantalla dividida.
– El cálculo de la relación de aspecto de píxeles siempre asumió una pantalla de 4: 3, aunque VGA conoce otros aspectos, como 5: 4, o (hoy) 16: 9 y 16:10. Esta versión intenta ser inteligente y adivinar la proporción correcta de la pantalla del monitor para crear proporciones de aspecto de píxeles “agradables”.
– Los mapas de bits alineados ahora están alineados con los tamaños de página de MMU (no necesariamente 4K) y desperdician menos memoria.
– El relleno por inundación falló en puertos de rastreo de más de 1024×1024 píxeles. También se optimizó un poco.
– Desafortunadamente, deshabilitar el blitter Amiga también deshabilitó los VSprites nativos, aunque Bobs siguió funcionando. Ahora VSprites opera independientemente de Bobs.
– Se realizaron algunas mejoras menores en las funciones de BltPattern y Area para usar el redondeo adecuado. Esto reduce un poco el tamaño del código.
– La actualización de la paleta para los modos planos se rompió parcialmente y podría sobrescribir algunos colores.
– Si se cambia la profundidad de un modo plano, puede suceder que el código se olvide de actualizar los colores del sprite.
– Los controladores Cirrus542x y Cirrus5446 no habilitaron correctamente la doble bandera vertical. Si se establece el escaneo doble, el límite crítico
ya es de 512 líneas, no de 1024 líneas. El controlador Cirrus5434 ya hizo esto correctamente.
– Los controladores de chip S3Virge y S3Trio ahora admiten overclocking. Para habilitar esta función, agregue el tipo de herramienta OVERCLOCK = yes al icono del monitor.
¡Tener cuidado! El overclocking puede provocar artefactos, ruido de píxeles y una vida útil potencialmente reducida de los chips gráficos debido al sobrecalentamiento. Sin garantía y utilícelo bajo su propio riesgo.
– Las funciones de ajuste del reloj de píxeles para los chips Tseng ahora están configuradas en no-ops en lugar de dejar que la CPU se bloquee cuando rtg.lib intenta usarlas.
– En caso de que se solicite un objeto demasiado grande, ahora se fija la altura del objeto antes de intentar cargarlo en el hardware.
– Como LoadRGB32 () y SetRGB32 () se implementan sobre VecTable de todos modos, ambas funciones no requieren parche, por lo que se eliminó el parche superfluo. Además, algunos programas se llaman SetRGB32 () o LoadRGB32 () incorrectamente dentro de una interrupción. Rtg.library incluye ahora precauciones para ignorar tales llamadas en lugar de fallar.
– El controlador CyberVision olvidó quitar el servidor int nuevamente en caso de que no se encontrara memoria en la placa.
– En esta versión se incluyen nuevos chips y controladores de tarjetas. Los controladores CVisionPPC y 3DLabsPermedia2 son nuevos en esta versión.
– DisplayAlert () no eliminó el sprite de hardware de la pantalla y no cronometró la alerta correctamente. La alerta podría desaparecer tan rápido que no podría leerla.
– CalculcateBytesPerRow () ahora puede devolver 0, lo que indica una falla. Esto puede usarse para indicar que un mapa de bits es demasiado ancho para un chip en particular. Por ejemplo, los chips Cirrus no pueden tomar mapas de bits de más de 4096 bytes (¡no píxeles!)
– El cálculo de los tamaños de píxeles del modo de vídeo P96 es ahora mucho más inteligente y no solo usa el ancho y alto del modo de vídeo, sino que intenta adivinar la relación de aspecto del monitor de destino (5: 4,4: 3,16: 9 para nombrar algunos de los candidatos). Siempre que su monitor esté ajustado correctamente, esto le dará resultados más confiables.
– Como la intuition privada cambió en OS 3.2, el puntero de sprite de contrataciones ya no está disponible en esta versión de OS. Además, no debe intentar arrastrar pantallas con la tecla Amiga correcta, ya que esto puede dejar la intuition en un estado confuso. Funciona bien en 3.1.4 y versiones anteriores.
– Se agregaron las tarjetas gráficas mntmn a P96Mode y la enumeración del nombre de la información de la placa.
– Se corrigió un golpe de MuForce cuando un usuario intentaba conectar la placa a una configuración no existente en P96Mode.
– Se agregaron tarjetas gráficas mntmn a P96Mode.

Fuente del artículo