<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>SnesLab  - Recent changes [en]</title>
		<link>https://sneslab.net/wiki/Special:RecentChanges</link>
		<description>Track the most recent changes to the wiki in this feed.</description>
		<language>en</language>
		<generator>MediaWiki 1.39.5</generator>
		<lastBuildDate>Wed, 10 Jun 2026 12:31:01 GMT</lastBuildDate>
		<item>
			<title>SMWHub</title>
			<link>https://sneslab.net/mw/index.php?title=SMWHub&amp;diff=21265&amp;oldid=0</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=SMWHub&amp;diff=21265&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{Select Language|SMWHub}}  {| class=&amp;quot;wikitable&amp;quot; |- ! Nombre | SMWHub |- ! Autor | &lt;a href=&quot;/wiki/User:Anonimzwx&quot; title=&quot;User:Anonimzwx&quot;&gt;anonimzwx&lt;/a&gt; |- ! Lenguaje de programación | C# |- ! Plataformas | Windows, Linux |- ! Proposito | Framework de inserción de recursos All-in-one para Super Mario World |- | Github | [https://github.com/weierstrass1/SMWHub| SMWHub Repository] |}  == Introducción ==  SMWHub es una herramienta todo en uno para la inserción y gestión de recursos en Super Mario World. Su ob...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Select Language|SMWHub}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Nombre&lt;br /&gt;
