TIPO DE DATO `ilbm.datatype' para PPC (WarpUP) © 2001 de Stephan Rupprecht Todos los derechos reservados ASPECTOS LEGALES El tipo de dato `ilbm.datatype' es propiedad de: Copyright © 2001 Stephan Rupprecht. Todos los derechos reservados. Este programa es gratuito, así que no se exige ningún tipo de donación económica. La redistribución se permite siempre que el paquete se distribuya sin modificaciones. El autor no se responsabiliza de cualquier daños causado por el uso (o mal uso) de esta documentación y/o del/de los programa/s que describe. Todas las marcas registradas mencionadas son propiedad de sus respectivos dueños. REQUERIMIENTOS Cualquier ordenador Amiga® (o compatible) con, al menos, la versión 3.0 del sistema operativo, microprocesadores 68020-060 y PPC603 o superior ejecutando WarpUp versión 4/5, tipo de dato `picture.datatype' versión 43 y algunos megaoctetos de memoria libre (una imagen ILBM 1024x768x24 requiere unos 3.5 Mo)... recuerde que ¡el tipo de dato carga siempre toda la imagen en memoria antes de iniciar la descodificación de ésta! ¡Esto es más eficiente pues se reducen el número de cambios de contexto! Se recomienda CGX o P96 con la opción Planes2Fast activada (importante para la velocidad). DESCRIPCIÓN Se trata de un tipo de dato `ilbm.datatype' para procesadores PPC que ejecuten WarpUp versión 4 o 5. Para alcanzar la velocidad máxima en su sistema debería equiparlo con un sistema RTG que soporte mapas de bits planares en memoria Fast (FBlit también funciona). BANCOS DE PRUEBAS Aquí tiene los resultados de PicBench. Agradecer a Denis Zwornarz el envío de estos resultados. Configuración: A4000/060/50MHz/604e/233MHz, sistema operativo 3.5 y WarpUp 5. Resolución | Tamaño | ilbm.datatype | ilbm.datatype | % | fichero | 44.24 68k |  45.2 PPC | -----------+---------+---------------+---------------+----- 320x256x8 | 70602 | 0.0603 s | 0.0538 s | 112% 232x745x24 | 453184 | 0.3602 s | 0.2427 s | 148% 640x480x8 | 37338 | 0.0580 s | 0.0354 s | 163% 640x512x8 | 188956 | 0.0976 s | 0.0513 s | 190% 1280x1800x8| 1157464 | 0.4618 s | 0.1545 s | 298% Media 182% Aquí están los resultados obtenidos en una prueba que he hecho. Los ficheros de prueba ILBM han sido tomados del ADevCD. Configuración: A4000/040/40 MHz/604e/200 MHz, reloj del sistema: 60 MHz, S.O. 3.9, WarpUp 5.1, planos en memoria no gráfica. Resolución | Tamaño | ilbm.datatype | ilbm.datatype | % | fichero | 44.25 68K | 45.5 PPC | -----------+---------+---------------+---------------+----- 320x200x5 | 12930 | 0.0632 s | 0.0572 s | 110% 1024x1024x4| 311868 | 0.1870 s | 0.0762 s | 245% 716x580x24 | 504876 | 1.3662 s | 0.3119 s | 438% 256x256x8 | 26516 | 0.0616 s | 0.0339 s | 182% 736x482x1 | 6906 | 0.0446 s | 0.0481 s | 92% 404x400x8 | 108628 | 0.0884 s | 0.0518 s | 170% 16x16x8 | 1300 | 0.0045 s | 0.0287 s | 15% Media 178% Como puede ver, con imágenes más grandes, mejores resultados (las imágenes muy pequeñas son un problema pues requieren demasiados cambios de contexto). Comparado con el tipo de dato ILBM suministrado con el sistema operativo 3.5 y superiores la diferencia podría ser incluso mayor. INSTALACIÓN Simplemente teclee `Copy ilbm.datatype TO SYS:classes/datatypes/'. USO No hay diferencia entre el uso de mi tipo de dato ilbmdt y el original. Puede configurar el tipo de dato a través de una variable de entorno llamada `classes/datatypes/ilbm.datatype' que debe contener las opciones deseadas. Por favor, use SetEnv (global) o Set (local) para crear la variable. Para que los cambios sean permanentes debe copiar la variable de `ENV:' a `ENVARC:'. La sintaxis de las preferencias es: HAM2TC/S,NOEHB/S,TC2HAM/S,DD=DONTDITHER/S,RTG=RTGMODE/S,CM=CHUNKYMODE/S HAM2TC/S: Convierte imágenes HAM a imágenes de colores reales (útil para usuarios de tarjeta gráfica). NOEHB/S: Convierte imágenes EHB, de manera que puedan ser visualizadas en una pantalla RTG (CGX/P96). TC2HAM: Convierte imágenes de colores reales en imágenes HAM (útil para usuarios ECS/AGA). DD=DONTDITHER/S: Desactiva el suavizado en pantallas de más de 15 planos y con el tipo de dato `picture' versión 44 o superior. RTG=RTGMODE/S: Obliga al tipo de dato a que reserve los mapas de bits en la memoria no gráfica incluso aunque su sistema parezca soportar ya esta opción. Si tiene instalado de FBlit de Stephen Brookes puede activar esta opción, aunque no garantizo que funcione con todas las aplicaciones. CM=CHUNKYMODE/S: Por defecto el tipo de dato escribe los datos de la imagen de 8 bits o más profundidad directamente en un mapa de bits. Cuando esta opción está activada los datos planares serán convertidos a datos en bloque, lo que reduce la velocidad de descodificación pero que permite al tipo de dato `picture.datatype' reajustar la paleta de las imágenes más rápidamente (puesto que la conversión planar->en bloque ya ha sido hecha por el PPC). CHUNKYMODE está activado por defecto cuando el tipo de dato `picture' CGX se encuentre instalado (funciona incluso con el error que tiene dicho tipo de dato). ERRORES DETECTADOS PlayCD se bloquea durante el arranque: este fallo es del WarpOS que espera que el proceso CLI tenga un nombre de comando... y no es el caso del servidor de animaciones de PlayCD. He incluido un parche para este programa en su versión 45.7 que corregirá el problema. Simplemente ejecútelo desde una ventana Shell (no requiere argumentos si PlayCD está situado en `SYS:Utilities'). La próxima versión de PlayCD (y WarpOS) no necesitará este parche. Bloqueos con RainBoot o AWeb: dos usuarios me han informado de este problema, que no he podido reproducir, aunque adivino que podría tratarse de un problema de la pila. Un usuario me ha informado de algunos fallos fatales desaparecían después de haberse actualizado a WarpUP 5.1. MI AGRADECIMIENTO A Oliver Roberts y Hubert Maier, hijo, por su ayuda. Dámaso D. Estévez por la traducción al español. HISTORIA 45.1 Primera versión pública. 45.2  La descodificación de las imágenes de color real (truecolor ;) con un plano máscara no funcionaba correctamente. He añadido un parche para soslayar un error en la versión 43 del tipo de dato `picture.datatype' (versión para CGX): Espero que esto no cause problemas con otros tipos de dato `picture.datatype'. 45.3  La escritura de palabras largas en direcciones impares dan lugar a la aparición de puntos gráficos erróneos (basura) en algunas tarjetas PPC (probablemente en las primeras series de tarjetas), por lo que he desactivado esta opción. Realizadas algunas simplificaciones en el código fuente. 45.3a Incluida la documentación en español de Dámaso D. Estévez. 45.3b Incluido un parche para el programa PlayCD versión 45.7 que corrige el problema del bloqueo durante el arranque. Basta con que ejecute el programa PlayCdPatch para corregir el problema. 45.4  He escrito mi primer programa en ensamblador para PPC :). La rutina planar->bloque utilizada para la descodificación de las imágenes de 24 bits está escrita ahora en ensamblador, lo que incrementa la velocidad sobre un 40%. Activado el sistema de preferencias. 45.5  Mejorada ligeramentela velocidad del código de conversión planar->en bloque. ¡Ups! el modo TC2HAM siempre escribía 8 bitplanos, lo que bloqueaba de forma salvaje las máquinas ECS (sólo 6 planos disponibles). Añadida la opción RTGMODE. 45.6  Añadida la opción CHUNKYMODE para un reajuste de paleta más rápido (permite usarlo también con el tipo de dato `picture' CGX). 45.7  Ahora soporta los ILBM CMAN (CMYK) generados por BME . AUTOR Por favor, informe de los errores detectados y envíe sus ideas a: Stephan Rupprecht Apfeldweg 1 D44359 Dortmund Alemania Envíe el correo electrónico a info@stephan-rupprecht.de Página http://stephan-rupprecht.de TRADUCCIÓN AL ESPAÑOL Copyright © 2001 Dámaso D. Estévez Todos los derechos reservados El traductor no se responsabiliza de la fiabilidad de la traducción: por favor, consulte la documentación original. Su modificación sin permiso previo y por escrito, como todas que hago, está terminantemente prohibida.