<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Tutorial &#8211; MSXBlog</title>
	<atom:link href="https://www.msxblog.es/tag/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.msxblog.es</link>
	<description>MSX en primera persona</description>
	<lastBuildDate>Tue, 20 Oct 2020 22:54:27 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://i0.wp.com/www.msxblog.es/wp-content/uploads/2023/01/cropped-Kaba-ene-2023.png?fit=32%2C32&#038;ssl=1</url>
	<title>Tutorial &#8211; MSXBlog</title>
	<link>https://www.msxblog.es</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Tutorial práctico de desarrollo de videojuegos para ordenadores MSX, por Frederic García Nieto</title>
		<link>https://www.msxblog.es/tutorial-practico-de-desarrollo-de-videojuegos-para-ordenadores-msx-por-frederic-garcia-nieto/</link>
					<comments>https://www.msxblog.es/tutorial-practico-de-desarrollo-de-videojuegos-para-ordenadores-msx-por-frederic-garcia-nieto/#comments</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Wed, 21 Oct 2020 07:00:00 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Bomb Jack]]></category>
		<category><![CDATA[Frederic García Nieto]]></category>
		<category><![CDATA[FUSION-C]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Universidad Politécnica de Valencia]]></category>
		<guid isPermaLink="false">https://www.msxblog.es/?p=37720</guid>

					<description><![CDATA[El otro día publicaron en MSX Boixos Club con un enlace a un trabajo de final de Grado de Ingeniería informática de la Universidad Politécnica de Valencia realizado por Frederic&#8230; ]]></description>
										<content:encoded><![CDATA[
<p>El otro día <a rel="noreferrer noopener" href="https://www.facebook.com/groups/MSXBC/permalink/3620716994614773" target="_blank">publicaron en MSX Boixos Club</a> con un enlace a un trabajo de final de Grado de Ingeniería informática de la Universidad Politécnica de Valencia realizado por <strong>Frederic García Nieto</strong> y titulado <em>Tutorial práctico de desarrollo de videojuegos para ordenadores MSX</em>.</p>



<p>Lo interesante de este documento es que <strong>nos lleva de la mano a través del desarrollo de un Bomb Jack para MSX</strong> usando la librería FUSION-C empezando desde cero y explicando todos los aspectos involucrados en el proyecto, desde la planificación del trabajo, la instalación de los programas auxiliares necesarios y el análisis de los resultados.</p>



<p>Sin duda, este tutorial hace honor a su nombre pues <strong>creo que es un estupendo trabajo que puede servir para aprender</strong> sobre cómo funciona un MSX y cómo se puede programar usando un lenguaje de alto nivel.</p>



<p>Enlace relacionado: <a href="http://hdl.handle.net/10251/145214" target="_blank" rel="noreferrer noopener">Repositorio institucional de la UPV</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-practico-de-desarrollo-de-videojuegos-para-ordenadores-msx-por-frederic-garcia-nieto/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial de iniciación a la programación en ensamblador (VII)</title>
		<link>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-vii/</link>
					<comments>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-vii/#respond</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Fri, 01 May 2020 18:54:34 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Dimension Z]]></category>
		<category><![CDATA[Ensamblador]]></category>
		<category><![CDATA[Pepe Vila]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://www.msxblog.es/?p=36973</guid>

					<description><![CDATA[En esta parte del tutorial vamos a retomar el código de la 6ª entrega y añadiremos una rutina y unasmodificaciones para que veáis como se puede paliar un poco la&#8230; ]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote"><p>En esta parte del tutorial vamos a retomar el código de la 6ª entrega y añadiremos una rutina y unas<br>modificaciones para que veáis como se puede paliar un poco la regla del 5º sprite.</p><p>Lógicamente hemos de procurar al realizar un juego no situar más de 5 sprites en la misma línea, pero<br>si esto se produce de manera momentánea con 5 o más sprites con una rutina de Flickering (parpadeo)<br>lograremos que se vea un ligero parpadeo en los sprites, pero evitaremos que dejen de verse éstos.</p><cite>Introducción al capítulo 7 del Tutorial de iniciación a la programación en ensamblador</cite></blockquote>



<p>Después de ocho años de espera y después de preguntarnos si Pepe Vila continuaría su tutorial sobre programación en ensamblador, llega hasta nosotros la séptima entrega. Espero que todos aquellos que la estábais esperando desde hace mucho  tiempo lo disfrutéis mucho.</p>



<p>Aprovecharé en estos días para unir en un solo PDF todos los capítulos y subirlos al servidor. Mientras tanto, podéis descargar esta séptima entrega desde la propia web de Pepe.</p>



<p>Enlace relacionado: <a rel="noreferrer noopener" href="http://www.dimensionzgames.com/?page_id=490" target="_blank">Dimension Z</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-vii/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo montar cajas de cartón para cartuchos, por Xavi Sorinas</title>
		<link>https://www.msxblog.es/como-montar-cajas-de-carton-para-cartuchos-por-xavi-sorinas/</link>
					<comments>https://www.msxblog.es/como-montar-cajas-de-carton-para-cartuchos-por-xavi-sorinas/#comments</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Mon, 30 Jan 2017 18:07:51 +0000</pubDate>
				<category><![CDATA[Vídeos]]></category>
		<category><![CDATA[Cajas de cartucho]]></category>
		<category><![CDATA[Cartón]]></category>
		<category><![CDATA[Cartuchos]]></category>
		<category><![CDATA[Doblar]]></category>
		<category><![CDATA[Manualidades]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.msxblog.es/?p=24447</guid>

					<description><![CDATA[Xavi Sorinas nos muestra en este vídeo como montar una caja de cartón para nuestros cartuchos. El modelo mostrado es concretamente el tamaño medio, que es el que Konami usó para distribuir&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Xavi Sorinas</strong> nos muestra en este vídeo como montar una caja de cartón para nuestros cartuchos. El modelo mostrado es concretamente el tamaño medio, que es el que Konami usó para distribuir sus juegos a mitad de la década de los ochenta. Xavi nos enseña a marcar los cortes, a pegar la caja y de paso nos explica algunos trucos que nos serán de mucha ayuda a la hora de enfrentarnos solos a este trabajo.</p>
<p style="text-align: justify;">¡Ya no tenemos disculpa para tener los cartuchos de nuestra colección sueltos!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/como-montar-cajas-de-carton-para-cartuchos-por-xavi-sorinas/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Adaptación de un mando de NES a MSX</title>
		<link>https://www.msxblog.es/adaptacion-de-un-mando-de-nes-a-msx/</link>
					<comments>https://www.msxblog.es/adaptacion-de-un-mando-de-nes-a-msx/#respond</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Tue, 05 May 2015 22:22:23 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[La SeKTa]]></category>
		<category><![CDATA[Mando]]></category>
		<category><![CDATA[Nintendo NES]]></category>
		<category><![CDATA[Pad]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.msxblog.es/?p=21641</guid>

					<description><![CDATA[Fuente: La SeKTa Interesante tutorial y bastante sencillo de seguir para conseguir que un pad de Nintendo NES funcione en nuestros MSX cambiando la distribución de los pines. El artículo es obra de Pypo&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Fuente: <a href="http://lasektaorg.blogspot.com.es/2010/04/adaptacio-pad-nes-per-msx-adaptacion.html" target="_blank">La SeKTa</a></p>
<p style="text-align: justify;">Interesante tutorial y bastante sencillo de seguir para conseguir que un pad de Nintendo NES funcione en nuestros MSX cambiando la distribución de los pines. El artículo es obra de Pypo y fue publicado en la web de La SeKTa. Yo lo he pasado a PDF para una lectura más cómoda.</p>
<div>
<div>
<h2 style="text-align: center;"><a href="http://www.mediafire.com/view/nv978w69gnwc1q9/Tutorial_-_Modificar_un_pad_NES_a_MSX.pdf" target="_blank">Tutorial de adaptación de un mando de NES a MSX</a></h2>
</div>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/adaptacion-de-un-mando-de-nes-a-msx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial de iniciación al One Chip MSX</title>
		<link>https://www.msxblog.es/tutorial-de-iniciacion-al-one-chip-msx/</link>
					<comments>https://www.msxblog.es/tutorial-de-iniciacion-al-one-chip-msx/#comments</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Mon, 04 May 2015 19:08:40 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[La SeKTa]]></category>
		<category><![CDATA[One Chip MSX]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.msxblog.es/?p=21618</guid>

					<description><![CDATA[Pypo, miembro del grupo La SeKTa, publicó hace varios años un tutorial de iniciación en el One Chip MSX (1ChipMSX o como lo queráis llamar). Dicho tutorial estaba escrito en catalán&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Pypo</strong>, miembro del grupo <a href="http://www.lasekta.org" target="_blank" rel="noopener">La SeKTa</a>, publicó hace varios años un <strong>tutorial de iniciación en el One Chip MSX</strong> (1ChipMSX o como lo queráis llamar). Dicho tutorial estaba escrito en catalán y que a día de hoy no recuerdo dónde lo encontré&#8230; El caso es que a mí me sirvió para dar los primeros pasos con este hardware.</p>
<p style="text-align: justify;">Tenía pendiente traducir al español ese fantástico tutorial y el otro día me puse después de tanto tiempo «en la recámara».</p>
<p style="text-align: justify;">Aquí queda para quien le pueda servir.</p>
<h2 style="text-align: center;"><a href="http://www.msxblog.es/wp-content/uploads/2015/05/Tutorial-1ChipMSX.pdf">Tutorial de iniciación al 1chipMSX</a></h2>
<p style="text-align: justify;">
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-de-iniciacion-al-one-chip-msx/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial de MegaFlasROM SCC+SD en MSX Manía</title>
		<link>https://www.msxblog.es/tutorial-de-megaflasrom-sccsd-en-msx-mania/</link>
					<comments>https://www.msxblog.es/tutorial-de-megaflasrom-sccsd-en-msx-mania/#respond</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Sun, 21 Sep 2014 23:07:02 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[MegaFlashROM SCC+ SD]]></category>
		<category><![CDATA[MSX Mania]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.msxblog.es/?p=20048</guid>

					<description><![CDATA[MSX Mania ha publicado un interesante artículo sobre cómo sacarle partido al fantástico hardware MegaFlashROM SCC+ SD de Manuel Pazos. El tutorial viene acompañado de tres vídeos y está recomentado para&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/09/MegaflashROM-SCC-SD.jpg" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption="" title=""><img data-attachment-id="20049" data-permalink="https://www.msxblog.es/tutorial-de-megaflasrom-sccsd-en-msx-mania/sony-dsc-9/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/09/MegaflashROM-SCC-SD.jpg?fit=1024%2C685&amp;ssl=1" data-orig-size="1024,685" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;5.6&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;DSLR-A100&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1362079983&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;35&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.0166666666667&quot;,&quot;title&quot;:&quot;SONY DSC&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="SONY DSC" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/09/MegaflashROM-SCC-SD.jpg?fit=300%2C200&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/09/MegaflashROM-SCC-SD.jpg?fit=1024%2C685&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter wp-image-20049" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/09/MegaflashROM-SCC-SD.jpg?resize=600%2C401" alt="SONY DSC" width="600" height="401" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/09/MegaflashROM-SCC-SD.jpg?w=1024&amp;ssl=1 1024w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/09/MegaflashROM-SCC-SD.jpg?resize=300%2C200&amp;ssl=1 300w" sizes="(max-width: 600px) 100vw, 600px" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;"><a href="http://www.msxmania.com" target="_blank">MSX Mania</a> ha publicado un interesante artículo sobre cómo sacarle partido al fantástico hardware <strong>MegaFlashROM SCC+ SD</strong> de <a href="http://www.msxcartridgeshop.com/" target="_blank">Manuel Pazos</a>. El tutorial viene acompañado de tres vídeos y está recomentado para los que aún no se han decidido a comprarlo o aquellos que lo han adquirido recientemente.</p>
<p style="text-align: justify;">Enlace relacionado: <a href="http://www.msxmania.com/Noticia/msxmania/tutorial-megaflashrom-scc-sd-msx2" target="_blank">MSX Mania</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-de-megaflasrom-sccsd-en-msx-mania/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creado PDF del tutorial de iniciación a la programación en ensamblador</title>
		<link>https://www.msxblog.es/creado-pdf-del-tutorial-de-iniciacion-a-la-programacion-en-ensamblador/</link>
					<comments>https://www.msxblog.es/creado-pdf-del-tutorial-de-iniciacion-a-la-programacion-en-ensamblador/#comments</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Tue, 20 May 2014 10:33:38 +0000</pubDate>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Ensamblador]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[Pepe Vila]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.msxblog.es/?p=17069</guid>

					<description><![CDATA[He unificado en un solo archivo PDF los seis capítulos del tutorial de iniciación a la programación en ensamblador creado por Pepe Vila y que desde 2010 viene acompañándonos. A&#8230; ]]></description>
										<content:encoded><![CDATA[
<p>He unificado en un solo archivo PDF los seis capítulos del <strong>tutorial de iniciación a la programación en ensamblador</strong> creado por <strong>Pepe Vila</strong> y que desde 2010 viene acompañándonos. A medida que Pepe vaya sacando nuevos capítulos (lo cual espero que sea así) los iré añadiendo al PDF para que siempre esté actualizado y sea más cómodo leerlo. Por lo pronto tenemos <strong>más de 100 páginas</strong> para comenzar a estudiar.</p>



<h3 style="text-align:center"><a href="https://www.msxblog.es/wp-content/uploads/2019/09/Iniciacion_a_la_programacion_en_ensamblador_Pepe_Vila_completo.zip">Iniciación a la programación en ensamblador (Pepe Vila)</a></h3>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/creado-pdf-del-tutorial-de-iniciacion-a-la-programacion-en-ensamblador/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Completo tutorial de TriloTracker y nueva versión (0.8.0)</title>
		<link>https://www.msxblog.es/completo-tutorial-de-trilotracker-y-nueva-version-0-8-0/</link>
					<comments>https://www.msxblog.es/completo-tutorial-de-trilotracker-y-nueva-version-0-8-0/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 25 Feb 2014 20:03:26 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Gryzor87]]></category>
		<category><![CDATA[SCC]]></category>
		<category><![CDATA[TriloTracker]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.msxblog.es/?p=15922</guid>

					<description><![CDATA[Gryzor87 publicó ayer un completísimo tutorial de manejo de TriloTracker que consta de nada menos que de 32 páginas y dos imágenes de disco (.DSK). Estas imágenes incluyen 8 melodías&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Gryzor87</strong> publicó ayer un <strong>completísimo tutorial</strong> de manejo de <a href="http://trilobyte-msx.com/TriloTracker/index.php/Main_Page" target="_blank">TriloTracker</a> que consta de nada menos que de <strong>32 páginas y dos imágenes de disco</strong> (.DSK). Estas imágenes incluyen 8 melodías y diferentes instrumentos y formas de onda.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/02/Tutorial-TriloTracker.png" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption="" title=""><img data-attachment-id="15923" data-permalink="https://www.msxblog.es/completo-tutorial-de-trilotracker-y-nueva-version-0-8-0/tutorial-trilotracker/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/02/Tutorial-TriloTracker.png?fit=606%2C857&amp;ssl=1" data-orig-size="606,857" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial TriloTracker" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/02/Tutorial-TriloTracker.png?fit=212%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/02/Tutorial-TriloTracker.png?fit=606%2C857&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter  wp-image-15923" alt="Tutorial TriloTracker" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/02/Tutorial-TriloTracker.png?resize=364%2C514" width="364" height="514" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/02/Tutorial-TriloTracker.png?w=606&amp;ssl=1 606w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2014/02/Tutorial-TriloTracker.png?resize=212%2C300&amp;ssl=1 212w" sizes="(max-width: 364px) 100vw, 364px" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">El tutorial está <strong>orientado hacia los más novatos</strong> ya que explica qué es el SCC y cómo funciona para posteriormente centrarse en el manejo del programa. Visto por mí, un auténtico lego en la materia, creo que este tutorial de Gryzor87 puede ser <strong>el empujón definitivo para experimentar con el sonido polifónico del potente chip de Konami</strong>.</p>
<p style="text-align: justify;">Además, ayer también se lanzó la <strong>versión 0.8.0</strong> del programa.</p>
<p style="text-align: justify;">Yes we can with TriloTracker!</p>
<p style="text-align: justify;">Enlace relacionado: <a href="http://www.gr87.com/?page_id=905" target="_blank">Gryzor87</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/completo-tutorial-de-trilotracker-y-nueva-version-0-8-0/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo hacer un disco de limpieza de cabezales</title>
		<link>https://www.msxblog.es/como-hacer-un-disco-de-limpieza-de-cabezales/</link>
					<comments>https://www.msxblog.es/como-hacer-un-disco-de-limpieza-de-cabezales/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 03 Feb 2014 11:34:54 +0000</pubDate>
				<category><![CDATA[Enlaces]]></category>
		<category><![CDATA[Disco de limpieza]]></category>
		<category><![CDATA[MSX Pró]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.msxblog.es/?p=15783</guid>

					<description><![CDATA[Interesante tutorial de MSX Pró que nos muestra paso a paso cómo construir un disco de limpieza para los cabezales de nuestras unidades de disquete: http://www.msxpro.com/disquete_de_limpeza.html]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Interesante tutorial de <a href="http://www.msxpro.com/" target="_blank">MSX Pró</a> que nos muestra paso a paso cómo construir un disco de limpieza para los cabezales de nuestras unidades de disquete:</p>
<p style="text-align: justify;"><a href="http://www.msxpro.com/disquete_de_limpeza.html" target="_blank">http://www.msxpro.com/disquete_de_limpeza.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/como-hacer-un-disco-de-limpieza-de-cabezales/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial sobre el formato BCD</title>
		<link>https://www.msxblog.es/tutorial-sobre-el-formato-bcd/</link>
					<comments>https://www.msxblog.es/tutorial-sobre-el-formato-bcd/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 09 Jul 2012 22:55:17 +0000</pubDate>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Ensamblador]]></category>
		<category><![CDATA[Eduardo Robsy]]></category>
		<category><![CDATA[Números decimales]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=12448</guid>

					<description><![CDATA[A vueltas con los números decimales: Un tutorial sobre el formato BCD En este documento se da por supuesto que el lector entiende bien el funcionamiento de los números decimales&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><strong>A vueltas con los números decimales:</strong></p>
<p style="text-align: justify;">Un tutorial sobre el formato BCD</p>
<p style="text-align: justify;">En este documento se da por supuesto que el lector entiende bien el funcionamiento de los números decimales (base 10), binarios (base 2) y su representación en forma hexadecimal (base 16).</p>
<p style="text-align: justify;">Los números son siempre almacenados en formato binario dentro de la memoria del ordenador, cuyos bits sólo pueden estar en dos estados eléctricos, alto o encendido, que equivaldría a uno, y bajo o apagado, que equivaldría a cero. El problema es que la notación binaria no es la más conveniente para los seres humanos, y que su conversión a notación decimal requiere operaciones largas y complicadas desde el punto de vista de su implementación en ensamblador, como pueden ser la división o el operador módulo.</p>
<p style="text-align: justify;">Por ejemplo, para convertir 11111111b, es decir, FFh o 255 en decimal, habría que tomar el número original, dividirlo entre 100 (decimal) y almacenar el dígito de las centenas, dividir el resto entre 10 y almacenar el cociente como dígito de las decenas, y tomar el último resto como dígito para las unidades. Esto envuelve dos divisiones, y estamos en un caso relativamente sencillo, en el que el data original sólo ocupa un byte (8 bits).</p>
<p style="text-align: justify;">Estas dificultades hacen que resulte más conveniente emplear lo que se ha dado en llamar números en formato BCD, <em>binary coded decimals</em>. El concepto subyacente es bastante sencillo: representar cada dígito decimal en cuatro bits (un <em>nibble</em>), de forma que así, en cada byte, se pueden guardar dos dígitos decimales. Este formato en concreto, en el que se almacenan dos dígitos por byte, se llama <em>packed BCD</em>. Culturilla general, hay que llamar a las cosas por su nombre. La ventaja de este formato es que el valor del byte se escribe utilizando los números decimales e indicando que es un valor hexadecimal. Es decir, para almacenar el número 27 en BCD en una posición de memoria, lo que haríamos sería poner en esa posición el valor 27h (la “h”, como no, indica formato hexadecimal). Esto es así porque cada dígito en hexadecimal representa un nibble. Vamos bien: para indicar ahora un número decimal en formato BCD empaquetado basta con escribirlo en formato decimal y añadir la “h” que indica formato hexadecimal.</p>
<p style="text-align: justify;">Ahora los más listos dirán que esto es desaprovechar espacio, y así es. Estamos gastando espacio para ganar velocidad. Como se puede averiguar muy fácilmente, con cuatro bits es posible representar valores entre 0 y 15, así que nos sobran 6 valores en total, porque sólo representaremos valores entre 0 y 9. Parece ahora que es bastante complicado manejar todo esto, pero en realidad no, porque el procesador Z80 tiene una instrucción, y sólo una, para manejar los números BCD, pero es bastante potente.</p>
<p style="text-align: justify;">Veamos un ejemplo a mano. Así podremos identificar los problemas.</p>
<p style="text-align: justify;">Queremos calcular 23 + 45, expresando tanto los sumandos como la suma en BCD. A ver qué sucede:</p>
<p style="text-align: justify;">23 + 45 = 68, haciendo el cálculo en decimal no hay problemas. Ahora hagamos la operación en hexadecimal: 23h + 45h = 68h . De nuevo, en formato BCD, no hay problemas.</p>
<p style="text-align: justify;">¿Y si los sumandos fueran, por ejemplo, 17 y 26? Ahora sí que va a haber alguna pega. 17 + 26 = 43. Por supuesto, la aritmética decimal no nos engaña. En hexadecimal, empleando la notación BCD vista, ¿qué pasa?</p>
<p style="text-align: justify;">17h + 26h = 3Dh . Mal asunto. La D no es un dígito decimal demasiado habitual que digamos. Necesitamos corregir la operación. Esto sería algo muy tedioso para hacer a mano, pero el comando DAA del Z80 lo hace por nosotros.</p>
<p style="text-align: justify;">Vamos a ver un poco de código:</p>
<pre style="text-align: justify;">ld a,17h</pre>
<pre style="text-align: justify;">add 26h ; asi tenemos en el registro A el valor 3Dh calculado arriba.</pre>
<pre style="text-align: justify;">daa ; tras ejecutar este comando, el valor en A pasa a ser 43h. Correcto!</pre>
<p style="text-align: justify;">¿Cómo funciona la instrucción DAA? Pues bueno, emplea un bit especial del registro F (flags o banderas, es decir, el registro de estado del Z80) que recoge el bit de acarreo entre los nibbles, así que puede usarlo para corregir los resultados de las operaciones.</p>
<p style="text-align: justify;">Antes de seguir, una nota importante: la instrucción DAA funciona bien después de ejecutar instrucciones aritméticas del tipo ADD, ADC, SUB, SBC de 8 bits. Ni se os ocurra usarla después de instrucciones del tipo INC o DEC, porque entonces el comando DAA no funciona en absoluto. Cuidadin, muchachos. Tampoco sería una buena idea usar DAA después de operaciones de 16 bits, porque el resultado puede ser cualquier cosa menos correcto.</p>
<p style="text-align: justify;">Ahora, si me habéis seguido hasta aquí, estaréis pensando, ¿y de qué me sirve poder utilizar sólo dos dígitos decimales? Pues tenéis toda la razón del mundo, pero es que el bit de acareo (carry) funciona bien. Es decir, para sumar los números 2358 y 750 haríais lo siguiente:</p>
<pre style="text-align: justify;">; Guardamos los valores en los registros de 16 bits BC y DE ld bc,2358h</pre>
<pre style="text-align: justify;">ld de,0750h ; Sumamos el byte bajo</pre>
<pre style="text-align: justify;">ld a,c</pre>
<pre style="text-align: justify;">add e ; Corregimos con DAA y almacenamos en L</pre>
<pre style="text-align: justify;">daa</pre>
<pre style="text-align: justify;">ld l,a ; Sumamos el byte alto – usamos aquí ADC, que usa el acarreo anterior</pre>
<pre style="text-align: justify;">ld a,b</pre>
<pre style="text-align: justify;">adc d ; Corregimos y almacenamos en H</pre>
<pre style="text-align: justify;">daa</pre>
<pre style="text-align: justify;">ld h,a ; El valor final, que debería ser 3108h, estará almacenado en el registro HL</pre>
<p style="text-align: justify;">Bien. Ahora se puede ver que se pueden hacer sumas y operaciones con múltiples bytes, representando muchos dígitos, de una forma fácil y, lo que es más importante, exacta.</p>
<p style="text-align: justify;">Entonces, si habéis entendido todo esto, hay que ver para qué pueden servir estos metafísicos números en formato BCD. Desde luego, no sirven para guardar las coordenadas de pantalla, ni para hacer búsquedas en tablas, ni nada parecido. Es decir, son números incómodos para operar con ellos, pero, sin embargo, muy prácticos a la hora de presentar información numérica para humanos. Así, en el ámbito de los video- juegos, los números en formato BCD se suelen emplear para puntuaciones y marcadores. A continuación voy a transcribir unas cuantas rutinas muy prácticas, aunque no especialmente optimizadas, para realizar estos menesteres.</p>
<pre style="text-align: justify;">BCD2CHR: ; Esta rutina convierte un byte en BCD a dos bytes en ASCII ; Entrada: A=byte en BCD ; HL=posición en la que almacenar el resultado ; Almacena byte</pre>
<pre style="text-align: justify;">ld c,a ; Mueve el nibble alto al nibble bajo</pre>
<pre style="text-align: justify;">srl a srl a srl a srl a</pre>
<pre style="text-align: justify;">; Convierte en ASCII add 48</pre>
<pre style="text-align: justify;">; Almacena ld [hl],a</pre>
<pre style="text-align: justify;">inc hl ; Recupera byte ld a,c</pre>
<pre style="text-align: justify;">; Obtiene el nibble bajo and 0Fh</pre>
<pre style="text-align: justify;">add 48 ; Almacena</pre>
<pre style="text-align: justify;">ld [hl],a inc hl ret</pre>
<pre style="text-align: justify;">BCD2TXT: ; Rutina que complementa la anterior y convierte números BCD de extensión</pre>
<pre style="text-align: justify;">variable ; Entrada: ; ; ; Bucle de @@BUCLE:</pre>
<pre style="text-align: justify;">B=numero de bytes a tratar DE=dirección del último byte del número BCD HL=dirección de inicio de la cadena de texto a crear</pre>
<pre style="text-align: justify;">copia</pre>
<pre style="text-align: justify;">ld a,[de] dec de call BCD2CHR djnz @@BUCLE</pre>
<pre style="text-align: justify;">; Termina ret</pre>
<p style="text-align: justify;">Para utilizar esta última rutina debe tenerse en cuenta que el número BCD se almacena en memoria guardando primero los bytes menos significativos. Como ejemplo, si queremos almacenar a partir de la posición 9000h el valor 245349 en BCD, el contenido de memoria quedaría así:</p>
<pre style="text-align: justify;">9000h: 49h</pre>
<pre style="text-align: justify;">9001h: 53h</pre>
<pre style="text-align: justify;">9002h: 24h</pre>
<p style="text-align: justify;">Con las rutinas anteriores, podríamos hacer lo siguiente:</p>
<pre style="text-align: justify;">; Convertir de BCD a ASCII ld hl,9800h ld de,9002h</pre>
<pre style="text-align: justify;">ld b,3</pre>
<pre style="text-align: justify;">call BCD2TXT ; Imprimir el texto</pre>
<pre style="text-align: justify;">ld de,NAMTBL ld hl,9800h ld bc,6 call LDIRVM</pre>
<p style="text-align: justify;">Esto debería ser suficiente para dejar claro el funcionamiento de los números en BCD. Su uso, aunque limitado, permite representar valores decimales de una forma rápida y precisa, con el tamaño que se requiera, y sin implicar operaciones aritméticas complejas. Por último, voy a incluir una rutina de suma de un valor BCD de 8 bits a otro valor BCD de extension variable.</p>
<pre style="text-align: justify;">; SUMABCD:</pre>
<pre style="text-align: justify;">; Suma un valor BCD a un número BCD de varios bytes</pre>
<pre style="text-align: justify;">; Entrada:</pre>
<pre style="text-align: justify; padding-left: 30px;">A=valor BCD a sumar</pre>
<pre style="text-align: justify; padding-left: 30px;">B=número de bytes usados en el valor BCD (mínimo 2 bytes, 4 dígitos)</pre>
<pre style="text-align: justify; padding-left: 30px;">HL=dirección de inicio del número en BCD</pre>
<pre style="text-align: justify;">; Corrige el contador</pre>
<pre style="text-align: justify; padding-left: 30px;"> dec b</pre>
<pre style="text-align: justify;">; Suma del primer byte</pre>
<pre style="text-align: justify; padding-left: 30px;">add [hl]</pre>
<pre style="text-align: justify; padding-left: 30px;">daa</pre>
<pre style="text-align: justify; padding-left: 30px;">ld [hl],a</pre>
<pre style="text-align: justify; padding-left: 30px;">inc hl</pre>
<pre style="text-align: justify;">; Bucle de suma</pre>
<pre style="text-align: justify;">@@BUCLE:</pre>
<pre style="text-align: justify; padding-left: 30px;">ld a,[hl]</pre>
<pre style="text-align: justify; padding-left: 30px;">adc 0</pre>
<pre style="text-align: justify; padding-left: 30px;">daa ld [hl],a</pre>
<pre style="text-align: justify; padding-left: 30px;">inc hl</pre>
<pre style="text-align: justify; padding-left: 30px;">djnz @@BUCLE</pre>
<pre style="text-align: justify;">; Finaliza</pre>
<pre style="text-align: justify; padding-left: 30px;">ret</pre>
<p style="text-align: justify;">Y creo que con esto tenéis todo lo que necesitáis para crear vuestros marcadores de puntos y récords en cualquier tipo de video-juego. Otro de los trucos que conviene tener en cuenta es que en la mayoría de los juegos, la última cifra es siempre un cero, con lo que se emplean contadores de 7 cifras, en la que la última es siempre 0, por lo que basta con emplear 6 dígitos BCD, que pueden almacenarse en sólo 3 bytes. Otras aplicaciones se os pueden ocurrir, y el código presentado sólo es un ejemplo, no pretende ser óptimo ni universal. Es una base para que empecéis a trabajar e investigar por vuestra cuenta las posibilidades del formato BCD y de la versátil instrucción DAA.</p>
<p style="text-align: justify;"><strong>© Eduardo Robsy Petrus, 2005</strong></p>
<p style="text-align: justify;"><em>9 de Febrero de 2005</em></p>
<p style="text-align: justify;">http://www.robsy.net</p>
<p style="text-align: justify;">Enlace relacionado: [download id=»321&#8243;] (PDF).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-sobre-el-formato-bcd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial de iniciación a la programación en ensamblador (VI)</title>
		<link>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-vi/</link>
					<comments>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-vi/#comments</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Tue, 06 Mar 2012 20:22:58 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Ensamblador]]></category>
		<category><![CDATA[Pepe Vila]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Sprites]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=11438</guid>

					<description><![CDATA[Apenas hemos digerido la quinta entrega del tutorial de programación en ensamblador, Pepe Vila vuelve a la carga con la sexta entrega que esta vez se centra en el funcionamiento&#8230; ]]></description>
										<content:encoded><![CDATA[
<p>Apenas hemos digerido la <a href="http://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-v/">quinta entrega del tutorial de programación en ensamblador</a>, <strong>Pepe Vila</strong> vuelve a la carga con la sexta entrega que esta vez se centra en el <strong>funcionamiento de los sprites</strong> en los MSX de primera generación a través de la creación de varios ejemplos que se irán modificando a lo largo de la lección. Además de la teoría, se analizarán las herramientas necesarias para trabajar correcta y cómodamente con sprites.</p>



<p><strong>Actualización:</strong> A continuación tenéis en enlace a la descarga completa del tutorial con todos los capítulos unidos en un solo PDF para una lectura más cómoda. A medida que Pepe publique nuevos capítulos actualizaré el documento.</p>



<h3 style="text-align:center"><a href="http://www.msxblog.es/wp-content/uploads/2014/05/Iniciación-a-la-programación-en-ensamblador.pdf">Iniciación a la programación en ensamblador (Pepe Vila)</a></h3>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-vi/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial de iniciación a la programación en ensamblador (V)</title>
		<link>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-v/</link>
					<comments>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-v/#comments</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Tue, 14 Feb 2012 00:13:13 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Ensamblador]]></category>
		<category><![CDATA[Pepe Vila]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=11346</guid>

					<description><![CDATA[Y llegamos al quinto capítulo de la interesante serie de tutoriales que Pepe Vila nos ha estado brindando durante el año pasado y lo poco que llevamos de este 2012.&#8230; ]]></description>
										<content:encoded><![CDATA[
<p>Y llegamos al quinto capítulo de la interesante serie de tutoriales que <strong>Pepe Vila</strong> nos ha estado brindando durante el año pasado y lo poco que llevamos de este 2012.</p>



<p>Con este capítulo <strong>se cierra el apartado dedicado a los gráficos</strong> (tercera parte). Se explica la manera de mostrar los gráficos de una manera que emplea menos código y bytes, la que el propio Pepe ha usado en los menús de JumpinG. También se explica cómo importar las imágenes al programa nMSXtiles y posteriormente trabajar con ellas. Si estáis siguiendo el tutorial, este capítulo os será de provecho y seguro que os dejará con ganas de más. Y habrá más, <strong>Pepe promete volver pronto con los sprites</strong>. Hasta entonces tenemos cosas que «estudiar».</p>



<p><strong>Actualización:</strong> A continuación tenéis en enlace a la descarga completa del tutorial con todos los capítulos unidos en un solo PDF para una lectura más cómoda. A medida que Pepe publique nuevos capítulos actualizaré el documento.</p>



<h3 style="text-align:center"><a href="https://www.mediafire.com/file/txsilghf7pg5lkk/Iniciacio%u0301n_a_la_programacio%u0301n_en_ensamblador.pdf/file" target="_blank" rel="noreferrer noopener" aria-label="Iniciación a la programación en ensamblador (Pepe Vila) (abre en una nueva pestaña)">Iniciación a la programación en ensamblador (Pepe Vila)</a></h3>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-de-iniciacion-a-la-programacion-en-ensamblador-v/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial de iniciación al lenguaje ensamblador (IV)</title>
		<link>https://www.msxblog.es/tutorial-de-iniciacion-al-lenguaje-ensamblador-iv/</link>
					<comments>https://www.msxblog.es/tutorial-de-iniciacion-al-lenguaje-ensamblador-iv/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 09 Feb 2012 22:24:10 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Ensamblador]]></category>
		<category><![CDATA[Pepe Vila]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=11315</guid>

					<description><![CDATA[Con un poco de retraso y despiste posterior por mi parte, aquí tenéis por fin el cuarto capítulo de la serie escrita por Pepe Vila para introducir a los más&#8230; ]]></description>
										<content:encoded><![CDATA[
<p>Con un poco de retraso y despiste posterior por mi parte, aquí tenéis por fin el <strong>cuarto capítulo</strong> de la serie escrita por <strong>Pepe Vila</strong> para introducir a los más reticentes y menos experimentados en el maravilloso y desconocido mundo de la programación en ensamblador.</p>



<p>En concreto este cuarto capítulo continúa la labor comenzada en el anterior, los gráficos. Más concretamente dando color a un conjunto de gráficos y creando un logotipo. El tutorial hace referencia a los capítulos anteriores por lo que es recomendable darles un repaso.</p>



<p>Yo ya los tengo todos impresos y los he colocado provisionalmente en una carpeta listos para anillar y de esa manera ser mi <strong>obra de consulta y referencia esencial</strong>.</p>



<p><strong>Actualización:</strong>&nbsp;A continuación tenéis en enlace a la descarga completa del tutorial con todos los capítulos unidos en un solo PDF para una lectura más cómoda. A medida que Pepe publique nuevos capítulos actualizaré el documento.</p>



<h3 style="text-align:center"><a href="http://www.msxblog.es/wp-content/uploads/2014/05/Iniciaci%C3%B3n-a-la-programaci%C3%B3n-en-ensamblador.pdf">Iniciación a la programación en ensamblador (Pepe Vila)</a></h3>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-de-iniciacion-al-lenguaje-ensamblador-iv/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Programando un Manic Miner (III)</title>
		<link>https://www.msxblog.es/programando-un-manic-miner-iii/</link>
					<comments>https://www.msxblog.es/programando-un-manic-miner-iii/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Fri, 23 Dec 2011 12:00:38 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Dani Crespo]]></category>
		<category><![CDATA[Manic Miner]]></category>
		<category><![CDATA[MSX-BASIC]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[RetroWiki]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=10807</guid>

					<description><![CDATA[Artículo de Dani Crespo publicado en RetroWiki. Adaptado y publicado por Konamito. En esta última entrega vamos a aprender a programar los distintos movimientos de nuestro personaje. Hay que tener&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Artículo de <strong>Dani Crespo</strong> publicado en <a href="http://www.retrowiki.es/e107_plugins/content/content.php?content.161" target="_blank">RetroWiki</a>. Adaptado y publicado por Konamito.</p>
<p style="text-align: justify;">En esta última entrega vamos a aprender a programar los distintos movimientos de nuestro personaje.</p>
<p style="text-align: justify;">Hay que tener en cuenta que esta es la parte más compleja del programa, y a su vez la que más va a afectar al rendimiento del ordenador. Se han añadido nuevas rutinas y se han modificado otras para optimizar el funcionamiento del programa.</p>
<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/16.jpg" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="10945" data-permalink="https://www.msxblog.es/programando-un-manic-miner-iii/1-9/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/16.jpg?fit=640%2C400&amp;ssl=1" data-orig-size="640,400" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/16.jpg?fit=300%2C187&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/16.jpg?fit=640%2C400&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10945" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/16-400x250.jpg?resize=400%2C250" alt="" width="400" height="250" data-recalc-dims="1" /></a></p>
<h3>RUTINA DE CARGA DE LOS GRÁFICOS DE WILLY</h3>
<p style="text-align: justify;">Lo primero que hay que hacer es cargar los gráficos del protagonista del juego.</p>
<p style="text-align: justify;">En esta versión he utilizado dos animaciones de Willy de 16&#215;16 pixels para cada dirección.</p>
<p style="text-align: justify;">La rutina comienza en la línea 8000 y acaba en la 8270.</p>
<p style="text-align: justify;">Como en las anteriores cargas de gráficos, leemos los valores de las líneas DATA y las metemos en la VRAM, en la zona reservada a los SPRITES.</p>
<p style="text-align: justify;">En la línea 7090, dentro de la rutina de activar el modo SCREEN 1, hacemos el GOSUB a esta rutina. Solo se ejecuta una vez.</p>
<h3>MOVIMIENTO DE WILLY</h3>
<p style="text-align: justify;">En un principio empecé a programar el movimiento de Willy con una velocidad de 2 pixels. Esto le proporcionaba un movimiento muy suave, pero al activar las partes del código que controlan si Willy toca algún objeto, el rendimiento cayo totalmente. Así que no he tenido más remedio que hacer que Willy se mueva de 8 en 8 pixels. Explico el porque.</p>
<p style="text-align: justify;">Si Willy se mueve a 8 pixels, en todo momento esta encima, debajo y delante o detrás de 2 gráficos y el código de detección de contacto con el escenario se simplifica.<br />
Si Willy se mueve a 1, 2 ó 4 pixels, cuando su posición es múltiplo de 8 está en contacto con 2 gráficos, pero en el resto de casos Willy está en contacto con 3 gráficos. Esto hace que la detección de contacto se complique y en consecuencia, caiga el rendimiento.</p>
<p style="text-align: justify;">La parte de código que se encarga de mover a Willy se compone de varias subrutinas. Vamos a ver cuales son:</p>
<ul>
<li>&#8211; Línea 2000: Rutina de control principal.</li>
<li>&#8211; Línea 2100: ¿Caída?</li>
<li>&#8211; Línea 2200: Movimiento a la derecha.</li>
<li>&#8211; Línea 2300: Movimiento a la izquierda.</li>
<li>&#8211; Línea 2400: Control de salto.</li>
<li>&#8211; Línea 2600: ¿Hay pared?</li>
<li>&#8211; Línea 2800: ¿Que toca?</li>
</ul>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Variables implicadas en el movimiento de Willy</strong></span></p>
<ul>
<li>WX – Posición horizontal de Willy.</li>
<li>WY – Posición vertical de Willy.</li>
<li>WS – Si es mayor de 0, Willy está saltando.</li>
<li>WC – Si es igual a 1, Willy está cayendo.</li>
<li>WM – Indica en que dirección se está moviendo Willy cuando anda o salta. Hacia la derecha vale 3 y hacia la izquierda 8.</li>
<li>WD – En condiciones normales está a 0. Contiene un 1 si Willy ha muerto y un 2 si Willy ha de pasar la pantalla.</li>
<li>WA – Control de la animación de Willy. 16 ó 20 hacia la derecha y 24 ó 28 hacia la izquierda.</li>
<li>WP – Indica sobre que carácter esta la parte superior izquierda de Willy. Con ella evitamos tenerlo que calcular a cada movimiento.</li>
</ul>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Funcionamiento de las rutinas</strong></span></p>
<p style="text-align: justify;">La entrada al control del movimiento empieza en la línea 2000. A esta línea se llega una vez que acaba la rutina que controla a los enemigos, en la línea 1000. Así nos ahorramos un GOSUB.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Rutina de control principal</span></p>
<p style="text-align: justify;">Aquí controlamos que ha de hacer Willy: saltar, caer, moverse o estar quieto.</p>
<ul>
<li>2000 – Comprueba si Willy está saltando (variable WS). Si salta va a la línea 2400.</li>
<li>2010 – Comprueba si Willy está cayendo (variable WC). Si cae va a la línea 2100.</li>
<li>2020 – Si se pulsa la barra espaciadora se pone la variable de salto WS a 1.</li>
<li>2030 – Guardamos en la variable WM si se ha pulsado la tecla cursora derecha o izquierda.</li>
<li>2040 – Si WM es 3 vamos a la rutina que se encarga de mover a Willy a la derecha, en la línea 2200.</li>
<li>2050 – Si WM es 7 vamos a la rutina que se encarga de mover a Willy a la izquierda, en la línea 2300.</li>
<li>2060 – Volvemos al nudo principal de desarrollo.</li>
</ul>
<p style="text-align: justify;">¿Caída?</p>
<p style="text-align: justify;">Control que comprueba si hay suelo bajo los pies de Willy, o si ya está cayendo.</p>
<ul>
<li>2100 – Mueve a Willy 8 pixels hacia abajo y actualiza el valor de WP. Esta línea solo se ejecuta cuando Willy ya está cayendo.</li>
<li>2110 – Al igual que en la rutina de salto vamos a hacer un barrido de los gráficos que hay bajo los pies de Willy para ver si ha de caer o no. Ponemos WC a 1, VP con el primer carácter a explorar y en M el siguiente.</li>
<li>2120 – Inicio de un bucle que se encarga de comprobar que hay bajo los pies de Willy.</li>
<li>2130 – En la variable C guardamos el carácter que está tocando Willy. Si no hay nada evitamos ejecutar la rutina de comprobación.</li>
<li>2140 – Si hay suelo, desactivamos la rutina de caída poniendo WC a 0.</li>
<li>2150 – Comprobamos que estamos pisando.</li>
<li>2160 – Final del bucle.</li>
<li>2170 – Retorno de la rutina de caída.</li>
</ul>
<p style="text-align: justify;">Movimiento a la derecha:</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Rutina de control del movimiento a la derecha</span></p>
<ul>
<li>2200 – A partir de la animación del personaje veremos si mira a la derecha. Este valor se almacena en la variable WA.</li>
<li>2210 – Si Willy tiene una pared a la derecha no se permite el movimiento. Ponemos la posición del Willy en la variable VP, llamamos a la rutina de 2600 y si al volver WW vale 0 no se permite el movimiento.</li>
<li>2220 – Hacemos avanzar a Willy 8 pixels, actualizamos el valor de WP y cambiamos su animación.</li>
<li>2230 – Actualizamos la animación del SPRITE con el valor de la variable WA.</li>
<li>2240 – Si Willy no está saltando vamos a la rutina de 2110, que comprueba si hay suelo bajo sus pies.</li>
<li>2250 &#8211; Con este RETURN volvemos al nudo principal de desarrollo.</li>
</ul>
<p style="text-align: justify;">Movimiento a la izquierda:</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Rutina de control del movimiento a la izquierda</span></p>
<ul>
<li>2300 – A partir de la animación del personaje veremos si mira a la izquierda. Este valor se almacena en la variable WA.</li>
<li>2310 – Si Willy tiene una pared a la izquierda no se permite el movimiento. Ponemos la posición del Willy en la variable VP, llamamos a la rutina de 2600 y si al volver WW vale 0 no se permite el movimiento.</li>
<li>2320 – Hacemos retroceder a Willy 8 pixels, actualizamos el valor de WP y cambiamos su animación.</li>
<li>2330 – Actualizamos la animación del SPRITE con el valor de la variable WA.</li>
<li>2340 – Si Willy no está saltando vamos a la rutina de 2110, que comprueba si hay suelo bajo sus pies.</li>
<li>2350 &#8211; Con este RETURN volvemos al nudo principal de desarrollo.</li>
</ul>
<p style="text-align: justify;">Control de salto:</p>
<p style="text-align: justify;"><span style="text-decoration: underline;">Rutina del estado del salto</span></p>
<ul>
<li>2400 – Si el contador de salto WS es inferior a 4, Willy sube 8 pixels y se actualiza el valor de WP.</li>
<li>2410 – Si el contador de salto WS es mayor de 4, Willy baja 8 pixels y se actualiza el valor de WP.</li>
<li>2420 – Si el contador de salto WS es inferior a 5, se incrementa en 1. En caso contrario se desactiva el salto.</li>
<li>2430 – En la variable VP ponemos la posición en la VRAM del caracter sobre el que está Willy, y en M la siguiente.</li>
<li>2440 – Inicio de un bucle que se encarga de comprobar que hay sobre la cabeza de Willy.</li>
<li>2450 – En la variable C guardamos el carácter que está tocando Willy. Si es diferente de un espacio vamos saltamos a la línea 2800 donde hay una lista de los objetos a tratar y que hacer en cada caso.</li>
<li>2460 – Final del bucle.</li>
<li>2470 – Si al saltar estábamos moviendo a Willy a la derecha, salta a 2200 para moverlo en esa dirección.</li>
<li>2480 – Si al saltar estábamos moviendo a Willy a la izquierda, salta a 2300 para moverlo en esa dirección.</li>
<li>2490 – Retorno de la rutina de salto.</li>
</ul>
<p style="text-align: justify;">¿Hay pared?</p>
<p style="text-align: justify;">Antes de mover a Willy comprobamos si lo puede hacer.</p>
<ul>
<li>2600 – En la variable M guardamos el valor máximo que hemos de comprobar, y en WW guardamos si Willy puede caminar.</li>
<li>2610 – Inicio del bucle de comprobación.</li>
<li>2620 – En la variable C guardamos el carácter que hay al lado de Willy. Si hay algo, vamos a la rutina de comprobación.</li>
<li>2630 – Final del bucle.</li>
<li>2640 – Retorno de la rutina.</li>
</ul>
<p style="text-align: justify;">¿Qué toca?</p>
<p style="text-align: justify;">Al saltar, caer o moverse Willy comprueba que está tocando, y actúa en consecuencia.</p>
<ul>
<li>2800 – Si toca la pared de ladrillo pone la variable WW a 0. Esto indica que no se puede mover.</li>
<li>2810 – Si toca una llave, la borra de pantalla, suma 100 puntos, imprime el marcador de puntos y resta una llave.</li>
<li>2820 – Si toca una planta o una estalactita pone la variable WD a 1, que indica que Willy ha muerto.</li>
<li>2830 – Si toca un gráfico de la puerta de salida pone la variable WD a 2, que indica que Willy ha superado la pantalla.</li>
<li>2840 – Fin de la rutina de comprobación.</li>
</ul>
<p style="text-align: justify;"><span style="text-decoration: underline;">Choque de SPRITES</span></p>
<p style="text-align: justify;">El MSX permite controlar automáticamente si dos SPRITES colisionan. Esto lo indicamos en las líneas 20 y 30.</p>
<p style="text-align: justify;">En caso de colisión, simplemente el control del programa salta a la línea 2900 y pone la variable WD a 1, y vuelve.</p>
<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/22.jpg" data-rel="lightbox-image-1" data-imagelightbox="1" data-rl_title="" data-rl_caption=""><img data-attachment-id="10946" data-permalink="https://www.msxblog.es/programando-un-manic-miner-iii/2-9/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/22.jpg?fit=640%2C400&amp;ssl=1" data-orig-size="640,400" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/22.jpg?fit=300%2C187&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/22.jpg?fit=640%2C400&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10946" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/22-400x250.jpg?resize=400%2C250" alt="" width="400" height="250" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;"><strong>CAMBIOS VARIOS</strong><br />
Hay varias partes del código que se han modificado para acabar el programa o mejorar el rendimiento.</p>
<ul>
<li>20 – Se activa la detección automática de colisión de SPRITES.</li>
<li>30 – Si hay una colisión, salta a la línea 2900.</li>
<li>220 – Se actualiza la posición horizontal y vertical del SPRITE de Willy.</li>
<li>410 – Si Willy ha cogido todas las llaves (variable K) salta a la presentación.</li>
<li>6280 – Se utiliza la función STRING$ para imprimir las plataformas horizontales de la pantalla. La pantalla se imprime mucho más rápidamente.</li>
<li>6650 – Leemos del DATA la posición inicial de Willy. Orden: posición horizontal, vertical y número de llaves de la pantalla.</li>
<li>6660 – Calculamos el valor de la variable WP a partir de la posición de la VRAM donde el modo SCREEN 1 guarda la pantalla.</li>
<li>6670 – Calculamos la posición inicial de Willy en pixels.</li>
<li>6680 – Ponemos el SPRITE de Willy en pantalla.</li>
<li>6690 – Activamos la animación inicial de Willy y su color.</li>
<li>6700 – Guardamos la animación inicial en WA, y indicamos que Willy no salta (WS=0), no cae (WC=0) y no está muerto (WD=0).</li>
<li>9010 a 9014 – Se han modificado algunos valores de la configuración de pantalla para adaptarla a las posibilidades del juego. Hay que tener en cuenta que a diferencia del juego original, aquí el suelo no se hunde, con lo que hay que hacer algún agujero en la plataforma superior. También se ha eliminado alguna planta.</li>
<li>9026 – DATA donde se indica el nombre de la pantalla, posición de la puerta, posición inicial de Willy y el número de llaves de la pantalla.</li>
</ul>
<h3>¿QUE MÁS QUEDA?</h3>
<p style="text-align: justify;">Bueno, pues aquí es donde entra vuestra creatividad.</p>
<p style="text-align: justify;">El código que se presenta es totalmente funcional, y el rendimiento es lo suficientemente bueno como para permitir que en una pantalla puedan haber hasta 3 enemigos simultáneamente. Así que se podrían incluir nuevos gráficos y diseños de pantallas para incorporar algún nivel más. Faltaría una pequeña rutina que en función del número de pantalla posicionara el RESTORE de la línea 6000 en el DATA correspondiente.</p>
<p style="text-align: justify;">En el juego original se hunde el suelo y hay cintas que mueven al personaje, pero aquí se ha eliminado por temas de rendimiento.</p>
<p style="text-align: justify;">El personaje se controla con los cursores y la tecla espacio. Se podría activar el uso del joystick.</p>
<p style="text-align: justify;">Se podría crear una pantalla de presentación más completa.</p>
<p style="text-align: justify;">Y como no, falta el sonido y la música de fondo.</p>
<h3 style="text-align: justify;">EL LISTADO DEFINITIVO</h3>
<p style="text-align: justify;">Pues a continuación os presento el listado definitivo.</p>
<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/32.jpg" data-rel="lightbox-image-2" data-imagelightbox="2" data-rl_title="" data-rl_caption=""><img data-attachment-id="10949" data-permalink="https://www.msxblog.es/programando-un-manic-miner-iii/3-9/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/32.jpg?fit=640%2C800&amp;ssl=1" data-orig-size="640,800" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/32.jpg?fit=240%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/32.jpg?fit=640%2C800&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10949" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/32-240x300.jpg?resize=240%2C300" alt="" width="240" height="300" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/32.jpg?resize=240%2C300&amp;ssl=1 240w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/32.jpg?w=640&amp;ssl=1 640w" sizes="(max-width: 240px) 100vw, 240px" data-recalc-dims="1" /></a><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/42.jpg" data-rel="lightbox-image-3" data-imagelightbox="3" data-rl_title="" data-rl_caption=""><img data-attachment-id="10950" data-permalink="https://www.msxblog.es/programando-un-manic-miner-iii/4-11/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/42.jpg?fit=640%2C775&amp;ssl=1" data-orig-size="640,775" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/42.jpg?fit=247%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/42.jpg?fit=640%2C775&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10950" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/42-247x300.jpg?resize=247%2C300" alt="" width="247" height="300" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/42.jpg?resize=247%2C300&amp;ssl=1 247w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/42.jpg?w=640&amp;ssl=1 640w" sizes="(max-width: 247px) 100vw, 247px" data-recalc-dims="1" /></a><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/52.jpg" data-rel="lightbox-image-4" data-imagelightbox="4" data-rl_title="" data-rl_caption=""><img data-attachment-id="10948" data-permalink="https://www.msxblog.es/programando-un-manic-miner-iii/5-10/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/52.jpg?fit=640%2C368&amp;ssl=1" data-orig-size="640,368" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/52.jpg?fit=300%2C172&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/52.jpg?fit=640%2C368&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10948" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/52-400x230.jpg?resize=400%2C230" alt="" width="400" height="230" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Y como siempre…</p>
<p style="text-align: justify;">Para terminar, todo este desarrollo se ha programado en un <strong>MSX-2 Philips VG-8235</strong> y se ha probado en un <strong>Toshiba HX-10</strong>. El listado se ha impreso en una impresora matricial <strong>Brother M-1109</strong>. A lo retro, como dios manda.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/programando-un-manic-miner-iii/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Programando un Manic Miner (II)</title>
		<link>https://www.msxblog.es/programando-un-manic-miner-ii/</link>
					<comments>https://www.msxblog.es/programando-un-manic-miner-ii/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Mon, 19 Dec 2011 15:00:01 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Dani Crespo]]></category>
		<category><![CDATA[Manic Manier]]></category>
		<category><![CDATA[MSX-BASIC]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[RetroWiki]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=10805</guid>

					<description><![CDATA[Artículo de Dani Crespo publicado en RetroWiki. Adaptado y publicado por Konamito. En esta entrega vamos a ver como montar el nudo de desarrollo y como se controlan los enemigos&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Artículo de <strong>Dani Crespo</strong> publicado en <a href="http://www.retrowiki.es/e107_plugins/content/content.php?content.142" target="_blank">RetroWiki</a>. Adaptado y publicado por Konamito.</p>
<p style="text-align: justify;">En esta entrega vamos a ver como montar el nudo de desarrollo y como se controlan los enemigos del juego.</p>
<p style="text-align: justify;">Algunas rutinas han sufrido algún cambio para optimizar el código, que a su vez, incrementa su velocidad. Algunas pierden en claridad pero ganan en velocidad y reducen la memoria que ocupa el juego.</p>
<p style="text-align: justify;">Como veremos, las principales rutinas se han puesto al principio del programa, ya que el intérprete BASIC las encuentra más rápidamente al hacer un GOTO o un GOSUB, y por consiguiente aumenta la velocidad.</p>
<h3>NUDO PRINCIPAL DE DESARROLLO</h3>
<p style="text-align: justify;">Desde la línea 10 hasta la 600 se ha montado el nudo principal de desarrollo, que es el lugar desde donde iremos llamando al resto de rutinas.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Funcionamiento del nudo</strong></span></p>
<ul>
<li>010 &#8211; Matriz de información de los enemigos. Esta línea solo se ejecuta una vez.</li>
<li>100 &#8211; Llamada a la subrutina (7000) que activa el SCREEN 1 y cambia los atributos de color de las letras y números.</li>
<li>110 &#8211; Llama a la subrutina (3000) que muestra la pantalla de instrucciones e inicializa algunas variables del juego, como el número de vidas o los puntos.</li>
<li>190 &#8211; Llama a la subrutina (7400) que imprime los marcadores de récord y puntos.</li>
<li>200 &#8211; Llama a las subrutinas que se encargan de cargar los gráficos del nivel (6000), sus atributos de color (6100), los gráficos de los enemigos (6200), su posición (6400) y la posición de la puerta de salida y el nombre de la pantalla (6600).</li>
<li>210 &#8211; Llama a la rutina (1000) que se encarga de mover a los enemigos.</li>
<li>220 &#8211; Resta el tiempo disponible para acabar el nivel. Si se acaba salta a la línea 400.</li>
<li>230 &#8211; Se borra el punto correspondiente en la barra de tiempo.</li>
<li>300 &#8211; Si se pulsa la tecla «Escape» sale del juego, saltando a la línea 500.</li>
<li>310 &#8211; Cierra el bucle principal volviendo a la línea 210.</li>
<li>400 &#8211; Se resta una vida (variable W), se reinicia el tiempo y si quedan vidas se salta a 200 para volver a cargar el nivel.</li>
<li>430 &#8211; Si no quedan vidas, se hace un bucle que se encarga de esconder a los SPRITES poniendo su posición vertical a 209.</li>
<li>460 &#8211; Final de la partida. Salta a 110 para volver a mostrar la pantalla de presentación.</li>
<li>500 &#8211; Aquí se llega al pulsar la tecla «Escape» y se llama a la subrutina (7200) que vuelve al modo texto en SCREEN 0.</li>
<li>600 &#8211; Para el programa en BASIC.</li>
</ul>
<h3>RUTINA DE PANTALLA DE PRESENTACIÓN</h3>
<p style="text-align: justify;">En la línea 3000 comienza la rutina que se encarga de mostrar la pantalla de presentación e inicializar algunas variables del juego. Como se puede ver, se ha puesto una simple, de ejemplo.</p>
<p style="text-align: justify;"><strong>Las variables usadas son</strong></p>
<ul>
<li>P &#8211; Puntos del juego.</li>
<li>S &#8211; Record del juego.</li>
<li>L &#8211; Nivel actual.</li>
<li>T &#8211; Tiempo restante.</li>
<li>W &#8211; Número de vidas de Willy.</li>
</ul>
<div><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/15.jpg" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="10938" data-permalink="https://www.msxblog.es/programando-un-manic-miner-ii/1-8/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/15.jpg?fit=640%2C400&amp;ssl=1" data-orig-size="640,400" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando um Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/15.jpg?fit=300%2C187&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/15.jpg?fit=640%2C400&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10938" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/15-400x250.jpg?resize=400%2C250" alt="" width="400" height="250" data-recalc-dims="1" /></a></div>
<p style="text-align: justify;">
<h3 style="text-align: justify;"><strong>RUTINA DE LOS MARCADORES</strong></h3>
<p style="text-align: justify;">Esta rutina está ubicada en la línea 7400 y se encarga de mostrar el marcador de los puntos.</p>
<h3 style="text-align: justify;"><strong>RUTINA DE CARGA DE ENEMIGOS</strong></h3>
<p style="text-align: justify;">El MSX permite controlar hasta 32 SPRITES simultáneamente en pantalla.</p>
<p style="text-align: justify;">Por un lado, en la VRAM hay una zona de 2048 bytes, comprendida entre la posición 14336 y la 16384, donde se pueden almacenar hasta 256 gráficos de 8&#215;8 para ser usados en los SPRITES.</p>
<p style="text-align: justify;">Por otro lado hay otra zona de 128 bytes, desde la posición 6912 a la 7039, donde se guarda la información de los 32 SPRITES, agrupando los bytes de 4 en 4. En ellos se va guardando la posición vertical, horizontal, gráfico del SPRITE y color.</p>
<p style="text-align: justify;">Si el SPRITE es de 16&#215;16, cada 4 gráficos consecutivos se considerarán un único gráfico, empezando por el superior izquierdo, inferior izquierdo, superior derecho y inferior derecho.</p>
<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/21.jpg" data-rel="lightbox-image-1" data-imagelightbox="1" data-rl_title="" data-rl_caption=""><img data-attachment-id="10939" data-permalink="https://www.msxblog.es/programando-un-manic-miner-ii/2-8/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/21.jpg?fit=640%2C734&amp;ssl=1" data-orig-size="640,734" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/21.jpg?fit=261%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/21.jpg?fit=640%2C734&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10939" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/21-261x300.jpg?resize=261%2C300" alt="" width="261" height="300" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/21.jpg?resize=261%2C300&amp;ssl=1 261w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/21.jpg?w=640&amp;ssl=1 640w" sizes="(max-width: 261px) 100vw, 261px" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Codificación de los datos</strong></span></p>
<p style="text-align: justify;"><strong></strong>Entre las línea 9015 y la 9022 se han introducido los gráficos del enemigo del primer nivel. Cada dos líneas contienen un gráfico de 16&#215;16 con una de sus animaciones.</p>
<p style="text-align: justify;">En la línea 9024 se ha introducido el número de enemigos y sus datos correspondientes, en grupos de 7 valores en el DATA.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Formato de la codificación</strong></span></p>
<p style="text-align: justify;"><strong></strong>Controlar cada enemigo requiere 7 valores, con el siguiente formato:</p>
<p style="text-align: justify;">1º- Color del enemigo.<br />
2º- Posición inicial horizontal, en pixels.<br />
3º- Posición inicial vertical, en pixels. Una forma de calcular el valor es: posición en caracteres * 8 &#8211; 1.<br />
4º- Velocidad del enemigo en pixels. Se recomienda los valores 1, 2, 4, 8. Si el movimiento inicial es hacia la izquierda, el valor debe ser negativo.<br />
5º- Posición mínima horizontal. Al llegar a este valor cambia su dirección hacia la derecha.<br />
6º- Posición máxima horizontal. Al llegar a este valor cambia su dirección hacia la izquierda.<br />
7º- Primera animación al aparecer. 0 si va a la izquierda y 8 si va a la derecha. Este parámetro se podría obviar.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Funcionamiento de la rutina</strong></span></p>
<p style="text-align: justify;">Esta rutina está ubicada en la línea 6400, y está preparada para mover a los enemigos horizontalmente. Cada enemigo dispone de cuatro animaciones, dos hacia la derecha y dos hacia la izquierda.</p>
<p style="text-align: justify;">Los enemigos tienen un tamaño de 16&#215;16 pixels, con lo que cada animación ocupa 32 bytes. Las cuatro ocupan un total de 128 bytes y se almacenan consecutivamente a partir de la posición 14336 de la VRAM.</p>
<p style="text-align: justify;">En 6440, una vez cargados los gráficos, se lee de una línea DATA la cantidad de enemigos que se han de mostrar, y se almacena en la variable N, y a continuación va leyendo tantos grupos de  7 valores del DATA como indica N, y los va guardando en la matriz E. Al acabar coloca a los enemigos en su posición correspondiente pasando los valores a la VRAM.</p>
<p style="text-align: justify;">Como ya tenemos los datos de los enemigos cargados, ahora toca moverlos.</p>
<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/31.jpg" data-rel="lightbox-image-2" data-imagelightbox="2" data-rl_title="" data-rl_caption=""><img data-attachment-id="10940" data-permalink="https://www.msxblog.es/programando-un-manic-miner-ii/3-8/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/31.jpg?fit=640%2C400&amp;ssl=1" data-orig-size="640,400" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/31.jpg?fit=300%2C187&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/31.jpg?fit=640%2C400&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10940" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/31-400x250.jpg?resize=400%2C250" alt="" width="400" height="250" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">
<h3 style="text-align: justify;">RUTINA DE MOVIMIENTO DE ENEMIGOS</h3>
<p style="text-align: justify;">Si el MSX no tiene problemas para controlar hasta 32 SPRITES mediante programas en código máquina, al usar BASIC el número decae considerablemente. Así pues, en este programa el número máximo de enemigos a mover lo limita el tamaño de la matriz E, que debe ser un múltiple de 7. Ahora es 21, con lo que permite almacenar hasta 3 SPRITES. De todas formas, el BASIC no permite grandes alegrías, e intentar mover más producirá una perdida de rendimiento fatal.</p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Funcionamiento de la rutina</strong></span></p>
<p style="text-align: justify;">La rutina empieza en la línea 1000 y ocupa solo 13 líneas de código.</p>
<p style="text-align: justify;"><strong>Vamos a ver como funciona:</strong></p>
<ul>
<li>1000 &#8211; Ponemos en la variable D el valor de VRAM donde está el primer SPRITE a controlar, y en la variable A el primer valor en la matriz E.</li>
<li>1010 &#8211; Inicio de un bucle que se repetirá tantas veces como enemigos marque la variable N.</li>
<li>1020 &#8211; Para evitar repetir sumas varias veces posteriormente, cargamos los resultados en varias variables. O &#8211; Dirección/Velocidad del enemigo, X &#8211; Posición horizontal, G &#8211; Animación actual. Para terminar, modificamos la posición horizontal del enemigo.</li>
<li>1030 &#8211; Si el enemigo se dirige a la izquierda, salta a 1060.</li>
<li>1040 &#8211; Si el enemigo llega a la posición horizontal máxima, invierte el valor de O, y en lugar de sumar, restará. Modifica la orientación de la animación (variable M).</li>
<li>1050 &#8211; Salta a 1070.</li>
<li>1060 &#8211; Si el enemigo llega a la posición horizontal mínima, invierte el valor de O, y en lugar de restar, sumará. Modifica la orientación de la animación (variable M).</li>
<li>1070 &#8211; Pone en el valor del SPRITE correspondiente la nueva posición horizontal.</li>
<li>1080 &#8211; Cambia la animación.</li>
<li>1090 &#8211; Pone en el valor del SPRITE correspondiente el gráfico a presentar. Con esto conseguimos la animación.</li>
<li>1100-  Sumamos 4 a la variable D para apuntar al siguiente SPRITE, y sumamos 7 a la variable A para apuntar a los siguientes valores de la matriz E.</li>
<li>1110 &#8211; Si quedan más enemigos a mover, vuelve a la línea 1020.</li>
<li>1120 &#8211; Sale de la rutina y vuelve al nudo principal de desarrollo.</li>
</ul>
<p style="text-align: justify;">En la rutina, ciertas variables se tratan como valores enteros, poniendo un %, para acelerar los cálculos, ya que se realizan más rápidamente con números enteros que con números reales.</p>
<p style="text-align: justify;">Ahora mismo solo aparece un enemigo en pantalla, como en el juego real, pero si sustituimos el valor 1 de la línea 9024 por un 2 y añadimos 7 valores, aparecerán dos enemigos.</p>
<p style="text-align: justify;">Por ejemplo:</p>
<pre style="text-align: justify;"> 9024 DATA 2,11,93,55,2,71,127,9,4,93,23,1,71,127,9</pre>
<p style="text-align: justify;">Aparece un nuevo enemigo por encima del anterior moviéndose más lentamente.</p>
<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/41.jpg" data-rel="lightbox-image-3" data-imagelightbox="3" data-rl_title="" data-rl_caption=""><img data-attachment-id="10941" data-permalink="https://www.msxblog.es/programando-un-manic-miner-ii/4-10/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/41.jpg?fit=640%2C400&amp;ssl=1" data-orig-size="640,400" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/41.jpg?fit=300%2C187&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/41.jpg?fit=640%2C400&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10941" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/41-400x250.jpg?resize=400%2C250" alt="" width="400" height="250" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">
<h3 style="text-align: justify;"><strong> RESUMEN Y COMENTARIOS</strong></h3>
<p style="text-align: justify;">En este nuevo listado se han realizado algunos cambios destinados a mejorar el rendimiento del programa, como puede ser agrupar varias instrucciones en una misma línea, o a usar variables enteras en lugar de valores reales.</p>
<p style="text-align: justify;">La rutina de movimiento ha sido depurada para conseguir el mejor rendimiento posible. Cronometro en mano, conseguí reducir de 10 segundos a 7 segundos el ciclo de recorrido de un enemigo.</p>
<p style="text-align: justify;">Hasta ahora, tanto el aspecto gráfico como la velocidad del juego es igual al «Manic Miner» original. Queda la parte más compleja, tanto a nivel de programación como de rendimiento, que es la que corresponde a Willy, el protagonista. Esto lo veremos en la siguiente entrega.</p>
<p style="text-align: justify;">Olvidé decir que por algún motivo que desconozco, pero comprobado en varios MSX, al usar el modo SCREEN 1 y ponerlo a  32 columnas, la de más a la izquierda queda recortada. Así, solo utilizo 31, con lo que el juego es 8 pixels más estrecho que el original.</p>
<p style="text-align: justify;">El listado, provisional, de todo este montaje queda así.</p>
<p style="text-align: justify;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/51.jpg" data-rel="lightbox-image-4" data-imagelightbox="4" data-rl_title="" data-rl_caption=""><img data-attachment-id="10942" data-permalink="https://www.msxblog.es/programando-un-manic-miner-ii/5-9/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/51.jpg?fit=640%2C728&amp;ssl=1" data-orig-size="640,728" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/51.jpg?fit=263%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/51.jpg?fit=640%2C728&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10942" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/51-263x300.jpg?resize=263%2C300" alt="" width="263" height="300" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/51.jpg?resize=263%2C300&amp;ssl=1 263w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/51.jpg?w=640&amp;ssl=1 640w" sizes="(max-width: 263px) 100vw, 263px" data-recalc-dims="1" /></a><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/61.jpg" data-rel="lightbox-image-5" data-imagelightbox="5" data-rl_title="" data-rl_caption=""><img data-attachment-id="10943" data-permalink="https://www.msxblog.es/programando-un-manic-miner-ii/6-8/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/61.jpg?fit=640%2C634&amp;ssl=1" data-orig-size="640,634" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Programando un Manic Miner" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/61.jpg?fit=300%2C297&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/61.jpg?fit=640%2C634&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-10943" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/61-302x300.jpg?resize=302%2C300" alt="" width="302" height="300" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Para terminar, todo este desarrollo se ha programado en un <strong>MSX-2 Philips VG-8235</strong> y se ha probado en un <strong>Toshiba HX-10</strong>. El listado se ha impreso en una impresora matricial <strong>Brother M-1109</strong>. A lo retro, como dios manda.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/programando-un-manic-miner-ii/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Programando un Manic Miner (I)</title>
		<link>https://www.msxblog.es/programando-un-manic-miner-i/</link>
					<comments>https://www.msxblog.es/programando-un-manic-miner-i/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 14 Dec 2011 08:00:28 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Dani Crespo]]></category>
		<category><![CDATA[Manic Miner]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[RetroWiki]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=9679</guid>

					<description><![CDATA[Artículo de Dani Crespo publicado en RetroWiki. Adaptado y publicado por Konamito. El objetivo de este tutorial consiste en aprender a programar una versión del juego Manic Miner y descubrir&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Artículo de <strong>Dani Crespo</strong> publicado en <a href="http://www.retrowiki.es/e107_plugins/content/content.php?content.141" target="_blank">RetroWiki</a>. Adaptado y publicado por Konamito.</p>
<p style="text-align: justify;">El objetivo de este tutorial consiste en aprender a programar una versión del juego Manic Miner y descubrir distintas técnicas de programación para optimizar el código. He seleccionado este juego porque es un auténtico clásico, con pocas pantallas y gráficos. Esto nos permitirá generar un código muy compacto, ya que en los juegos, la mayor parte de la memoria se dedica a los gráficos y a los datos de las pantallas.</p>
<p style="text-align: justify;">Quiero dejar claro que ignoro como se ha programado el juego original, y que lo que voy a hacer es reproducirlo según mis métodos de programación. Por otro lado, no vamos a programar el juego completo, pero lo que hagamos será totalmente funcional. El objetivo es explicar como se puede hacer, y el que quiera que lo complete o modifique a su gusto.</p>
<p style="text-align: justify;">El programa está escrito en BASIC para MSX, pero las técnicas empleadas son completamente válidas para cualquier microordenador con unas características similares. Una vez el programa funcione, podremos empezar a reprogramar algunas partes del código en ensamblador para descubrir que el programa se ejecuta mucho más rápidamente y que la cantidad de memoria necesaria se reduce considerablemente.</p>
<p style="text-align: justify;">Inicialmente, el tutorial se divide en 7 partes:</p>
<ol style="text-align: justify;">
<li>Rutina de presentación de la pantalla de juego.</li>
<li>Rutina de carga de los gráficos y colores.</li>
<li>Nudo principal de desarrollo.</li>
<li>Rutinas de control de enemigos.</li>
<li>Rutinas de control de Willy, el protagonista.</li>
<li>Rutinas de control de marcadores, inicio y final de partida.</li>
<li>Adaptación a código máquina de algunas rutinas del juego.</li>
</ol>
<p style="text-align: justify;">Y si alguien se quiere entretener a adaptar el código a otros sistemas, encantado. Lo he diseñado para que sea bastante simple.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/how_manic_0.gif?resize=512%2C370" alt="Programando un Manic Miner" width="512" height="370" data-recalc-dims="1" /></p>
<h3 style="text-align: justify;">RUTINA DE PRESENTACIÓN DE LA PANTALLA DE JUEGO</h3>
<p style="text-align: justify;">Todos los elementos que configuran las distintas pantallas han sido codificados para conseguir que funcione con muy pocos datos. Con esto, conseguimos que ocupe poca memoria, se reduzca el tamaño del código y se ejecute más rápidamente.</p>
<h4 style="text-align: justify;">Codificación de los datos</h4>
<p style="text-align: justify;">A partir de la línea 9010 se han introducido los datos de la primera pantalla, en varias líneas DATA.</p>
<h4 style="text-align: justify;"><strong>Formato de la codificación</strong></h4>
<p style="text-align: justify;">La rutina está preparada para poner un gráfico en una posición concreta de la pantalla, o una tira de ellos vertical o horizontalmente. Cada 4 o 5 valores representan un gráfico o una tira de ellos, según el siguiente formato:</p>
<ol>
<li>Acción a realizar: «1» Tira horizontal, «2» Tira vertical, «3» un único carácter y «255» fin datos de la pantalla.</li>
<li>Posición inicial horizontal.</li>
<li>Posición inicial vertical.</li>
<li>Posición máxima en repeticiones. Si la acción es tipo «3» no hay que introducir este valor.</li>
<li>Carácter a imprimir.</li>
</ol>
<p style="text-align: justify;">Por ejemplo: La secuencia «2, 0, 0, 15, 1» indica que hay que poner una tira de caracteres tipo «1» (ladrillos) a partir de la posición 0,0 hasta la posición 0,15. Esto dibuja la pared de ladrillos de la izquierda.</p>
<p style="text-align: justify;">La secuencia «3, 24, 4, 5» coloca la llave (carácter 5) que hay en el suelo, entre las dos plantas.</p>
<p style="text-align: justify;">Los códigos de los gráficos tienen la siguiente relación:</p>
<ol>
<li>Ladrillos.</li>
<li>Suelo.</li>
<li>Cinta transportadora.</li>
<li>Suelo que se deshace.</li>
<li>Llave.</li>
<li>Estalactita.</li>
<li>Planta.</li>
</ol>
<p style="text-align: justify;">En otras pantallas veremos como se añaden nuevos códigos.</p>
<p style="text-align: justify;">En cada pantalla cambiaremos los gráficos, pero la función de cada uno de estos códigos será exactamente el mismo.</p>
<h4 style="text-align: justify;"><strong>Funcionamiento de la rutina</strong></h4>
<p style="text-align: justify;"><strong></strong>La rutina está ubicada a partir de la línea 6200.</p>
<p style="text-align: justify;">Con el READ de la línea 6210 empezamos a leer los valores del DATA de la línea 9010. El primer valor lo ponemos en «D», que es el código de la acción que hemos de realizar.</p>
<p style="text-align: justify;">Si la acción es «1» o «2»,  leemos los siguientes 4 valores de DATA y los ponemos en las variables «H», «V», «R» y «G», y ejecutamos un bucle que repite la impresión hasta llegar a la posición indicada en «R».</p>
<p style="text-align: justify;">Si la acción es «3», leemos los siguientes 3 valores de DATA y ponemos un único carácter en la posición indicada.</p>
<p style="text-align: justify;">Si la acción es «255» damos por finalizada la impresión de la pantalla y salimos de esta rutina.</p>
<p style="text-align: justify;">Así, la variable «D» contiene la acción, «V» la posición vertical, «H» la posición horizontal, «G» el gráfico elegido, y opcionalmente, en «R» la posición máxima cuando la acción es «1» o «2».</p>
<p style="text-align: justify;">Por ahora, los códigos de los caracteres van del 1 al 7, pero en realidad no usamos estos, sino que en la línea 6240 lo pasamos al valor ASCII correcto. Se han seleccionado unos valores más simples para que sea más fácil recordarlos.</p>
<p style="text-align: justify;">Como podéis ver, tanto el código de la rutina como de los datos es muy pequeño. Sólo 21 líneas.</p>
<p style="text-align: justify;">Si ejecutamos el programa veremos que aparece la pantalla, pero en lugar de los gráficos aparecen distintos caracteres ASCII. Esto quiere decir que queda por redefinir el juego de caracteres con los gráficos del juego.</p>
<p style="text-align: justify;">Vamos a ver como se hace.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/how_manic_1.jpg?resize=640%2C400" alt="Programando un Manic Miner" width="640" height="400" data-recalc-dims="1" /></p>
<h3 style="text-align: justify;"><strong>RUTINA DE CARGA DE LOS GRÁFICOS</strong></h3>
<p style="text-align: justify;">En el MSX el juego de caracteres está almacenado en la ROM, pero al iniciar el sistema se vuelcan en la memoria de video VRAM, y allí es donde los tendremos que modificar.</p>
<h4 style="text-align: justify;">Codificación de los gráficos</h4>
<p style="text-align: justify;"><strong></strong>A partir de la línea 9000 se han introducido los datos de los gráficos en líneas DATA.<br />
<strong></strong></p>
<p style="text-align: justify;"><strong>Formato de la codificación</strong></p>
<p style="text-align: justify;"><strong></strong>La rutina está preparada para redefinir los caracteres indicados. Así, el primer valor del DATA indica el carácter a redefinir, y los siguientes 8 valores corresponden a los datos del gráfico, con un tamaño de 8&#215;8 pixels.</p>
<h4 style="text-align: justify;"><strong>Funcionamiento de la rutina</strong></h4>
<p style="text-align: justify;"><strong></strong>La rutina está ubicada a partir de la línea 6000.</p>
<p style="text-align: justify;">Mediante el RESTORE de la línea 6000 nos situaremos en la línea DATA que contiene los datos de los gráficos de la pantalla correspondiente.</p>
<p style="text-align: justify;">Con el READ de la línea 6010 leemos el primer valor y lo ponemos en «D», que es el código del carácter a redefinir. Si este valor es «0», dejamos de redefinir más caracteres. En caso contrario, un bucle leer los siguientes 8 valores del DATA y los mete en la posición de memoria de la VRAM donde está almacenado ese carácter. El primer carácter está en la posición 0 de la VRAM. Con el cálculo de la línea 6025 sabremos a partir de que posición hemos de volcar los datos de ese carácter.</p>
<p style="text-align: justify;">Si ejecutamos el programa, veremos que ya aparecen los gráficos en la pantalla pero en blanco sobre negro. Esto quiere decir que queda por redefinir los atributos de los caracteres del juego.</p>
<p style="text-align: justify;">Un último esfuerzo y ya está.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/how_manic_2.jpg?resize=640%2C400" alt="Programando un Manic Miner" width="640" height="400" data-recalc-dims="1" /></p>
<h3 style="text-align: justify;"><strong>RUTINA DE CARGAS DE LOS COLORES</strong></h3>
<p style="text-align: justify;"><strong></strong>El modo SCREEN 1 del MSX es una pantalla de texto con posibilidad de usar SPRITES. En este modo la forma de trabajar con los colores es un poco peculiar. En otros sistemas, un byte en la memoria de video indica un carácter en una posición de pantalla, y otro byte indica el atributo de color de esa posición. En el MSX la cosa es más simple y limitada. Cada 8 caracteres consecutivos de la tabla ASCII  pueden tener un único atributo de color compartido. Así, «@ABCDEFG» han de tener el mismo color y la «HIJKLMNO» pueden tener otro distinto. De esta forma, con solo 32 bytes en la memoria de video controlamos los colores de los 256 caracteres. Una forma realmente original, pero poco práctica. Por un lado, al poner una letra en pantalla ya sale con el color asignado, cosa que hace que sea más rápido, pero por otro lado no te permite poner un texto en pantalla con distintos colores. Para ello deberíamos usar el modo SCREEN 2, que ya es totalmente gráfico, pero más complejo de gestionar.</p>
<h4 style="text-align: justify;"><strong>Codificación de los colores</strong></h4>
<p style="text-align: justify;"><strong></strong>A partir de la línea 9007 se han introducido los datos de los colores en una línea DATA.</p>
<h4 style="text-align: justify;"><strong>Formato de la codificación</strong></h4>
<p style="text-align: justify;"><strong></strong>Los colores se han almacenado en 10 valores. Se cambian los atributos de color desde el carácter 128 hasta el 207. En principio es más que suficiente para los pocos gráficos que hemos de usar.</p>
<h4 style="text-align: justify;"><strong>Funcionamiento de la rutina</strong></h4>
<p style="text-align: justify;"><strong></strong>La rutina está ubicada a partir de la línea 6100. Simplemente leemos los 10 valores de la línea DATA y vamos haciendo un VPOKE en la dirección de la VRAM correspondiente. Este valor se indica en la línea 6100.</p>
<p style="text-align: justify;">Misión cumplida.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/how_manic_3.jpg?resize=640%2C400" alt="Programando un Manic Miner" width="640" height="400" data-recalc-dims="1" /></p>
<h3 style="text-align: justify;"><strong> NUDO PRINCIPAL</strong></h3>
<p style="text-align: justify;">En la línea 100 comienza el nudo principal de desarrollo, que es el lugar desde donde iremos llamando al resto de rutinas.</p>
<p style="text-align: justify;">Ahora mismo:</p>
<ul>
<li>Activa el modo SCREEN 1 haciendo un GOSUB 7000</li>
<li>Carga los gráficos de la pantalla con un GOSUB 6000</li>
<li>Queda en pausa hasta que se pulse una tecla, con el INKEY$ de la línea 300</li>
<li>Activa el modo SCREEN 0 para volver al editor BASIC.</li>
</ul>
<p style="text-align: justify;">Estas líneas irán cambiando a lo largo del tutorial para ir recogiendo los sucesivos cambios que se produzcan.</p>
<h3 style="text-align: justify;"><strong> RUTINA DE ACTIVACION DEL MODO GRAFICO</strong></h3>
<p style="text-align: justify;">En la línea 7000 comienza una subrutina que desactiva la línea inferior del BASIC donde se muestran los valores de las teclas de función, activa el modo SCREEN 1, pone el ancho en 31 caracteres y configura los colores por defecto.</p>
<h3 style="text-align: justify;"><strong>RUTINA DE ACTIVACION DEL MODO TEXTO</strong></h3>
<p style="text-align: justify;">En la línea 7100 comienza  una subrutina que activa el modo SCREEN 0, vuelve a configurar los colores normales y activa la línea inferior del BASIC y nos devuelve al editor.</p>
<h3 style="text-align: justify;"><strong>RESUMEN Y COMENTARIOS</strong></h3>
<p style="text-align: justify;">En las líneas DATA no es obligatorio seguir la numeración que he indicado. Lo único importante es que los datos estén introducidos con el formato y orden indicado: datos de los gráficos, datos de los atributos de color y datos de la pantalla de juego. Es recomendable no mezclar los valores en una misma línea para que sea más fácil una posterior identificación y modificación.</p>
<p style="text-align: justify;">Algunos partes se podrían haber optimizado para ganar algo de velocidad, pero las he dejado como están para que sea más fácil  y comprensible por si alguien quiere adaptarlo a otro sistema.</p>
<p style="text-align: justify;">El nudo principal de desarrollo lo he puesto en las primeras líneas, ya que en esta zona el BASIC es más rápido.</p>
<p style="text-align: justify;">Toda la explicación de este tutorial la he realizado al revés de como funciona el programa, ya que como se puede apreciar en el listado, lo primero que se hace es redefinir los gráficos, asignar sus atributos de color e imprimir la pantalla. Esto se ha hecho así para comprender mejor las distintas etapas del proceso.</p>
<p style="text-align: justify;">El listado de todo este montaje queda así.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/12/how_manic_list1.jpg?resize=640%2C557" alt="Programando un Manic Miner - Listado" width="640" height="557" data-recalc-dims="1" /></p>
<p style="text-align: justify;">Para terminar, todo este desarrollo se ha realizado en un <strong>MSX-2 Philips VG-8235</strong> y el listado se ha impreso en una impresora matricial <strong>Brother M-1109</strong>. A lo retro, como dios manda.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/programando-un-manic-miner-i/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial de traducción de juegos MSX</title>
		<link>https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/</link>
					<comments>https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Fri, 18 Nov 2011 23:33:52 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Labyrinth]]></category>
		<category><![CDATA[Ricardo Bittencourt]]></category>
		<category><![CDATA[Traducción]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=10407</guid>

					<description><![CDATA[Artículo original de Ricardo Bittencourt (en portugués). Texto traducido y adaptado por Konamito. Publicado con permiso de su autor. Introducción Es curioso cómo ciertas formas de arte se encuentran en&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.ricbit.com/mundobizarro/tutorial/index.php" target="_blank">Artículo original</a> de <strong>Ricardo Bittencourt</strong> (en portugués). Texto traducido y adaptado por Konamito. Publicado con permiso de su autor.</p>
<h3>Introducción</h3>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Shalom-japonés-y-portugués.png" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="10594" data-permalink="https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/shalom-japones-y-portugues/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Shalom-japonés-y-portugués.png?fit=511%2C192&amp;ssl=1" data-orig-size="511,192" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Shalom (japonés y portugués)" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Shalom-japonés-y-portugués.png?fit=300%2C112&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Shalom-japonés-y-portugués.png?fit=511%2C192&amp;ssl=1" decoding="async" loading="lazy" class="alignnone size-medium wp-image-10594" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Shalom-japonés-y-portugués-400x150.png?resize=400%2C150" alt="" width="400" height="150" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Es curioso cómo ciertas formas de arte se encuentran en lugares y momentos muy específicos. El movimiento <em>grunge</em> tuvo su apogeo en la ciudad de Seattle en los años 90, y los cómics de superhéroes tenían como escenario la Nueva York de 1940. Lo mismo ocurrió con los videojuegos que andaban por Japón durante los años 80.</p>
<p style="text-align: justify;">Sin embargo, estando Japón típicamente orientado hacia el mercado interno, muy poco de lo hecho allí en aquella época llegó a occidente. Por cada Mario y Zelda que llegó hasta aquí,¡ otros diez juegos igualmente buenos permanecieron allá completamente desconocidos para nosotros!</p>
<p style="text-align: justify;">Hoy en día todos estos juegos se pueden encontrar fácilmente en Internet. Sin embargo, todavía no pueden ser apreciados por los jugadores occidentales, debido a la barrera del idioma. Por lo general estos juegos están escritos totalmente en japonés, sin ninguna versión escrita en otro idioma.</p>
<p style="text-align: justify;">La solución para esto es la traducción de los juegos. En noviembre de 2001, comencé la <a href="http://www.700km.com.br/mundobizarro/shalom.php" target="_blank">traducción del juego Shalom</a>, de Konami, y actualmente está casi terminado. Sin embargo, ¡todavía hay muchos juegos que merecen ser traducidos!</p>
<p style="text-align: justify;">El objetivo de este tutorial es enseñar a todos los trucos y técnicas necesarias para traducir un juego. ¡De esta manera espero hacer estas perlas desconocidas para el público de habla portuguesa!</p>
<p style="text-align: justify;">En lugar de simplemente hacer una página con consejos y trucos de traducción, me decidí a hacer este tutorial en forma de  blog. Por lo tanto, los aspirantes a traductor pueden seguir paso a paso el proceso de traducción, sin perderse ningún detalle.</p>
<p style="text-align: justify;">Antes de comenzar este tutorial, hay que hacer algunas advertencias. Traducir un juego no es fácil. Es laborioso, tedioso y requiere una serie de habilidades que no todos podrían tener.</p>
<p style="text-align: justify;">Como los juegos originales están en japonés, tenéis que saber japonés antes que nada. Y el hecho de saber el idioma puede no ser suficiente: para los chistes y los juegos de palabras puede ser necesario tener un conocimiento bastante avanzado de las estructuras gramaticales, el vocabulario, las costumbres y la historia de Japón.</p>
<p style="text-align: justify;">Además, en algún momento tenéis que que entender cómo funciona el programa, o al menos parte de él. Y si entender el código C de otras personas, incluso comentado, es difícil; entonces, créeme, que entender el código ensamblador sin comentarios lo es aún más.</p>
<p style="text-align: justify;">Además de los requisitos anteriores, tendréis que tener un buen conocimiento general de programación. En el camino, pueden surgir problemas de compresión de datos, conversión de caracteres, falta de memoria, y muchos otros. En estos casos, sólo la experiencia puede ayudar al programador.</p>
<p style="text-align: justify;">Teniendo en cuenta todos los peros mencionados anteriormente, ¡huid mientras podáis! ¡El <em>botón atrás</em> de vuestro navegador os llevará a los rincones más seguros de la web! ¡Esto de  de la traducción es algo de locos!</p>
<p style="text-align: justify;">De acuerdo, sois conscientes de las dificultades y habéis decidido continuar con la lectura. Esto es bueno. Las traducciones requieren una buena dosis de coraje. A pesar de que todos los problemas mencionados anteriormente no son reales, no es necesario atacarlos a todos. Si hay algo que no entendéis buscad a alguien que sepa. Nadie dijo que la traducción fuera una tarea solitaria. Incluso, si no no sabéis nada de las áreas comentadas más arriba, aún podéis ayudar en un proyecto de traducción, como <em>beta-tester</em>.  No dejando pasar ninguno de los errores cometidos por los programadores y traductores.</p>
<p style="text-align: justify;">Terminada la introducción, ¡en la próxima lección explicaré el primer desafío al que debe enfrentarse el traductor!</p>
<h3>La elección</h3>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.1.gif" data-rel="lightbox-image-1" data-imagelightbox="1" data-rl_title="" data-rl_caption=""><img data-attachment-id="10595" data-permalink="https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/creditos-1/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.1.gif?fit=273%2C228&amp;ssl=1" data-orig-size="273,228" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Labyrinth (Computer aparece escrito como Conputer)" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.1.gif?fit=273%2C228&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.1.gif?fit=273%2C228&amp;ssl=1" decoding="async" loading="lazy" class="alignnone size-full wp-image-10595" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.1.gif?resize=273%2C228" alt="" width="273" height="228" data-recalc-dims="1" /></a></p>
<p>&nbsp;</p>
<p style="text-align: justify;">Uno de las tareas más difíciles al traducir un juego, por increíble que pueda parecer, es elegir el juego. El proceso de traducción es largo, duro y agotador, por lo que es bueno tener en mente qué juego será vuestro compañero durante meses o incluso años. Por eso, la primera lección es: <strong>hay traducir un juego que os guste</strong>. No tiene mucho sentido traducir un juego sólo porque está de moda, u otro motivo igualmente vano. Si no os gusta lo que estáis haciendo, las posibilidades de que abandonéis son muy grandes.</p>
<p style="text-align: justify;">Para este tutorial, tuve que elegir un juego que me gustaba, y acabé decidiéndome por <a title="Más información en la ficha del juego" href="http://www.msxblog.es/ficha/?id=1954">Labyrinth</a>, de <a title="Juegos de Pack-in-Video para MSX" href="http://www.msxblog.es/juegos-msx/?pg=3&amp;c=364">Pack-in-Video</a>, juego basado en la película homónima de Jim Henson. Las razones por las que soy un fan de esta película son demasiado largas para comentarlas aquí (un día acabaré haciendo una página sobre ellas). Para mí traducir un juego basado en Labyrinth es un honor. Como juego, Labyrinth solamente tiene sonido MSX-Audio pero sonido en FM, ¡y esto ya lo convierte en un juego único! Además, Labyrinth es un juego de rol, así que es casi imposible jugarlo sin saber japonés por lo que esto lo coloca en la  categoría de juego inédito (al menos en occidente).</p>
<p style="text-align: justify;">Para la primera lección, ¡hablaré un poco sobre vuestros compañeros de trabajo!</p>
<h3>Las herramientas de trabajo</h3>
<p style="text-align: justify;">Una de las características más extrañas de la lengua japonesa es la ausencia de «Rebelos». Rebelo fue un político brasileño que quiso prohibir el uso de palabras inglesas dentro de la lengua portuguesa. Por lo general, los japoneses no tienen ningún reparo en aprovecharse de otros idiomas apropiarse de todo lo que les falta en el suyo.</p>
<p style="text-align: justify;">Esto puede ser demostrado históricamente. En un principio el japonés era estrictamente un lenguaje oral. Cuando la forma escrita fue necesaria, alrededor del siglo V, los caracteres (kanji) fueron importados de China. En el siglo XV, Japón entró en contacto con las civilizaciones occidentales, que en esa época estaban en expansión debido a las grandes navegaciones. Por eso  algunas palabras que representan los nuevos conceptos fueron tomadas directamente de la lengua de los navegantes portugueses, como pan (パン=pan) y jabón ((シャボン=shabon).</p>
<p style="text-align: justify;">Hoy en día, la fuente de conceptos nuevos son los Estados Unidos. Así que una gran cantidad de palabras se copian directamente del inglés, como ordenador (コンピュータ = konpyuuta) y juego (ゲーム = geemu). Por esta motivo, es muy común encontrar las palabras, frases y fragmentos enteros, incluso textos escritos en inglés, en un juego hecho en Japón.</p>
<p style="text-align: justify;">Por otro lado, si los japoneses no se cortan en tomar adaptar palabras y tomar prestados los verbos, tampoco se preocupan de adoptar la ortografía correcta. Incluso en algunos casos, ¡el significado original se conserva! Un ejemplo sencillo es la palabra <em>vestido</em>, que en Japón se ha convertido en ワンピース = wanpiisu, del inglés <em>one piece</em>.</p>
<p style="text-align: justify;">Así que si os encontráis cualquier texto en inglés en un juego que japonés, recuerdad este consejo importante: <strong>no importa lo que está escrito, sino lo que el autor quería escribir</strong>. Como dijo sabiamente un amigo mío japonés: «no es inglés&#8230;  es japonés inglés!»</p>
<p style="text-align: justify;">Pero dejemos la introducción y vayamos a lo que nos interesa. Aplicando directamente lo que escrito más anteriormente, podemos observar que en la pantalla de créditos de Labyrinth hay una parte que dice «CODE FOR MSX CONPUTER». obviando lo que está escrito,nos damos cuenta de que el autor realmente quiso escribir «CODE FOR MSX COMPUTER». Una buena traducción pasaría todo este texto a portugués (español en nuestro caso) pero la corrección ortográfica es un buen ejercicio para practicar el uso de las herramientas.</p>
<p style="text-align: justify;">La primera herramienta que necesitáis para traducir es un buen emulador. En el caso de Labyrinth, un juego para MSX2, yo usaría BrMSX como emulador. Ser el autor de BrMSX  ayuda un poco a elegir, por supuesto, pero al final siempre se puede optar por cualquier opción que ayude a traducir. Pero la verdadera razón de esta elección es que tiene un excelente <em>debugger</em> (depurador) para el código fuente. Por pura comodidad, yo uso, además de BrMSX, tambiénParaMSX, muy bieno a la hora de  realizar capturas de pantalla.</p>
<p style="text-align: justify;">Comprobando que la ROM original funciona en el emulador, podemos comenzar a corregir la ortografía. Para ello, usamos una segunda herramienta, un editor hexadecimal. Hay muchas disponibles pero yo os recomiendo usar <a href="http://www.ultraedit.com/" target="_blank">UltraEdit</a>. Además de la edición hexadecimal sí mismo, esta plaicación tiene también un editor de texto Unicode muy adecuado para editar textos en japonés, y un sistema de <em>plug-in</em> con el que se puede poner en el emulador así como también herramientas de extracción de scripts. ¡Y todo esto por sólo 35 dólares!</p>
<p style="text-align: justify;">Antes de hacer una corrección (parche) una pequeña observación. Esto es algo que ya debería haber hecho, pero nunca está de más recordar: <strong>hay que hacer una copia de seguridad de la ROM original antes de realizar cualquier cambio</strong>.</p>
<p style="text-align: justify;">Para hacer la modificación, sólo tenéis que cargar la ROM en el UltraEdit. Se debe abrir directamente en modo hexadecimal, si esto no sucede, sólo tenéis que pulsar CTRL + H. Usando ALT + F3, introducís la cadena a buscar en nuestro caso <em>CONPUTER</em> y el programa nos recuerda que se trata de una búsqueda de texto, así que hay que hacer click en <em>Find ASCII</em>. Ahora basta con escribir M encima de la N original y guardar la ROM para probar en el emulador.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/uedit.gif" data-rel="lightbox-image-2" data-imagelightbox="2" data-rl_title="" data-rl_caption=""><img data-attachment-id="10596" data-permalink="https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/uedit/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/uedit.gif?fit=687%2C325&amp;ssl=1" data-orig-size="687,325" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="UltraEdit" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/uedit.gif?fit=300%2C141&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/uedit.gif?fit=687%2C325&amp;ssl=1" decoding="async" loading="lazy" class="alignnone size-medium wp-image-10596" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/uedit-400x189.gif?resize=400%2C189" alt="" width="400" height="189" data-recalc-dims="1" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Si todo va bien, ahora deberíais tener una ROM ya corregida y que funciona correctamente en el emulador. ¡Felicidades, habéis tenido suerte! Y muy buena suerte, porque a pesar de ser un procedimiento simple, muchas cosas podrían haber fallado.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.2.gif" data-rel="lightbox-image-3" data-imagelightbox="3" data-rl_title="" data-rl_caption=""><img data-attachment-id="10597" data-permalink="https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/creditos-2/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.2.gif?fit=273%2C228&amp;ssl=1" data-orig-size="273,228" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Labyrinth (la palabra Conputer aparece ya corregida)" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.2.gif?fit=273%2C228&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.2.gif?fit=273%2C228&amp;ssl=1" decoding="async" loading="lazy" class="alignnone size-full wp-image-10597" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/creditos.2.gif?resize=273%2C228" alt="" width="273" height="228" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Entre las cosas que podrían haber ocurrido están las siguientes:</p>
<ul style="text-align: justify;">
<li>Fallo al buscar el texto <em>CONPUTER</em>: el texto usa una codificación diferente a ASCII.</li>
<li>Fallo al buscar el texto <em>CONPUTER</em>: el texto está comprimido dentro de la ROM.</li>
<li>Fallo al buscar el texto <em>CONPUTER</em>: la pantalla de créditos es un gráfico en lugar de texto.</li>
<li>La modificación del texto podría dar fallo si la ROM tuviese <em>checksum</em> o tuviera protección antipiratería.</li>
<li>Un meteorito podría caer en vuestra cabeza (esto no está directamente relacionado con la traducción, ¡pero podría ocurrir! ¡Sois unos tipos con suerte!)</li>
</ul>
<div>
<p style="text-align: justify;">Teniendo en mente los problemas que podrían haber ocurrido, es hora de seguir adelante con un poco de traducción real del japonés al portugués.</p>
<h3>El conjunto de caracteres</h3>
<p style="text-align: justify;">La traducción de los juegos es una de esas cosas que son exponencialmente más fáciles con la experiencia. De hecho, traducir no sigue un método complicado: todo se reduce a un puñado de trucos, que con el tiempo aprenderéis y sabréis rápidamente cuándo se deben usar.</p>
<p style="text-align: justify;">Mi primera traducción fue en 1987, cuando las unidades de disco eran todavía demasiado caras para su uso personal. En aquella época usaba el cartucho <strong>Mega Assembler</strong>, una belleza que traía un editor hexadecimal, buscador de cadenas (incluida búsqueda relativa con cualquier <em>offset</em>), editor de <em>tiles</em> y letras, ensamblador y desensamblador. En definitiva, todas las herramientas que el traductor necesita.</p>
<p style="text-align: justify;">Fui jugando con Mega Assembler ya que estaba familiarizado con la arquitectura del MSX. Hoy conozco todos los detalles de la plataforma, lo que hace que ciertos procedimientos de traducción sean muy fáciles. Por lo tanto, la lección de hoy es: <strong>hay que estudiar bien la arquitectura de la máquina que ejecuta el juego</strong>, a veces un pequeño detalle de la arquitectura puede ahorrarnos mucho tiempo.</p>
<p style="text-align: justify;">Problema en cuestión es la codificación de caracteres. Hemos visto que el texto de la pantalla de créditos se almacena en la ROM en formato, por lo que la modificación es sencilla. Pero eso fue para un pequeño texto escrito en inglés. ¿Y para el resto de la ROM, que está en japonés, qué patrón hay que usar?</p>
<p style="text-align: justify;">Si para occidente el estándar ASCII es un casi universal, no puede decirse lo mismo de la codificación del japonés. Incluso hoy en día, hay una gran cantidad absurda de sistemas en uso. Al visitar los sitios web japoneses vemos que los textos de las páginas están escritos en <em>Shift-JIS</em>, <em>EUC-JP</em> algunos, y otros en Unicode. En el caso de los juegos, a menudo no utilizan ningún estándar, y lo más probable es que el juego tenga una tabla especial que no se utiliza en ningún otro lugar. Shalom, por ejemplo, utiliza una tabla de 256 posiciones hiragana o katakana yalrededor de 100 kanjis de uso común. Para averiguar de qué tabla se trataba tuve que abrir la ROM en un editor de <em>tiles</em> y localicé dentro dónde estaba el alfabeto. En otras palabras, nada demasiado complicado.</p>
<p style="text-align: justify;">En el caso de Labyrinth, sin embargo, quien trate de hacer lo mismo no encontrará alfabeto ninguno. En este punto es donde los traductores novatos caen en la desesperación, piensan que debe estar comprimido, lo cual es muy difícil, y se dan por vencidos. ¡No lo hagáis vosotros! Este caso se resuelve fácilmente cuando se comprende bien la arquitectura.</p>
<p style="text-align: justify;">Lo que ocurre en el MSX es que la ROM del juego no es el único programa que se ejecuta. En el interior del equipo hay una BIOS que contiene, entre otras cosas, un alfabeto. Y puede ocurrir que Labyrinth use ese alfabeto ubicado en la ROM interna del ordenador. La evidencia que sugiere esta posibilidad es la falta de acentos en kanas (por ejemplo, en lugar de ぜんぶ, aparece en la pantalla せ ゛ ん ふ ゛). Esto es característico del alfabeto interno de la BIOS.</p>
<p style="text-align: center;"> <a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Labyrinth-japonés-y-coreano.png" data-rel="lightbox-image-4" data-imagelightbox="4" data-rl_title="" data-rl_caption=""><img data-attachment-id="10598" data-permalink="https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/labyrinth-japones-y-coreano/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Labyrinth-japonés-y-coreano.png?fit=546%2C228&amp;ssl=1" data-orig-size="546,228" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Labyrinth (japonés y coreano)" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Labyrinth-japonés-y-coreano.png?fit=300%2C125&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Labyrinth-japonés-y-coreano.png?fit=546%2C228&amp;ssl=1" decoding="async" loading="lazy" class="alignnone size-medium wp-image-10598" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/Labyrinth-japonés-y-coreano-400x167.png?resize=400%2C167" alt="" width="400" height="167" data-recalc-dims="1" /></a></p>
<p>Para probar la teoría, sólo tenéis que que utilizar el emulador con una BIOS diferente. Al ejecutar el juego con un BIOS coreana el texto cambia. Esto demuestra la teoría, así que ahora podemos asumir con seguridad que el conjunto completo de caracteres es el mismo que se encuentra en la BIOS. Teniendo esta información.</p>
<h3>Convirtiendo la tabla</h3>
<p style="text-align: justify;">Una vez que hemos descubierto que el alfabeto del juego está en la ROM interna del MSX, tenemos ahora que averiguar qué formato utiliza. Para ello, la forma más fácil es simplemente abrir la BIOS en cualquier programa de edición de gráficos. Como el alfabeto de la BIOS solamente tiene dos colores, blanco y negro, lo más probable es que se almacene como un gráfico de 1bpp (1 bit por píxel). Y para visualizar este gráfico usaremos una herramienta llamada <a href="http://www.zophar.net/utilities/graphutil/tile-layer-pro.html" target="_blank">Tile Layer Pro</a>.</p>
<p><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/biosmap.gif" data-rel="lightbox-image-5" data-imagelightbox="5" data-rl_title="" data-rl_caption=""><img data-attachment-id="10600" data-permalink="https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/biosmap/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/biosmap.gif?fit=421%2C512&amp;ssl=1" data-orig-size="421,512" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Mapa de caracteres de la BIOS MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/biosmap.gif?fit=246%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/biosmap.gif?fit=421%2C512&amp;ssl=1" decoding="async" loading="lazy" class="size-medium wp-image-10600 aligncenter" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/11/biosmap-246x300.gif?resize=246%2C300" alt="" width="246" height="300" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Abriendo el programa y configurándolo para gráficos monocromos (1bpp) basta con navegar un poco para encontrar el alfabeto. Este tipo de cosas siempre van en orden, así que simplemente basta con contar de izquierda a derecha y de arriba a abajo para  encontrar el código equivalente de cada carácter. Con un poco de paciencia se puede ver que el carácter A tiene el código 65. Teniendo en cuenta que la letra A se encuentra en posición 2 de la fila 5,  y restando 1 a cada posición obtendréis el código hexadecimal 41 (5-1=<strong>4</strong>, 2-1=<strong>1</strong>), que en decimal equivale a 65.</p>
<p style="text-align: justify;">Conociendo el código interno de la ROM, ahora sólo tenemos que convertirlo en código legible para otras herramientas. Como he dicho antes, UltraEdit puede editar el texto en japonés, siempre que utilice el formato Unicode. Por lo tanto basta con modificar el formato-BIOS a  Unicode para que el texto estará listo. El código Unicode aparece en su <a href="http://www.unicode.org/charts/" target="_blank">página web oficial</a>, donde, por ejemplo, <em>あ</em> es 0x3042.</p>
<p style="text-align: justify;">Ahora viene la pregunta crucial: ¿tengo que hacer esto para todos los 256 caracteres de la tabla? La respuesta es ¡sí!  <strong>Algunas partes del proceso de traducción son bastante aburridas, pero alguien tiene que hacerlo</strong>. Si nadie lo hace no se podrá traducir nada, ¡así que hay que arremangarse y ponerse manos a la obra!</p>
<p style="text-align: justify;">Para ahorraros el trabajo de hacer la tabla, podéis conseguirla <a href="http://www.msxblog.es/wp-content/uploads/2011/11/msxtable.zip">aquí</a>, en formato binario.  De esta manera es posible realizar vuestro primer volcado. A continuación se muestra una versión preliminar, de funcionamiento muy simple. Lo que hace este volcado es leer <em>byte</em> por <em>byte</em> la información de la ROM, y cambiarlo por su equivalente en Unicode. El código de escape <em>0xFEFF</em> al comienzo del código es sólo para indicar que estamos utilizando una máquina de bajo rendimiento, de esta manera la secuencia de comandos generada se puede leer en cualquier software compatible con Unicode en cualquier plataforma.</p>
<blockquote>
<pre>#include &lt;stdio.h&gt;
#include &lt;io.h&gt;
#include &lt;malloc.h&gt;

#define print(x) c=(x); fwrite (&amp;c,1,2,f);

int main (int argc, char **argv) {
  FILE *f;
  int len,i;
  unsigned char *buf;
  unsigned short table[256],c;

  f=fopen ("msxtable.out","rb");
  fread (table,2,256,f);
  fclose (f);

  f=fopen (argv[1],"rb");
  len=filelength (fileno (f));
  buf=(unsigned char *) malloc (len);
  fread (buf,1,len,f);
  fclose (f);

  f=fopen (argv[2],"wb");
  print (0xFEFF);
  for (i=0; i&lt;len; i++) {
    print (table[buf[i]]);
    if (i%16==15) {
      print (0xD);
      print (0xA);
    }
  }
  fclose (f);

  return 0;
}</pre>
</blockquote>
<p style="text-align: justify;">Después de ejecutar el programa, debéis estar ansiosos por abrir el archivo y buscar los textos para traducirlos, ¿verdad? Sin embargo, a excepción del texto en inglés del comienzo, ¡no hay nada inteligible en ella! Esto indica que los textos se comprimen o se codifican en la ROM, en cuyo caso la solución es respirar profundamente y empezar el proceso de depuración.</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-de-traduccion-de-juegos-msx/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Iniciación a la programación en ensamblador (III)</title>
		<link>https://www.msxblog.es/iniciacion-a-la-programacion-en-ensamblador-iii/</link>
					<comments>https://www.msxblog.es/iniciacion-a-la-programacion-en-ensamblador-iii/#comments</comments>
		
		<dc:creator><![CDATA[Konamito]]></dc:creator>
		<pubDate>Sat, 15 Oct 2011 17:19:33 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Ensamblador]]></category>
		<category><![CDATA[Pepe Vila]]></category>
		<category><![CDATA[SCREEN 2]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=10238</guid>

					<description><![CDATA[Casi un año después vuelve Pepe Vila con un nuevo capítulo de su curso, tutorial (o como lo queráis llamar) de iniciación a la programación en ensamblador. En este tercer&#8230; ]]></description>
										<content:encoded><![CDATA[
<p><a href="http://www.msxblog.es/iniciacion-a-la-programacion-en-ensamblador-ii/">Casi un año después</a> vuelve <strong>Pepe Vila</strong> con un nuevo capítulo de su curso, tutorial (o como lo queráis llamar) de iniciación a la programación en ensamblador.</p>



<p>En este tercer artículo Pepe se centra en la <strong>generación de gráficos en SCREEN 2</strong>. Como siempre, el artículo viene cargado de ejemplos, imágenes y textos que explican al detalle cada uno de los ejercicios con lo que entender este aspecto de la programación en ensamblador es muy sencillo para los más legos en la materia (como yo).</p>



<p>A mí me está sirviendo de ayuda para comenzar a dar mis primeros pasos en el oscuro mundo del ensamblador.</p>



<p><strong>Actualización:</strong> A continuación tenéis en enlace a la descarga completa del tutorial con todos los capítulos unidos en un solo PDF para una lectura más cómoda. A medida que Pepe publique nuevos capítulos actualizaré el documento.</p>



<h3 style="text-align:center"><a href="http://www.msxblog.es/wp-content/uploads/2014/05/Iniciaci%C3%B3n-a-la-programaci%C3%B3n-en-ensamblador.pdf">Iniciación a la programación en ensamblador (Pepe Vila)</a><br></h3>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/iniciacion-a-la-programacion-en-ensamblador-iii/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Colocar una unidad de disco de PC en un NMS-8250/55/80</title>
		<link>https://www.msxblog.es/colocar-una-unidad-de-disco-de-pc-en-un-nms-82505580/</link>
					<comments>https://www.msxblog.es/colocar-una-unidad-de-disco-de-pc-en-un-nms-82505580/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 21 Jul 2011 21:29:54 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Adaptar]]></category>
		<category><![CDATA[MSX FAQ]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Unidad de disco]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=9717</guid>

					<description><![CDATA[Este tutorial ha sido extraído de MSX FAQ. Lo he traducido y adaptado para publicarlo aquí. Puedes cambiar fácilmente la unidad de disco de un Philips NMS-8250/55/80 por otra de&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Este tutorial ha sido<a href="http://www.faq.msxnet.org/miscfaq.html" target="_blank"> extraído de MSX FAQ</a>. Lo he traducido y adaptado para publicarlo aquí.</p>
<p style="text-align: justify;">Puedes cambiar fácilmente la unidad de disco de un <strong>Philips NMS-8250/55/80</strong> por otra de PC. La única modificación necesaria es colocar un <em>jumper</em> sobre los pines 33 y 34 del conector de la segunda unidad de disco que se encuentra en la placa principal. El pin 33 es tierra y el 34 es RDY, la señal <em>ready</em>, que las unidades de PC no tienen. Al conectar  los pines le estamos diciendo al MSX que la unidad siempre está preparada (<em>ready</em>) y con la DiskROM no hay ningún problema.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/disquetera_3_5.jpg" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="9760" data-permalink="https://www.msxblog.es/colocar-una-unidad-de-disco-de-pc-en-un-nms-82505580/disquetera_3_5/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/disquetera_3_5.jpg?fit=320%2C284&amp;ssl=1" data-orig-size="320,284" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Disquetera de 3,5&#8243; de PC" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/disquetera_3_5.jpg?fit=300%2C266&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/disquetera_3_5.jpg?fit=320%2C284&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-full wp-image-9760" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/disquetera_3_5.jpg?resize=320%2C284" alt="" width="320" height="284" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/disquetera_3_5.jpg?w=320&amp;ssl=1 320w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/disquetera_3_5.jpg?resize=300%2C266&amp;ssl=1 300w" sizes="(max-width: 320px) 100vw, 320px" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Para la numeración de los pines, echadle un vistazo a este enlace a MSX FAQ (<a href="http://www.faq.msxnet.org/connector.html#diskdrive" target="_blank">connector section</a>).</p>
<h2>Resolución de problemas</h2>
<ul>
<li style="text-align: justify;">La unidad no funciona y el LED se queda encendido: pusiste el conector al revés. Cambia la posición e inténtalo de nuevo.</li>
<li style="text-align: justify;">La unidad de disco solamente funciona cuando accedo a ella como unidad B: (por ejemplo escribiendo <tt><code>FILES "B:"</code></tt>). Comprueba  primero si la unidad de disco tiene un jumper <em>Drive Select (DS)</em>. Algunas unidades de disco no tienen jumpers y en cambio tienen soldado un <a title="Más información en Wikipedia" href="http://es.wikipedia.org/wiki/Resistor" target="_blank">resistor SMD</a>. Asegúrate que DS=0 para la unidad A y que DS=1 para la unidad B. Si no hay jumper, o bien no puedes soldar una resistor SMD, aún es posible solucionar el problema. Desconecta el cable plano de la unidad de disco . Con un cuchillo afilado puedes dividirlo entre los cables 9-10 y entre 12-13 (a una longitud de aproximadamente 4 centímetros). Si giras estos tres paquetes de cables 180 grados y lo conectas de nuevo a la unidad, DS0 y DS1 estarán intercambiados y debería funcionar.</li>
<li style="text-align: justify;">Aparecen errores cuando se usa un disco duro: no puedes usar la unidad de disco como disco duro. Así que usa solamente disquetes formateados a doble densidad. A veces, necesitarás colocar un trozo de cinta adhesiva en el agujero de alta densidad (HD) que tiene el disquete para que funcione. Aunque es mejor cortar el sensor de la disquetera que comprueba el agujero de alta densidad.</li>
</ul>
<p>Ten en cuenta que es posible poner dos unidades conectadas al mismo cable, mientras una fucione como DS0 y la otra como DS1.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/colocar-una-unidad-de-disco-de-pc-en-un-nms-82505580/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Programando un Manic Miner para MSX (tutorial)</title>
		<link>https://www.msxblog.es/programando-un-manic-miner-para-msx-tutorial/</link>
					<comments>https://www.msxblog.es/programando-un-manic-miner-para-msx-tutorial/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 12 Jul 2011 07:00:15 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Manic Miner]]></category>
		<category><![CDATA[Programar un juego]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=9675</guid>

					<description><![CDATA[Aunque ya tiene tiempo el tutorial de que os voy a hablar, me tropecé el otro día con él gracias a una pista de xgipe en los foros de Karoshi&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/Como-programar-un-Manic-Miner.gif" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="9676" data-permalink="https://www.msxblog.es/programando-un-manic-miner-para-msx-tutorial/como-programar-un-manic-miner/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/Como-programar-un-Manic-Miner.gif?fit=512%2C370&amp;ssl=1" data-orig-size="512,370" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Como programar un Manic Miner (fuente: Retrowiki)" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/Como-programar-un-Manic-Miner.gif?fit=300%2C216&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/Como-programar-un-Manic-Miner.gif?fit=512%2C370&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9676" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/07/Como-programar-un-Manic-Miner-400x289.gif?resize=400%2C289" alt="" width="400" height="289" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Aunque ya tiene tiempo el tutorial de que os voy a hablar, me tropecé el otro día con él gracias a una pista de <strong>xgipe</strong> en los foros de <a href="http://www.karoshicorp.com" target="_blank">Karoshi MSX Community</a> y tras echarle una buena lectura he creído que sería interesante enlazarlo desde aquí para conocimiento general.</p>
<p style="text-align: justify;">El tutorial se titula «Programando un Manic Miner» y fue escrito por <strong>dancresp</strong> en tres partes. A lo largo del texto su autor nos enseña las ideas básicas a la hora de programar un juego de corte clásico con enemigos y plataformas, que como punto de partida no está nada mal. El lenguaje de programación usado es el MSX-BASIC aunque usa ciertas rutinas en ensamblador para optimizar su funcionamiento.</p>
<p style="text-align: justify;">Si os animáis a seguirlo seguramente aprenderéis técnicas y conocimientos que os valdrán para ir luego a por algo más complicado.</p>
<p style="text-align: justify;">¡100% recomendado!</p>
<p style="text-align: justify;">Enlace relacionado: <a href="http://www.retrowiki.es/e107_plugins/content/content.php?content.141" target="_blank">Retrowiki.es</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/programando-un-manic-miner-para-msx-tutorial/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Crea tus propias cajas para los cartuchos de Konami</title>
		<link>https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/</link>
					<comments>https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Sun, 19 Jun 2011 22:19:56 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Cartuchos de Konami]]></category>
		<category><![CDATA[Combinar cartuchos de Konami]]></category>
		<category><![CDATA[Passion MSX]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=8872</guid>

					<description><![CDATA[Fuente: Passion MSX. Artículo traducido y adaptado por Konamito. De nuevo nos reunimos todos para otra sesión de hazlo tú mismo; esta vez, intentaremos resolver el problema de los cartuchos&#8230; ]]></description>
										<content:encoded><![CDATA[<p>Fuente: <a href="http://www.passionmsx.org/modules/smartsection/item.php?itemid=38&amp;keywords=konami+boxes" target="_blank">Passion MSX</a>.</p>
<p>Artículo traducido y adaptado por Konamito.</p>
<p>De nuevo nos reunimos todos para otra sesión de hazlo tú mismo; esta vez, intentaremos resolver el problema de los cartuchos sueltos, necesitamos vestirlos adecuadamente. Hubo un tiempo en el que era un apasionado coleccionista, y esperando pacientemente por alguna rara perla (especialmente de Konami) en su caja, pero muchos de nuestros juegos preferidos se venden demasiado a menudo con el cartucho suelto, completamente desnudos, snif.</p>
<p>Mirad este cartucho, qué mal aspecto tiene, solo en una esquina, como una Barbie sin su vestido de princesa.</p>
<div>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/1.jpg" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="9442" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/1-6/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/1.jpg?fit=528%2C330&amp;ssl=1" data-orig-size="528,330" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;4.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Canon PowerShot A85&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1149626962&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;16.21875&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0.0166666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Cartucho de Nemesis 2" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/1.jpg?fit=300%2C187&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/1.jpg?fit=528%2C330&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9442" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/1-400x250.jpg?resize=400%2C250" alt="" width="400" height="250" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Todos sus amigos con caja y manual se están riendo alegremente de nuestro pobre cartucho suelto. Ni que decir tiene que no es una buena idea colocarlo en la estanterái con sus otros amigos, ¿verdad?</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/2.jpg" data-rel="lightbox-image-1" data-imagelightbox="1" data-rl_title="" data-rl_caption=""><img data-attachment-id="9443" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/2-6/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/2.jpg?fit=570%2C511&amp;ssl=1" data-orig-size="570,511" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;4.5&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Canon PowerShot A85&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1149626874&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;13.4375&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0.0166666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Colección de cartuchos MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/2.jpg?fit=300%2C268&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/2.jpg?fit=570%2C511&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9443" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/2-334x300.jpg?resize=334%2C300" alt="" width="334" height="300" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Para solucionarlo, ¡¡propongo usar vuestras manos, crear vosotros mismos vuestras propias cajas y colocar vuestros cartuchos en ellas!! Aviso que es necesario seguir el esquema de más abajo, realizado por un gran diseñador industrial. De esta manera construiréis una caja del tamaño Konami «europea», como por ejemplo la de Metal Gear.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/3.jpg" data-rel="lightbox-image-2" data-imagelightbox="2" data-rl_title="" data-rl_caption=""><img data-attachment-id="9444" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/3-6/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/3.jpg?fit=962%2C728&amp;ssl=1" data-orig-size="962,728" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Diseño extendido de la caja tipo Konami" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/3.jpg?fit=300%2C227&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/3.jpg?fit=962%2C728&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9444" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/3-396x300.jpg?resize=396%2C300" alt="" width="396" height="300" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Nota:</strong></span> Las partes sombreadas en gris se pegarán una vez la caja haya sido plegada.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/4.jpg" data-rel="lightbox-image-3" data-imagelightbox="3" data-rl_title="" data-rl_caption=""><img data-attachment-id="9445" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/4-8/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/4.jpg?fit=962%2C728&amp;ssl=1" data-orig-size="962,728" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Diseño extendido de la caja tipo Konami" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/4.jpg?fit=300%2C227&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/4.jpg?fit=962%2C728&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9445" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/4-396x300.jpg?resize=396%2C300" alt="" width="396" height="300" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Para una mejor rigidez y un aspecto semejante al de la caja original, recomiendo usar <strong>papel fotográfico brillo de 290gr/m2</strong>.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/5.jpg" data-rel="lightbox-image-4" data-imagelightbox="4" data-rl_title="" data-rl_caption=""><img data-attachment-id="9446" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/5-7/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/5.jpg?fit=989%2C681&amp;ssl=1" data-orig-size="989,681" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="5" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/5.jpg?fit=300%2C206&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/5.jpg?fit=989%2C681&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9446" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/5-400x275.jpg?resize=400%2C275" alt="" width="400" height="275" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Aquí está el resultado después de un rato; no está mal para ser un trabajo de artesano, ¿verdad? ¡Se parece a la caja de verdad! Para darle más rigidez aún, podéis recortar un rectángulo de una placa de poliestireno para colocar el cartucho de la misma manera que se hacía en los juegos de Konami.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/6.jpg" data-rel="lightbox-image-5" data-imagelightbox="5" data-rl_title="" data-rl_caption=""><img data-attachment-id="9447" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/6-6/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/6.jpg?fit=569%2C591&amp;ssl=1" data-orig-size="569,591" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;3.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Canon PowerShot A85&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1149633469&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;6.59375&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0.125&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Cartucho colocado en soporte de poliestireno" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/6.jpg?fit=288%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/6.jpg?fit=569%2C591&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9447" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/6-288x300.jpg?resize=288%2C300" alt="" width="288" height="300" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/6.jpg?resize=288%2C300&amp;ssl=1 288w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/6.jpg?w=569&amp;ssl=1 569w" sizes="(max-width: 288px) 100vw, 288px" data-recalc-dims="1" /></a></p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/7.jpg" data-rel="lightbox-image-6" data-imagelightbox="6" data-rl_title="" data-rl_caption=""><img data-attachment-id="9448" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/7-3/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/7.jpg?fit=527%2C327&amp;ssl=1" data-orig-size="527,327" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;3.2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Canon PowerShot A85&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1149633416&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;6.59375&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0.0166666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Cartucho y soporte de poliestireno" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/7.jpg?fit=300%2C186&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/7.jpg?fit=527%2C327&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9448" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/7-400x248.jpg?resize=400%2C248" alt="" width="400" height="248" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Una vez que hayáis logrado este aspecto, podéis colocar el cartucho en vuestra estantería sin nigún complejo, las otras cajas seguramente se pondrán muy celosas.</p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/8.jpg" data-rel="lightbox-image-7" data-imagelightbox="7" data-rl_title="" data-rl_caption=""><img data-attachment-id="9449" data-permalink="https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/8-3/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/8.jpg?fit=660%2C691&amp;ssl=1" data-orig-size="660,691" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Canon PowerShot A85&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1149634002&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;11.3125&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0.0166666666667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Cartucho colocado en la estantería ¿cuál es?" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/8.jpg?fit=286%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/8.jpg?fit=660%2C691&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-9449" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/8-286x300.jpg?resize=286%2C300" alt="" width="286" height="300" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/8.jpg?resize=286%2C300&amp;ssl=1 286w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/06/8.jpg?w=660&amp;ssl=1 660w" sizes="(max-width: 286px) 100vw, 286px" data-recalc-dims="1" /></a></p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/crea-tus-propias-cajas-para-los-cartuchos-de-konami/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial: Arreglar un contador de vueltas</title>
		<link>https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/</link>
					<comments>https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/#comments</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Thu, 09 Jun 2011 07:00:59 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Reparación]]></category>
		<category><![CDATA[Run "DEBUG]]></category>
		<category><![CDATA[Sony Bit-Corder SDC-600S]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=8989</guid>

					<description><![CDATA[Artículo original publicado en Run «DEBUG. Continuamos esta sección de Taller con una reparación muy sencilla: Arreglar el cuentavueltas de un reproductor de cassetes, una avería (si se puede llamar&#8230; ]]></description>
										<content:encoded><![CDATA[<p>Artículo original publicado en <a href="http://rundebug.blogspot.com/2011/04/arreglar-el-cuentavueltas-de-un.html" target="_blank">Run «DEBUG</a>.</p>
<p style="text-align: justify;">Continuamos esta <a title="Sección original en el blog Run &quot;DEBUG" href="http://rundebug.blogspot.com/search/label/Taller" target="_blank">sección de Taller</a> con una reparación muy sencilla: Arreglar el cuentavueltas de un reproductor de cassetes, una avería (si se puede llamar avería) muy común en estos aparatos. En este caso se trata del reproductor <strong>Sony Bit-Corder SDC-600S</strong>.</p>
<p style="text-align: justify;">Necesitamos lo siguiente:</p>
<ul>
<li>El reproductor propiamente dicho al que no le funcione el cuentavueltas:</li>
</ul>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8990" aria-describedby="caption-attachment-8990" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-1.jpg" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="8990" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-1/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Sony Bit-Corder SDC-600S" data-image-description="" data-image-caption="&lt;p&gt;Vista frontal del reproductor&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8990" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-1.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8990" class="wp-caption-text">Vista frontal del reproductor</figcaption></figure></p>
<ul>
<li> Una goma elástica negra, de las que usamos para las disketeras o para los cassetes de nuestros «aparatos»:</li>
</ul>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8991" aria-describedby="caption-attachment-8991" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-2.jpg" data-rel="lightbox-image-1" data-imagelightbox="1" data-rl_title="" data-rl_caption=""><img data-attachment-id="8991" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-2/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Reparación Sony Bit-Corder SDC-600S (2)" data-image-description="" data-image-caption="&lt;p&gt;Gomas&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8991 " title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-2.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8991" class="wp-caption-text">Correas de goma</figcaption></figure></p>
<p style="text-align: justify;">Éstas son fáciles de encontrar y bastante baratas. Por 4 euros he conseguido todas las que se ven en la foto. He puesto una moneda de un euro para que se vea el tamaño de las que son apropiadas para este arreglo. El diámetro será de unos 3 centímetros más o menos (conviene que la goma se quede tensa una vez puesta).</p>
<p style="text-align: justify;">Lo primero de todo es abrir el reproductor, en este caso el Bit-Corder lleva 3 tornillos en la parte trasera que procedemos a quitar, dejando así a la vista «las tripas» del cacharro:</p>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8992" aria-describedby="caption-attachment-8992" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-3.jpg" data-rel="lightbox-image-2" data-imagelightbox="2" data-rl_title="" data-rl_caption=""><img data-attachment-id="8992" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-3/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Sony Bit-Corder SDC-600S" data-image-description="" data-image-caption="&lt;p&gt;Vista interna&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8992" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-3.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8992" class="wp-caption-text">Vista interna</figcaption></figure></p>
<p style="text-align: justify;">Ahora tenemos que separar el mecanismo completo de la carcasa. Tenemos que localizar dos tornillos de color cobre, uno en la parte inferior izquierda y otro en la superior derecha. Los quitamos y buscamos otros 2 tornillos que se encuentran en la parte de abajo de la carcasa, una vez suelto todo, procedemos a sacar todo el interior (ojo, con cuidado de no tirar demasiado, que hay cables conectados al frontal):</p>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8993" aria-describedby="caption-attachment-8993" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-4.jpg" data-rel="lightbox-image-3" data-imagelightbox="3" data-rl_title="" data-rl_caption=""><img data-attachment-id="8993" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-4/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Sony Bit-Corder SDC-600S" data-image-description="" data-image-caption="&lt;p&gt;Vista sin carcasa&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8993" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-4.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8993" class="wp-caption-text">Vista sin carcasa</figcaption></figure></p>
<p style="text-align: justify;">Una forma fácil de sacar todo el interior es pulsando todas las teclas del reproductor, cosa que hace que todo quede libre y podamos tirar de él hacia atrás.</p>
<p style="text-align: justify;">Bien, ahora nos fijamos en el cuentavueltas y en su parte trasera localizamos la polea que hace que los dígitos den vueltas. Cuidado si hay restos de la anterior goma porque si los tocáis os pondréis las manos perdidas de negro y luego no salta (yo tuve que utlizar desengrasante para quitármelo, je). También miramos al rodillo de la cinta que nos queda cerca del cuentavueltas (es el del Play) y vemos que tiene una muesca o polea también:</p>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8994" aria-describedby="caption-attachment-8994" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-5.jpg" data-rel="lightbox-image-4" data-imagelightbox="4" data-rl_title="" data-rl_caption=""><img data-attachment-id="8994" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-5/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Sony Bit-Corder SDC-600S" data-image-description="" data-image-caption="&lt;p&gt;Vista del contador de vueltas&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8994" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-5.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8994" class="wp-caption-text">Vista del contador de vueltas</figcaption></figure></p>
<p style="text-align: justify;">Pues vamos a poner la goma elástica. Para colocarla en la polea del cuentavueltas tiraremos un poquito del cuentavueltas hacia afuera (sólo un poquito) para que podamos introducir la goma por detrás de la polea y ponerla correctamente. La otra punta es más fácil ponerla ya que sólo tenemos que encajarla en la muesca del rodillo. Una vez puesta, quedaría así:</p>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8995" aria-describedby="caption-attachment-8995" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-6.jpg" data-rel="lightbox-image-5" data-imagelightbox="5" data-rl_title="" data-rl_caption=""><img data-attachment-id="8995" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-6/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Sony Bit-Corder SDC-600S" data-image-description="" data-image-caption="&lt;p&gt;Colocación de la correa de goma&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8995" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-6.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8995" class="wp-caption-text">Colocación de la correa de goma</figcaption></figure></p>
<p style="text-align: justify;">Fácil, ¿verdad?. Debe de quedar algo tensa si no queremos que se suelte de su sitio con el tiempo. Bueno una cosa que me gusta hacer a mí después de arreglar algo es probarlo antes de cerrar el aparato, que más de una vez he tenido que volver a abrirlo todo al no funcionar la chapuza. Lo conectamos a la corriente (<span style="text-decoration: underline;">cuidado de no tocar nada del mecanismo interno que puede hacer «pupa» si hay algún cable por ahí suelto</span>) y le damos al Play para ver su funcionamiento:</p>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8996" aria-describedby="caption-attachment-8996" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-7.jpg" data-rel="lightbox-image-6" data-imagelightbox="6" data-rl_title="" data-rl_caption=""><img data-attachment-id="8996" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-7/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Sony Bit-Corder SDC-600S" data-image-description="" data-image-caption="&lt;p&gt;Contador de vueltas en funcionamiento&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8996" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-7.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8996" class="wp-caption-text">Contador de vueltas en funcionamiento</figcaption></figure></p>
<p style="text-align: justify;">¡¡Ahí está nuestro cuentavueltas marchando a la perfección!!, ya marca 33 vueltas, jeje. Tras ver nuestro éxito, desenchufamos el reproductor y volvemos a montarlo siguiendo nuestros pasos hacia atrás y ya lo tenemos montado de nuevo. Como última prueba lo volvemos a probar una vez cerrado por si las moscas:</p>
<p style="text-align: center;">&nbsp;</p>
<p><figure id="attachment_8997" aria-describedby="caption-attachment-8997" style="width: 400px" class="wp-caption aligncenter"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-8.jpg" data-rel="lightbox-image-7" data-imagelightbox="7" data-rl_title="" data-rl_caption=""><img data-attachment-id="8997" data-permalink="https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/reparacion-sony-bit-corder-sdc-600s-8/" data-orig-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-orig-size="" data-comments-opened="1" data-image-meta="[]" data-image-title="Sony Bit-Corder SDC-600S" data-image-description="" data-image-caption="&lt;p&gt;Reparación finalizada&lt;/p&gt;
" data-medium-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" data-large-file="https://www.msxblog.es/wp-content/uploads/2011/05/Reparaci" decoding="async" loading="lazy" class="size-full wp-image-8997" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/05/Reparación-Sony-Bit-Corder-SDC-600S-8.jpg?resize=400%2C300" alt="" width="400" height="300" data-recalc-dims="1" /></a><figcaption id="caption-attachment-8997" class="wp-caption-text">Reparación finalizada</figcaption></figure></p>
<p style="text-align: justify;">¡Perfecto! Ya tenemos nuestro reproductor operativo al 100%. Ya sabremos por qué vuelta va la cinta y no tendremos que pararla «a ojo» cuando haya que hacerlo.</p>
<p style="text-align: justify;">El arreglo de otro tipo de reproductores supongo que será exactamente igual. Lo único que cambiará será la forma de liberar todo el mecanismo para dejarlo suelto y poder trabajar con total libertad.</p>
<p style="text-align: justify;">Aquí termino, espero que haya sido útil este mini-tutorial y ahora ¡a reparar vuestros cuentavueltas!. Es fácil y rápido de hacer.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/tutorial-arreglar-un-contador-de-vueltas/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Reparación del puerto de joystick de un MSX</title>
		<link>https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/</link>
					<comments>https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 19 Apr 2011 06:00:31 +0000</pubDate>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Joystick]]></category>
		<category><![CDATA[Philips VG-8020]]></category>
		<category><![CDATA[Reparar]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=8641</guid>

					<description><![CDATA[Este artículo, cuyo autor es el usuario House-Soft, ha sido extraído de nuestros foros de discusión. El texto y las imágenes han sido adaptadas por Konamito para publicarlo como entrada&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Este artículo, cuyo autor es el usuario <strong>House-Soft</strong>, ha sido extraído de nuestros <a title="Enlace al artículo en los foros de discusión" href="http://www.msxblog.es/forum/hardware/conector-joystick-msx-resoldado/">foros de discusión</a>. El texto y las imágenes han sido adaptadas por Konamito para publicarlo como entrada del blog dado su interés para la comunidad MSX. Gracias a House-Soft por compartirlo con todos nosotros.</p>
<p style="text-align: justify;">Este procedimiento ha sido realizado sobre un MSX modelo <strong>Philips VG-8020</strong>.</p>
<p style="text-align: justify;">Pasos a seguir:</p>
<ul>
<li style="text-align: justify;">Quitar los 2 tornillos de la parte trasera del MSX.</li>
<li style="text-align: justify;">Presionar sobre la carcasa inferior, exactamente en los puntos señalados de color azul en la imagen.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/1.png" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="8731" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/1-5/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/1.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/1.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/1.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8731" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/1-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<ul>
<li style="text-align: justify;">Una vez hayamos quitado la tapa, tenemos que quitar también el teclado. Para ello levantamos un poco y con cuidado el teclado para descubrir tres conectores en la parte inferior, dos cintas y un cable azul unido a un conector. Presionamos hacia arriba las piezas de plástico blanco de protección del conector de la membrana del teclado y el conector suavemente hacia arriba.</li>
<li style="text-align: justify;">Colocamos el teclado orientado hacia la izquierda y boca abajo y nos fijamos en que en la parte superior izquierda hay un cable más que une se une al teclado. Tiramos de él y sale.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/2.png" data-rel="lightbox-image-1" data-imagelightbox="1" data-rl_title="" data-rl_caption=""><img data-attachment-id="8732" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/2-5/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/2.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/2.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/2.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8732" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/2-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<ul>
<li style="text-align: justify;">Esto es lo que se ve una vez quitado el teclado. Ahora hay que desconectar la fuente de alimentación y 3 tornillos: uno en la parte inferior derecha de la placa base, y otros dos que sujetan la pequeña placa que está a la izquierda en la placa base (no sé qué es, así que si alguien lo sabe que complete este tutorial, no soy un gurú del hardware, solamente me apaño).</li>
<li style="text-align: justify;">Hecho esto ya solamente queda tirar hacia arriba y hacia atrás de la placa base y ya la tenemos en las manos.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/3.png" data-rel="lightbox-image-2" data-imagelightbox="2" data-rl_title="" data-rl_caption=""><img data-attachment-id="8733" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/3-5/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/3.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/3.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/3.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8733" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/3-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/4.png" data-rel="lightbox-image-3" data-imagelightbox="3" data-rl_title="" data-rl_caption=""><img data-attachment-id="8734" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/4-7/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/4.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/4.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/4.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8734" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/4-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<ul>
<li style="text-align: justify;">Ahora toca soldar el puerto de joystick que está fallando. Como se puede ver en la fotografía, el estaño de los conectores está, efectivamente, roto.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/5.png" data-rel="lightbox-image-4" data-imagelightbox="4" data-rl_title="" data-rl_caption=""><img data-attachment-id="8735" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/5-5/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/5.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/5.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/5.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8735" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/5-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<ul>
<li style="text-align: justify;">Este punto de soldadura se ve claramente que está roto, además se mueve.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/6.png" data-rel="lightbox-image-5" data-imagelightbox="5" data-rl_title="" data-rl_caption=""><img data-attachment-id="8736" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/6-5/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/6.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/6.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/6.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8736" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/6-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/7.png" data-rel="lightbox-image-6" data-imagelightbox="6" data-rl_title="" data-rl_caption=""><img data-attachment-id="8737" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/7-2/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/7.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/7.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/7.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8737" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/7-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/8.png" data-rel="lightbox-image-7" data-imagelightbox="7" data-rl_title="" data-rl_caption=""><img data-attachment-id="8738" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/8-2/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/8.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/8.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/8.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8738" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/8-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<ul>
<li style="text-align: justify;">Así que nada, soldador calentándose y estaño preparado junto con la pastita para soldar. Antes de comenzar a soldar, he limpiado la zona con alcohol y he secado con papel. También con un pincel he repasado los contactos con pasta para soldar. No he quitado la soldadura antigua, seguramente para los más expertos hubiera sido lo mejor pero en mi caso no me arriesgué y solamente añadí puntitos de estaño a la vez que acercaba el soldador.</li>
<li style="text-align: justify;">Así quedó después de soldar.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/9.png" data-rel="lightbox-image-8" data-imagelightbox="8" data-rl_title="" data-rl_caption=""><img data-attachment-id="8739" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/9-3/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/9.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/9.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/9.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8739" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/9-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/10.png" data-rel="lightbox-image-9" data-imagelightbox="9" data-rl_title="" data-rl_caption=""><img data-attachment-id="8740" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/10-2/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/10.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/10.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/10.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8740" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/10-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<ul>
<li style="text-align: justify;">No es la menor soldadura que he visto pero ya no se mueve y parece robusta. Ya está todo listo.</li>
<li style="text-align: justify;">Ahora toca volver a montar el MSX y dejarlo todo como estaba.</li>
<li style="text-align: justify;">Aquí está el resultado final.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/11.png" data-rel="lightbox-image-10" data-imagelightbox="10" data-rl_title="" data-rl_caption=""><img data-attachment-id="8741" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/11-2/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/11.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/11.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/11.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8741" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/11-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<ul>
<li style="text-align: justify;">Ahora ya puedo vicarme a <a title="Ver la ficha del juego" href="http://www.msxblog.es/ficha/?id=260">The Maze of Galious</a> que compré en eBay por 17€ y que para mí no tiene precio. Ahora mi joystick QuickShot 2 funciona perfectamente.</li>
</ul>
<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/12.png" data-rel="lightbox-image-11" data-imagelightbox="11" data-rl_title="" data-rl_caption=""><img data-attachment-id="8742" data-permalink="https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/12-2/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/12.png?fit=640%2C383&amp;ssl=1" data-orig-size="640,383" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Tutorial de reparación de entrada de joystick MSX" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/12.png?fit=300%2C179&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/12.png?fit=640%2C383&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-8742" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2011/04/12-400x239.png?resize=400%2C239" alt="" width="400" height="239" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Bueno amigos espero os haya sido útil mi primer articulo o por lo menos entretenido. Un saludo y hasta la próxima.</p>
<p style="text-align: justify;">¡Viva el MSX!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/reparacion-del-puerto-de-joystick-de-un-msx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pxtone, manual completo</title>
		<link>https://www.msxblog.es/pxtone-manual-completo/</link>
					<comments>https://www.msxblog.es/pxtone-manual-completo/#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Tue, 28 Dec 2010 18:58:15 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Gryzor87]]></category>
		<category><![CDATA[Manual]]></category>
		<category><![CDATA[Música]]></category>
		<category><![CDATA[Pxtone]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.konamito.com/?p=7675</guid>

					<description><![CDATA[Seguramente no os suene demasiado (o sí) el nombre de Gryzor87. Estamos hablando del músico que acompaña a locomalito en sus producciones recientes: Hydorah y L&#8217;Abbaye des Morts. Ahora Gryzor87&#8230; ]]></description>
										<content:encoded><![CDATA[<p style="text-align: center;"><a href="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg" data-rel="lightbox-image-0" data-imagelightbox="0" data-rl_title="" data-rl_caption=""><img data-attachment-id="7683" data-permalink="https://www.msxblog.es/pxtone-manual-completo/pxtone_manual/" data-orig-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg?fit=600%2C600&amp;ssl=1" data-orig-size="600,600" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="Manual de Pxtone (Gryzor87)" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg?fit=300%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg?fit=600%2C600&amp;ssl=1" decoding="async" loading="lazy" class="aligncenter size-medium wp-image-7683" title="" src="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual-300x300.jpg?resize=300%2C300" alt="" width="300" height="300" srcset="https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg?resize=160%2C160&amp;ssl=1 160w, https://i0.wp.com/www.msxblog.es/wp-content/uploads/2010/12/pxtone_manual.jpg?w=600&amp;ssl=1 600w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" /></a></p>
<p style="text-align: justify;">Seguramente no os suene demasiado (o sí) el nombre de <strong>Gryzor87</strong>. Estamos hablando del músico que acompaña a <strong>locomalito</strong> en sus producciones recientes: <a href="http://www.locomalito.com/juegos_hydorah.php" target="_blank">Hydorah</a> y <a href="http://www.locomalito.com/juegos_abbaye_des_morts.php" target="_blank">L&#8217;Abbaye des Morts</a>. Ahora Gryzor87 acaba de publicar un <strong>extenso manual-tutorial</strong> de uso del programa Pxtone.</p>
<p style="text-align: justify;">Incluso el autor de pxtone ha escrito el prólogo del manual. Merece la pena echarle un vistazo y aprender a cómo domar las notas musicales en nuestras producciones. Las explicaciones están orientadas al amplio espectro de generaciones de videojuegos, desde los más sencillos 8 bits hasta los juegos actuales con grandes súper producciones musicales.</p>
<p style="text-align: justify;">El manual está disponible en español o inglés en formato PDF y con gran cantidad de imágenes explicativas. Todo condensado en nada menos que 96 páginas. Se nota  que hay mucho trabajo y esfuerzo detrás de esta obra. Si queréis aprender o mejorar vuestras técnicas no dudéis en echarle un vistazo. El paquete de descarga incluye además del manual, el programa Pxtone y ejemplos.</p>
<p style="text-align: justify;">Recomendado 100%</p>
<p style="text-align: justify;">Enlace relacionado: <a href="http://www.gr87.com/?page_id=64" target="_blank">Manual Pxtone</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.msxblog.es/pxtone-manual-completo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
