es/Dynamic Z: Difference between revisions
Line 31: | Line 31: | ||
== Comparativa entre Dynamic Z y DSX == | == Comparativa entre Dynamic Z y DSX == | ||
DSX | DSX tambien conocido como Dynamic Sprite Patch, es un parche para sprites dinamicos pero que trae varias desventajas. | ||
* Solo permite un área en la VRAM de 128x32, esto significa que como máximo permite 4 sprites de 32x32 o 1 de 64x64. | |||
* Utiliza un buffer para armar los cuadros de animación del sprite dinámico, lo que termina siendo lento, ya que, debe transferirlos primero a el buffer y luego transferir el Buffer a la VRAM, esto produce bastante Slowdown y es muy notorio sobretodo en LoRom. | |||
* El hijack utilizado es riesgoso, bajo ciertas cirscunstancias puede terminar generando glitches gráficos graves. | |||
Dynamic Z V3.5 se supone que dejaría obsoleto al DSX, sin embargo, el staff de SMWC nunca quizo realizar una remoderación de sprites dinámicos a pesar que Dynamic Z V3.5 tenia mayores capacidades en todo aspecto. | |||
Dynamic Z V3.5 permite un area de 128x64, por lo tanto, permite el doble de sprites dinamicos, además permite tambien sprites de 48x48, dando mayor flexibilidad de uso. Si se utiliza el modo 50% más, permite 128x96, 3 veces más que el DSX, además permite sprites de 80x80. Tambien permite sprites de 112x112 y de 96x96 si se utilizan 30FPS. | |||
Dynamic Z V3.75 permite lo mismo que el Dynamic Z V3.5 solo que ahora hay flexibilidad total de los tamaños, además permite incrementar la cantidad de sprites sacrificando Scanlines. | |||
Dynamic Z no tiene glitches graficos y no utiliza buffer además por lo que es mucho más rapido y produce menos slowdown. | |||
== Instalación == | == Instalación == |
Revision as of 01:11, 28 September 2020
English | Português | Español | 日本語 |
Es una librería para el Super Mario World creada por anonimzwx que comunica la PPU (Unidad Procesadora de Imagen) con la lógica de los distintos recursos del ROM mediante un sistema de Mirrors. Actualmente esta en la proceso la versión v3.75.
Funcionalidades
- Soporte para Sprites Dinámicos: Sprites que pueden cargar el cuadro de animación que necesitan en la memoria de video (VRAM) en cada iteración del juego.
- Soporte para Sprites Dinámicos con Memoria Compartida: Sprites Dinámicos pero que todas sus copias usan el mismo cuadro de animación al mismo tiempo y usan el mismo espacio en la memoria de vídeo.
- Soporte para Sprites Semi-Dinámicos: Sprite que carga todos sus cuadros de animación en la memoria de video (VRAM) cuando esta en la pantalla, todas sus copias usan el mismo espacio en la memoria de vídeo.
- Soporte para Sprites Dinámicos de 2 fases: Sprites Dinámicos pero que cargan la mitad de un cuadro de animación en una iteración y la otra mitad en otra iteración, esto permite un Sprite de gran tamaño pudiendo alcanzar tamaños de hasta 112x112.
- Soporte para Sprites con Rotación y Re-escalamiento: Sprites Dinámicos pero que pueden rotar sus cuadros de animación o re-escalarlos.
- Cambiar gráficos en tiempo real.
- Cambiar paletas de colores en tiempo real.
- Cambiar tilemaps en tiempo real.
- Sistema de Tinte-Saturación-Valor (HSV) para paletas de colores.
- Sistema de Rojo-Verde-Azul (RGB) para paletas de colores.
- Cambiar bloques del Foreground para modificar el terreno en tiempo real.
- Cambiar gráficos o paletas de colores del Player en tiempo real, permitiendo Players personalizados.
- Sistema de OAM propio con prioridad y que permite usar los 128 tiles de la OAM simultáneos.
- Modo 50% más: Permite eliminar ciertas rutinas de DMA originales del juego para poder procesar mayor cantidad de recursos dinámicos.
- Widescreen (solo para SA-1): Permite eliminar scanlines del juego para poder procesar mayor cantidad de recursos dinámicos, esto hara que la pantalla se vea como la pantalla panorámica de las películas.
- Mirror de 420B.
- Optimizaciones para la rutina de NMI handler.
Complementos
- DRAdder: Herramienta para añadir recursos dinámicos al ROM como GFX, tilemaps o paletas y comunicarlos con la lógica.
- Installer: Herramienta para instalar más facil el parche en el rom y seleccionar las funcionalidades deseadas.
Comparativa entre Dynamic Z y DSX
DSX tambien conocido como Dynamic Sprite Patch, es un parche para sprites dinamicos pero que trae varias desventajas.
- Solo permite un área en la VRAM de 128x32, esto significa que como máximo permite 4 sprites de 32x32 o 1 de 64x64.
- Utiliza un buffer para armar los cuadros de animación del sprite dinámico, lo que termina siendo lento, ya que, debe transferirlos primero a el buffer y luego transferir el Buffer a la VRAM, esto produce bastante Slowdown y es muy notorio sobretodo en LoRom.
- El hijack utilizado es riesgoso, bajo ciertas cirscunstancias puede terminar generando glitches gráficos graves.
Dynamic Z V3.5 se supone que dejaría obsoleto al DSX, sin embargo, el staff de SMWC nunca quizo realizar una remoderación de sprites dinámicos a pesar que Dynamic Z V3.5 tenia mayores capacidades en todo aspecto.
Dynamic Z V3.5 permite un area de 128x64, por lo tanto, permite el doble de sprites dinamicos, además permite tambien sprites de 48x48, dando mayor flexibilidad de uso. Si se utiliza el modo 50% más, permite 128x96, 3 veces más que el DSX, además permite sprites de 80x80. Tambien permite sprites de 112x112 y de 96x96 si se utilizan 30FPS.
Dynamic Z V3.75 permite lo mismo que el Dynamic Z V3.5 solo que ahora hay flexibilidad total de los tamaños, además permite incrementar la cantidad de sprites sacrificando Scanlines.
Dynamic Z no tiene glitches graficos y no utiliza buffer además por lo que es mucho más rapido y produce menos slowdown.
Instalación
WIP
DRAdder
DRAdder o Dynamic Resource Adder, es un tool para insertar recursos dinámicos al ROM, esto incluye paletas, gráficos y tilemaps.
Uso
- En la carpeta "Dynamic Resources" agrega todos los recursos dinamicos como graficos, paletas o tilemaps que seran insertados al ROM.
- En el archivo "ResourceList.txt" veras lo siguiente:
- Para los sprites, agrega en la etiqueta correspondiente los nombres.
- Para otros codigos, como codigos de bloques o codigos de uberasm, puedes añadir la ruta del archivo debajo de la etiqueta OTHER:
- Ejecuta el programa "DynamicResourceAdder.exe" siguiendo las instrucciones. Otra opción es usarlo en la linea de comando con el comando
PIXI: .Normal .Cluster .Extended OTHER:
PIXI: .Normal Klaptrap Klump Zinger .Cluster Butterfly SmallFish .Extended OTHER:
PIXI: .Normal Klaptrap Klump Zinger .Cluster Butterfly SmallFish .Extended OTHER: ./Uberasm Tool/level/Level105.asm
DynamicResourceAdder <nombre del rom.smc> <lista de recursos.txt> <carpeta de pixi>
<lista de recursos.txt> y <carpeta de pixi> son optativos.
Crear Codigos para usarlos con el Tool
En la primera linea del codigo agrega una linea que diga:
;@<nombre de grafico>.bin
Ejemplo:
;@Zinger.bin
El archivo puede ser de cualquier formato, no es necesario que sea ".bin".
Para agregar multiples recursos por archivo deben ir separados por ",", Ejemplo:
;@GFX.bin,Tilemap1.stim