| SMWHub&lt;br /&gt;
|-&lt;br /&gt;
! Autor&lt;br /&gt;
| [[User:Anonimzwx|anonimzwx]]&lt;br /&gt;
|-&lt;br /&gt;
! Lenguaje de programación&lt;br /&gt;
| C#&lt;br /&gt;
|-&lt;br /&gt;
! Plataformas&lt;br /&gt;
| Windows, Linux&lt;br /&gt;
|-&lt;br /&gt;
! Proposito&lt;br /&gt;
| Framework de inserción de recursos All-in-one para Super Mario World&lt;br /&gt;
|-&lt;br /&gt;
| Github&lt;br /&gt;
| [https://github.com/weierstrass1/SMWHub| SMWHub Repository]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
SMWHub es una herramienta todo en uno para la inserción y gestión de recursos en Super Mario World. Su objetivo es unificar en una sola aplicación las funcionalidades tradicionalmente proporcionadas por herramientas como PIXI, UberASM Tool, GPS, Dynamic Xtreme, HitmanTool y otras utilidades relacionadas, permitiendo administrar todos los recursos de un proyecto desde un único lugar.&lt;br /&gt;
&lt;br /&gt;
Además de centralizar la inserción de recursos, SMWHub incorpora diversas mejoras de calidad de vida orientadas a simplificar el desarrollo y mantenimiento de proyectos. Entre ellas se incluyen soporte para múltiples índices o rangos de índices, sistemas de recursos compartidos entre distintos tipos de inserciones y formatos embebidos que permiten almacenar información auxiliar directamente dentro de los archivos ASM.&lt;br /&gt;
&lt;br /&gt;
Actualmente, SMWHub permite integrar dentro del propio código ensamblador distintos tipos de datos que normalmente requerirían archivos externos, incluyendo configuraciones de sprites, archivos de Dynamic Xtreme (.dynamicinfo, .drawinfo y .effect), archivos binarios codificados en Base64 e información de hitboxes utilizada por sistemas de interacción personalizados.&lt;br /&gt;
&lt;br /&gt;
La herramienta también proporciona mecanismos para compartir rutinas, macros y defines entre distintos recursos del proyecto, facilitando la reutilización de código y reduciendo la duplicación de lógica común.&lt;br /&gt;
&lt;br /&gt;
SMWHub está diseñado para ser fácil de utilizar tanto por usuarios principiantes como avanzados. En su forma más simple, basta con ejecutar la herramienta para procesar e insertar automáticamente todos los recursos configurados en el proyecto. Para flujos de trabajo más complejos, también dispone de una interfaz de línea de comandos que ofrece opciones adicionales de automatización e integración.&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
&lt;br /&gt;
Artículo principal: [[es/SMWHub_instalation|SMWHub Instalación]]&lt;br /&gt;
&lt;br /&gt;
== Estructura de Carpetas ==&lt;br /&gt;
&lt;br /&gt;
Artículo principal: [[es/SMWHub_files_and_formats|SMWHub Archivos y Formatos]]&lt;br /&gt;
&lt;br /&gt;
== Funcionalidades ==&lt;br /&gt;
&lt;br /&gt;
=== Recursos Compartidos ===&lt;br /&gt;
&lt;br /&gt;
==== Macros Compartidas ====&lt;br /&gt;
&lt;br /&gt;
==== Rutinas Compartidas ====&lt;br /&gt;
&lt;br /&gt;
==== Defines Compartidos ====&lt;br /&gt;
&lt;br /&gt;
=== Parches ====&lt;br /&gt;
&lt;br /&gt;
=== Sprites ====&lt;br /&gt;
&lt;br /&gt;
==== Sprites Normales ====&lt;br /&gt;
&lt;br /&gt;
==== Cluster Sprites ====&lt;br /&gt;
&lt;br /&gt;
==== Extended Sprites ====&lt;br /&gt;
&lt;br /&gt;
==== Overworld Sprites ====&lt;br /&gt;
&lt;br /&gt;
=== UberASM ====&lt;br /&gt;
&lt;br /&gt;
==== Códigos de Nivel ====&lt;br /&gt;
&lt;br /&gt;
==== Códigos de Gamemode ====&lt;br /&gt;
&lt;br /&gt;
==== Códigos de Overworld ====&lt;br /&gt;
&lt;br /&gt;
=== Bloques ====&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Xtreme ====&lt;br /&gt;
&lt;br /&gt;
==== Archivos Embebido ====&lt;br /&gt;
&lt;br /&gt;
==== Recursos Dinámicos Compartidos ====&lt;br /&gt;
&lt;br /&gt;
=== HitmanTool ====&lt;br /&gt;
&lt;br /&gt;
==== Recursos Dinámicos Compartidos ====&lt;br /&gt;
&lt;br /&gt;
== Migración desde otras herramientas ==&lt;br /&gt;
&lt;br /&gt;
Artículo principal: [[es/SMWHub_migrations|SMWHub Migraciones]]&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
&lt;br /&gt;
* [[es/Asar| Asar]]&lt;br /&gt;
* [[es/Pixi| Pixi]]&lt;br /&gt;
* [[es/UberasmTool| UberasmTool]]&lt;br /&gt;
* [[es/GPS| GPS]]&lt;br /&gt;
* [[es/Bowsie| Bowsie]]&lt;br /&gt;
* [[es/Dynamic_Xtreme| Dynamic_Xtreme]]&lt;br /&gt;
* [[es/HitmanTool| HitmanTool]]&lt;/div&gt;</description>
			<pubDate>Sat, 06 Jun 2026 19:09:01 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:SMWHub</comments>
		</item>
		<item>
			<title>TCALL (SPC700)</title>
			<link>https://sneslab.net/mw/index.php?title=TCALL_(SPC700)&amp;diff=21264&amp;oldid=20625</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=TCALL_(SPC700)&amp;diff=21264&amp;oldid=20625</guid>
			<description>&lt;p&gt;capitalize other L&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:10, 6 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l127&quot;&gt;Line 127:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 127:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TCALL&amp;#039;&amp;#039;&amp;#039; (Table &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CALl&lt;/del&gt;) is an [[SPC700]] instruction that calls a subroutine whose 16-bit address is stored in the [[uppermost page]].  The low byte of the address of the vector (pointer to subroutine) is a function of the high nybble of the opcode, equal to $DE - n*2.  The high byte of the vector address is always $FF.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;TCALL&amp;#039;&amp;#039;&amp;#039; (Table &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CALL&lt;/ins&gt;) is an [[SPC700]] instruction that calls a subroutine whose 16-bit address is stored in the [[uppermost page]].  The low byte of the address of the vector (pointer to subroutine) is a function of the high nybble of the opcode, equal to $DE - n*2.  The high byte of the vector address is always $FF.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;No flags are affected.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;No flags are affected.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 06 Jun 2026 12:10:04 GMT</pubDate>
			<dc:creator>Xetheria</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:TCALL_(SPC700)</comments>
		</item>
		<item>
			<title>es/Dynamic Xtreme files and formats</title>
			<link>https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme_files_and_formats&amp;diff=21263&amp;oldid=21251</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme_files_and_formats&amp;diff=21263&amp;oldid=21251</guid>
			<description>&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;DrawInfo&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:54, 29 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l418&quot;&gt;Line 418:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 418:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DrawInfo ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DrawInfo ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Los archivos DrawInfo se almacenan dentro de la carpeta DrawInfos y utilizan la extensión &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dynamicinfo&lt;/del&gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; y contienen la información necesaria para dibujar poses en pantalla.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Los archivos DrawInfo se almacenan dentro de la carpeta DrawInfos y utilizan la extensión &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;drawinfo&lt;/ins&gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; y contienen la información necesaria para dibujar poses en pantalla.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Internamente, Dynamic Xtreme recopila esta información y genera rutinas gráficas optimizadas automáticamente. Cada rutina gráfica agrupa múltiples poses que comparten características similares y es optimizada específicamente para ese tipo de poses. Esto permite no solo un sistema global de renderizado de poses, sino también un sistema bastante eficiente en una gran cantidad de casos.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Internamente, Dynamic Xtreme recopila esta información y genera rutinas gráficas optimizadas automáticamente. Cada rutina gráfica agrupa múltiples poses que comparten características similares y es optimizada específicamente para ese tipo de poses. Esto permite no solo un sistema global de renderizado de poses, sino también un sistema bastante eficiente en una gran cantidad de casos.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 29 May 2026 17:54:16 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:es/Dynamic_Xtreme_files_and_formats</comments>
		</item>
		<item>
			<title>Dynamic Xtreme files and formats</title>
			<link>https://sneslab.net/mw/index.php?title=Dynamic_Xtreme_files_and_formats&amp;diff=21262&amp;oldid=21252</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=Dynamic_Xtreme_files_and_formats&amp;diff=21262&amp;oldid=21252</guid>
			<description>&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;DrawInfo&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:53, 29 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l419&quot;&gt;Line 419:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 419:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DrawInfo ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== DrawInfo ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;DrawInfo files are stored inside the DrawInfos folder and use the &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dynamicinfo&lt;/del&gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; extension and contain all the information required to draw poses on screen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;DrawInfo files are stored inside the DrawInfos folder and use the &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;drawinfo&lt;/ins&gt;&amp;quot;&amp;#039;&amp;#039;&amp;#039; extension and contain all the information required to draw poses on screen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Internally, Dynamic Xtreme collects this information and automatically generates optimized graphic routines. Each graphic routine groups multiple poses that share similar characteristics and is specifically optimized for that type of pose. This allows not only a global pose rendering system, but also a highly efficient system in a large number of cases.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Internally, Dynamic Xtreme collects this information and automatically generates optimized graphic routines. Each graphic routine groups multiple poses that share similar characteristics and is specifically optimized for that type of pose. This allows not only a global pose rendering system, but also a highly efficient system in a large number of cases.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 29 May 2026 17:53:34 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:Dynamic_Xtreme_files_and_formats</comments>
		</item>
		<item>
			<title>Stack</title>
			<link>https://sneslab.net/mw/index.php?title=Stack&amp;diff=21261&amp;oldid=20708</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=Stack&amp;diff=21261&amp;oldid=20708</guid>
			<description>&lt;p&gt;no stack base pointer&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:36, 21 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[RTI]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[RTI]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note the lack of [[PLK]].  PHS and PLS similarly do not exist, nor do any instructions performing the inverse of PEA, PEI, or PER.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note the lack of [[PLK]].  PHS and PLS similarly do not exist, nor do any instructions performing the inverse of PEA, PEI, or PER&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.  Unlike x86, there is also no stack base pointer&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== See Also ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== See Also ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 21 May 2026 21:36:13 GMT</pubDate>
			<dc:creator>Xetheria</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:Stack</comments>
		</item>
		<item>
			<title>COP</title>
			<link>https://sneslab.net/mw/index.php?title=COP&amp;diff=21260&amp;oldid=21257</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=COP&amp;diff=21260&amp;oldid=21257</guid>
			<description>&lt;p&gt;Undo revision 21257 by &lt;a href=&quot;/wiki/Special:Contributions/Xetheria&quot; title=&quot;Special:Contributions/Xetheria&quot;&gt;Xetheria&lt;/a&gt; (&lt;a href=&quot;/mw/index.php?title=User_talk:Xetheria&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Xetheria (page does not exist)&quot;&gt;talk&lt;/a&gt;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:53, 21 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l67&quot;&gt;Line 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== External Links ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== External Links ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Eyes &amp;amp; Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/447 page 447] on COP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Eyes &amp;amp; Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/447 page 447] on COP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Labiak]], [https://archive.org/details/Programming_the_65816/page/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;135 &lt;/del&gt;page 135] on COP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Labiak]], [https://archive.org/details/Programming_the_65816/page/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;n145 &lt;/ins&gt;page 135] on COP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# section 7.15 of 65c816 datasheet&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# section 7.15 of 65c816 datasheet&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# snes9x implementation of COP: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L2738&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# snes9x implementation of COP: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L2738&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 21 May 2026 06:53:17 GMT</pubDate>
			<dc:creator>Xetheria</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:COP</comments>
		</item>
		<item>
			<title>BRK</title>
			<link>https://sneslab.net/mw/index.php?title=BRK&amp;diff=21259&amp;oldid=21159</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=BRK&amp;diff=21259&amp;oldid=21159</guid>
			<description>&lt;p&gt;Undo revision 21258 by &lt;a href=&quot;/wiki/Special:Contributions/Xetheria&quot; title=&quot;Special:Contributions/Xetheria&quot;&gt;Xetheria&lt;/a&gt; (&lt;a href=&quot;/mw/index.php?title=User_talk:Xetheria&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Xetheria (page does not exist)&quot;&gt;talk&lt;/a&gt;)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:51, 21 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-multi&quot; lang=&quot;en&quot;&gt;(One intermediate revision by the same user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
			<pubDate>Thu, 21 May 2026 06:51:14 GMT</pubDate>
			<dc:creator>Xetheria</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:BRK</comments>
		</item>
		<item>
			<title>COP</title>
			<link>https://sneslab.net/mw/index.php?title=COP&amp;diff=21257&amp;oldid=21044</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=COP&amp;diff=21257&amp;oldid=21044</guid>
			<description>&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;External Links: &lt;/span&gt; de n&amp;#039;d page number&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:37, 21 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l67&quot;&gt;Line 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== External Links ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== External Links ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Eyes &amp;amp; Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/447 page 447] on COP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Eyes &amp;amp; Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/447 page 447] on COP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Labiak]], [https://archive.org/details/Programming_the_65816/page/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;n145 &lt;/del&gt;page 135] on COP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# [[Labiak]], [https://archive.org/details/Programming_the_65816/page/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;135 &lt;/ins&gt;page 135] on COP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# section 7.15 of 65c816 datasheet&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# section 7.15 of 65c816 datasheet&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# snes9x implementation of COP: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L2738&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# snes9x implementation of COP: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L2738&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 21 May 2026 06:37:55 GMT</pubDate>
			<dc:creator>Xetheria</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:COP</comments>
		</item>
		<item>
			<title>es/Dynamic Xtreme</title>
			<link>https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme&amp;diff=21256&amp;oldid=21253</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme&amp;diff=21256&amp;oldid=21253</guid>
			<description>&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Quick Start&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:35, 18 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l26&quot;&gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Quick Start ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Quick Start ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Guía rápida de instalación: [[es/Dynamic_Xtreme_Quick_Start|Quick Start]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;Guía rápida de instalación:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039; &lt;/ins&gt;[[es/Dynamic_Xtreme_Quick_Start|Quick Start]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Herramientas y Soporte ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Herramientas y Soporte ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 18 May 2026 18:35:18 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:es/Dynamic_Xtreme</comments>
		</item>
		<item>
			<title>Dynamic Xtreme</title>
			<link>https://sneslab.net/mw/index.php?title=Dynamic_Xtreme&amp;diff=21255&amp;oldid=21202</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=Dynamic_Xtreme&amp;diff=21255&amp;oldid=21202</guid>
			<description>&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Quick Start&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:35, 18 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;en&quot;&gt;(One intermediate revision by the same user not shown)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l31&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Quick Start ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Quick Start ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Quick Installation Guide: [[Dynamic_Xtreme_Quick_Start|Quick Start]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;&lt;/ins&gt;Quick Installation Guide:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039; &lt;/ins&gt;[[Dynamic_Xtreme_Quick_Start|Quick Start]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Tools and Support ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Tools and Support ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Files and Formats ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Files and Formats ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;Related article:&#039;&#039;&#039; [[Dynamic_Xtreme_files_and_formats|Dynamic Xtreme Files and Formats]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Dynamic Sprite Creation Guide ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Dynamic Sprite Creation Guide ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 18 May 2026 18:35:07 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:Dynamic_Xtreme</comments>
		</item>
		<item>
			<title>es/Dynamic Xtreme</title>
			<link>https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme&amp;diff=21253&amp;oldid=21208</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme&amp;diff=21253&amp;oldid=21208</guid>
			<description>&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Archivos y formatos&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:33, 18 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot;&gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Archivos y formatos ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Archivos y formatos ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Artículo relacionado:&amp;#039;&amp;#039;&amp;#039; [[es/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dynamic_Xtreme_archivos_y_formatos&lt;/del&gt;|Archivos y Formatos de Dynamic Xtreme]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Artículo relacionado:&amp;#039;&amp;#039;&amp;#039; [[es/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dynamic_Xtreme_files_and_formats&lt;/ins&gt;|Archivos y Formatos de Dynamic Xtreme]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Guía de creación de sprites dinámicos ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Guía de creación de sprites dinámicos ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 18 May 2026 18:33:37 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:es/Dynamic_Xtreme</comments>
		</item>
		<item>
			<title>Dynamic Xtreme files and formats</title>
			<link>https://sneslab.net/mw/index.php?title=Dynamic_Xtreme_files_and_formats&amp;diff=21252&amp;oldid=0</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=Dynamic_Xtreme_files_and_formats&amp;diff=21252&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{Select Language|Dynamic_Xtreme_files_and_formats}}  Dynamic Xtreme uses its own well-structured file system, allowing users to have precise and flexible control over the resources, effects, and data used during the game&amp;#039;s execution.  This page documents the different types of files handled by the tool, how they work, their purpose, and the specific formats they use (both current and legacy). Understanding this structure is essential to fully take advantage of Dynamic X...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Select Language|Dynamic_Xtreme_files_and_formats}}&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme uses its own well-structured file system, allowing users to have precise and flexible control over the resources, effects, and data used during the game&amp;#039;s execution.&lt;br /&gt;
&lt;br /&gt;
This page documents the different types of files handled by the tool, how they work, their purpose, and the specific formats they use (both current and legacy). Understanding this structure is essential to fully take advantage of Dynamic Xtreme&amp;#039;s capabilities.&lt;br /&gt;
&lt;br /&gt;
Many of the legacy formats present in Dynamic Xtreme originally come from Dynamic X, the older version from which the project evolved. These formats remain fully compatible in order to preserve support for a large amount of already existing resources developed for Dynamic X.&lt;br /&gt;
&lt;br /&gt;
The following sections detail the main file types and their formats:&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme uses several specialized file types. The main ones are described below:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dynamic Resources&amp;#039;&amp;#039;&amp;#039;: Resources stored uncompressed inside the ROM. They are commonly used for dynamic sprites, graphics replacement, tilemap replacement, or palette replacement.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Palette Effects (*.paleffect):&amp;#039;&amp;#039;&amp;#039; Files used to register color palette effects.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dynamic Info (*.dynamicinfo):&amp;#039;&amp;#039;&amp;#039; Files used to include dynamic resources into the ROM and also generate the relevant data for dynamic sprites.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Draw Info (*.drawinfo):&amp;#039;&amp;#039;&amp;#039; Files used to generate sprite poses (animation frames) and later draw them on screen.&lt;br /&gt;
&lt;br /&gt;
== Dynamic Resources ==&lt;br /&gt;
&lt;br /&gt;
Dynamic Resources are one of the core systems of Dynamic Xtreme. These resources are stored uncompressed inside the ROM, allowing them to be loaded and used quickly during gameplay.&lt;br /&gt;
&lt;br /&gt;
=== How does the system work? ===&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme collects all dynamic resources, organizes them into packages of up to 1 bank (32 or 64 KB), and automatically inserts them into the ROM. If the ROM has available hi-banks, the tool prioritizes those banks for insertion, improving space organization.&lt;br /&gt;
&lt;br /&gt;
There is no strict limitation on the type of data that can be inserted, although most files are usually &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.bin&amp;quot;&amp;#039;&amp;#039;&amp;#039; files.&lt;br /&gt;
&lt;br /&gt;
=== Main uses ===&lt;br /&gt;
&lt;br /&gt;
Dynamic resources are commonly used for:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Graphics:&amp;#039;&amp;#039;&amp;#039; Dynamic sprite graphics or real-time graphics replacement.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tilemaps:&amp;#039;&amp;#039;&amp;#039; Replacing tiles from different level layers.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Color palettes:&amp;#039;&amp;#039;&amp;#039; Replacing full palettes or assigning specific palettes to dynamic sprites.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Others&amp;#039;&amp;#039;&amp;#039;: Any type of information that needs to be stored in the ROM, such as .brr audio samples, data tables, etc.&lt;br /&gt;
&lt;br /&gt;
This makes the system extremely flexible, allowing not only graphical uses but also any other type of data the user may need to access quickly from the ROM.&lt;br /&gt;
&lt;br /&gt;
=== Color Palette Files ===&lt;br /&gt;
&lt;br /&gt;
Currently, the best way to store color palette files is by using binary files (&amp;#039;&amp;#039;&amp;#039;*.bin&amp;#039;&amp;#039;&amp;#039;) where each color occupies 2 bytes following the color format used by the SNES. There are tools that simplify this process, such as [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=24827 Pal2Bin].&lt;br /&gt;
&lt;br /&gt;
To understand this, it is important to consider that the SNES color format is BGR555. This means that each color is stored using 5 bits for blue, 5 bits for green, and 5 bits for red.&lt;br /&gt;
&lt;br /&gt;
Conceptually, the bits are organized like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-BBBBB GGGGG RRRRR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, due to the endian format used by the SNES, the bytes must be stored reversed in memory, so internally they end up organized like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;GGG RRRRR -BBBBB GG&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because this format can be confusing for users unfamiliar with SNES hardware, improved support for &amp;#039;&amp;#039;&amp;#039;*.pal&amp;#039;&amp;#039;&amp;#039; files is planned for the future, since they are much more common and widely used in modern graphics tools.&lt;br /&gt;
&lt;br /&gt;
In the case of palettes used by dynamic sprites, they must contain a maximum of 15 colors. This means that only colors 1 through 15 of the corresponding palette should be included, since color 0 is used as transparency.&lt;br /&gt;
&lt;br /&gt;
=== Graphics for Dynamic Sprites ===&lt;br /&gt;
&lt;br /&gt;
Graphics used by dynamic sprites in Dynamic Xtreme must follow certain organization rules depending on the format used by the resource.&lt;br /&gt;
&lt;br /&gt;
Currently, there are two formats supported by the system:&lt;br /&gt;
&lt;br /&gt;
* Current format&lt;br /&gt;
* Legacy format&lt;br /&gt;
&lt;br /&gt;
The modern format was designed to simplify the creation and maintenance of dynamic resources, allowing the use of layouts that are much easier to understand and organize.&lt;br /&gt;
&lt;br /&gt;
On the other hand, the legacy format corresponds to the original system based on PosesChunksSizes, which offers more advanced and flexible control over the internal organization of graphics in VRAM, but also requires a deeper understanding of how the dynamic system works internally.&lt;br /&gt;
&lt;br /&gt;
==== Current Format ====&lt;br /&gt;
&lt;br /&gt;
The modern format is simply based on organizing graphics as continuous 16x16 tiles in VRAM. This format was designed to greatly simplify the process of creating dynamic sprites.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
The example image shows a 32x32 sprite (which uses 4 16x16 tiles) being organized inside the graphics file.&lt;br /&gt;
&lt;br /&gt;
[[File:imagen 2026-05-17 221817296.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
With this system, the user only needs to worry about visually organizing the tiles in the correct order for each pose.&lt;br /&gt;
&lt;br /&gt;
Internally, Dynamic Xtreme reads these graphics and automatically converts them into the legacy format, which is easier for SNES hardware to handle. Additionally, the system automatically removes empty spaces generated by partial tiles declared through modifiers such as q, th, bh, lh, or q3.&lt;br /&gt;
&lt;br /&gt;
==== Legacy Format ====&lt;br /&gt;
&lt;br /&gt;
The legacy format uses a graphics organization system optimized to simplify the internal handling of dynamic graphics on SNES hardware.&lt;br /&gt;
&lt;br /&gt;
Unlike the modern format, in this case the user must manually organize the graphics following the layout required by the system.&lt;br /&gt;
&lt;br /&gt;
When a pose uses 7 or fewer 16x16 tiles, the tiles are first organized into a continuous horizontal row. Then, each 16x16 tile must be divided into two 16x8 halves:&lt;br /&gt;
&lt;br /&gt;
* top half.&lt;br /&gt;
* bottom half.&lt;br /&gt;
&lt;br /&gt;
After this:&lt;br /&gt;
&lt;br /&gt;
* all top halves are placed continuously first.&lt;br /&gt;
* then all bottom halves are placed immediately after.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
Given a pose made of 4 16x16 tiles, the following tiles are used:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;t1 t2 t3 t4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
They must be organized as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;t1th t2th t3th t4th t1bh t2bh t3bh t4bh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
* tx corresponds to a 16x16 tile.&lt;br /&gt;
* txth corresponds to the top half of a 16x16 tile.&lt;br /&gt;
* txbh corresponds to the bottom half of a 16x16 tile.&lt;br /&gt;
&lt;br /&gt;
When a pose uses 8 or more 16x16 tiles, all complete rows of 8 tiles must first be separated. These complete rows can be stored directly without additional reorganization.&lt;br /&gt;
&lt;br /&gt;
Then, any remaining tiles that do not complete a full row of 8 tiles must be organized using the same system previously explained for poses with 7 tiles or fewer.&lt;br /&gt;
&lt;br /&gt;
==== Considerations About Tile Overlap ====&lt;br /&gt;
&lt;br /&gt;
In static sprites, it is common to use tile overlap to save graphic space. For example, in a 24x24 sprite it is common to use 3 16x16 tiles and 1 8x8 tile, taking advantage of overlap between the 16x16 tiles.&lt;br /&gt;
&lt;br /&gt;
However, this type of organization is not valid for dynamic sprites.&lt;br /&gt;
&lt;br /&gt;
Because dynamic graphics can be loaded into VRAM in unpredictable ways, tiles cannot visually depend on each other through overlap. Each tile must contain only the graphics corresponding to its own area.&lt;br /&gt;
&lt;br /&gt;
For example, for a 24x24 sprite, instead of using overlap between 16x16 tiles, it is recommended to use:&lt;br /&gt;
&lt;br /&gt;
* 2 diagonal 16x16 tiles with a shared 8x8 area between them.&lt;br /&gt;
* 2 8x8 tiles organized inside a space equivalent to 1 16x16 tile.&lt;br /&gt;
&lt;br /&gt;
Tile overlap is not allowed in dynamic sprites, although redundancy between 2 different tiles is still possible and those tiles can be strategically organized to save OAM tiles. Additionally, it is still possible to save space through the strategic use of 8x8 tiles.&lt;br /&gt;
&lt;br /&gt;
== Palette Effects ==&lt;br /&gt;
&lt;br /&gt;
Palette Effect files are stored inside the PaletteEffects folder and use the &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.paleffect&amp;quot;&amp;#039;&amp;#039;&amp;#039; extension.&lt;br /&gt;
&lt;br /&gt;
Palette effects allow real-time color modifications over the palettes used by the game. These effects can be used by Dynamic Xtreme&amp;#039;s global palette effect system.&lt;br /&gt;
&lt;br /&gt;
Internally, these systems work by modifying the &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039; channels of palette colors in order to produce different visual effects.&lt;br /&gt;
&lt;br /&gt;
Some common uses include:&lt;br /&gt;
&lt;br /&gt;
* Day-to-night transitions.&lt;br /&gt;
* Red flashes to indicate danger.&lt;br /&gt;
* Blinking cyan effects for objects about to explode.&lt;br /&gt;
* Hue changes for disco-like effects.&lt;br /&gt;
* Smooth transitions between visual states.&lt;br /&gt;
* Lighting or ambient effects.&lt;br /&gt;
&lt;br /&gt;
The system allows a huge variety of combinations and visual effects.&lt;br /&gt;
&lt;br /&gt;
=== Effect Types ===&lt;br /&gt;
&lt;br /&gt;
Currently, the following effects exist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixRGB (ID 0)&amp;#039;&amp;#039;&amp;#039;: Interpolates the &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039; channels with a base color.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixHSL (ID 1)&amp;#039;&amp;#039;&amp;#039;: Interpolates the &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039; channels with a base color.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixRG (ID 2)&amp;#039;&amp;#039;&amp;#039;: Interpolates only &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixGB (ID 3)&amp;#039;&amp;#039;&amp;#039;: Interpolates only &amp;#039;&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixRB (ID 4)&amp;#039;&amp;#039;&amp;#039;: Interpolates only &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixHS (ID 5)&amp;#039;&amp;#039;&amp;#039;: Interpolates only &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixSL (ID 6)&amp;#039;&amp;#039;&amp;#039;: Interpolates only &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixHL (ID 7)&amp;#039;&amp;#039;&amp;#039;: Interpolates only &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixR (ID 8)&amp;#039;&amp;#039;&amp;#039;: Interpolates only the &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; channel.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixG (ID 9)&amp;#039;&amp;#039;&amp;#039;: Interpolates only the &amp;#039;&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039; channel.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixB (ID 10)&amp;#039;&amp;#039;&amp;#039;: Interpolates only the &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039; channel.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixH (ID 11)&amp;#039;&amp;#039;&amp;#039;: Interpolates only the &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; channel.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixS (ID 12)&amp;#039;&amp;#039;&amp;#039;: Interpolates only the &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; channel.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixL (ID 13)&amp;#039;&amp;#039;&amp;#039;: Interpolates only the &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039; channel.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalTransitionRGB (ID 14)&amp;#039;&amp;#039;&amp;#039;: Interpolates an entire palette into another using &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039; channels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalTransitionHSL (ID 15)&amp;#039;&amp;#039;&amp;#039;: Interpolates an entire palette into another using &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039; channels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalFunctionRGB (ID 16)&amp;#039;&amp;#039;&amp;#039;: Applies a linear transformation over the &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039; channels:&lt;br /&gt;
&lt;br /&gt;
* R = R11*R + R12*G + R13*B&lt;br /&gt;
* G = R21*R + R22*G + R23*B&lt;br /&gt;
* B = R31*R + R32*G + R33*B&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
* RXY are ratios&lt;br /&gt;
* R corresponds to the red channel&lt;br /&gt;
* G corresponds to the green channel&lt;br /&gt;
* B corresponds to the blue channel&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; This effect is not implemented yet.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalFunctionHSL (ID 17)&amp;#039;&amp;#039;&amp;#039;: Applies a linear transformation over the &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039; channels:&lt;br /&gt;
&lt;br /&gt;
* H = R11*H + R12*S + R13*L&lt;br /&gt;
* S = R21*H + R22*S + R23*L&lt;br /&gt;
* L = R31*H + R32*S + R33*L&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RXY&amp;#039;&amp;#039;&amp;#039; are ratios.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; corresponds to hue.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; corresponds to saturation.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039; corresponds to lightness.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; This effect is not implemented yet.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== File Format ====&lt;br /&gt;
&lt;br /&gt;
Palette effects use a JSON-based format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Name&amp;quot;: &amp;quot;BowserCharge&amp;quot;,&lt;br /&gt;
  &amp;quot;Effects&amp;quot;: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;: Corresponds to the effect name.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Effects&amp;#039;&amp;#039;&amp;#039;: Contains the list of effects used and may use either of the 2 effect formats, simple or generator.&lt;br /&gt;
&lt;br /&gt;
===== Simple Format =====&lt;br /&gt;
&lt;br /&gt;
The simple format defines a single effect:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Channel1&amp;quot;: 31,&lt;br /&gt;
  &amp;quot;Channel2&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;Channel3&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;Ratio1&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;Ratio2&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;Ratio3&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;EffectType&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Channel1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Channel2&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Channel3&amp;#039;&amp;#039;&amp;#039; correspond to the main channel values.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039; effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;1 = R&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;2 = G&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;3 = B&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039; effects:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;1 = H&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;2 = S&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;3 = L&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;#039;&amp;#039;&amp;#039;Ratio&amp;#039;&amp;#039;&amp;#039; values represent the interpolation ratios used by their respective channels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;EffectType&amp;#039;&amp;#039;&amp;#039; corresponds to the effect ID being used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Generator Format =====&lt;br /&gt;
&lt;br /&gt;
There is also a format used to automatically generate multiple interpolated effects:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;StartC1&amp;quot;: 31,&lt;br /&gt;
  &amp;quot;StartC2&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;StartC3&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;StartR1&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;StartR2&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;StartR3&amp;quot;: 64,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;EndC1&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;EndC2&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;EndC3&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;EndR1&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;EndR2&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;EndR3&amp;quot;: 64,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;Steps&amp;quot;: 5,&lt;br /&gt;
  &amp;quot;EffectType&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This format allows defining:&lt;br /&gt;
&lt;br /&gt;
* An initial state.&lt;br /&gt;
* A final state.&lt;br /&gt;
* The number of intermediate steps.&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme automatically generates all effects required to perform the transition between both states.&lt;br /&gt;
&lt;br /&gt;
==== Value Ranges ====&lt;br /&gt;
&lt;br /&gt;
* Channel values (&amp;#039;&amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;&amp;#039;) use ranges between &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;31&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Ratio values (&amp;#039;&amp;#039;&amp;#039;Ratio&amp;#039;&amp;#039;&amp;#039;) use ranges between &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;127&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== DynamicInfo ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DynamicInfo&amp;#039;&amp;#039;&amp;#039; files are stored inside the &amp;#039;&amp;#039;&amp;#039;DynamicInfos&amp;#039;&amp;#039;&amp;#039; folder and use the &amp;#039;&amp;#039;&amp;#039;*.dynamicinfo&amp;#039;&amp;#039;&amp;#039; extension.&lt;br /&gt;
&lt;br /&gt;
These files have 2 main purposes:&lt;br /&gt;
&lt;br /&gt;
* Include dynamic resources into the ROM.&lt;br /&gt;
* Define which graphics correspond to dynamic sprites and how each pose should be loaded.&lt;br /&gt;
&lt;br /&gt;
The basic structure of a `DynamicInfo` file is the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PosesGraphics:&lt;br /&gt;
    MyGraphics.bin&lt;br /&gt;
    AnotherGraphics.bin&lt;br /&gt;
&lt;br /&gt;
Palettes:&lt;br /&gt;
    MyPal.bin&lt;br /&gt;
    AnotherPal.bin&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
    MyResource.bin&lt;br /&gt;
    AnotherResource.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These sections work as lists of dynamic resources that will be included by Dynamic Xtreme.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PosesGraphics&amp;#039;&amp;#039;&amp;#039; contains graphics files for dynamic sprites. These must use the &amp;#039;&amp;#039;&amp;#039;*.bin&amp;#039;&amp;#039;&amp;#039; format.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Palettes&amp;#039;&amp;#039;&amp;#039; contains color palette files. Currently they use the &amp;#039;&amp;#039;&amp;#039;*.bin&amp;#039;&amp;#039;&amp;#039; format, although support for &amp;#039;&amp;#039;&amp;#039;*.pal&amp;#039;&amp;#039;&amp;#039; files is planned for the future.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resources&amp;#039;&amp;#039;&amp;#039; allows including arbitrary dynamic resources and has no specific format restrictions.&lt;br /&gt;
&lt;br /&gt;
In the case of PosesGraphics, when multiple graphics files are used, all of them are internally combined into a single large graphics block following the order in which they were declared.&lt;br /&gt;
&lt;br /&gt;
Later, each pose is cropped from that combined data and stored inside the ROM in the most convenient way possible for the dynamic system.&lt;br /&gt;
&lt;br /&gt;
Because of this, there is no important practical difference between:&lt;br /&gt;
&lt;br /&gt;
* Using a single large graphics file.&lt;br /&gt;
* Using multiple smaller graphics files.&lt;br /&gt;
&lt;br /&gt;
Both approaches will produce the same internal result inside Dynamic Xtreme.&lt;br /&gt;
&lt;br /&gt;
In addition to these resource lists, &amp;#039;&amp;#039;&amp;#039;DynamicInfo&amp;#039;&amp;#039;&amp;#039; files also contain the definition of the dynamic poses used by the sprite.&lt;br /&gt;
&lt;br /&gt;
The way these poses are defined depends on the format used by the resource:&lt;br /&gt;
&lt;br /&gt;
* Current format (&amp;#039;&amp;#039;&amp;#039;NumberOf16x16TilesPerPose&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
* Legacy format (&amp;#039;&amp;#039;&amp;#039;PosesChunksSizes&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
=== Current Format ===&lt;br /&gt;
&lt;br /&gt;
The modern format was designed to simplify the creation and maintenance of dynamic sprites.&lt;br /&gt;
&lt;br /&gt;
In this format, the user only needs to specify how many 16x16 tiles each pose uses. Dynamic Xtreme automatically processes the graphics and internally converts them into the optimized format used by the dynamic system.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NumberOf16x16TilesPerPose:&lt;br /&gt;
.Pose0 5&lt;br /&gt;
.Pose1 7h&lt;br /&gt;
.Pose2..6 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example:&lt;br /&gt;
&lt;br /&gt;
* Pose0 uses 5 16x16 tiles.&lt;br /&gt;
* Pose1 uses 7 16x16 tiles and additionally one top half (16x8).&lt;br /&gt;
* Pose2 through Pose6 use 4 16x16 tiles.&lt;br /&gt;
&lt;br /&gt;
The format also allows the use of modifiers to represent partial tiles:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;#039;: Top-left 8x8 tile.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;h&amp;#039;&amp;#039;&amp;#039;: Top half (16x8).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;q3&amp;#039;&amp;#039;&amp;#039;: Top half + bottom-left tile (16x8 + 8x8).&lt;br /&gt;
&lt;br /&gt;
This makes it possible to include a 16x16 tile containing partial graphics. These partial tiles do not support every possible combination, since many of them are not practical for the system. Only the most common and useful configurations are considered.&lt;br /&gt;
&lt;br /&gt;
Internally, Dynamic Xtreme automatically transforms this format into the legacy format, since that format is optimized for performing DMA transfers to VRAM more efficiently.&lt;br /&gt;
&lt;br /&gt;
=== Legacy Format ===&lt;br /&gt;
&lt;br /&gt;
The legacy format uses a table called PosesChunksSizes, which manually defines how dynamic graphics should be internally organized.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PosesChunksSizes:&lt;br /&gt;
Pose0_PoseChunksSizes:&lt;br /&gt;
    db $02,$02&lt;br /&gt;
Pose1_PoseChunksSizes:&lt;br /&gt;
    db $02,$02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each pose contains a subtable composed of 2 values.&lt;br /&gt;
&lt;br /&gt;
The idea behind these values is to represent how many DMA routines would be required to transfer the pose graphics into VRAM under ideal conditions, meaning assuming the sprite is aligned at the beginning of the VRAM sprite section. In practice, ideal conditions usually require 1 or 2 DMA routines.&lt;br /&gt;
&lt;br /&gt;
Most of the time, the first DMA routine transfers a larger amount of data than the second one.&lt;br /&gt;
&lt;br /&gt;
Each of the 2 values represents the amount of 8x8 tiles transferred by each DMA routine.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db $02,$02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Means:&lt;br /&gt;
&lt;br /&gt;
* the first DMA routine transfers 2 8x8 tiles&lt;br /&gt;
* the second DMA routine transfers another 2 8x8 tiles&lt;br /&gt;
&lt;br /&gt;
In special cases where the sprite uses an amount of 16x16 tiles that perfectly fills rows inside VRAM (for example multiples of 8 16x16 tiles), it is possible to perform the entire transfer using a single DMA routine. In those cases, the second value is defined as $00.&lt;br /&gt;
&lt;br /&gt;
This format was replaced by the current format because it was complex and unintuitive for most users. Currently, using NumberOf16x16TilesPerPose is recommended, although the legacy format remains fully supported and still provides more flexibility for advanced use cases.&lt;br /&gt;
&lt;br /&gt;
== DrawInfo ==&lt;br /&gt;
&lt;br /&gt;
DrawInfo files are stored inside the DrawInfos folder and use the &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.dynamicinfo&amp;quot;&amp;#039;&amp;#039;&amp;#039; extension and contain all the information required to draw poses on screen.&lt;br /&gt;
&lt;br /&gt;
Internally, Dynamic Xtreme collects this information and automatically generates optimized graphic routines. Each graphic routine groups multiple poses that share similar characteristics and is specifically optimized for that type of pose. This allows not only a global pose rendering system, but also a highly efficient system in a large number of cases.&lt;br /&gt;
&lt;br /&gt;
To understand how DrawInfo files work, it is necessary to understand at a high level how SNES OAM works.&lt;br /&gt;
&lt;br /&gt;
OAM is a special memory used to store sprite information. In the case of SMW, it works using 8x8 and 16x16 tiles.&lt;br /&gt;
&lt;br /&gt;
Each tile contains the following attributes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039;: sometimes simply called Tile, corresponds to an internal ID used by the console to indicate which specific VRAM graphic should be used.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; When working with dynamic sprites, TileCodes must be defined assuming the sprite was loaded at the beginning of the sprite section in VRAM.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Dynamic Xtreme automatically adjusts these values internally depending on the actual position where the pose was loaded into VRAM during runtime.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;: corresponds to a byte containing special tile properties. This byte uses the following format:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YXCCPPPT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Where:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;: indicates whether the tile is vertically flipped.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;: indicates whether the tile is horizontally flipped.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;CC&amp;#039;&amp;#039;&amp;#039;: tile priority relative to layers (higher value = higher priority).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PPP&amp;#039;&amp;#039;&amp;#039;: sprite palette used (000 =&amp;gt; palette 8, 001 =&amp;gt; palette 9, ..., 111 =&amp;gt; palette F).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;: indicates which graphics page to use (0 =&amp;gt; SP12, 1 =&amp;gt; SP34).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; It is possible to define global Properties for all tiles of a pose or sprite. Because of this, the most important properties inside DrawInfo files are usually Y, X, and T, while CC and PPP are generally configured from the code that calls the system.&lt;br /&gt;
&lt;br /&gt;
In the specific case of dynamic sprites, the T property usually does not need to be manually configured, since Dynamic Xtreme automatically detects which graphics page the pose belongs to and configures this bit automatically.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Size&amp;#039;&amp;#039;&amp;#039;: defines the tile size:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$00: small tile (8x8).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$02: large tile (16x16).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additionally, each tile contains:&lt;br /&gt;
&lt;br /&gt;
* X displacement (X Offset)&lt;br /&gt;
* Y displacement (Y Offset)&lt;br /&gt;
&lt;br /&gt;
These values allow the tile to be moved relative to the sprite&amp;#039;s base position.&lt;br /&gt;
&lt;br /&gt;
Currently, Dynamic Xtreme supports 2 DrawInfo formats: the current format and the legacy format.&lt;br /&gt;
&lt;br /&gt;
=== Current Format ===&lt;br /&gt;
&lt;br /&gt;
The current DrawInfo format was designed to significantly improve readability and ease of maintenance for drawing files.&lt;br /&gt;
&lt;br /&gt;
Unlike the legacy format, this system allows:&lt;br /&gt;
&lt;br /&gt;
* Grouping multiple poses.&lt;br /&gt;
* Grouping tile ranges.&lt;br /&gt;
* Using per-tile default values.&lt;br /&gt;
* Omitting unnecessary subtables.&lt;br /&gt;
* Defining individual values or complete value lists.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPose_Pose0..4:&lt;br /&gt;
.NumberOfTiles: 5&lt;br /&gt;
.TileCode2: $02&lt;br /&gt;
.TileCode3..4: $04&lt;br /&gt;
.Properties: $00,$40,$00,$00,$40&lt;br /&gt;
.XOffsets: $00,$10,$F8,$08,$18&lt;br /&gt;
.XPivot: $08&lt;br /&gt;
.YOffset2..4: $10&lt;br /&gt;
.YPivot: $10&lt;br /&gt;
.Size0..4: $02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MyPose_Pose0..4&amp;#039;&amp;#039;&amp;#039;: Defines shared information for poses 0 through 4 using the name &amp;quot;MyPose&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.NumberOfTiles&amp;#039;&amp;#039;&amp;#039;: Defines that each pose uses 5 tiles.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode2&amp;#039;&amp;#039;&amp;#039;: Modifies the &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039; only for tile 2.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode3..4&amp;#039;&amp;#039;&amp;#039;: Modifies the &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039; for tiles 3 and 4.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.Properties&amp;#039;&amp;#039;&amp;#039;: Defines an individual &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; list for each tile.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.XOffsets&amp;#039;&amp;#039;&amp;#039;: Defines an individual &amp;#039;&amp;#039;&amp;#039;XOffset&amp;#039;&amp;#039;&amp;#039; for each tile.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.YOffset2..4&amp;#039;&amp;#039;&amp;#039;: Modifies the &amp;#039;&amp;#039;&amp;#039;YOffset&amp;#039;&amp;#039;&amp;#039; only for tiles 2 through 4.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.Size0..4&amp;#039;&amp;#039;&amp;#039;: Defines the size of tiles 0 through 4.&lt;br /&gt;
&lt;br /&gt;
Directives used in singular form allow modifying a specific tile or a specific range of tiles.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.TileCode2: $02&lt;br /&gt;
.TileCode3..4: $04&lt;br /&gt;
.YOffset1..3: $10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In these cases:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode2:&amp;#039;&amp;#039;&amp;#039;: Modifies only tile 2&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode3..4&amp;#039;&amp;#039;&amp;#039;: Modifies only tiles 3 and 4&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.YOffset1..3&amp;#039;&amp;#039;&amp;#039;: Modifies the YOffset of tiles 1 through 3&lt;br /&gt;
&lt;br /&gt;
On the other hand, plural directives allow explicitly defining a complete list of values for all tiles in the pose.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.Properties: $00,$40,$00,$00,$40&lt;br /&gt;
.XOffsets: $00,$10,$F8,$08,$18&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In these cases:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.Properties&amp;#039;&amp;#039;&amp;#039;: defines a complete Properties list.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.XOffsets&amp;#039;&amp;#039;&amp;#039;: defines a complete XOffsets list.&lt;br /&gt;
&lt;br /&gt;
This allows combining simple general configurations with specific modifications only where needed.&lt;br /&gt;
&lt;br /&gt;
When a value is not explicitly defined, Dynamic Xtreme automatically uses default values:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Property&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Size&amp;#039;&amp;#039;&amp;#039;:      $02&lt;br /&gt;
&lt;br /&gt;
Unlike the legacy format, these default values work individually per tile, allowing only the necessary information to be omitted without affecting the rest of the pose.&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;XPivot&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;YPivot&amp;#039;&amp;#039;&amp;#039; values are used as rotation axes for performing horizontal or vertical flips on a pose. These values allow tile positions to be automatically recalculated when using the X or Y properties.&lt;br /&gt;
&lt;br /&gt;
If &amp;#039;&amp;#039;&amp;#039;XPivot&amp;#039;&amp;#039;&amp;#039; is not defined, the pose will not be considered compatible with horizontal flipping. Likewise, if &amp;#039;&amp;#039;&amp;#039;YPivot&amp;#039;&amp;#039;&amp;#039; is not defined, the pose will not be considered compatible with vertical flipping.&lt;br /&gt;
&lt;br /&gt;
This allows Dynamic Xtreme to generate more optimized graphic routines when these features are not needed, while also slightly reducing ROM space usage.&lt;br /&gt;
&lt;br /&gt;
It is also possible to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.IsStatic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This indicates that the defined poses should be treated as static poses instead of dynamic ones. By default, all poses are treated as dynamic.&lt;br /&gt;
&lt;br /&gt;
The legacy DrawInfo format remains fully supported. The modern format mainly exists to simplify the writing, reading, and maintenance of DrawInfo files while still maintaining a high level of flexibility.&lt;br /&gt;
&lt;br /&gt;
=== Legacy Format ===&lt;br /&gt;
&lt;br /&gt;
The legacy DrawInfo format uses multiple separate tables to define each attribute of the tiles used by a pose.&lt;br /&gt;
&lt;br /&gt;
This format was designed following a structure similar to the one normally used when writing manual graphic routines for SNES sprites. The original idea was that people already familiar with developing sprites this way could work with DrawInfo using an organization that felt familiar and relatively intuitive for that traditional workflow.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dynamic: &lt;br /&gt;
true&lt;br /&gt;
&lt;br /&gt;
Tiles:&lt;br /&gt;
MyPose0_Tiles:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_Tiles:&lt;br /&gt;
    db $00&lt;br /&gt;
&lt;br /&gt;
Properties:&lt;br /&gt;
MyPose0_Properties:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_Properties:&lt;br /&gt;
    db $00&lt;br /&gt;
&lt;br /&gt;
XDisplacements:&lt;br /&gt;
MyPose0_XDisp:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_XDisp:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose0_XDispFlip:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_XDispFlip:&lt;br /&gt;
    db $00&lt;br /&gt;
&lt;br /&gt;
YDisplacements:&lt;br /&gt;
MyPose0_YDisp:&lt;br /&gt;
    db $01&lt;br /&gt;
MyPose1_YDisp:&lt;br /&gt;
    db $01&lt;br /&gt;
MyPose0_YDispFlip:&lt;br /&gt;
    db $FF&lt;br /&gt;
MyPose1_YDispFlip:&lt;br /&gt;
    db $FF&lt;br /&gt;
&lt;br /&gt;
Sizes:&lt;br /&gt;
MyPose0_Sizes:&lt;br /&gt;
    db $02&lt;br /&gt;
MyPose1_Sizes:&lt;br /&gt;
    db $02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this format:&lt;br /&gt;
&lt;br /&gt;
* Each attribute uses an independent section.&lt;br /&gt;
* Each pose requires a separate subtable.&lt;br /&gt;
* All values must be manually written.&lt;br /&gt;
* Tile ranges and pose grouping do not exist.&lt;br /&gt;
&lt;br /&gt;
The main tables correspond to:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tiles&amp;#039;&amp;#039;&amp;#039;: TileCodes&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;: OAM Properties&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XDisplacements&amp;#039;&amp;#039;&amp;#039;: Horizontal displacements&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YDisplacements&amp;#039;&amp;#039;&amp;#039;: Vertical displacements&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sizes&amp;#039;&amp;#039;&amp;#039;: Tile sizes (8x8 or 16x16)&lt;br /&gt;
&lt;br /&gt;
In the case of XDisplacements and YDisplacements, it is also possible to define flipped versions:&lt;br /&gt;
&lt;br /&gt;
* XDispFlip&lt;br /&gt;
* YDispFlip&lt;br /&gt;
&lt;br /&gt;
These tables allow manually specifying the offsets used when a pose is drawn using horizontal or vertical flip.&lt;br /&gt;
&lt;br /&gt;
The directive:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dynamic: true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indicates that the poses should be treated as dynamic poses. If defined as false, the poses will be considered static.&lt;br /&gt;
&lt;br /&gt;
Just like in the modern format, automatic default values also exist. If a table does not exist, Dynamic Xtreme will automatically assume the following values:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Property&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Size&amp;#039;&amp;#039;&amp;#039;:      $02&lt;br /&gt;
&lt;br /&gt;
This format remains fully compatible with Dynamic Xtreme, although the modern format is currently recommended since it is considerably more readable, maintainable, and easier to edit.&lt;/div&gt;</description>
			<pubDate>Mon, 18 May 2026 18:32:11 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:Dynamic_Xtreme_files_and_formats</comments>
		</item>
		<item>
			<title>es/Dynamic Xtreme files and formats</title>
			<link>https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme_files_and_formats&amp;diff=21251&amp;oldid=0</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme_files_and_formats&amp;diff=21251&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{Select Language|Dynamic_Xtreme_files_and_formats}}  Dynamic Xtreme utiliza un sistema de archivos propio y bien estructurado que permite al usuario tener un control preciso y flexible sobre los recursos, efectos y datos que se usan durante la ejecución del juego.  Esta página documenta los diferentes tipos de archivos que maneja la herramienta, cómo funcionan, su propósito y los formatos específicos que utilizan (tanto los actuales como los legacy). Entender esta...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Select Language|Dynamic_Xtreme_files_and_formats}}&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme utiliza un sistema de archivos propio y bien estructurado que permite al usuario tener un control preciso y flexible sobre los recursos, efectos y datos que se usan durante la ejecución del juego.&lt;br /&gt;
&lt;br /&gt;
Esta página documenta los diferentes tipos de archivos que maneja la herramienta, cómo funcionan, su propósito y los formatos específicos que utilizan (tanto los actuales como los legacy). Entender esta estructura es fundamental para aprovechar al máximo las capacidades de Dynamic Xtreme.&lt;br /&gt;
&lt;br /&gt;
Muchos de los formatos legacy presentes en Dynamic Xtreme provienen originalmente de Dynamic X, la versión antigua sobre la cual evolucionó el proyecto. Estos formatos continúan siendo totalmente compatibles con el objetivo de mantener soporte para una gran cantidad de recursos ya existentes desarrollados para Dynamic X.&lt;br /&gt;
&lt;br /&gt;
A continuación se detallan los principales tipos de archivos y sus formatos:&lt;br /&gt;
&lt;br /&gt;
== Tipos de Archivos ==&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme utiliza varios tipos de archivos especializados. A continuación se describen los principales:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Recursos Dinámicos&amp;#039;&amp;#039;&amp;#039;: Son recursos que se guardan en el ROM de forma descomprimida. Normalmente se usan para sprites dinámicos, cambios de gráficos, cambios de tilemaps o cambios de paletas.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Palette Effects (*.paleffect):&amp;#039;&amp;#039;&amp;#039; Son archivos utilizados para registrar efectos de paletas de colores.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dynamic Info (*.dynamicinfo):&amp;#039;&amp;#039;&amp;#039; Son archivos que se usan para incluir recursos dinámicos en el ROM y también generar la data relevante para los sprites dinámicos.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Draw Info (*.drawinfo):&amp;#039;&amp;#039;&amp;#039; Son archivos utilizados para generar las poses (cuadros de animación) para los sprites y luego poder dibujarlas en pantalla.&lt;br /&gt;
&lt;br /&gt;
== Recursos Dinámicos ==&lt;br /&gt;
&lt;br /&gt;
Los Recursos Dinámicos son uno de los sistemas centrales de Dynamic Xtreme. Estos recursos se almacenan en el ROM de forma descomprimida, lo que permite cargarlos y utilizarlos rápidamente durante la ejecución del juego.&lt;br /&gt;
&lt;br /&gt;
=== ¿Cómo funciona el sistema? ===&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme recopila todos los recursos dinámicos, los organiza en paquetes de máximo 1 bank (32 O 64 KB) y los inserta automáticamente en el ROM. Si el ROM tiene hi-banks disponibles, el tool prioriza estos bancos para la inserción, mejorando la organización del espacio.&lt;br /&gt;
&lt;br /&gt;
No existe una limitación estricta sobre el tipo de datos que se pueden insertar, aunque la mayoría de los archivos suelen ser de tipo &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.bin&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Usos principales ===&lt;br /&gt;
&lt;br /&gt;
Los recursos dinámicos se utilizan comúnmente para:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Gráficos:&amp;#039;&amp;#039;&amp;#039; Gráficos de sprites dinámicos o reemplazos gráficos en tiempo real.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tilemaps:&amp;#039;&amp;#039;&amp;#039; Reemplazar tiles de los diferentes layers del nivel.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Paletas de colores:&amp;#039;&amp;#039;&amp;#039; Reemplazar paletas completas o asignar paletas específicas a sprites dinámicos.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Otros&amp;#039;&amp;#039;&amp;#039;: Cualquier tipo de información que se desee almacenar en el ROM, como muestras de audio .brr, tablas de datos, etc.&lt;br /&gt;
&lt;br /&gt;
Esto hace que el sistema sea extremadamente flexible, permitiendo no solo usos gráficos sino también cualquier otro tipo de dato que el usuario necesite tener disponible en el ROM de forma rápida.&lt;br /&gt;
&lt;br /&gt;
=== Archivos de Paletas de colores ===&lt;br /&gt;
&lt;br /&gt;
Actualmente, la mejor forma de guardar archivos de paletas de colores es utilizando archivos binarios (&amp;#039;&amp;#039;&amp;#039;*.bin&amp;#039;&amp;#039;&amp;#039;) donde cada color ocupa 2 bytes siguiendo el formato de color utilizado por el SNES. Existen herramientas que facilitan este proceso, como [https://www.smwcentral.net/?p=section&amp;amp;a=details&amp;amp;id=24827 Pal2Bin].&lt;br /&gt;
&lt;br /&gt;
Para entender esto, es importante considerar que el formato de color del SNES es BGR555. Esto significa que cada color se almacena utilizando 5 bits para azul, 5 bits para verde y 5 bits para rojo.&lt;br /&gt;
&lt;br /&gt;
Conceptualmente, los bits se organizan así:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-BBBBB GGGGG RRRRR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sin embargo, debido al endian utilizado por el SNES, los bytes deben almacenarse invertidos en memoria, por lo que internamente terminan organizados así:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;GGG RRRRR -BBBBB GG&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Debido a que este formato puede resultar confuso para usuarios no familiarizados con hardware del SNES, a futuro se planea incorporar soporte mejorado para archivos &amp;#039;&amp;#039;&amp;#039;*.pal&amp;#039;&amp;#039;&amp;#039;, los cuales son mucho más conocidos y utilizados en herramientas gráficas modernas.&lt;br /&gt;
&lt;br /&gt;
En el caso de las paletas utilizadas por sprites dinámicos, estas deben contener un máximo de 15 colores. Esto significa que únicamente deben incluirse los colores 1 al 15 de la paleta correspondiente, ya que el color 0 es utilizado como transparencia.&lt;br /&gt;
&lt;br /&gt;
=== Gráficos para Sprites Dinámicos ===&lt;br /&gt;
&lt;br /&gt;
Los gráficos utilizados por los sprites dinámicos en Dynamic Xtreme deben seguir ciertas reglas de organización dependiendo del formato utilizado por el recurso.&lt;br /&gt;
&lt;br /&gt;
Actualmente existen dos formatos soportados por el sistema:&lt;br /&gt;
&lt;br /&gt;
* Formato actual&lt;br /&gt;
* Formato legacy&lt;br /&gt;
&lt;br /&gt;
El formato moderno fue diseñado para simplificar la creación y mantenimiento de recursos dinámicos, permitiendo trabajar con layouts mucho más fáciles de entender y organizar.&lt;br /&gt;
&lt;br /&gt;
Por otro lado, el formato legacy corresponde al sistema original basado en PosesChunksSizes, el cual ofrece un control más avanzado y flexible sobre la organización interna de gráficos en VRAM, pero también requiere una comprensión más profunda del funcionamiento interno del sistema dinámico.&lt;br /&gt;
&lt;br /&gt;
==== Formato actual ====&lt;br /&gt;
&lt;br /&gt;
El formato moderno se basa simplemente en organizar los gráficos como tiles continuos de 16x16 en VRAM. Este formato fue diseñado para simplificar considerablemente el proceso de creación de sprites dinámicos.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
La imagen del ejemplo muestra un sprite de 32x32 (el cual utiliza 4 tiles de 16x16) siendo organizado dentro del archivo de gráficos.&lt;br /&gt;
&lt;br /&gt;
[[File:imagen 2026-05-17 221817296.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
Con este sistema, el usuario únicamente necesita preocuparse por organizar visualmente los tiles en el orden correcto de cada pose.&lt;br /&gt;
&lt;br /&gt;
Internamente, Dynamic Xtreme se encarga de leer estos gráficos y convertirlos automáticamente al formato legacy, el cual es más sencillo de manejar por el hardware del SNES. Además, el sistema elimina automáticamente los espacios vacíos generados por tiles parciales declarados mediante modificadores como q, th, bh, lh o q3.&lt;br /&gt;
&lt;br /&gt;
==== Formato Legacy ====&lt;br /&gt;
&lt;br /&gt;
El formato legacy utiliza un sistema de organización gráfica optimizado para facilitar el manejo interno de gráficos dinámicos en el hardware del SNES.&lt;br /&gt;
&lt;br /&gt;
A diferencia del formato moderno, en este caso el usuario debe organizar manualmente los gráficos siguiendo el layout requerido por el sistema.&lt;br /&gt;
&lt;br /&gt;
Cuando una pose utiliza 7 tiles de 16x16 o menos, los tiles se organizan primero en una fila horizontal continua. Luego, cada tile de 16x16 debe dividirse en dos mitades de 16x8:&lt;br /&gt;
&lt;br /&gt;
* mitad superior.&lt;br /&gt;
* mitad inferior.&lt;br /&gt;
&lt;br /&gt;
Después de esto:&lt;br /&gt;
&lt;br /&gt;
* primero se colocan todas las mitades superiores de forma continua.&lt;br /&gt;
* y luego todas las mitades inferiores inmediatamente después.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
Dada una pose de 4 tiles de 16x16, se tienen los siguientes tiles:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;t1 t2 t3 t4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se tendria que organizar de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;t1th t2th t3th t4th t1bh t2bh t3bh t4bh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde:&lt;br /&gt;
&lt;br /&gt;
* tx corresponde a un tile de 16x16.&lt;br /&gt;
* txth corresponde a la mitad superior (top half) de un tile de 16x16.&lt;br /&gt;
* txbh corresponde a la mitad inferior (bottom half) de un tile de 16x16.&lt;br /&gt;
&lt;br /&gt;
Cuando una pose utiliza 8 tiles de 16x16 o más, primero deben separarse todas las filas completas de 8 tiles. Estas filas completas pueden almacenarse directamente sin reorganización adicional.&lt;br /&gt;
&lt;br /&gt;
Luego, los tiles sobrantes que no completen una fila de 8 tiles deben organizarse utilizando el mismo sistema explicado anteriormente para poses de 7 tiles o menos.&lt;br /&gt;
&lt;br /&gt;
==== Consideraciones sobre overlap de tiles ====&lt;br /&gt;
&lt;br /&gt;
En sprites estáticos es común utilizar overlap entre tiles para ahorrar espacio gráfico. Por ejemplo, en un sprite de 24x24 normalmente pueden utilizarse 3 tiles de 16x16 y 1 tile de 8x8, aprovechando overlap entre los tiles de 16x16.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, este tipo de organización no es válida en sprites dinámicos.&lt;br /&gt;
&lt;br /&gt;
Debido a que los gráficos dinámicos pueden ser cargados de maneras impredecibles en VRAM, los tiles no pueden depender visualmente unos de otros mediante overlap. Cada tile debe contener únicamente los gráficos correspondientes a su propia área.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para un sprite de 24x24, en lugar de utilizar overlap entre tiles de 16x16, se recomienda utilizar:&lt;br /&gt;
&lt;br /&gt;
* 2 tiles de 16x16 en diagonal con una zona de 8x8 igual entre ambos.&lt;br /&gt;
* 2 tiles de 8x8 organizados dentro de un espacio equivalente a 1 tile de 16x16.&lt;br /&gt;
&lt;br /&gt;
El overlap entre tiles no está permitido en sprites dinámicos, aunque sí puede haber redundancia entre 2 tiles distintos y estos pueden organizarse estratégicamente para ahorrar tiles de OAM. Además, sigue siendo posible ahorrar espacio mediante el uso estratégico de tiles de 8x8.&lt;br /&gt;
&lt;br /&gt;
== Efectos de Paletas ==&lt;br /&gt;
&lt;br /&gt;
Los archivos de Efectos de paletas se almacenan dentro de la carpeta PaletteEffects y utilizan la extensión &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.paleffect&amp;quot;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Los efectos de paleta permiten realizar modificaciones de colores en tiempo real sobre las paletas utilizadas por el juego. Estos efectos pueden ser utilizados por el sistema global de efectos de paleta de Dynamic Xtreme.&lt;br /&gt;
&lt;br /&gt;
Internamente, estos sistemas funcionan modificando los canales &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039; o &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039; de los colores de la paleta para producir distintos efectos visuales.&lt;br /&gt;
&lt;br /&gt;
Algunos usos comunes incluyen:&lt;br /&gt;
&lt;br /&gt;
* Transiciones de día a noche.&lt;br /&gt;
* Flashes rojos para indicar peligro.&lt;br /&gt;
* Efectos cyan intermitentes para objetos a punto de explotar.&lt;br /&gt;
* Cambios de tinte para efectos tipo discoteca.&lt;br /&gt;
* Transiciones suaves entre estados visuales.&lt;br /&gt;
* Efectos de iluminación o ambientación.&lt;br /&gt;
&lt;br /&gt;
El sistema permite una gran cantidad de combinaciones y efectos distintos.&lt;br /&gt;
&lt;br /&gt;
=== Tipos de efectos ===&lt;br /&gt;
&lt;br /&gt;
Actualmente existen los siguientes efectos:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixRGB (ID 0)&amp;#039;&amp;#039;&amp;#039;: Interpola los canales &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039; con un color base.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixHSL (ID 1)&amp;#039;&amp;#039;&amp;#039;: Interpola los canales &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039; con un color base.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixRG (ID 2)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixGB (ID 3)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente &amp;#039;&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixRB (ID 4)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixHS (ID 5)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixSL (ID 6)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixHL (ID 7)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixR (ID 8)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente el canal &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixG (ID 9)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente el canal &amp;#039;&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixB (ID 10)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente el canal &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixH (ID 11)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente el canal &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixS (ID 12)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente el canal &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;MixL (ID 13)&amp;#039;&amp;#039;&amp;#039;: Interpola únicamente el canal &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalTransitionRGB (ID 14)&amp;#039;&amp;#039;&amp;#039;: Interpola una paleta completa hacia otra utilizando canales &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalTransitionHSL (ID 15)&amp;#039;&amp;#039;&amp;#039;: Interpola una paleta completa hacia otra utilizando canales &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalFunctionRGB (ID 16)&amp;#039;&amp;#039;&amp;#039;: Aplica una transformación lineal sobre los canales &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* R = R11*R + R12*G + R13*B&lt;br /&gt;
* G = R21*R + R22*G + R23*B&lt;br /&gt;
* B = R31*R + R32*G + R33*B&lt;br /&gt;
&lt;br /&gt;
Donde:&lt;br /&gt;
&lt;br /&gt;
* RXY Son ratios&lt;br /&gt;
* R Corresponde al canal rojo&lt;br /&gt;
* G Corresponde al canal verde&lt;br /&gt;
* B Corresponde al canal azul&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nota:&amp;#039;&amp;#039;&amp;#039; Este efecto aún no se encuentra implementado.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PalFunctionHSL (ID 17)&amp;#039;&amp;#039;&amp;#039;: Aplica una transformación lineal sobre los canales &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* H = R11*H + R12*S + R13*L&lt;br /&gt;
* S = R21*H + R22*S + R23*L&lt;br /&gt;
* L = R31*H + R32*S + R33*L&lt;br /&gt;
&lt;br /&gt;
Donde:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RXY&amp;#039;&amp;#039;&amp;#039; Son ratios.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; Corresponde al tinte (&amp;#039;&amp;#039;&amp;#039;Hue&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039; Corresponde a la saturación.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039; Corresponde al brillo (&amp;#039;&amp;#039;&amp;#039;Lightness&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nota:&amp;#039;&amp;#039;&amp;#039; Este efecto aún no se encuentra implementado.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Formato de archivos ====&lt;br /&gt;
&lt;br /&gt;
Los efectos de paleta utilizan un formato basado en JSON:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Name&amp;quot;: &amp;quot;BowserCharge&amp;quot;,&lt;br /&gt;
  &amp;quot;Effects&amp;quot;: []&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;: Corresponde al nombre del efecto&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Effects&amp;#039;&amp;#039;&amp;#039;: Contiene la lista de efectos utilizados y pueden estar en cualquiera de los 2 formatos de efecto, ya sea el simple o el generador.&lt;br /&gt;
&lt;br /&gt;
===== Formato simple =====&lt;br /&gt;
&lt;br /&gt;
El formato simple define un único efecto:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;Channel1&amp;quot;: 31,&lt;br /&gt;
  &amp;quot;Channel2&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;Channel3&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;Ratio1&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;Ratio2&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;Ratio3&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;EffectType&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donde:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Channel1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Channel2&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Channel3&amp;#039;&amp;#039;&amp;#039; corresponden a los valores de canales principales&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;En efectos &amp;#039;&amp;#039;&amp;#039;RGB&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;1 = R&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;2 = G&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;3 = B&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;En efectos &amp;#039;&amp;#039;&amp;#039;HSL&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;1 = H&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;2 = S&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;3 = L&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Los valores &amp;#039;&amp;#039;&amp;#039;Ratio&amp;#039;&amp;#039;&amp;#039; representan las proporciones utilizadas durante la interpolación usados por su canal respectivo.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;EffectType&amp;#039;&amp;#039;&amp;#039; corresponde al ID del efecto utilizado.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Formato generador =====&lt;br /&gt;
&lt;br /&gt;
También existe un formato utilizado para generar automáticamente múltiples efectos interpolados:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;StartC1&amp;quot;: 31,&lt;br /&gt;
  &amp;quot;StartC2&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;StartC3&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;StartR1&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;StartR2&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;StartR3&amp;quot;: 64,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;EndC1&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;EndC2&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;EndC3&amp;quot;: 0,&lt;br /&gt;
  &amp;quot;EndR1&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;EndR2&amp;quot;: 64,&lt;br /&gt;
  &amp;quot;EndR3&amp;quot;: 64,&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;Steps&amp;quot;: 5,&lt;br /&gt;
  &amp;quot;EffectType&amp;quot;: 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este formato permite definir:&lt;br /&gt;
&lt;br /&gt;
* Un estado inicial.&lt;br /&gt;
* Un estado final.&lt;br /&gt;
* La cantidad de pasos intermedios.&lt;br /&gt;
&lt;br /&gt;
Dynamic Xtreme genera automáticamente todos los efectos necesarios para realizar la transición entre ambos estados.&lt;br /&gt;
&lt;br /&gt;
==== Rangos de valores ====&lt;br /&gt;
&lt;br /&gt;
* Los valores de canales (&amp;#039;&amp;#039;&amp;#039;Channel&amp;#039;&amp;#039;&amp;#039;) utilizan rangos entre &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;31&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Los valores de ratios (&amp;#039;&amp;#039;&amp;#039;Ratio&amp;#039;&amp;#039;&amp;#039;) utilizan rangos entre &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;127&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== DynamicInfo ==&lt;br /&gt;
&lt;br /&gt;
Los archivos &amp;#039;&amp;#039;&amp;#039;DynamicInfo&amp;#039;&amp;#039;&amp;#039; se almacenan dentro de la carpeta &amp;#039;&amp;#039;&amp;#039;DynamicInfos&amp;#039;&amp;#039;&amp;#039; y utilizan la extensión &amp;#039;&amp;#039;&amp;#039;*.dynamicinfo&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Estos archivos tienen 2 funciones principales:&lt;br /&gt;
&lt;br /&gt;
* Incluir recursos dinámicos dentro del ROM.&lt;br /&gt;
* Definir qué gráficos corresponden a sprites dinámicos y cómo debe cargarse cada pose.&lt;br /&gt;
&lt;br /&gt;
La estructura básica de un archivo `DynamicInfo` es la siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PosesGraphics:&lt;br /&gt;
    MyGraphics.bin&lt;br /&gt;
    AnotherGraphics.bin&lt;br /&gt;
&lt;br /&gt;
Palettes:&lt;br /&gt;
    MyPal.bin&lt;br /&gt;
    AnotherPal.bin&lt;br /&gt;
&lt;br /&gt;
Resources:&lt;br /&gt;
    MyResource.bin&lt;br /&gt;
    AnotherResource.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Estas secciones funcionan como listas de recursos dinámicos que serán incluidos por Dynamic Xtreme.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PosesGraphics&amp;#039;&amp;#039;&amp;#039; contiene archivos gráficos para sprites dinámicos. Estos deben utilizar formato &amp;#039;&amp;#039;&amp;#039;*.bin&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Palettes&amp;#039;&amp;#039;&amp;#039; contiene archivos de paletas de colores. Actualmente utilizan formato &amp;#039;&amp;#039;&amp;#039;*.bin&amp;#039;&amp;#039;&amp;#039;, aunque a futuro se planea agregar soporte para archivos &amp;#039;&amp;#039;&amp;#039;*.pal&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Resources&amp;#039;&amp;#039;&amp;#039; permite incluir recursos dinámicos arbitrarios y no posee restricciones específicas de formato.&lt;br /&gt;
&lt;br /&gt;
En el caso de PosesGraphics, cuando se utilizan múltiples archivos gráficos, todos ellos son combinados internamente en un único gran bloque de gráficos siguiendo el orden en el que fueron declarados.&lt;br /&gt;
&lt;br /&gt;
Posteriormente, cada pose es recortada desde esa data combinada y almacenada dentro del ROM de la forma más conveniente posible para el sistema dinámico.&lt;br /&gt;
&lt;br /&gt;
Debido a esto, no existe una diferencia práctica importante entre:&lt;br /&gt;
&lt;br /&gt;
* Utilizar un único archivo grande de gráficos.&lt;br /&gt;
* Utilizar múltiples archivos pequeños separados.&lt;br /&gt;
&lt;br /&gt;
Ambos enfoques producirán el mismo resultado interno dentro de Dynamic Xtreme.&lt;br /&gt;
&lt;br /&gt;
Además de estas listas de recursos, los archivos &amp;#039;&amp;#039;&amp;#039;DynamicInfo&amp;#039;&amp;#039;&amp;#039; también contienen la definición de las poses dinámicas utilizadas por el sprite.&lt;br /&gt;
&lt;br /&gt;
La forma en la que estas poses son definidas depende del formato utilizado por el recurso:&lt;br /&gt;
&lt;br /&gt;
* Formato actual (&amp;#039;&amp;#039;&amp;#039;NumberOf16x16TilesPerPose&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
* Formato legacy (&amp;#039;&amp;#039;&amp;#039;PosesChunksSizes&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
=== Formato Actual ===&lt;br /&gt;
&lt;br /&gt;
El formato moderno fue diseñado para simplificar la creación y mantenimiento de sprites dinámicos.&lt;br /&gt;
&lt;br /&gt;
En este formato, el usuario únicamente necesita indicar cuántos tiles de 16x16 utiliza cada pose. Dynamic Xtreme se encarga automáticamente de procesar los gráficos y convertirlos internamente al formato optimizado utilizado por el sistema dinámico.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NumberOf16x16TilesPerPose:&lt;br /&gt;
.Pose0 5&lt;br /&gt;
.Pose1 7h&lt;br /&gt;
.Pose2..6 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este ejemplo:&lt;br /&gt;
&lt;br /&gt;
* Pose0 utiliza 5 tiles de 16x16.&lt;br /&gt;
* Pose1 utiliza 7 tiles de 16x16 y adicionalmente una mitad superior (16x8).&lt;br /&gt;
* Pose2 hasta Pose6 utilizan 4 tiles de 16x16.&lt;br /&gt;
&lt;br /&gt;
El formato también permite utilizar modificadores para representar tiles parciales:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;#039;: Tile 8x8 superior izquierdo.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;h&amp;#039;&amp;#039;&amp;#039;: Mitad superior (16x8).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;q3&amp;#039;&amp;#039;&amp;#039;: Mitad superior + tile inferior izquierdo (16x8 + 8x8).&lt;br /&gt;
&lt;br /&gt;
De este modo es posible incluir un tile de 16x16 que contenga gráficos de manera parcial. Estos tiles parciales no permiten todas las combinaciones posibles, debido a que muchas de ellas no son prácticas para el sistema. Únicamente se consideran las configuraciones más comunes y útiles.&lt;br /&gt;
&lt;br /&gt;
Internamente, Dynamic Xtreme transforma automáticamente este formato al formato legacy, ya que dicho formato se encuentra optimizado para realizar transferencias DMA hacia VRAM de manera más eficiente.&lt;br /&gt;
&lt;br /&gt;
=== Formato Legacy ===&lt;br /&gt;
&lt;br /&gt;
El formato legacy utiliza una tabla llamada PosesChunksSizes, la cual define manualmente cómo deben organizarse los gráficos dinámicos internamente.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PosesChunksSizes:&lt;br /&gt;
Pose0_PoseChunksSizes:&lt;br /&gt;
    db $02,$02&lt;br /&gt;
Pose1_PoseChunksSizes:&lt;br /&gt;
    db $02,$02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cada pose posee una subtabla compuesta por 2 valores.&lt;br /&gt;
&lt;br /&gt;
La idea detrás de estos valores es representar cuántas rutinas DMA serían necesarias para transferir los gráficos de la pose hacia VRAM en condiciones ideales, es decir, asumiendo que el sprite se encuentra alineado al inicio de la sección de sprites de VRAM. En la práctica, en condiciones ideales se necesita 1 o 2 rutinas DMA.&lt;br /&gt;
&lt;br /&gt;
La mayoría de las veces, la primera rutina DMA transfiere una cantidad mayor de datos que la segunda.&lt;br /&gt;
&lt;br /&gt;
Cada uno de los 2 valores representa la cantidad de tiles de 8x8 transferidos por cada rutina DMA.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
db $02,$02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Significa:&lt;br /&gt;
&lt;br /&gt;
* la primera rutina DMA transfiere 2 tiles de 8x8&lt;br /&gt;
* la segunda rutina DMA transfiere otros 2 tiles de 8x8&lt;br /&gt;
&lt;br /&gt;
En casos especiales donde el sprite utiliza una cantidad de tiles de 16x16 que completa filas exactas dentro de VRAM (por ejemplo múltiplos de 8 tiles de 16x16), es posible realizar toda la transferencia utilizando una sola rutina DMA. En esos casos, el segundo valor se define como $00.&lt;br /&gt;
&lt;br /&gt;
Este formato fue reemplazado por el formato actual debido a que resultaba complejo y poco intuitivo para la mayoría de usuarios. Actualmente se recomienda utilizar NumberOf16x16TilesPerPose, aunque el legacy continúa siendo totalmente compatible y sigue ofreciendo mayor flexibilidad para casos avanzados.&lt;br /&gt;
&lt;br /&gt;
== DrawInfo ==&lt;br /&gt;
&lt;br /&gt;
Los archivos DrawInfo se almacenan dentro de la carpeta DrawInfos y utilizan la extensión &amp;#039;&amp;#039;&amp;#039;&amp;quot;*.dynamicinfo&amp;quot;&amp;#039;&amp;#039;&amp;#039; y contienen la información necesaria para dibujar poses en pantalla.&lt;br /&gt;
&lt;br /&gt;
Internamente, Dynamic Xtreme recopila esta información y genera rutinas gráficas optimizadas automáticamente. Cada rutina gráfica agrupa múltiples poses que comparten características similares y es optimizada específicamente para ese tipo de poses. Esto permite no solo un sistema global de renderizado de poses, sino también un sistema bastante eficiente en una gran cantidad de casos.&lt;br /&gt;
&lt;br /&gt;
Para comprender cómo funcionan los archivos DrawInfo, es necesario entender a grandes rasgos cómo funciona la OAM del SNES.&lt;br /&gt;
&lt;br /&gt;
La OAM es una memoria especial utilizada para almacenar información de sprites. En el caso del SMW, este trabaja utilizando tiles de 8x8 y 16x16.&lt;br /&gt;
&lt;br /&gt;
Cada tile posee los siguientes atributos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039;: a veces llamado simplemente Tile, corresponde a un ID interno utilizado por la consola para indicar qué gráfico específico de VRAM debe utilizarse.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nota:&amp;#039;&amp;#039;&amp;#039; Cuando se trabaja con sprites dinámicos, los TileCodes deben definirse asumiendo que el sprite fue cargado al inicio de la sección de sprites de VRAM. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Dynamic Xtreme se encarga automáticamente de ajustar internamente estos valores dependiendo de la posición real donde la pose haya sido cargada en VRAM durante la ejecución.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;: corresponde a un byte con propiedades especiales del tile. Este byte utiliza el siguiente formato:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YXCCPPPT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Donde:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Y&amp;#039;&amp;#039;&amp;#039;: indica si el tile se encuentra flippeado verticalmente.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;X&amp;#039;&amp;#039;&amp;#039;: indica si el tile se encuentra flippeado horizontalmente.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;CC&amp;#039;&amp;#039;&amp;#039;: prioridad del tile respecto a los layers (mayor valor = mayor prioridad).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;PPP&amp;#039;&amp;#039;&amp;#039;: paleta de sprites utilizada (000 =&amp;gt; palette 8, 001 =&amp;gt; palette 9, ..., 111 =&amp;gt; palette F).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;: indica qué página gráfica utilizar (0 =&amp;gt; SP12, 1 =&amp;gt; SP34).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Nota:&amp;#039;&amp;#039;&amp;#039; Es posible definir Properties generales para todos los tiles de una pose o sprite. Debido a esto, normalmente las properties más importantes dentro de los archivos DrawInfo son Y, X y T, mientras que las propiedades CC y PPP suelen configurarse desde el código que llama al sistema.&lt;br /&gt;
&lt;br /&gt;
En el caso específico de sprites dinámicos, la property T normalmente no necesita ser configurada manualmente, ya que Dynamic Xtreme detecta automáticamente en qué página gráfica se encuentra la pose y configura este bit de forma automática.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Size&amp;#039;&amp;#039;&amp;#039;: define el tamaño del tile:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$00: tile pequeño (8x8).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$02: tile grande (16x16).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Además, cada tile posee:&lt;br /&gt;
&lt;br /&gt;
* X displacement (X Offset)&lt;br /&gt;
* Y displacement (Y Offset)&lt;br /&gt;
&lt;br /&gt;
Estos valores permiten mover el tile respecto a la posición base del sprite.&lt;br /&gt;
&lt;br /&gt;
Actualmente, Dynamic Xtreme posee 2 formatos DrawInfo: el formato actual y el formato legacy.&lt;br /&gt;
&lt;br /&gt;
=== Formato Actual ===&lt;br /&gt;
&lt;br /&gt;
El formato actual de DrawInfo fue diseñado para mejorar considerablemente la legibilidad y facilidad de mantenimiento de los archivos de dibujo.&lt;br /&gt;
&lt;br /&gt;
A diferencia del formato legacy, este sistema permite:&lt;br /&gt;
&lt;br /&gt;
* Agrupar múltiples poses.&lt;br /&gt;
* Agrupar rangos de tiles.&lt;br /&gt;
* Utilizar valores por defecto individuales.&lt;br /&gt;
* Omitir subtables innecesarias.&lt;br /&gt;
* Definir valores individuales o listas completas de valores.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyPose_Pose0..4:&lt;br /&gt;
.NumberOfTiles: 5&lt;br /&gt;
.TileCode2: $02&lt;br /&gt;
.TileCode3..4: $04&lt;br /&gt;
.Properties: $00,$40,$00,$00,$40&lt;br /&gt;
.XOffsets: $00,$10,$F8,$08,$18&lt;br /&gt;
.XPivot: $08&lt;br /&gt;
.YOffset2..4: $10&lt;br /&gt;
.YPivot: $10&lt;br /&gt;
.Size0..4: $02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este ejemplo:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;MyPose_Pose0..4&amp;#039;&amp;#039;&amp;#039;: Define información compartida para las poses 0 hasta 4 que comparten el nombre &amp;quot;MyPose&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.NumberOfTiles&amp;#039;&amp;#039;&amp;#039;: Define que cada pose utiliza 5 tiles.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode2&amp;#039;&amp;#039;&amp;#039;: Modifica el &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039; únicamente del tile 2.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode3..4&amp;#039;&amp;#039;&amp;#039;: Modifica el &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039; de los tiles 3 y 4.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.Properties&amp;#039;&amp;#039;&amp;#039;: Define una lista individual de &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039; para cada tile.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.XOffsets&amp;#039;&amp;#039;&amp;#039;: Define un &amp;#039;&amp;#039;&amp;#039;XOffset&amp;#039;&amp;#039;&amp;#039; individual para cada tile.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.YOffset2..4&amp;#039;&amp;#039;&amp;#039;: Modifica el &amp;#039;&amp;#039;&amp;#039;YOffset&amp;#039;&amp;#039;&amp;#039; únicamente de los tiles 2 al 4.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.Size0..4&amp;#039;&amp;#039;&amp;#039;: Define el tamaño de los tiles 0 al 4.&lt;br /&gt;
&lt;br /&gt;
Las directivas utilizadas en singular permiten modificar un tile específico o un rango de tiles determinado.&lt;br /&gt;
&lt;br /&gt;
Ejemplos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.TileCode2: $02&lt;br /&gt;
.TileCode3..4: $04&lt;br /&gt;
.YOffset1..3: $10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estos casos:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode2:&amp;#039;&amp;#039;&amp;#039;: Modifica únicamente el tile 2&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.TileCode3..4&amp;#039;&amp;#039;&amp;#039;: Modifica únicamente los tiles 3 y 4&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.YOffset1..3&amp;#039;&amp;#039;&amp;#039;: Modifica el YOffset de los tiles 1 al 3&lt;br /&gt;
&lt;br /&gt;
Por otro lado, las directivas en plural permiten definir explícitamente una lista completa de valores para todos los tiles de la pose.&lt;br /&gt;
&lt;br /&gt;
Ejemplos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.Properties: $00,$40,$00,$00,$40&lt;br /&gt;
.XOffsets: $00,$10,$F8,$08,$18&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estos casos:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.Properties&amp;#039;&amp;#039;&amp;#039;: define una lista completa de Properties.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;.XOffsets&amp;#039;&amp;#039;&amp;#039;: define una lista completa de XOffsets.&lt;br /&gt;
&lt;br /&gt;
Esto permite combinar configuraciones generales simples con modificaciones específicas únicamente donde sean necesarias.&lt;br /&gt;
&lt;br /&gt;
Cuando un valor no es definido explícitamente, Dynamic Xtreme utiliza automáticamente valores por defecto:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Property&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Size&amp;#039;&amp;#039;&amp;#039;:      $02&lt;br /&gt;
&lt;br /&gt;
A diferencia del formato legacy, estos valores por defecto funcionan de forma individual por tile, permitiendo omitir únicamente la información necesaria sin afectar el resto de la pose.&lt;br /&gt;
&lt;br /&gt;
Los valores &amp;#039;&amp;#039;&amp;#039;XPivot&amp;#039;&amp;#039;&amp;#039; y &amp;#039;&amp;#039;&amp;#039;YPivot&amp;#039;&amp;#039;&amp;#039; son utilizados como ejes de rotación para realizar flip horizontal o vertical de una pose. Estos valores permiten recalcular automáticamente las posiciones de los tiles cuando se utilizan las properties X o Y.&lt;br /&gt;
&lt;br /&gt;
Si &amp;#039;&amp;#039;&amp;#039;XPivot&amp;#039;&amp;#039;&amp;#039; no es definido, la pose no será considerada compatible con flip horizontal. Del mismo modo, si &amp;#039;&amp;#039;&amp;#039;YPivot&amp;#039;&amp;#039;&amp;#039; no es definido, la pose no será considerada compatible con flip vertical.&lt;br /&gt;
&lt;br /&gt;
Esto permite que Dynamic Xtreme genere rutinas gráficas más optimizadas cuando estas características no son necesarias, además de reducir ligeramente el espacio utilizado dentro del ROM.&lt;br /&gt;
&lt;br /&gt;
También es posible utilizar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.IsStatic&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto indica que las poses definidas deben considerarse poses estáticas en lugar de dinámicas. Por defecto, todas las poses son tratadas como dinámicas.&lt;br /&gt;
&lt;br /&gt;
El formato legacy de DrawInfo continúa siendo totalmente compatible. El formato moderno existe principalmente para simplificar la escritura, lectura y mantenimiento de archivos DrawInfo, manteniendo al mismo tiempo un alto nivel de flexibilidad.&lt;br /&gt;
&lt;br /&gt;
=== Formato Legacy ===&lt;br /&gt;
&lt;br /&gt;
El formato legacy de DrawInfo utiliza múltiples tablas separadas para definir cada atributo de los tiles utilizados por una pose.&lt;br /&gt;
&lt;br /&gt;
Este formato fue diseñado siguiendo una estructura similar a la utilizada normalmente al escribir rutinas gráficas manuales para sprites en SNES. La idea original era que las personas que ya estaban acostumbradas a desarrollar sprites de esta forma pudieran trabajar con DrawInfo utilizando una organización familiar y relativamente intuitiva para ese workflow tradicional.&lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dynamic: &lt;br /&gt;
true&lt;br /&gt;
&lt;br /&gt;
Tiles:&lt;br /&gt;
MyPose0_Tiles:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_Tiles:&lt;br /&gt;
    db $00&lt;br /&gt;
&lt;br /&gt;
Properties:&lt;br /&gt;
MyPose0_Properties:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_Properties:&lt;br /&gt;
    db $00&lt;br /&gt;
&lt;br /&gt;
XDisplacements:&lt;br /&gt;
MyPose0_XDisp:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_XDisp:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose0_XDispFlip:&lt;br /&gt;
    db $00&lt;br /&gt;
MyPose1_XDispFlip:&lt;br /&gt;
    db $00&lt;br /&gt;
&lt;br /&gt;
YDisplacements:&lt;br /&gt;
MyPose0_YDisp:&lt;br /&gt;
    db $01&lt;br /&gt;
MyPose1_YDisp:&lt;br /&gt;
    db $01&lt;br /&gt;
MyPose0_YDispFlip:&lt;br /&gt;
    db $FF&lt;br /&gt;
MyPose1_YDispFlip:&lt;br /&gt;
    db $FF&lt;br /&gt;
&lt;br /&gt;
Sizes:&lt;br /&gt;
MyPose0_Sizes:&lt;br /&gt;
    db $02&lt;br /&gt;
MyPose1_Sizes:&lt;br /&gt;
    db $02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En este formato:&lt;br /&gt;
&lt;br /&gt;
* Cada atributo utiliza una sección independiente&lt;br /&gt;
* Cada pose requiere una subtabla separada&lt;br /&gt;
* Todos los valores deben escribirse manualmente&lt;br /&gt;
* No existen rangos de tiles ni agrupación de poses&lt;br /&gt;
&lt;br /&gt;
Las tablas principales corresponden a:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tiles&amp;#039;&amp;#039;&amp;#039;: TileCodes&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Properties&amp;#039;&amp;#039;&amp;#039;: Properties de OAM&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XDisplacements&amp;#039;&amp;#039;&amp;#039;: Desplazamientos horizontales&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YDisplacements&amp;#039;&amp;#039;&amp;#039;: Desplazamientos verticales&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sizes&amp;#039;&amp;#039;&amp;#039;: Tamaño de los tiles (8x8 o 16x16)&lt;br /&gt;
&lt;br /&gt;
En el caso de XDisplacements y YDisplacements, también es posible definir versiones flippeadas:&lt;br /&gt;
&lt;br /&gt;
* XDispFlip&lt;br /&gt;
* YDispFlip&lt;br /&gt;
&lt;br /&gt;
Estas tablas permiten especificar manualmente los offsets utilizados cuando una pose es dibujada utilizando flip horizontal o vertical.&lt;br /&gt;
&lt;br /&gt;
La directiva:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dynamic: true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Indica que las poses deben ser tratadas como poses dinámicas. Si se define como false, las poses serán consideradas estáticas.&lt;br /&gt;
&lt;br /&gt;
Al igual que en el formato moderno, existen valores por defecto automáticos. Si alguna tabla no existe, Dynamic Xtreme asumirá automáticamente los siguientes valores:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;TileCode&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Property&amp;#039;&amp;#039;&amp;#039;:  $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;XOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;YOffset&amp;#039;&amp;#039;&amp;#039;:   $00&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Size&amp;#039;&amp;#039;&amp;#039;:      $02&lt;br /&gt;
&lt;br /&gt;
Este formato continúa siendo totalmente compatible con Dynamic Xtreme, aunque actualmente se recomienda utilizar el formato moderno debido a que resulta considerablemente más legible, mantenible y fácil de editar.&lt;/div&gt;</description>
			<pubDate>Mon, 18 May 2026 18:27:30 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:es/Dynamic_Xtreme_files_and_formats</comments>
		</item>
		<item>
			<title>es/Dynamic Xtreme archivos y formatos</title>
			<link>https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme_archivos_y_formatos&amp;diff=21250&amp;oldid=21215</link>
			<guid isPermaLink="false">https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme_archivos_y_formatos&amp;diff=21250&amp;oldid=21215</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://sneslab.net/mw/index.php?title=es/Dynamic_Xtreme_archivos_y_formatos&amp;amp;diff=21250&amp;amp;oldid=21215&quot;&gt;Show changes&lt;/a&gt;</description>
			<pubDate>Mon, 18 May 2026 18:26:30 GMT</pubDate>
			<dc:creator>Anonimzwx</dc:creator>
			<comments>https://sneslab.net/wiki/Talk:es/Dynamic_Xtreme_archivos_y_formatos</comments>
		</item>
</channel></rss>