<?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/"
	>

<channel>
	<title>El sitio personal de David Colmenero (D_Skywalk) &#187; Artículos</title>
	<atom:link href="http://david.dantoine.org/seccion/articulo/feed/" rel="self" type="application/rss+xml" />
	<link>http://david.dantoine.org</link>
	<description>dev &#38; gaming</description>
	<lastBuildDate>Wed, 25 Jan 2012 12:08:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Como modificar Minecraft para una LanParty / Servidor Privado</title>
		<link>http://david.dantoine.org/envio/996/</link>
		<comments>http://david.dantoine.org/envio/996/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 18:58:08 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Envios al blog]]></category>
		<category><![CDATA[minecraft]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Servidor]]></category>
		<category><![CDATA[Videojuegos]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/?p=996</guid>
		<description><![CDATA[Que también lo podía haber llamado &#8220;como crakear minecraft&#8221;, pero hubiera sido algo amarillista, ya que las herramientas y todo el sistema son libres y está muy simplificado. Evidentemente no es que Mojang lo soporte pero tampoco creo que sea algo que realmente les moleste. De hecho las protecciones son MUY simples. Yo inicié todo [...]]]></description>
			<content:encoded><![CDATA[<p>Que también lo podía haber llamado &#8220;como crakear minecraft&#8221;, pero hubiera sido algo amarillista, ya que las herramientas y todo el sistema son libres y está muy simplificado. Evidentemente no es que Mojang lo soporte pero tampoco creo que sea algo que realmente les moleste. De hecho las protecciones son MUY simples.</p>
<p>Yo inicié todo este pequeño proyecto de servidor privado para una mini-party en una casa rural y como era imposible tener internet, pues lo monté para que todos pudiéramos disfrutarlo allí <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo-cliente.png"><img class="aligncenter size-medium wp-image-1004" title="Minecraft Cliente 1.1 - Para la Party" src="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo-cliente-300x176.png" alt="Minecraft Cliente 1.1 - Para la Party" width="300" height="176" /></a></p>
<p>Mis objetivos con este proyecto eran:<br />
Sistema de Login de Usuarios para una LAN, Sistema de Skins/Cloaks para la LAN y multiplayer desde LAN con todo esto funcionando&#8230;</p>
<h2>Modificar el cliente de Minecraft</h2>
<p>Lo primero que necesitamos es descargar el <a title="MCP Wiki" href="http://mcp.ocean-labs.de/index.php/MCP_Releases" target="_blank">Coder Pack</a> correspondiente a nuestra versión de Minecraft (ej: para la 1.1 usaremos el MCP 5.6), este pack de utilidades nos permitirá extraer/modificar/recompilar el código fuente de Minecraft. Una vez bajado debemos copiar la carpeta [bin] de Minecraft a la carpeta [jars] de MCP y descargar de la página oficial <strong>minecraft_server.jar</strong> para tenerlo también en [jars] por si queréis echarle un ojo luego <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ahora desde un terminal entramos en el directorio del MPC y ejecutamos: <strong>decompile</strong> (en ubuntu sería ./decompile.sh)<br />
Este proceso extraerá todos los ficheros del paquete oficial y los parcheará para que sus funciones sean comprensibles para los humanos XD<br />
Una vez terminado todos los fuentes los tendréis disponibles en la carpeta [src]. Ahora tenéis todo el juego disponible para modificar cualquier cosa que no os guste o ampliar, logros, armas, etc&#8230;</p>
<p>Pero nosotros vamos a algo mucho más sencillo permitirnos jugar sin internet, para ello necesitamos editar 4 ficheros.</p>
<h3>EntityOtherPlayerMP.java</h3>
<p>Este fichero sirve para mostrar las propiedades de los otros jugadores durante la partida multijugador (de ahí el MP). Buscad esta cadena casi al inicio del fichero:</p>
<pre>skinUrl = (new StringBuilder()).append("http://s3.amazonaws.com/MinecraftSkins/").append(s).append(".png").toString();</pre>
<p>Esto lo que hace es bajar el png de tu skin, y nosotros queremos que las skins las use de nuestra LAN asi que nada más facil que por ejemplo si la ip de nuestro server (con apache montado y demás) fuera 192.168.0.1 &#8230;</p>
<pre>skinUrl = (new StringBuilder()).append("http://192.168.0.1/MinecraftSkins/").append(s).append(".png").toString();</pre>
<h3>EntityPlayer.java</h3>
<p>De aquí vamos a buscar las cloacks y hacer que la url apunte a nuestra LAN:</p>
<pre>playerCloakUrl = (new StringBuilder()).append("http://s3.amazonaws.com/MinecraftCloaks/").append(username).append(".png").toString();</pre>
<p>Igual que antes usamos la ip de nuestro server:</p>
<pre>playerCloakUrl = (new StringBuilder()).append("http://192.168.0.1/MinecraftCloaks/").append(username).append(".png").toString();</pre>
<p>También podríamos modificar EntityPlayerSP.java pero sólo vale para el solitario, así que para este tutorial no nos interesa, si quisierais modificarlo sería lo mismo que el MP, no hay pérdida <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>NetClientHandler.java</h3>
<p>Este componente se encarga de comprobar que nuestro usuario y nuestra sesión son correctas, al hacer login contra el servidor oficial se nos da un identificador si no es correcto, pues no podemos entrar, lo que vamos a hacer es que esa comprobación la haga contra nuestro server (que dirá que sí a todo XD)</p>
<p>Buscad la cadena de iniciar la sesión del cliente:</p>
<pre>URL url = new URL((new StringBuilder()).append("http://session.minecraft.net/game/joinserver.jsp?user=").append(mc.session.username).append("&amp;sessionId=").append(mc.session.sessionId).append("&amp;serverId=").append(packet2handshake.username).toString());</pre>
<p>Y modificadla como antes a vuestra LAN:</p>
<pre>URL url = new URL((new StringBuilder()).append("http://192.168.0.1/game/joinserver.jsp?user=").append(mc.session.username).append("&amp;sessionId=").append(mc.session.sessionId).append("&amp;serverId=").append(packet2handshake.username).toString());</pre>
<p>Luego crearemos todos estos ficheros y directorios en el server, pero por el momento simplemente modifiquemos el cliente.</p>
<h3>ThreadCheckHasPaid.java</h3>
<p>Este fichero genera un hilo que cada cierto tiempo conecta al servidor oficial y comprueba que tus datos de login son correctos, es un hilo que está ahí consumiendo y que sólo vale para eso.</p>
<pre>HttpURLConnection httpurlconnection = (HttpURLConnection)(new URL((new StringBuilder()).append("https://login.minecraft.net/session?name=").append(mc.session.username).append("&amp;session=").append(mc.session.sessionId).toString())).openConnection();
httpurlconnection.connect();
if(httpurlconnection.getResponseCode() == 400 &amp;&amp; this == null)
{
    Minecraft.hasPaidCheckTime = System.currentTimeMillis();
}
httpurlconnection.disconnect();</pre>
<p>Yo al principio no quería tocarlo y simplemente usar mi server y añadirle un certificado SSL a apache, pero el problema es que java requiere que ese certificado sea correcto y un montón de tonterías más&#8230; total, un trabajazo para simplemente comentar esas líneas y dejar activa la línea que establece el valor de la variable <em>Minecraft.hasPaidCheckTime</em> para que el cliente inicie correctamente.</p>
<p>Y ya hemos terminado, sólo queda llamar a <strong>recompile</strong> y aunque podríamos iniciar el juego con <strong>starclient</strong> no lo hagáis aun ya que necesitamos montar la parte del servidor y luego ya comprobaremos que todo funciona correctamente.</p>
<p>Vamos a por el Server!</p>
<h2>Preparar el servidor para Minecraft SMP</h2>
<p>Damos por supuesto que tenéis un servidor apache y mysql funcionando, sois root y que tenéis acceso al directorio del servicio web. Simplemente vamos a configurar el sistema para que nos permita loguearnos contra el servidor y usar nuestras Skins. Se podría también preparar un sistema de registros (yo de hecho monté uno sencillito que nos permite subir nuestras Skins) pero como el artículo va dirigido a montar una lan-party realmente cuesta poquito dar las cuenta de alta a mano y copiar las skins.</p>
<p><a href="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo-login-apache.png"><img class="aligncenter size-medium wp-image-1016" title="Login del Panel de control de Dantoine" src="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo-login-apache-300x240.png" alt="Login del Panel de control de Dantoine" width="300" height="240" /></a></p>
<p>Bajad la carpetilla del servidor web, descomprimidla y comprobad con cualquier navegador que el servidor os las muestra (aunque en algunas al no enviar vuestro user/pass dará &#8220;bad login&#8221; o &#8220;cannot select DB&#8221;, claro). Explico que contiene cada carpeta:</p>
<ul>
<li>[game] Contiene las comprobaciones cuando conectamos al servidor, simplemente son un par de ficheros que no comprueban nada y simplemente contestan &#8220;adelante!&#8221; XDD <em>checkserver.jsp</em> lo usará el servidor y <em>joinserver.jsp</em> como vimos lo usaba el cliente.</li>
<li>[loginusr] Un pequeño PHP  que permite a los usuarios loguear en el sistema. Nada del otro mundo, usad el SQL que encontraréis en la carpeta para instalar la tabla de usuarios. La información del mysql los coge del <em>config.inc.php</em> del principal. Con este fichero podríamos jugar con muchas cosas incluso obligar a los jugadores a actualizarse, la verdad que es bastante ampliable pero para nuestros cometidos es suficiente <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>[MinecraftCloacks] y [MinecraftSkins] son directorios que contienen las capas y las skins de los usuarios, simplemente hay que poner ahí la skin con el nombre exacto de usuario y ya al loguear aparecerá keko con la apariencia que deseaba el usuario. Vendría bien que bajaráis unas cuantas por que si no tenéis internet, poco podréis bajar en la lan-party <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>[webinfo] Es el HTML que verán los usuarios al introducir sus datos. Puedes editarlo y poner lo que quieras <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>Pues eso sería todo metéis la tabla de usuarios con phpmyadmin y dáis de alta vuestros usuarios!</p>
<div id="attachment_1017" class="wp-caption aligncenter" style="width: 220px"><a href="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo-usuario-web-apache.png"><img class="size-medium wp-image-1017" title="Panel de control de Dantoine" src="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo-usuario-web-apache-210x300.png" alt="Panel de control de Dantoine" width="210" height="300" /></a><p class="wp-caption-text">Una vez logueado en el panel de Dantoine esto es lo que se veía...</p></div>
<h2>MinecraftLauncher</h2>
<p>Ya tenemos el cliente y el servidor configurados aun no podemos loguear con nuestros usuarios ya que el MCP sólo permite entrar con una cuenta por así decir anónima, sin usuario ni contraseña. Para poder loguearnos debemos usar un launcher que inicie el cliente con nuestros datos de usuario. Para eso vamos a usar una versión viejuna del lanzador de Minecraft, no podemos usar las nuevas por que requieren servidor con https y meternos con SSL, certificados y demás como dije está fuera de este artículo.</p>
<p>Esta versión que yo modifiqué sólo tiene un pequeño bug, que cuando pulsamos en un enlace no abre el navegador, pero vamos nada grave <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo_minecraft-launcher.png"><img class="aligncenter size-medium wp-image-1025" title="Launcher Modificado para Servidores no SLL" src="http://david.dantoine.org/wp-content/uploads/2012/01/Pantallazo_minecraft-launcher-300x177.png" alt="Launcher Modificado para Servidores no SLL" width="300" height="177" /></a></p>
<p>El lanzador de Minecraft viene configurado para el servidor de todo este artículo <strong>192.168.0.1</strong> si tu servidor estará en una ip diferente modificaremos con un editor hexadecimal los ficheros: <strong>LauncherFrame.class</strong> y <strong>LoginForm$8.class</strong>, buscad la cadena de de la ip y cambiadla a la ip que deseeis, tened en cuenta que no podéis añadir caracteres, respetad la cadena original. Si ahora la ip es tiene más caracteres os comeréis parte del directorio de apache asi que renombradlo después en el server para que coincidan.</p>
<p>Os veo un poco perplejos, así que pongo un ejemplo para <strong>LoginForm$8.class</strong> la cadena que encontraréis será:</p>
<pre>http://192.168.0.1/webinfo/ (carpeta webinfo en el server)
http://192.168.0.100/winfo/ (renombramos la carpeta a winfo en el server)</pre>
<p><em>El nombre me los he inventado yo, podéis poner el nombre a la carpeta que queráis siempre que mantengáis el tamaño de la cadena exactamente igual.</em></p>
<p>Una vez hemos modificado los dos ficheros con cualquier compresor podemos abrir <strong>minecraft_launcher-1.5-dantoine.jar</strong> (no es más que un zip) y actualizar ambos ficheros con las nuevas versiones.</p>
<p>Finalmente para iniciar el lanzador debemos indicar que inicie la clase &#8220;<strong>net.minecraft.LauncherFrame</strong>&#8220;, en windows hay utilidades que permiten generar un ejecutable que por defecto use esa clase pero en ubuntu debemos indicarla, pero nada más simple que montarnos un pequeño script que haga el trabajo por nosotros. Os dejo un simple ejemplo suponiendo que el lanzador lo metierais dentro de [.minecraft] en una nueva carpeta llamada [LauncherDantoine]:</p>
<pre>cd ~/.minecraft/LauncherDantoine
java -Xmx1024M -Xms512M -cp minecraft_launcher-1.5-dantoine.jar net.minecraft.LauncherFrame</pre>
<p>Ya tenemos casi todo listo volvemos al cliente para finalizar todo el proceso&#8230;</p>
<h2>Ajustes en el Servidor Multiplayer</h2>
<p>Para simplificarlo ya que el <strong>minecraft_server.jar</strong> intenta loguear contra <em>session.minecraft.net</em>, yo lo que hice fue añadir en el <strong>/etc/hosts</strong> (supongo que en windows andará por el system) la ip del server:</p>
<pre>192.168.0.1    session.minecraft.net</pre>
<h2> Retoques finales del Cliente de Minecraft</h2>
<p>Antes os dejé la miel en los labios de comprobar si todo funcionaba, bueno no si se aguantasteis sin lanzar el cliente XD<br />
Pues ya vamos a lo último, actualizar el cliente oficial para que use nuestra party-modificación ^_^&#8217;</p>
<p>Sencillo volvemos al terminal y desde el directorio principal del MCP lanzamos <strong>reobfuscate</strong> (siendo esta llamada en linux ./reobfuscate.sh), nos aparecerá algo como esto:</p>
<pre>== Reobfuscating client ==
&gt; Gathering md5 checksums
&gt; Compacting client bin directory
&gt; Reobfuscating client jar
&gt; Extracting modified classes
&gt; Modified class found : net/minecraft/src/EntityOtherPlayerMP
&gt; Modified class found : net/minecraft/src/EntityPlayer
&gt; Modified class found : net/minecraft/src/NetClientHandler
&gt; Modified class found : net/minecraft/src/ThreadCheckHasPaid
&gt; Outputted net/minecraft/src/EntityOtherPlayerMP to reobf/minecraft as qx.class
&gt; Outputted net/minecraft/src/EntityPlayer      to reobf/minecraft as xb.class
&gt; Outputted net/minecraft/src/NetClientHandler  to reobf/minecraft as abm.class
&gt; Outputted net/minecraft/src/ThreadCheckHasPaid to reobf/minecraft as hc.class</pre>
<p>Ahora como véis se han creado cuatro nuevos ficheros compilados y cifrados con nuestras modificaciones, pues ahora como hicimos con el launcher, vamos al jar oficial de minecraft que tendréis en vuestra carpeta bin del juego y sobrescribid cada uno de ellos para que ahora el cliente contenga nuestras modificaciones <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Y por último borramos completamente la carpeta [META-INF] que contiene el jar para que el cliente no proteste por haberlo modificado.</p>
<p>Yo también modifiqué la carpeta de title y añadir un splash personalizado, jejej apañado que es uno <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<h2>Disclaimer final&#8230;</h2>
<p>Evidentemente aunque se necesita al menos alguien con el juego original, todo esto puede usarse para jugar de gratis, pero nada de mal hace a nadie usarlo para montarte tu pequeña LAN y me consta que gracias a todo esto que monté para esa pequeña reunión se han vendido un par de Minecraft más y a quien no le gustó, tampoco lo llegó luego a jugar más <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><em><strong>Aviso:</strong> Este tutorial no se actualizará, si algún día Mojang decide cambiar los ficheros, la forma de funcionar, etc&#8230; este tutorial yo lo hice para la versión 1.0 (aunque me consta que sigue siendo válido para la 1.1) y ahí se quedará, ignorando si más adelante seguirá siendo efectivo o no.</em></p>
<p>Un Saludo y espero que lo disfrutéis con vuestros colegas, nosotros lo pasamos pipa&#8230; hoguerita, minecraft y todos alrededor con nuestras mantitas ^_^</p>
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/42">Minecraft Login - Apache Files</a> (4.73 kB)</h1>
	<p><cite>Subido: 20-01-2012 [Descargas: 34]</cite></p>
	<p>Ficheros para el servidor apache.</p>
</div>
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/43">Minecraft Login - Launcher</a> (76.68 kB)</h1>
	<p><cite>Subido: 20-01-2012 [Descargas: 39]</cite></p>
	<p>Launcher modificado por mi para permitir usar cualquier servidor HTTP.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/envio/996/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ultracargas en Amstrad CPC</title>
		<link>http://david.dantoine.org/destacado/577/</link>
		<comments>http://david.dantoine.org/destacado/577/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 17:36:43 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Destacado]]></category>
		<category><![CDATA[Amstrad CPC]]></category>
		<category><![CDATA[cacharreo]]></category>
		<category><![CDATA[dingoo]]></category>
		<category><![CDATA[Retromanía]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/?p=577</guid>
		<description><![CDATA[Todo empezó este puente con la visita del viejo amigo de Dantoine, Vampire. Nos dedicamos una tarde a cacharrear (+) y probando juegos en el MSX, apareció una rom de Ghostbusters que rápidamente pusimos a cargar&#8230; El juego no estaba mal, pero parecía un remake de estos de Spectrum traspasado al MSX y le dije: [...]]]></description>
			<content:encoded><![CDATA[<p>Todo empezó este puente con la visita del viejo amigo de Dantoine, <em>Vampire</em>. Nos dedicamos <a href="http://farm5.static.flickr.com/4153/5056351463_82be7a2dfb_b.jpg">una tarde a cacharrear</a> (<a href="http://www.flickr.com/photos/dskywalk/5056351949/in/photostream/">+</a>) y probando juegos en el MSX, apareció una rom de Ghostbusters que rápidamente pusimos a cargar&#8230;</p>
<div id="attachment_578" class="wp-caption aligncenter" style="width: 310px"><a href="http://david.dantoine.org/wp-content/uploads/2010/12/forgotten-ghostbusters-game.jpg"><img class="size-medium wp-image-578" title="Ghostbusters MSX" src="http://david.dantoine.org/wp-content/uploads/2010/12/forgotten-ghostbusters-game-300x183.jpg" alt="Ghostbusters (MSX 1)" width="300" height="183" /></a><p class="wp-caption-text">Cazando fantasmas en Ghostbusters (MSX 1)</p></div>
<p>El juego no estaba mal, pero parecía un remake de estos de Spectrum traspasado al MSX y le dije: &#8220;si te gusta este, espera que saco <em>la dingoo-player</em> y ponemos el de Amstrad CPC que lleva voces digitalizadas, verás el vicio&#8230;&#8221;</p>
<p>No se si conocéis el tema de cargar juegos de cinta desde un reproductor MP3, espero que si. La cuestión es que salió <a href="http://personal.auna.com/casariche/otla/otla.htm" target="_blank">un proyecto de ultra cargas otla</a>, en el cual puedes pasar de cargar un juego de cinta 6/8minutos a 30/40 segundos ¡maemia! Así que nos dispusimos a tal intento armados con una <a href="http://www.hardcore-gamer.net/tienda/index.php/cPath/48_390" target="_blank">dingoo</a>, el CPC, muchas cintas y una tarde libre <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/zOk5wY9pMhg" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/zOk5wY9pMhg"></embed></object></p>
<p>Lamentablemente esa tarde hicimos muchas pruebas pero no lo conseguimos, no sabíamos si nos fallaba el cable o era alguna incompatibilidad de mi Amstrad Plus 464. Lo máximo que conseguimos fue escuchar la risa burlona del fantasma, seguida de un restart o cuelgue variado XD</p>
<p>Pero yo he seguido intentándolo y finalmente conseguí cargar el cargar el puñetero juego con otla en 30 segundos y lo comparto aquí no solo por si hay algún otro loco como nosotros al que toda esta mierda le resulte útil; sino para que la próxima vez que tenga una ocurrencia igual, me sirva de chuletilla <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Advertencias y Consejos generales</strong></p>
<ul>
<li>El binario de otla, funciona sin problemas en linux por medio de wine.</li>
<li>No uses imágenes SNA, al menos en mi CPC +, lo único que consigues es colgar el juego a los pocos segundos.</li>
<li>Otla debería funcionar con juegos multicarga y CDTs pero es muy complicado y sólo recomendable para conocedores del código máquina del Z80, ya que requiere cambiar las rutinas de carga originales y/o buscar los puntos de ejecución con debuggers. La mejor opción es si quieres jugar con algún multicarga es mantener sus fases en el formato original y usar otla para el binario principal del juego.</li>
<li>Otla, no permite tampoco cargar las pantallas del juego tal y como eran originalmente, así que mejor olvidarte de ellas, de todas formas aquí se busca velocidad de carga en el hardware original y no fidelidad. Quizás un modo que capturara del BAS su mode y paleta, salvaría este problema&#8230;</li>
<li>El proyecto parece abandonado, lamentablemente.</li>
</ul>
<p>En definitiva, para cocinar nuestro MP3 y cargarlo en nuestro CPC, necesitamos:</p>
<ol>
<li>Un CD lleno de juegos de CPC, con sus ficheros extraídos como los que podemos encontrar aquí:<br />
<a href="http://webs.ono.com/cpcgamescd/" target="_blank">http://webs.ono.com/cpcgamescd/</a></li>
<li>Elegir uno e identificar su binario principal (el más gordo), normalmente encontraréis dos: uno será la pantalla de presentación (que ignoraremos) y el otro será el juego.</li>
<li>Abrir otla, añadir el bloque del binario [Add Blocks] y cambiar del Header el &#8220;Loading name&#8221; manteniendo lo demás sin tocar y en la zona del Player/Wav se configura así&#8230;</li>
</ol>
<div id="attachment_580" class="wp-caption aligncenter" style="width: 201px"><a href="http://david.dantoine.org/wp-content/uploads/2010/12/otla-screen.png"><img class="size-medium wp-image-580" title="Otla - Ghostbusters" src="http://david.dantoine.org/wp-content/uploads/2010/12/otla-screen-191x300.png" alt="Otla - Ghostbusters" width="191" height="300" /></a><p class="wp-caption-text">Configuración de Otla para el juego cazafantasmas.</p></div>
<p>Ya sólo queda pulsar en SBB=&gt; WAV o SBB=&gt; MP3. A mi la conversión a MP3 me ha dado problemas con algún juego, así que recomiendo hacer al menos las primeras pruebas directamente con WAV. O bien comprimirlos vosotros mismos a una calidad alta. Ej:</p>
<p><code>lame -m s --preset cbr 256 $FILE$ $NAME$.mp3</code></p>
<p>Ya os digo, con un WAV de unos segundos, es complicarte lo de ponerte a comprimir nada. Una tontería con la que sólo ganarás unos 100kb. En CDTs originales si se nota, pero aquí no.</p>
<p>Una vez tienes tu fichero yo he usado la Dingoo con su player del firmware oficial que me permite sacar y meter la SD sin problema. Mi configuración: Volumen al máximo (30), Ecualizador Normal (Nada de Jazz, Pop, ni na deso) y Efectos Off (Ni Small room, Concert, etc&#8230;). Todo estos consejos seguro que os valen igual para otro reproductor aun no siendo la fantástica dingoo ;D</p>
<p style="text-align: center;">
<div class="wp-caption aligncenter" style="width: 330px"><img title="Dingoo (FW Original)" src="http://img213.imageshack.us/img213/1976/bigdingoo20handheld20ga.jpg" alt="Dingoo (FW Original)" width="320" height="174" /><p class="wp-caption-text">Dingoo (FW Original)</p></div>
<p>Por último uso una cinta de los chinos (comprada en carrefúl por <strong>7€</strong> <em>grgfgfr</em>) para cargar los juegos y os evitáis abrir el CPC, soldar&#8230; Lo único que no se es como cerrar ahora la tapa XDDD</p>
<div class="wp-caption aligncenter" style="width: 330px"><img title="Adaptador de Cintas" src="http://img88.imageshack.us/img88/6606/viewimagezy.jpg" alt="Adaptador de Cintas" width="320" height="289" /><p class="wp-caption-text">Adaptador de Cintas</p></div>
<p>Como nota curiosa a los valientes, que prueben todo este tinglado:<br />
Si alguno ha jugado a la versión de 8 bits, recordará que la presentación era una especie de pelotita que hace las veces de karaoke y que va indicando lo que debes cantar. Pues parece que originalmente en Amstrad no era esa pelota la que te indicaba, lo que debías cantar sino <strong>otro icono del basic</strong> que fue modificado a posteriori en la carga del inicio. Este icono original sólo lo podréis ver usando la ultra carga. Suerte! <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </p>
<p>Un Saludo y menuda entrada retrofrikera que me ha quedado, que seguro sólo me interesará a mi, para variar XDDDDDDDDD</p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/destacado/577/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tutorial: Modeline HowTo en Español!!! (configura advmame como los MACHOTES)</title>
		<link>http://david.dantoine.org/articulo/21/</link>
		<comments>http://david.dantoine.org/articulo/21/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 12:06:30 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[arcade]]></category>
		<category><![CDATA[mame]]></category>
		<category><![CDATA[traducción]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/21/#21</guid>
		<description><![CDATA[Aunque estos temas tan técnicos no parecen interesar tanto, la historia de ponerme a traducirlo fue que empecé a leerlo online y me dije: &#8220;Voy a imprimírmelo y lo leo en el cagadero&#8221; xD Cuando empecé a imprimirlo me di cuenta que no se imprimía muy bien, sin contar que no se imprimían las imágenes [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque estos temas tan técnicos no parecen interesar tanto, la historia de ponerme a traducirlo fue que <a href="http://easymamecab.mameworld.net/html/monitor1.htm">empecé a leerlo online</a> y me dije:<br />
&#8220;Voy a imprimírmelo y lo leo en el cagadero&#8221; xD</p>
<p>Cuando empecé a imprimirlo me di cuenta que no se imprimía muy bien, sin contar que no se imprimían las imágenes flash&#8230; Así que me puse a pasarlo a un documento de <a href="http://es.openoffice.org/">OpenOffice</a> haciendo screenshots de los flash, cuando lo tenia todo montado vino mi cuñaillo (que también se esta haciendo una maka) y empecé a explicarle que imprimía y dijo:<br />
&#8220;bua, que interesante si supiera ingles me lo leía de cabo a rabo&#8221;<br />
Y le dije que me diera un par de días xD</p>
<p><span id="more-21"></span>Pues esa es la historia del documento, todas formas espero que también sirva a cualquier interesado en el mundo de las máquinas arcade y os sirva para configurar vuestro PC a vuestro entero gusto, aunque seguro que si andas por aquí no tendrás mucho problema con el idioma de xekspir <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p><strong>ESTADO DEL DOCUMENTO</strong><br />
Sólo falta darle un repaso general al documento (el groso del mismo lo termine rápidamente), por que seguro que he dejado algunas frases &#8220;incomprensibles&#8221; y forzadas por ahí. Enviadme vuestros comentarios y/o correcciones a mi mail (en la página principal).</p>
<p>Un Saludo y felices modelines <img src="/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!" /></p>
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/19">Modeline HowTo</a> (1.75 MB)</h1>
	<p><cite>Subido: 19-08-2010 [Descargas: 657]</cite></p>
	<p>Modeline HowTo: es_ES - Release Candidate 1 (BASE + PDF)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/21/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tutorial: Recuperación e Instalación rápida de Terminales con Software Libre</title>
		<link>http://david.dantoine.org/articulo/19/</link>
		<comments>http://david.dantoine.org/articulo/19/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 17:06:51 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/19/#19</guid>
		<description><![CDATA[Dicen que ante la presión la mente se agudiza, en mi caso ha sido así ya que hace unos meses se decidió cambiar todo el parque de ordenadores del centro donde trabajo y la cantidad de curro que se me avecinaba tenía pinta de querer acabar conmigo Realmente esto que deseo contar en el artículo [...]]]></description>
			<content:encoded><![CDATA[<p>Dicen que ante la presión la mente se agudiza, en mi caso ha sido así ya que hace unos meses se decidió cambiar todo el parque de ordenadores del centro donde trabajo y la cantidad de curro que se me avecinaba tenía pinta de querer acabar conmigo <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Realmente esto que deseo contar en el artículo dudo que sea muy novedoso, es más seguramente rebuscando por internet otros lectores hayan terminado haciendo algo parecido a lo que voy a contar. Pero no divago más y os cuento la idea.</p>
<p>El problema es que tengo casi 50 terminales que instalar y lo peor de todo: quieren tenerlos YA, por que los viejos se caen a cachos <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
<p><span id="more-19"></span>Así que me he preparado un pequeño sistema de montaje de ordenadores usando software libre. Si, todos conocemos norton ghost, pero que queréis que os diga viendo como funciona esto que le den mucho al ghost xDDD</p>
<blockquote><p>WARNING: Este artículo requiere conocimientos básicos de Linux y redes</p></blockquote>
<p>Necesitamos:<br />
- <a href="http://www.sysresccd.org/Main_Page">SysTemRescueCD</a> en <a href="http://www.sysresccd.org/Sysresccd-manual-en_How_to_install_SystemRescueCd_on_an_USB-stick">Memoria USB</a> o en un <a href="http://www.sysresccd.org/Download">CD canonizado</a>.<br />
- Red Ethernet Gigabit, si es posible.<br />
- Servidor SSH bajo linux, (sino no sería SL xD).<br />
- Estación de trabajo que hará de Base.</p>
<p>Vamos que 3 cositas que todo buen administrador debe tener, nada complicado <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>El primer paso es crear una configuración base del sistema, por ejemplo en mi trabajo íbamos a tener dos configuraciones: <strong>Windows Administración</strong> y <strong>Windows Tutores y Alumnos</strong>. En mi caso todos los ordenadores comparten prácticamente la misma configuración de licencias, programas y drivers. Seguramente algún lector no tenga tanta suerte, pero puedes crear una configuración base, sin drivers y luego simplemente instalas en 5 minutos los drivers de la CPU y listo ^_^</p>
<p>Una vez tenemos el terminal con todo lo que necesitamos instalado como base, desfragmentamos (si esa cosa rara que necesitan los windows) y en la máquina servidor nos aseguramos que tenemos instalado el servidor SSH.</p>
<pre>sudo apt-get install ssh</pre>
<p>Y creamos una carpeta en nuestro home que albergará las imágenes, y se encuentra en <strong>/home/david/Images</strong>, ya cada uno que la cree donde quiera <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Con el terminal preparado, reiniciamos la máquina con el SysRescue introducido, aparecerá la típica ventana de los viejos Linux y simplemente pulsamos <strong>[INTRO]</strong>. Configuramos la red y conectamos al servidor usando <a href="http://fuse.sourceforge.net/sshfs.html">fuse+ssh</a>, algo tan simple como:</p>
<pre>sshfs usuario@ip_server:/path/a/montar /path/local</pre>
<p>Si nuestro servidor es 192.168.1.1, nuestro usuario fuera &#8220;david&#8221; y deseamos montar en el terminal el directorio que nombramos antes, sería algo como:</p>
<pre>sshfs david@192.168.1.1:/home/david/Images /mnt/windows</pre>
<p><em>Uso el directorio de windows dentro de mnt, por simple y llana comodidad.</em></p>
<p>Con esto ya podemos trabajar en <strong>/mnt/windows</strong> como si estuviéramos físicamente en el directorio del servidor, esto nos valdrá para crear la imagen de una forma muy simple ya veréis <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>La automatización del proceso viene a cargo de un par de scripts que guardaremos en el servidor y que se podrían convertir perfectamente en uno, si alguno se anima a modificarlo (recordad enviad las modificaciones). Pero que para la labor que se les encomienda son perfectamente útiles&#8230;</p>
<p>Os presento a <strong>mBackup.sh</strong> y <strong>mInstall.sh</strong>, que pueden ser libremente usados bajo licencia GNU v2</p>
<h3><strong>mBackup.sh</strong></h3>
<pre>#!/bin/sh
##
#     GPL v2 (c) 2008 - D_Skywalk
##           version 0.5             

#### CONFIG
$HD=/dev/Xda # Hardisk
$PRT=/dev/Xda1 #Partition
$NET_PATH=/mnt/windows/Images

#### CODE
#
if [ -z "$1" ]; then
 echo " usage: $0 "
 exit 1
fi
echo -n " Script Running - Sleep Time for Secure STOP "
sleep 1
echo -n "."
sleep 1
echo -n "."
sleep 1
echo "."
sleep 1

echo "Loading partimage for SYS - Rev $1"
sleep 2
partimage -z1 -o save $PRT $NET_PATH/Image-SYS_r$1.partimg.gz
echo "Saving MBR-DAT - Rev $1"
dd if=$HD of=$NET_PATH/backup-mbr_r$1.bin count=1 bs=512
echo "Saving MBR-STRUCT - Rev $1"
sfdisk -d $HD &gt; backup-mbr_r$1.sf
echo "FINISH!!!"
sleep 1
echo " "
echo " Script by D_Skywalk GPL vc (c) 2008"
exit 0</pre>
<h3><strong>mInstall.sh</strong></h3>
<pre>#!/bin/sh
##
#     GPL v2 (c) 2008 - D_Skywalk
##           version 0.5             

#### CONFIG
$HD=/dev/Xda # Hardisk
$PRT=/dev/Xda1 #Partition
$NET_PATH=/mnt/windows/Images

#### CODE
#
if [ -z "$1" ]; then
 echo " usage: $0 "
 exit 1
fi
echo -n " Script Running - Sleep Time for Secure STOP "
sleep 1
echo -n "."
sleep 1
echo -n "."
sleep 1
echo "."
sleep 1

echo "Install MBR-DAT - Rev $1"
dd if=$NET_PATH/backup-mbr_r$1.bin of=$HD
sleep 2
echo "Install MBR-STRUCT - Rev $1"
sfdisk $HD &lt; $NET_PATH/backup-mbr_r$1.sf
sleep 2
echo "Loading partimage for Install Win2k - Rev $1"
sleep 2
partimage restore $PRT $NET_PATH/Win2k-UNED_r$1.partimg.gz.000
echo "FINISH!!!"
sleep 1
echo " "
echo " Script by D_Skywalk GPL vc (c) 2008"
exit 0
</pre>
<p>Como veis nada del otro jueves, estos pueden ser unificados fácilmente pero yo no me puse por no verlo realmente necesario para mis simples propósitos. Los scripts además guardan unos segundos de espera, por si te equivocaste al configurarlo, ya que una vez en proceso esté &#8220;corriendo&#8221; lo mejor es <span class="subraya">no pararlo</span> <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Lo importante de los scripts es la configuración, <strong>debéis completar las variables de HD, PRT y NET_PATH</strong>, con los valores que os correspondan (recordad que podéis arrancar gparted desde las X &#8211; startx en sysrescue- si no sabéis si es hda, hdb, sda, sdb&#8230;)</p>
<p>El penúltimo paso es guardarlos en el servidor en vuestra carpeta de imágenes. Los scripts sólo permiten señalar un parámetro, la REVISIÓN, que yo la uso para diferenciar versiones y demás. Para lanzarlos simplemente hacemos desde el terminal con sysrescue:</p>
<pre>/mnt/windows/mBackup.sh BASE-WINDOWS-1</pre>
<p>Esto creará una estructura de disco exactamente igual, tanto la tabla de particiones como el mbr y por supuesto el sistema operativo; guardándolo todo (en mi caso) en <strong>/home/david/Images</strong> <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Una vez hecho esto (no dura más de 4 minutos para un par de gigas de SO). Apagamos el terminal base y disponemos una nueva máquina en la mesa, que recibirá nuestro clon guardado.</p>
<p>Arrancamos Sysrescue en el nuevo terminal y realizamos de nuevo los pasos que hicimos en el terminal BASE, es decir, configuramos la red y montamos de nuevo el path en red por ssh. Una vez hecho esto lanzamos la instalación con:</p>
<pre>/mnt/windows/mInstall.sh BASE-WINDOWS-1</pre>
<p><em>Recordad el nombre que le disteis a la revisión, por que debe ser la misma</em></p>
<p>En menos de 2 minutos tienes el nuevo terminal preparado para ser mangoneado por el personal <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Espero que os sea útil, os salve u os de ideas para hacerlo aún mejor, si eso es posible <img src="/imagenwww/smileys/lengua2.gif" alt="Smiley: burla" /></p>
<h3>TODO / MEJORAS</h3>
<p>Lo suyo sería que el script mirando el /proc/partitions comprobara las particiones del sistema y guardara todo sin tener que configurar a mano nada más que el path de destino en red. E incluso que mirando en proc luego dejara marcar las que deseas guardar/recuperar <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_confused.gif' alt=':-?' class='wp-smiley' /><br />
&#8230; Para otro año <img src="/imagenwww/smileys/lengua2.gif" alt="Smiley: burla" /> <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/19/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script para bajar videos del youtube</title>
		<link>http://david.dantoine.org/articulo/18/</link>
		<comments>http://david.dantoine.org/articulo/18/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 11:42:57 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/18/#18</guid>
		<description><![CDATA[Te habrá pasado como a mi que seguramente ibas mirando topics de foros con montones de vídeos interesantes, de musica o juegos que te gustaría tener en tu ordenador y se hace pesado ir de uno en uno&#8230; Pues bien, con este programejo por fin podrás bajarte todos los vídeos que se postean en foros [...]]]></description>
			<content:encoded><![CDATA[<p>Te habrá pasado como a mi que seguramente ibas mirando topics de foros con montones de vídeos interesantes,<br />
de musica o juegos que te gustaría tener en tu ordenador y se hace pesado ir de uno en uno&#8230;<br />
Pues bien, con este programejo por fin podrás bajarte todos los vídeos que se postean en foros vBulletin y verlos cómodamente en tu ordenador! <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>El robot por defecto, se baja los vídeos del hilo de los vídeos setetenteros de marcianitos.org, pero se puede configurar para cualquier otro topic de foros vBulletin.</p>
<p><span id="more-18"></span>El script convierte los vídeos a AVI para poder usarlos sin problemas y los renombra al titulo del vídeo propiamente quedando algo como: You_are_beautifull-_marianico_el_corto.avi</p>
<p>Advierto que es sólo esta comprobado 100% con foros vBulletin en castellano (como marcianitos), aunque se supone que con cualquier vBulletin debería de funcionar también&#8230;</p>
<p>Problemas conocidos:<br />
- Seguramente de problemas en foros ingleses</p>
<p>Dependencias:<br />
Para poder usar el script necesitas instalar las siguientes dependencias:<br />
- php5-cli, ffmpeg<br />
(en debian/ubuntu puedes instalarlo fácilmente usando synaptic o herramientas similares)</p>
<p>VERSIÓN<br />
0.5 &#8211; Primera versión pública.<br />
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/17">Get Tube</a> (9.89 kB)</h1>
	<p><cite>Subido: 19-08-2010 [Descargas: 332]</cite></p>
	<p>Versión 0.5 - Stable
Mira el fichero LEEME, para más información.
--
Look the file readme, for more info!</p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/18/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wine-Launcher: Como jugar con Wine+Compiz en Ubuntu</title>
		<link>http://david.dantoine.org/articulo/17/</link>
		<comments>http://david.dantoine.org/articulo/17/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 12:22:15 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Software libre y Linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Videojuegos]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/17/#17</guid>
		<description><![CDATA[Si hay dos cosas que puedo considerarme a mi mismo es ser un &#8220;pijo de los escritorios&#8221; y un &#8220;jugón empedernido&#8221;, esta bien que uno lo admita, pero la simbiosis en Ubuntu tiene un problema añadido si lo que intentamos es jugar usando Wine cuando tenemos activo nuestro escritorio 3D. No sólo lo digo por [...]]]></description>
			<content:encoded><![CDATA[<p>Si hay dos cosas que puedo considerarme a mi mismo es ser un &#8220;pijo de los escritorios&#8221; y un &#8220;jugón empedernido&#8221;, esta bien que uno lo admita, pero la simbiosis en Ubuntu tiene un problema añadido si lo que intentamos es jugar usando Wine cuando tenemos activo nuestro escritorio 3D.<br />
No sólo lo digo por su estado poco maduro, sino por que Compiz en sí, dado que usa muchos efectos y filtros, enlentece el desarrollo normal del juego.</p>
<p>Al principio lo que hacía era desactivar Compiz cuando iba a jugar, pero claro uno viendo que se volvía una tarea repetitiva me puse manos a la obra a crear un pequeño script que me facilitara la labor. El lanzador esta pensado para Ubuntu Gutsy (o posterior), para saber como usarlo en versiones anteriores he dejado unas notas al final del artículo.<span id="more-17"></span></p>
<h2>La base de Wine Launcher</h2>
<p>La base del script es muy simple, la idea era mantener nuestro escritorio inicial (con compiz activo) y lanzar uno nuevo (en el terminal 9 por defecto) que simplemente lanzara nuestro juego.</p>
<p>Aunque alguno pueda pensar que estamos gastando recursos tontamente, mis pequeños tests han puesto de manifiesto que el escritorio inicial (incluso con compiz activo) se queda prácticamente descansando mientras toda la carga se va para nuestro nuevo escritorio activo. Además el tener un nuevo escritorio da pie a poder configurarlo con una profundidad de 16bits, o cualquier cosa que necesitemos que podría dar problemas de otro modo. Por último la RAM consumida por el nuevo escritorio es de unos 3megas, una cantidad insignificante hoy día <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<h2>Como instalar Wine Launcher</h2>
<p>Como primer paso comprobad que tenéis wine instalado simplemente ejecutando &#8220;winecfg&#8221;, sino ya podéis ir a synaptic a instalarlo y repetir el comando para comprobar que todo fue bien.</p>
<p>Comenzamos, abrid un terminal y en el directorio donde hayáis descomprimido el paquete haced:</p>
<pre>sudo mv wine-launch /usr/local/bin/</pre>
<p>Y para comprobar que funciona sólo debemos hacer:</p>
<pre>wine-launch</pre>
<p>Listo!</p>
<h2>Como usar Wine Launcher</h2>
<p>Para usar el lanzador de forma normal simplemente debéis:<br />
- Instalar vuestro programa normalmente con Wine.<br />
- Una vez tengáis en el escritorio el acceso directo debéis cambiar wine por wine-launch.<br />
- Ejecutar el juego normalmente desde ESE acceso directo modificado y jugad <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Pero el lanzador soporta argumentos y un modo &#8220;safe&#8221; o alternativo si el modo normal os diera problema en alguna ocasión (a mi no me ha ocurrido pero nunca se sabe).</p>
<p>Espero que os sea tan útil como lo esta siendo para mi! <img src="/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!" /></p>
<h2>Wine Launcher en Dapper, Feisty&#8230;</h2>
<p>Parece que el escritorio por defecto en estas versiones de Ubuntu sólo puede lanzarlo el administrador (root) asi que vamos a modificarlo para que cualquier usuario de nuestro PC pueda hacerlo.</p>
<p>Ejecutad en un terminal:</p>
<pre>sudo dpkg-reconfigure x11-common</pre>
<p>Después de pedir vuestra contraseña y validarla, aparecerá una ventana en modo texto de configuración con 3 valores posibles, nosotros elegiremos &#8220;Cualquiera&#8221; y los demás valores dejadlos tal cual.</p>
<p>Esto es todo!! <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/16">Wine Launcher</a> (7.13 kB)</h1>
	<p><cite>Subido: 19-08-2010 [Descargas: 382]</cite></p>
	<p>Wine Launch (Stable)
v 1.0</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como unir Eclipse y nuestra negrita!</title>
		<link>http://david.dantoine.org/articulo/14/</link>
		<comments>http://david.dantoine.org/articulo/14/#comments</comments>
		<pubDate>Fri, 20 Apr 2007 19:07:59 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[gp2x]]></category>
		<category><![CDATA[gph]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/14/#14</guid>
		<description><![CDATA[Aunque personalmente siga usando Kdevelop para desarrollar en GP2x, estoy empezando a usar Eclipse para programar en otros lenguajes y me va gustando, asi que previa petición del foro de gp32spain, vamos a explicar como configurar un entorno de desarrollo para GP2x bajo Linux usando un proyecto que he creado como base común. Como características [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque personalmente siga usando <a href="/contenido/9/">Kdevelop para desarrollar en GP2x</a>, estoy empezando a usar Eclipse para programar en otros lenguajes y me va gustando, asi que previa petición del <a href="http://gp32spain.com/foros/showthread.php?t=42460">foro de gp32spain</a>, vamos a explicar como configurar un entorno de desarrollo para GP2x bajo Linux usando un proyecto que he creado como base común.</p>
<p>Como características el proyecto incluye un test de ejemplo y permite crear ejecutables de SDL+SDL_mixer+SDL_Image para GP2x (Debug/Release) y Linux (Debug).<br />
<em>Puede ser Fácilmente ampliado, ver más abajo.<span id="more-14"></span></em></p>
<h3>Pasos previos</h3>
<p>Lo primero que necesitamos es Eclipse, para ello nada más fácil que ir al &#8220;Gestor de paquetes Synaptic&#8221; e instalarlo, una vez instalado entraremos por primera vez en Eclipse, apareciendo una ventana que nos pedirá la ubicación de la carpeta de trabajo (donde descansarán nuestros proyectos), la seleccionamos y listo <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>El siguiente paso previo que se requiere es la instalación del plugin que nos permitirá usar la configuración &#8220;custom&#8221; que he preparado para la GP2X. Si seguís estos pasos no tendréis problema.<br />
Pulsad en: <strong>HELP -&gt; Software Updates -&gt; Find and Install&#8230; -&gt; Search for new features -&gt; New Remote Site</strong>.</p>
<p>Ahora en <strong>Name</strong> ponemos &#8220;CDT&#8221; y en <strong>URL</strong>:<br />
&#8220;http://download.eclipse.org/tools/cdt/releases/callisto&#8221;<br />
Pulsamos en &#8220;Finish&#8221;, para que aparezca la lista de mirrors (Rec. Uk).<br />
Finalmente seleccionamos las actualizaciones, esperamos a que se instalen y permitimos que Eclipse se reinicie. Como último paso debemos asegurarnos que <em>la perspectiva C/C++</em> está seleccionada (Window-&gt;Open perspective-&gt;Other).</p>
<h3>Instalando el proyecto base de GP2x</h3>
<p>Una vez descargado (ver abajo), lo descomprimimos en una carpeta que no se encuentre dentro de nuestro directorio de trabajo seleccionado en Eclipse. Por ejemplo mi directorio de trabajo en eclipse es <em>&#8220;/home/david/desarrollo&#8221;</em> y he descomprimido el fichero en <em>&#8220;/home/david/descargas/gp2x&#8221;</em>, espero que haya quedado claro, por que es importante <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Bien, pues empieza el show: <strong>File -&gt; New -&gt; Project&#8230;</strong> Y seleccionad la opción tal y como aparece en la imagen.<br />
<a href="http://img266.imageshack.us/img266/8724/eclipse01wf8.png"><img class="centrada" src="http://img266.imageshack.us/img266/8724/eclipse01wf8.th.png" alt="Imagen del articulo" /></a></p>
<p>Aparece el diálogo para importar nuestro proyecto de GP2x en Eclipse, seleccionad <strong>[Browse]</strong>&#8230;<br />
<a href="http://img150.imageshack.us/img150/8727/eclipse02bz1.png"><img class="centrada" src="http://img150.imageshack.us/img150/8727/eclipse02bz1.th.png" alt="Imagen del articulo" /></a></p>
<p>Seleccionamos la carpeta descomprimida del proyecto que acabamos de bajar y pulsamos <strong>[Aceptar]</strong>&#8230;<br />
<a href="http://img369.imageshack.us/img369/9565/eclipse03mw1.png"><img class="centrada" src="http://img369.imageshack.us/img369/9565/eclipse03mw1.th.png" alt="Imagen del articulo" /></a></p>
<p>Si todo ha ido bien debería de aparecer algo similar a esto&#8230;<br />
<a href="http://img250.imageshack.us/img250/9813/eclipse04wm3.png"><img class="centrada" src="http://img250.imageshack.us/img250/9813/eclipse04wm3.th.png" alt="Imagen del articulo" /></a></p>
<p>Que no se os olvide marcar <em>&#8220;Copy project&#8230;&#8221;</em><br />
<a href="http://img230.imageshack.us/img230/8814/eclipse05zoomer6.png"><img class="centrada" src="http://img230.imageshack.us/img230/8814/eclipse05zoomer6.th.png" alt="Imagen del articulo" /></a></p>
<p>Y poco más, al pulsar <strong>[Finish]</strong> el proyecto nos aparecerá en la lengüeta de proyectos <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<h3>Modificando el proyecto base de GP2x</h3>
<p>Lo más normal es que cada desarrollador use las herramientas (toolchain) que más le apetezcan. Yo en esta ocasión lo he configurado para que funcione de primeras con el <a href="/contenido/10/">DevKit de Uncanny</a>, pero para que ninguno se tenga que complicar mucho, si desea usar su entorno de desarrollo con Eclipse, dejo unas instrucciones, que seguro también valdrán para que los desarrolladores de Windows puedan adaptar el proyecto base.</p>
<p>Pulsando con el botón derecho encima de nuestro nuevo proyecto de GP2x, seleccionad &#8220;Properties&#8221; (propiedades) y C/C++ Build&#8230;<br />
<a href="http://img459.imageshack.us/img459/5221/eclipse06xo6.png"><img class="centrada" src="http://img459.imageshack.us/img459/5221/eclipse06xo6.th.png" alt="Imagen del articulo" /></a><br />
En el diálogo que aparece por defecto podemos modificar muchos aspectos como agregar librerías o cambiar las opciones de compilación.</p>
<p>Pero para cambiar cosas como el prefijo del compilador (prefix) o la ruta de trabajo he preferido usar variables de entorno que tenéis a vuestra disposición desde la lengüeta &#8220;Environment&#8221;&#8230;<br />
<a href="http://img164.imageshack.us/img164/4944/eclipse07vd5.png"><img class="centrada" src="http://img164.imageshack.us/img164/4944/eclipse07vd5.th.png" alt="Imagen del articulo" /></a></p>
<p>Como se puede observar con cambiar <strong>GPPATH</strong> y/o <strong>PREFIX-TOOL</strong>, lo tendríais configurado para la mayoría de entornos de desarrollo <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<h3>Por Hacer</h3>
<p>Seguro que algún fleco se me ha quedado suelto, así que iremos mejorando este tutorial, poco a poco <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /><br />
La verdad que lo suyo sería hacer una especie de perspectiva para desarrollar en GP, y que pudieramos crear también ejecutables de GP32, etc&#8230;</p>
<p>Bueno, es un comienzo <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/12">gp2x-eclipse-templates-linux</a> (125.98 kB)</h1>
	<p><cite>Subido: 15-05-2010 [Descargas: 392]</cite></p>
	<p>Eclipse template GP2x for Linux<br/>
Version 0.1 Beta</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como usar KDevelop y no morir en el intento&#8230;</title>
		<link>http://david.dantoine.org/articulo/9/</link>
		<comments>http://david.dantoine.org/articulo/9/#comments</comments>
		<pubDate>Thu, 08 Jun 2006 16:13:00 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[gp2x]]></category>
		<category><![CDATA[gp32]]></category>
		<category><![CDATA[gph]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/9/#9</guid>
		<description><![CDATA[Bueno este va a ser un minituto para que cualquiera que quiera pueda empezar a programar facilmente para GP2X bajo linux Este tutorial supone que tienes instalado ya tu entorno de trabajo (o toolchain) y que el siguiente paso que quieres dar es programar algo y ver como queda Una vez arrancado KDevelop (por ejemplo [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno este va a ser un minituto para que cualquiera que quiera pueda empezar a programar facilmente para GP2X bajo linux <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Este tutorial supone que <a href="/contenido/10/">tienes instalado ya tu entorno de trabajo (o toolchain)</a> y que el siguiente paso que quieres dar es programar algo y ver como queda <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
<p><span id="more-9"></span>Una vez arrancado KDevelop (por ejemplo en su version C/C++) vamos a proyectos y nuevo proyecto:</p>
<h3>C -&gt; GP2X</h3>
<p>Ponemos el nombre de nuestro futuro proyecto y siguiente <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p><img class="centrada" src="http://img191.imageshack.us/img191/5852/imagen13ng.png" alt="Imagen del nuevo proyecto" /></p>
<p>Ahora personalizaremos nuestro proyecto preparando las plantillas que se incluiran en cada fichero del proyecto.</p>
<p><img class="centrada" src="http://img375.imageshack.us/img375/3171/imagen24dl.png" alt="Personalizando proyecto" /></p>
<p><img class="centrada" src="http://img311.imageshack.us/img311/571/imagen30du.png" alt="Creando las Cabeceras" /></p>
<p>Una vez esta todo creado aparecera el entorno de trabajo de nuevo con un pequeño ejemplo, lo siguiente sera seleccionar desde el menu de <strong>Proyectos</strong> el tipo de fichero a generar, tal y como veis en la imagen inferior:</p>
<p><img class="centrada" src="http://img375.imageshack.us/img375/4472/imagen49zu.png" alt="Eligiendo nuestro futuro ejecutable" /></p>
<blockquote><p>Aunque haya una opcion para GP32 esta aun esta en desarrollo, si la conseguis modificar para que os genere binarios de GP32 enviadme los parches para que los publique <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p></blockquote>
<p>Ahora solo queda generar el ejecutable deseado pulsando <strong>F8</strong> o desde el menu:</p>
<h3>CONSTRUIR -&gt; CONSTRUIR PROYECTO</h3>
<p><img class="centrada" src="http://img414.imageshack.us/img414/8628/imagen51pu.png" alt="Construyendo el binario" /></p>
<p>Momento en el que aparecera un pequeño monitor que nos ira ofreciendo la informacion sobre la construccion de nuestro proyecto&#8230;</p>
<p><img class="centrada" src="http://img346.imageshack.us/img346/8335/imagen66kl.png" alt="Compilando..." /></p>
<p>Y listo! ya tenemos nuestro ejemplo compilado, el ejemplo que trae por defecto necesita que copieis un BMP en la misma carpeta que el ejecutable. Si quereis verlo&#8230; ¡a que esperais! <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p><img class="centrada" src="http://img166.imageshack.us/img166/7634/imagen102kh.png" alt="Rosa rosa rosae" /><br />
Rosa, Rosa, Rosae&#8230; <img src="/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!" /></p>
<h3>UPDATE: Como Documentar y hacer uso de librerías</h3>
<p>Para animar un poco más a los indecisos, he preparado un ejemplo que espero que muestre, aunque sólo sea superficialmente, la potencia y profesionalidad que puede dar a nuestros proyectos <strong>Kdevelop</strong>.</p>
<p>Este ejemplo, que es una modificación del test basico de GP2x y Linux, una de las intenciones es que podáis ver lo fácil que es documentar completamente vuestro código (usando la opcion Build API Documentation), para ello <strong>Kdevelop</strong> usa <a href="http://doxygen.org">doxygen</a>, que permite generarla automaticamente en: PDF, HTML, RTF, XML&#8230; <a href="http://david.dantoine.org/ficheros/gph/gp2x-doxygen-ejemplo.html">Os dejo un ejemplo de la documentación HTML que genera</a>.</p>
<p>Además este ejemplo hace uso de librerías para que también comprobéis otras formas de trabajo; subarrendando tareas a las diferentes partes de vuestro proyecto, como: una libreria gráfica, de personajes, IA, &#8230;</p>
<p><a href="http://david.dantoine.org/ficheros/gph/gp2x-kdevelop-libtest_v1.tar.gz">Pulsad aquí para bajar el ejemplo de uso de librerías y documentación</a>.<br />
<em>Para instalarlo sólo descomprimidlo en vuestra carpeta de desarrollo y abrid el proyecto desde Kdevelop.</em></p>
<h2>Notas para Usuarios Avanzados</h2>
<p>Si quereis usar vuestro toolchain podeis cambiar las opciones de compilacion desde el menu:</p>
<h3>PROYECTO -&gt; OPCIONES DEL PROYECTO -&gt; OPCIONES DE CONFIGURE</h3>
<p>Desde el menu despegable de <strong>Configuracion</strong> seleccionais la configuracion a cambiar:</p>
<p><img class="centrada" src="http://img512.imageshack.us/img512/5922/imagen72yg.png" alt="Cambiando opciones y compilador" /></p>
<p>Por ejemplo si vuestro PATH es diferente aqui tendriais seleccionada la parte a cambiar&#8230;</p>
<p><img class="centrada" src="http://img65.imageshack.us/img65/6125/imagen85eb.png" alt="Cambiando ruta" /></p>
<p>Si nuestro compilador tuviera un nombre diferente al <em>oficial</em> (arm-gp2x-linux-gcc) desde la lengüeta <strong>C</strong> podreis renombrarlo:</p>
<p><img class="centrada" src="http://img399.imageshack.us/img399/9952/imagen91zs.png" alt="Cambiando el nombre del compilador" /></p>
<p>Listo, espero que os sea util y lo disfruteis <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La fuerza del Estandar: XHTML + CSS2</title>
		<link>http://david.dantoine.org/articulo/8/</link>
		<comments>http://david.dantoine.org/articulo/8/#comments</comments>
		<pubDate>Fri, 19 May 2006 16:03:02 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/8/#8</guid>
		<description><![CDATA[Con esta serie de artículos espero animaros a conocer las tecnologías que han dado lugar a este Weblog, creado desde 0 y que ahora disfrutáis Empezaremos preguntándonos: ¿Y que es XHTML? - Básicamente se trata de coger el viejo y maltratado HTM y fijar unas reglas estrictas para devolver la L (Language) a nuestro compañero [...]]]></description>
			<content:encoded><![CDATA[<p>Con esta serie de artículos espero animaros a conocer las tecnologías que han dado lugar a este Weblog, creado desde 0 y que ahora disfrutáis <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
<p><em>Empezaremos preguntándonos: <strong>¿Y que es XHTML?</strong></em><br />
- Básicamente se trata de coger el viejo y maltratado <strong>HTM</strong> y fijar unas reglas estrictas para devolver la <strong>L</strong> (Language) a nuestro compañero inseparable en esta gran red de redes <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Se trata, por lo tanto, de usar cada etiqueta para el uso que explícitamente se creó. Por ejemplo, un servidor tenía la (mala) costumbre de hacer las típicas cajas de información usando tablas e imágenes dentro de ellas y claro esto, ahora ya no se permitiría&#8230;</p>
<p><span id="more-8"></span>La idea es que en el XHTML sólo encontremos el CONTENIDO de la web y nada más. Que se dice rápido, pero es algo que sin duda, cuando nos enfrentemos, a ello costará ser fiel&#8230; y en realidad yo no lo veo tanto culpa nuestra, sino quizás unos navegadores demasiado &#8220;permisivos&#8221;, que nos han mal acostumbrado años ha&#8230;</p>
<p><em>Por eso cuando hace pocos días me preguntaba SpankThru: <strong>¿Y no es mejor saber algo de HTML antes de enfrentarte a XHTML?</strong></em><br />
Pues, evidentemente no. Ya que sufrirás lo mismo que le pasa al conductor que ha cogido el coche por sí mismo (o le ha enseñado otro conductor) que termina cogiendo <em>ciertos malos hábitos</em>, que luego costará sangre y sudor, no cometer <img src="/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!" /></p>
<p>Si seguimos las directrices del <a href="http://w3.org">W3C</a> obtendremos algo como <a href="http://david.dantoine.org/base_XHTML.html">esto</a>&#8230;<br />
- <strong>!!¡¡DIOS MIO!!! ¿!¿!HEMOS VUELTO A LOS AÑOS 80!??!?!</strong><br />
- No hombre, no no te pongas nerviosillo, si aun no hemos empezado&#8230; xD</p>
<p>El ejercicio que quiero que hagas ahora es que <span class="subraya">veas el código fuente de la web</span>, que aunque no esté muy bien indentado, verás que todo es <em>perfectamente legible y sobretodo muy liviano</em>. Atrás quedan aquellos HTM de 50Kb, esos mastodontes donde buscar la tabla que se había descuadrado era una tarea de chinos <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>La verdad que cuando usas esta tecnología te das cuenta de la cantidad de ventajas que rápidamente te da:</p>
<ul>
<li> Preguntémonos ¿Que indexará mejor google?<br />
Una página con miles de tablas y campos donde se mezcla contenido y diseño o&#8230;<br />
El ejemplo anterior, donde además cada etiqueta está cumpliendo su objetivo&#8230;<br />
Evidentemente, google lee ese mismo código que antes vimos y nos indexa antes, más facilmente y nos puntúa mejor&#8230; poned en google &#8220;David Colmenero&#8221; o &#8220;D_Skywalk&#8221; por si no lo tenéis muy claro aun xD</li>
<li> Sera más fácil de mantener e incluso añadirle nuevas secciones o contenidos&#8230;</li>
<li> Permitirá que personas con discapacidades puedan acceder sin problema a sus contenidos y la información por lo tanto se convertirá en universal&#8230;</li>
<li> Dada su simplicidad cualquier navegador de mañana o prejurásico puede comprender y mostrarte sin problema el contenido de la web, ej: Visitad la web con Lynks <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></li>
<li> Por último, en futuros capitulos veras, que NUNCA MÁS el contenido estropeará o dictará sobre el diseño; ya que como comprobarás ambos serán totalmente independientes. Pero no adelantemos acontecimientos&#8230;</li>
</ul>
<p><em>- Muy bien todo, pero sigo sin estar del todo convencido: <strong>¿Como meto ahí mis fantásticos diseños?</strong></em></p>
<p>Pues ahí es donde entrará en juego la segunda parte de estos artículos: <strong>CSS2</strong>.<br />
Pulsad <a href="http://david.dantoine.org/base_CSS.html">aquí</a> para comprobar los resultados y fijaos que lo único que cambia entre uno y otro es la línea que define el uso de las reglas CSS:</p>
<pre>	@import "/diseno/base.css";
</pre>
<p>Si he conseguido captar vuestra atención y queréis experimentar empezad instalándoos las extensiones de firefox que veas más útiles <a href="http://lesliefranke.com/files/firefoxwdev/firefoxwdev.htm">desde esta web</a>. Personalmente yo uso: Webdeveloper, MeasureIt, Colorzilla y TidyHTML (animáos a usar este y veréis que pocas webs cumplen el estándar escrupulosamente).</p>
<p>Otros fantásticos sitios donde empezar a leer sobre estos temas son:<br />
- <a href="http://blog.levhita.net/2006/01/25/firefox-como-suite-de-desarrollo-css/">blog.levhita</a>.<br />
- <a href="http://www.100px.com/articulos/categoria/estandares/">100 Pixels</a>.<br />
- <a href="http://www.w3schools.com/default.asp">Escuela W3</a>.</p>
<p>Y Finalmente para que veas la potencia de XHTML+CSS:<br />
<a href="http://www.csszengarden.com/?cssfile=024/024.css">http://www.csszengarden.com/?cssfile=024/024.css</a><br />
<a href="http://csszengarden.com/?cssfile=/195/195.css">http://csszengarden.com/?cssfile=/195/195.css</a><br />
<a href="http://csszengarden.com/?cssfile=/188/188.css">http://csszengarden.com/?cssfile=/188/188.css</a></p>
<p>[CONTINUARÁ]</p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Maka Linuxera para 4 Viciosillos xD</title>
		<link>http://david.dantoine.org/articulo/5/</link>
		<comments>http://david.dantoine.org/articulo/5/#comments</comments>
		<pubDate>Sat, 08 Apr 2006 08:17:10 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[arcade]]></category>
		<category><![CDATA[cosas de casa]]></category>
		<category><![CDATA[mame]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/5/#5</guid>
		<description><![CDATA[Buenas a todos, este es mi primer post aunque sigo desde hace mucho Marcianitos, llevo muuuchos años pensando en empezar esta aventura y hoy, como veis, he dado el primer pasito. Supongo, no obstante que algunos del canal de #marcianitos ya conocen mis andanzas (Snopes :*) y tambien se que otros me conocereis de mis [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas a todos, este es mi primer post aunque sigo desde hace mucho Marcianitos, llevo muuuchos años pensando en empezar esta aventura y hoy, como veis, he dado el primer pasito. Supongo, no obstante que algunos del canal de #marcianitos ya conocen mis andanzas (Snopes :*) y tambien se que otros me conocereis de mis otros quehaceres :ph34r:</p>
<p>Bueno os planteo mi idea y ya entramos en materia <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<h2><span id="more-5"></span><strong>[LA IDEA INICIAL]</strong></h2>
<p>Mi idea es hacerme un maka para 4 jugadores (si soy dificil xD) ya que tanto mi novia como lo que nos va es: &#8220;un gauntlet con los amigos&#8221; ¿se os ocurre alguna forma mejor para pasar la tarde del domingo? xDD</p>
<p>La verdad que algunos ya me han contado (ArChEr-gey xD) que es muy complicado montarme una maka de 4 jugadores, pero bueno yo os lo planteo y a ver que opciones conoceis :huh:</p>
<p>Hace unas semanas vi esta imagen y me puse enfermo pensando&#8230; ESO ESO XDDD</p>
<p><img class="centrada" src="http://www.insightocio.com/ocio/fotos/allmame.jpg" alt="Imagen del articulo" /></p>
<p>¿Este montaje es publico? Es una maka de alguna empresa?</p>
<p>La idea mia seria hacerme algo asi, y luego presonalizarla con el tiempo, ya que hara un año me baje de algun sitio que no recuerdo unos manuales de MAKAS originales, entre los que estaban los del Gauntlet I, II ( y el Legends creo que tambien estaban) pero claro solo tenian 3/4 botones y claro uno quiere luego viciarse a todo y 4 botones se me antojan pocos (quizas 4 + 8 + 8 + 4?)</p>
<hr />Finalmente y gracias a los consejos de Antolin, me he decidido por un modelo como este:<br />
<img class="centrada" src="http://www.jjscustomarcades.com/Graphics/4-playerbasic.jpg" alt="Imagen del articulo" /></p>
<p><strong>HECHO:</strong> Pasadas las medidas de Pulgadas a CM en Panel de control.</p>
<p><strong>POR HACER:</strong> Terminar de pasar las medidas del mueble a CM y prepararlas para llevarlas al carpintero <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </p>
<h2><strong>[EL HARDWARE]</strong></h2>
<p>El hard actual es:</p>
<blockquote><p>AMD K7 500<br />
AVGA &#8211; CASERA<br />
SB 5.1 Live! PCI<br />
512MB RAM<br />
160GB HD<br />
Tarjeta Wireless Dlink 54MPS</p></blockquote>
<h2><strong>[EL SOFTWARE]</strong></h2>
<p>En el ambito del software a usar, quisiera usar emuladores varios e incluso ¿hay algun linuxero que me pueda contar opciones en SL? Creo que configurando MAME en linux aprovechare mejor el Hard&#8230;</p>
<p>La Distribucion elegida ha sido: <a href="http://www.kubuntu.org/download.php">Kubuntu</a></p>
<p>Ya que intentare no usar windows y ello me impide usar lanzadores como mamewah y demas programas windowseros, me he decidido por Game Launcher, que parece bastante potente y configurable: <a href="http://www.dribin.org/dave/game_launcher/">http://www.dribin.org/dave/game_launcher/</a></p>
<p>Para la emulacion sobre <strong>LINUX</strong> usare:<br />
<a href="http://x.mame.net/">XMAME</a> &#8211; TESTEADO OK &#8211; Para juegos arcade claro <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /><br />
<a href="http://x.mame.net/">XMESS</a> &#8211; TESTEADO OK &#8211; Para 8 Bits sobre todo.<br />
<a href="http://www.zsnes.com/">ZSNES</a> &#8211; TESTEADO OK &#8211; Super Nintendo rules <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /><br />
<a href="http://www.pknet.com/~joe/dgen-sdl.html">DGen</a> &#8211; TESTEADO OK &#8211; Megadrive, sin problemas <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /><br />
<a href="http://www.daphne-emu.com/">Daphne</a> &#8211; TESTEADO OK &#8211; Arcade Laserdisc, testeado con Dragon&amp;#39;s Lair ^^_<br />
<a href="http://mupen64.emulation64.com/">Mupen64</a> &#8211; NO TESTEADO &#8211; dont have time!!! xD<br />
<a href="http://www.epsxe.com/news.php">ePSXe</a> &#8211; NO TESTEADO &#8211; gracias macarro por el aviso, andaba despistado xD<br />
¿Se me olvida algun sistema?</p>
<p><strong>HECHO:</strong> Preparado el Sistema operativo y configurado el acceso wireless. Buscado software de emulacion para linux&#8230;<br />
<strong>POR HACER:</strong> Terminar el OpenPPjoy para dar soporte a los 52 botones que necesito. Configurar todo software para adecuarse a la maka.</p>
<h2><strong>[COMIENZA EL TRABAJO]</strong></h2>
<p>Despues de una ardua busqueda y con la ayuda de petar2 por fin la maka de 25&#8243; iba rumbo al hogar <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /><br />
<a href="http://img492.imageshack.us/my.php?image=im0001121es.jpg"><img class="centrada" src="http://img492.imageshack.us/img492/7417/im0001121es.th.jpg" alt="Imagen del articulo" /></a></p>
<p>El primer paso ha sido empezar a limpiarla y cruzaremos los dedos para que una vez este todo limpio el monitor funcione sino, habra que preguntar a ver si tiene arreglo <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /> Por lo menos no ha sido muy cara <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Aqui la teneis esperando su restauracion&#8230;<br />
<a href="http://img493.imageshack.us/my.php?image=im0001291gz.jpg"><img class="centrada" src="http://img493.imageshack.us/img493/496/im0001291gz.th.jpg" alt="Imagen del articulo" /></a><br />
Como veis a la mia le falta el cristal del monitor ya que este mueble lo usaremos para &#8220;testeo&#8221; mientras terminamos el mueble de 4 jugadores <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Despues del primer encendido el monitor estaba algo desconfigurado y durante unos dias pasare intentando dejarlo perfectamente, aunque eso no ha impedido examinar las PCBs que venian &#8220;de regalo&#8221; con las macas!!!</p>
<p>Las placas jamma que vienen son:<br />
[Los Simpsons 4 jugadores] &#8211; Me va a venir de perlas! xD<br />
[Puzzle de Pon - SNK] &#8211; De bolitas tipo puzzle bobble <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /><br />
[Tetris Bootleg] &#8211; No tiene sonido <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </p>
<p>El testeo de la maca, correspondio a mi novia y mi hermana&#8230;</p>
<p><a href="http://img295.imageshack.us/my.php?image=test19zn.jpg"><img class="centrada" src="http://img295.imageshack.us/img295/9770/test19zn.th.jpg" alt="Imagen del articulo" /></a></p>
<p>Aqui tenemos a mi novia testeando a conciencia la placa de los simpsons xD</p>
<h2><strong>[CONSTRUCCION DEL MUEBLE]</strong></h2>
<p>Despues de comprar las DM16 con las que vamos a construir la maca, mi padre y un servidor nos ponemos (pobre padre xD) a cortar las partes complicadas del montaje, que son las partes laterales del modelo&#8230;</p>
<p><a href="http://img494.imageshack.us/my.php?image=corte19ro.jpg"><img class="centrada" src="http://img494.imageshack.us/img494/5260/corte19ro.th.jpg" alt="Imagen del articulo" /></a></p>
<p>Bueno pues este fin de semana he empezado la construccion de la MAKA! <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Os voy dejando las fotillos y comentarios varios ^^_</p>
<p>Ingredientes marcianos:<br />
<a href="http://img293.imageshack.us/my.php?image=im0003330fy9ml.jpg"><img class="centrada" src="http://img293.imageshack.us/img293/6962/im0003330fy9ml.th.jpg" alt="Imagen del articulo" /></a><br />
- Broca del 10 con tope a 6mm (para hacer el huequito para el tonillo).<br />
- Broca del 2 para ayudar al tornillo y no rebentar la madera al meter un tornillo tan largo (35mm).<br />
- Cola/pegamento potente para madera.<br />
- Tornillos tipo philips para madera de 35mm.</p>
<p>La idea es que cada tornillo quede asi y luego con un poco de masilla y lija no haya huella <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /><br />
<img class="centrada" src="http://img112.imageshack.us/img112/9444/im0003283uk.jpg" alt="Imagen del articulo" /></p>
<p><img class="centrada" src="http://img109.imageshack.us/img109/5268/im0003291zr.jpg" alt="Imagen del articulo" /></p>
<p><a href="http://img343.imageshack.us/my.php?image=im0003243aw8ol.jpg"><img class="centrada" src="http://img343.imageshack.us/img343/6007/im0003243aw8ol.th.jpg" alt="Imagen del articulo" /></a></p>
<p><em>La parienta-fotografa llego cuando me estaba preparando para atornillar la parte trasera de la maka.</em></p>
<p><img class="centrada" src="http://img108.imageshack.us/img108/2149/im0003265ui.jpg" alt="Imagen del articulo" /><br />
<em>Aqui me veis empezando a poner los bajos del panel xD</em></p>
<p>Un par de fotos probando comprobando el angulo que debo hacerle a esta tabla:<br />
<a href="http://img293.imageshack.us/my.php?image=im0003255ft4yg.jpg"><img class="centrada" src="http://img293.imageshack.us/img293/2776/im0003255ft4yg.th.jpg" alt="Imagen del articulo" /></a></p>
<p><img class="centrada" src="http://img130.imageshack.us/img130/8223/im0003279tb.jpg" alt="Imagen del articulo" /></p>
<p>Finalmente esta es la ultima tabla que he podido poner, ya que las demas necesitan ingletes y las llevare el lunes, a ver si me salen de gratis o al menos no me clavan mucho <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </p>
<p><a href="http://img230.imageshack.us/my.php?image=im0003329le4np.jpg"><img class="centrada" src="http://img230.imageshack.us/img230/5176/im0003329le4np.th.jpg" alt="Imagen del articulo" /></a></p>
<hr />[CONTINUARA]</p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: Tu maquina arcade bajo GNU/Linux para todos!</title>
		<link>http://david.dantoine.org/articulo/3/</link>
		<comments>http://david.dantoine.org/articulo/3/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 13:41:40 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[arcade]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[mame]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/3/#3</guid>
		<description><![CDATA[Bienvenidos al tutorial sobre como tener tu maka funcionando usando software libre. Este se compondrá en 3 capítulos bien diferenciados: 1 &#8211; Instalación del sistema base. 2 &#8211; Instalación de programas y librerías. 3 &#8211; Apéndices 3.1 &#8211; Apéndice A: Configuración avanzada. 3.2 &#8211; Apéndice B: Compila tu propio mame. 3.3 &#8211; Apéndice C: Configura [...]]]></description>
			<content:encoded><![CDATA[<p>Bienvenidos al tutorial sobre como tener tu maka funcionando usando software libre. Este se compondrá en 3 capítulos bien diferenciados:</p>
<h2><strong>1 &#8211; Instalación del sistema base.</strong></h2>
<h2><strong>2 &#8211; Instalación de programas y librerías.</strong></h2>
<h2><strong>3 &#8211; Apéndices</strong></h2>
<h4><strong>3.1 &#8211; Apéndice A: Configuración avanzada.</strong></h4>
<h4><strong>3.2 &#8211; Apéndice B: Compila tu propio mame.</strong></h4>
<h4><strong>3.3 &#8211; Apéndice C: Configura un logo de arranque personalizado.</strong></h4>
<h4><strong>3.4 &#8211; Apéndice D: Dándole el toque de gracia.</strong></h4>
<hr /><em>Nota: Las ventajas de usar software libre son muchas, y no las voy a relatar aquí, espero que el lector avispado entienda las razones de usar software libre en lugar de software privativo, y sino siempre puedes empezar a leer cositas sobre GNU/Linux e informarte un poco y así hacerte tu propia opinión del asunto</em> ;·)</p>
<p>Para seguir este tutorial al menos necesitaras una maquina tal que:<br />
<strong>- CPU: 686 o mayor</strong> (es decir a partir de Pentium II y/o AMD K6)<br />
<strong>- GRÁFICA: AVGA tanto 7000 o superior</strong> (en concreto yo testeare en una AVGA casera basada en una 9250)<br />
<strong>- RED: Cualquier cosa con la que nos podamos conectar a inet</strong> (Se necesita para al menos instalar el sistema)<br />
<strong>- LECTORA: CDROM o &gt;</strong> (Se necesita para al menos instalar el sistema)<br />
<strong>- PANTALLA: Monitor arcade</strong> o TV, sino tienes monitor arcade pero piensas tener uno pronto, te recomiendo que te hagas un cable <a href="http://img253.imageshack.us/img253/7164/esquema0rf.jpg">VGA-EUROCONECTOR</a>. Te permitirá seguir el tutorial con cualquier TV, ya que son compatibles entre sí, <a href="http://www.marcianitos.org/foro/showthread.php?t=69">más información</a>. <em>Es un grave error intentar seguir el tutorial con un monitor de PC CRT o peor aun LCD</em>.<br />
<strong>- HD: Exclusivo 20gb o mayor ¡¡SACAD CUALQUIER OTRO!!</strong> (no me responsabilizo si formateáis vuestro zuindowz actual, por ello tened conectado solo el hd que vayáis a usar y sacad/desconectad cualquier otro)<br />
<em>Nota respecto al Disco Duro: el sistema solo necesitara 100/200 megas, lo demás es para roms, vosotros mismos sabréis que lo que necesitáis.</em></p>
<p>Este tutorial intenta que aproveches al 100% tu maquina, y por lo tanto el <strong>tutorial no va a usar entorno gráfico (X11) en NINGÚN momento</strong>, por ello vendría bien que no te asustaran los comandos y que tuvierais un manejo básico en MSDOS. Esto no quiere decir que no haya una forma mas amigable de hacer todo esto, claro que la hay, pero: requiere mas fotos, el &#8220;pincha aquí&#8221;&#8230; que muchas veces es menos preciso que dar comandos y el por que de cada uno <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p><span id="more-3"></span>Consejos antes de entrar en faena:<br />
- Si ponéis vuestro router en modo DHCP, la configuración en red es nula, solo tendréis que darle a OK, y poco mas <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /> Sino seria necesario, mínimamente saber lo que es una IP y/o como configurar una tarjeta de red (ip, dns, puerta de salida) para que tenga conexión a internet.<br />
- Preparad café, os hará falta xDDD</p>
<p>Si después de leer todo esto, no has corrido despavorido&#8230;<br />
¡¡enhorabuena!! estoy seguro que vas a conocer algo donde el único limite, lo pondrás tu <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /><br />
<em>(si estas un poco asustadillo, tranquilo, no va a ser nada complejo y además yo os llevare de la manita)</em></p>
<p>Antes de comenzar necesitaremos una imagen del CD sistema, para este tutorial vamos a usar ubuntu:<br />
<a href="http://www.ubuntu.com">http://www.ubuntu.com</a></p>
<p>Para este tutorial vamos a usar la versión Breezy de ubuntu, que podéis conseguir en este mirror español:<br />
<a href="http://old-releases.ubuntu.com/releases/5.10/">http://old-releases.ubuntu.com/releases/5.10/</a> (recordad que es el Install CD para i386)</p>
<p>Grabad el CD con vuestro programa favorito a una velocidad máxima de 10x y marcad que revise los datos. Mientras se graba, para que os suenen luego, podemos aprovechar para echarle un ojo a&#8230;</p>
<blockquote>
<h4><span class="subraya">Nuestra pequeña lista comandos básicos Linuxeros</span></h4>
<p>pwd : muestra el directorio de trabajo actual.<br />
ls : lista todos los ficheros del directorio actual.<br />
clear : limpia la pantalla (viene bien si usais TV y no veis las lineas inferiores)<br />
cd [directorio] : entra en el directorio especificado.<br />
cd .. : sale del directorio actual.<br />
ps -aux : muestra los procesos lanzados con su número de identificación (pid)<br />
kill -9 [pid] : mata un proceso según el número de pid indicado.<br />
cp [fuente] [destino] : copia un fichero fuente sobre el nombre de destino (o en el directorio de destino si existe)<br />
cp -r [dir_fuente] [dir_destino] : copia un directorio fuente sobre el nombre destino (o en el directorio de destino si existe)<br />
tar xvfz : descompresión de un archivo tar en formato gz en el directorio actual.<br />
tar xvfj : descompresión de un archivo tar en formato bz2 en el directorio actual.<br />
rm [fichero] : eliminar el fichero en el directorio actual.<br />
rm -rf [directorio]: elimina el directorio y todo su contenido.<br />
wget [direccion] : permite bajar un fichero externo usando FTP o HTTP y te lo guarda en el directorio actual.<br />
man [comando]: El manual de linux, totalmente en español os proporciona ayuda completa sobre cualquier comando.<br />
[ALT]+[F1], [ALT+F2] &#8230; [ALT]+[F6]: Cambia la consola actual de trabajo (multitarea).</p>
<p>Un tutorial por si tienes mas curiosidad: <a href="http://www.debian.org/doc/manuals/reference/ch-tutorial.es.html">http://www.debian.org/doc/manuals/referenc&#8230;utorial.es.html</a></p></blockquote>
<p>Insertar el CD y reiniciad el ordenador, una vez arranque aseguraos de que tenéis marcada la opción de arrancar desde CDROM en la BIOS <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<hr />
<h2><strong>1 &#8211; Instalación del sistema base.</strong></h2>
<p>Empieza la fiesta chic@s!!</p>
<p>Comenzamos viendo al inicio una pantalla que nos muestra el logo de la distribución, y debajo podéis leer un texto en ingles que, para el que no lo entienda, cuenta básicamente que en F1 tenemos la ayuda y que para instalar un servidor (es decir sin entorno gráfico) escribamos &#8220;server&#8221;.</p>
<p>Nuestra opción va a ser esta ultima, pero antes de que escribáis nada, debemos decirle al instalador que estamos usando una TV/Monitor arcade, para ello añadiremos &#8220;vga=771&#8243; para que nos permita instalar cómodamente desde nuestra pantalla &#8220;poco común&#8221; xD</p>
<p>Finalmente el comando quedaría:</p>
<pre>server vga=771
 (el símbolo igual lo tenéis en la tecla [¿])</pre>
<p>Pulsamos [ENTER] y comenzamos el proceso de instalación, que veréis que no tiene mucho misterio <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p><em>Atención si tienes problemas con el modo de 771 que es de 800&#215;600 podéis probar a 640&#215;480, con el modo 769. Aunque yo he probado en mi Hantarex 9110 y no he tenido problemas, aconsejo de todas formas mover los potenciómetros de Sync Horizontal y Vertical, por que tiene que haber seguro un punto en el que se os vea, aunque quizás tengáis que hilar fino y combinar posiciones&#8230;</em></p>
<p>En la instalación nos moveremos con los [Cursores], [Tabulador], [Espacio], [Enter], [Inicio], [AvPag]&#8230;</p>
<h4><span class="subraya">Idioma</span></h4>
<p>Este sera el primer punto por el que nos preguntara la instalación, abajo tenemos &#8220;Spanish &#8211; Español&#8221; que seleccionaremos con [ENTER]. De nuevo nos pide confirmación con &#8220;España&#8221;, volvemos a pulsar [ENTER].</p>
<p>Una vez nos ha detectado el teclado, nos vuelve a preguntar por ultima vez, como antes pulsamos [ENTER].</p>
<h4><span class="subraya">Detección del Hardware y análisis del CD</span></h4>
<p>Este paso es automático, así que no tenéis que hacer nada mas que esperar <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<h4><span class="subraya">Configuración de la RED</span></h4>
<p>Como explique antes si tenéis la red configurada como DHCP, nos pedirá confirmación si los datos que ha encontrado son correctos, si lo son pulsad en [ACEPTAR], sino seleccionad la opción de: &#8220;Configurar la red manualmente&#8221;.</p>
<p><span class="subraya">Dirección IP:</span> Poned aquí la ip que queráis que tenga la maka, recordad que tiene que estar dentro de vuestro rango, por ejemplo supongamos que uso el rango: <strong>192.168.0.0</strong>, pues le pondremos una ip que sepamos que no esta ya ocupada por otra máquina&#8230; Pues, simplemente ponemos este numero; yo para el ejemplo voy a poner <strong>192.168.0.200</strong>. (Como ves solo se cambia el numero final &#8211; 255 max.)</p>
<p><span class="subraya">Mascara de Red:</span> Tal y como esta por defecto esta bien.</p>
<p><span class="subraya">Pasarela</span>: Es la ip de vuestro router o del ordenador con la salida a internet. Yo por ejemplo voy a poner: <strong>192.168.0.222</strong>.</p>
<p><span class="subraya">Direcciones de Servidores de nombre:</span> Normalmente los routers también dan DNS, yo pondré la misma, pero vosotros si preferís usar otras, todo vuestro <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /> En esta ocasión repito mi: <strong>192.168.0.222</strong>.</p>
<p><span class="subraya">Nombre de la maquina</span>: Poned el nombre que mas os guste, y os recomendaría además nada con &#8220;ñ&#8221; acentos, etc&#8230; con vuestro permiso yo usare &#8220;<strong>gauntlet</strong>&#8220;, jejej</p>
<h4><span class="subraya">Particionado de Discos</span></h4>
<p>Bien aquí empieza la parte seria del primer capitulo, preparar nuestro disco duro para el trabajo diario al que le someteremos.</p>
<p>Vamos a ver, como <em>Método de particionado</em> selecionad la opción: <strong>[Borrar el disco completo]</strong>.<br />
Niños, no hagáis esto sin la supervisión de un adulto xD</p>
<p>El proceso sera automático y al final nos pedirá confirmación si todo esta correcto. Ahora tenéis 2 opciones:<br />
- Podéis seguir adelante, y por lo tanto tendréis un muy buen sistema de ficheros (ext3).<br />
- Podéis decirle que [NO] y configuraremos <em>ReiserFS</em> que es un sistema, en mi opinión, perfecto para nuestros propósitos; ya que maneja a la perfección directorios con cientos, miles (¿millones? xD) de ficheros, directorios y subdirectorios.</p>
<p>Pues la decisión es vuestra, sino queréis complicaciones marcad la casilla [SI] y pulsad [ENTER], si os va la marcha, dejadla en [NO] pulsad [Enter]&#8230;.</p>
<p><span class="subraya">Paso Opcional: Configurando ReiserFS</span></p>
<p>Tenéis ahora un nuevo menú, poneros encima de la partición que pone &#8220;PRIMARIA [...] ext3&#8243;, pulsad [ENTER] y aparecerá un nuevo menú en el que deberíamos de estar marcando la opción: &#8220;Utilizar como: sistema ext3&#8230;&#8221;, pulsamos intro de nuevo y obtenemos un menú con todos los sistemas de ficheros disponibles. En la 3a opción tenemos &#8220;ReiserFS&#8221; simplemente seleccionadla pulsando [ENTER].</p>
<p>Ahora pulsamos [Enter] sobre la opción: &#8220;Se ha terminado de definir la partición&#8221; y de nuevo en el menú inicial pulsamos [Enter] sobre la opción: &#8220;Finalizar el particionado y&#8230;&#8221;. De nuevo una ultima pregunta nos asalta y la confirmamos seleccionando la opción [SI] <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<h4><span class="subraya">Instalación de los ficheros del sistema</span></h4>
<p>Este paso es automático, es hora del café, seguro que lo tienes listo <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /><br />
¿como lo has visto? ¿complicado? Espero que no&#8230;</p>
<p>Este proceso no suele durar mas de 5 o 10 minutos, el tiempo justo para relajarnos mientras llega la ultima tanda de preguntas <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
<h4><span class="subraya">Zona horaria</span></h4>
<p>Mas simple imposible, seleccionad vuestra zona horaria, lo normal sera &#8220;Madrid&#8221;.</p>
<h4><span class="subraya">Usuarios y contraseñas</span></h4>
<p>Ahora crearemos un usuario que nos valdrá para instalar programas y para uso general, en principio solo vamos a tener ese, pero mas adelante podremos crear otros si lo necesitamos, es mas; cada usuario podría tener sus propias configuraciones y/o puntaciones y ello no estropearía la configuración de los demás usuarios/jugadores.</p>
<p>Vamos a crear este usuario inicial, para empezar primero nos pregunta por el&#8230;</p>
<p><span class="subraya">Nombre Completo del usuario</span><br />
Podría ser algo como por ejemplo: &#8220;Pepe López García&#8221;, pero como lo nuestro es para la maca, yo simplemente pondré &#8220;<strong>Mame</strong>&#8220;; vosotros poned lo que creáis mejor, si os equivocáis o lo pensáis mejor, simple podréis darle a [RETROCESO] y empezar este paso de nuevo <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p><span class="subraya">Usuario</span><br />
Aquí debéis tener cuidado de no usar mayúsculas, no es lo mismo poner como usuario: &#8220;Pepe&#8221; que &#8220;pepe&#8221;. Yo usare &#8220;mame&#8221;.</p>
<p><span class="subraya">Contraseña</span><br />
Pues alguna que recordéis y os la preguntara 2 veces <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<h4><span class="subraya">Configuración de los repositorios y arranque</span></h4>
<p>De nuevo estos pasos son automáticos, os sacara el CD y reiniciaremos el sistema.</p>
<h4><span class="subraya">Primer inicio del sistema e instalación de paquetes</span></h4>
<p>Este paso es automático, esperaremos un rato a que termine y poco más&#8230;</p>
<h4><strong>Sistema Instalado!!!</strong></h4>
<p>Tampoco fue para tanto, ¿no? <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<h4><span class="subraya">Ultimo paso: Preparar administrador y reinicio/apagado del sistema</span></h4>
<p>Antes de que pasemos al siguiente tema necesitamos activar el administrador, que aunque podríamos usar &#8220;sudo&#8221; (super-user do) para administrarlo, no quiero liaros demasiado&#8230; ya tenéis suficiente con lo vuestro xD</p>
<p>Bien entrad con vuestro usuario que hayáis creado, por ejemplo yo cree &#8220;mame&#8221;. y aparecerá algo como:</p>
<pre>mame@maka:~$ _</pre>
<p>Este es el prompt del sistema y como en MSDOS, espera a que le demos ordenes!! pongámonos a ello <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /><br />
Para activar la cuenta de root (administrador) haremos:</p>
<pre>$ sudo passwd root</pre>
<p><em>Nota: Cuando pulséis las teclas no se producirá efecto en la pantalla.</em><br />
Primero nos preguntara nuestra contraseña del usuario que creamos al comienzo de la instalación y luego nos pedirá (por duplicado) la del administrador.</p>
<p>Una vez activada saldremos del la sesión del usuario actual (en mi caso mame) pulsando <strong>[CTRL]+[D]</strong> o escribiendo <strong>logout</strong>. Para entrar como administrador usaremos como usuario: <strong>root</strong> y ya contraseña que escribisteis <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p><img class="centrada" src="http://www.nofuture.tv/linux/debian/install/images/small/sc95.png" alt="Imagen del articulo" /><br />
<em>Bueno aquí tenéis el que va a ser nuestro entorno de trabajo, vale la imagen es de Debian, pero es que son primas hermanas</em> <img src="/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!" /></p>
<p>Finalmente los comandos para apagar y reiniciar el equipo, como <strong>root</strong> (administrador) son:</p>
<p>APAGAR</p>
<pre># halt</pre>
<p>REINICIAR</p>
<pre># reboot</pre>
<p>(Con CTRL+ALT+SUPR también reiniciáis la cpu, si alguna vez lo necesitáis <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> )</p>
<hr />
<h2><strong>2 &#8211; Instalación de programas y librerías.</strong></h2>
<p>Continuaremos ahora instalando los programas básicos para nuestra maka, que serán AdvanceMAME y AdvanceMENU, pero antes de poder instalarlos necesitaremos optimizar el núcleo del sistema, para que nos aproveche nuestra arquitectura 686 y preparar las librerías que permitirán a el emulador forzar los drivers para nuestro monitor arcade <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Para instalar programas necesitaremos entrar como administrador del sistema, asi que hacedlo como os explique anteriormente.<br />
Una vez dicho&#8230; Continuamos!</p>
<h4><span class="subraya">Optimizando el Sistema 686</span></h4>
<p>Para tener todo el núcleo del sistema usando nuestra potente CPU, vamos a usar la excelente herramienta <strong>apt-get</strong>&#8230; Seguramente os suene a chino esta utilidad así que como excepción, vale la pena abrir un paréntesis para explicar básicamente su uso:</p>
<blockquote>
<h4><span class="subraya">Utilidades que todo buen linuxero debe manejar (I): apt-get</span></h4>
<p>Esta es una potente utilidad que se encarga de bajar y configurar cada programa que instalemos. Cualquier programa de Linux disponible para esa distribución estará a vuestro alcance usando <strong>apt-get</strong>.</p>
<p>Su uso es muy simple:</p>
<pre>apt-get COMANDO PROGRAMA</pre>
<p>COMANDO: puede ser muchas cosas pero nosotros solo usaremos: <span class="subraya">install</span> y <span class="subraya">update</span>.<br />
PROGRAMA: el programa que deseas instalar. Conviene saber el nombre exacto <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /> Sino lo sabes siempre puedes mirar en: <a href="http://packages.ubuntu.com">http://packages.ubuntu.com</a></p>
<p>Por ejemplo:</p>
<pre># apt-get install zsnes</pre>
<p>¿Que haría este comando? Instalaría y configuraría zsnes en nuestro sistema, pero no solo eso; sino que si el programa necesita alguna librería gráfica especial (como SDL) también la bajaría (normalmente siempre nos pedirá confirmación si estas de acuerdo en instalarlas <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" />).</p>
<p>Además, es bueno que antes de instalar ningún programa usemos:</p>
<pre>apt-get update</pre>
<p>Que actualiza la lista de paquetes disponibles.</p>
<p>La potencia de Linux y de sus comandos nos permite por ejemplo instalar varios programas de una vez, por ejemplo:</p>
<pre># apt-get install zsnes dgen</pre>
<p>Que instalaría zsnes, y dgen además de todas las librerías que cada uno necesite ^^_</p></blockquote>
<p>Para poder instalar svgalib necesitamos el fuente del núcleo de nuestro sistema (pero solo las cabeceras) así que también las instalaremos <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Primero pondremos al día la lista de ficheros en tres simples pasos:</p>
<p>En este primer paso vamos a añadir algunos nuevos lugares donde nuestro Linux podrá encontrar nuevas aplicaciones, para nuestro gozo y disfrute <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Vamos a empezar bajándonos mi lista recomendada de repositorios:</p>
<pre># wget http://david.dantoine.org/ficheros/repositorios.txt</pre>
<p><em>Aclaracion: wget se encargará de bajar nuestros ficheros y guardarlos en el directorio que nos encontremos. Como veis su uso es muy simple.</em></p>
<p>Una vez bajado vamos substituir la información antigua, para que apt-get conozca los nuevos repositorios <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<pre># cat repositorios.txt &gt; /etc/apt/sources.list</pre>
<p><em>Nota: si os fijáis con que pongáis &#8220;rep&#8221; y pulséis tabulador la el nombre del fichero se completara solo.</em><br />
<em>Nota 2: cat es un hermano mayor del type de msdos, por si alguno lo conoce.</em></p>
<p>De nuevo actualizamos apt-get con:</p>
<pre># apt-get update</pre>
<p><em>Nota: Si algún repositorio os diera error, volved a ejecutarlo otra vez, a veces los servidores se saturan y pasan de nuestra petición xD</em></p>
<p>Y por ultimo instalaremos el nuevo núcleo disponible:</p>
<pre># apt-get install linux-686 linux-headers-686</pre>
<p>Como necesita también instalar otros paquetes, nos pedirá confirmación le decimos que &#8220;<strong>s</strong>i&#8221; y empezara a bajar todo lo necesario, nosotros esperaremos otro ratín <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Una vez este bajado necesitaremos reiniciar el sistema para que a partir de ahora use nuestro nuevo núcleo 686 <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Lo haremos con un simple:</p>
<pre># reboot</pre>
<h4><span class="subraya">Compilando mi &#8220;muy especialmente modificado&#8221; SVGAlib</span></h4>
<p><em>Nota: Quizás añada un camino opcional que permita hacer una especie de instalación simple con un kernel base y un SVGAlib también base. Luego ya si alguno quisiera actualizar que hiciera estos pasos <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </em></p>
<p>Para que advanceMAME vaya fino, cual mariposilla del bosque, necesitamos instalar las librerías svgalib que le permitirán un acceso directo a nuestra tarjeta AVGA y así forzar los modos que nuestro monitor arcade requiere. Las librerías svgalib de windows en realidad son un port del &#8220;equipo advance&#8221; para windows y personalmente a mi me dieron muchos problemas, veréis que en Linux van de perlas <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Empezaremos bajandonos el fichero comprimido con la librería modificada:</p>
<pre># wget http://david.dantoine.org/ficheros/svgalib-1.9.20-4_modsky-src.tar.gz</pre>
<p>Descomprimimos los ficheros:</p>
<pre># tar xvfz svgalib*.gz</pre>
<p><em>Aclaración: tar es un compresor que permite multiples formatos, por ahora sabed que existe xD</em></p>
<p>Antes de instalar las librerías necesitamos tener las utilidades básicas de programación, para ello haremos:</p>
<pre># apt-get install build-essential gcc-3.4</pre>
<p>Una vez instaladas pasamos a compilarlas e instalarlas:</p>
<pre># cd svgalib*</pre>
<p><em>Entramos en el directorio</em></p>
<pre># make install</pre>
<p><em>Compila e instala en nuestro sistema svgalib</em></p>
<p>Finalmente nos queda cargar el driver que SVGAlib ha compilado especialmente para nuestra arquitectura (686) y núcleo (2.6.12 cuando se creó este artículo). Recordad que si actualizáis de nuevo vuestro núcleo (por ejemplo por uno más nuevo) deberéis de repetir estos pasos añadiendo &#8220;make clean&#8221; al inicio del proceso.</p>
<p>Para cargar el driver y la configuración por defecto podemos reiniciar el PC o bien iniciar a mano el nuevo servicio. Iniciarlo estan simple como poner esta linea</p>
<pre># /etc/init.d/mame.sh start</pre>
<blockquote>
<h4><span class="subraya">Aclaraciones sobre el servicio mame.sh</span></h4>
<p>Este es un pequeño script que he creado para este tutorial. Se os instala automáticamente al hacer el &#8220;make install&#8221; y lo podéis eliminar del arranque automáticamente haciendo &#8220;make clean&#8221; (que desinstalaría tambien todas las libs de SVGAlib).</p>
<p>Lo he creado por que el driver al estar aun en desarrollo, no tiene aun una forma simple de instalación, y no os quería complicar mucho la vida, asi que este script basicamente inicia el driver y crea unos enlaces que necesita svgalib, es mas, también le dará un repasito los drivers de entrada (input) para que al inicio todo este preparado para jugar!</p></blockquote>
<p><em>Nota para usuarios avanzados: He creado también una configuración por defecto para SVGAlib pensada para monitores arcade y TVs. Si queréis echarle un ojo o modificar algo la tenéis en /etc/vga/libvga.config</em></p>
<h4><span class="subraya">Instalando (por fin) AdvanceMAME</span></h4>
<p>Supongo que ya estaréis hartos de tanto preámbulo, os veo deseosos de ver como &#8220;tira&#8221; advmame en Linux, bien pues vamos a ello! <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
<p>Empezamos instalando las librerías que necesita advancemame:</p>
<pre># apt-get install libsdl1.2debian-alsa
# apt-get install libfreetype6</pre>
<p><em>Aclaración: es libsdl[UNO y no ELE].2debian-alsa, gracias Jose</em>.</p>
<p>Bajamos la versión precompilada que he preparado para nuestro tutorial:</p>
<pre># wget http://david.dantoine.org/ficheros/advancemame-686_0.104.0-1_i386.deb</pre>
<p>Y la instalamos localmente usando dpkg:</p>
<pre># dpkg -i advancemame-686_0.104.0-1_i386.deb</pre>
<p>Ahora vamos a configurar muy rápidamente advancemame, sólo para comprobar que todo está correcto. Para una configuración e instalación detalladas, teneis los tutoriales de DOS y Windowz de Lord (en marcianitos.org), exceptuando los pasos de la instalación previa, claro.</p>
<p>Antes de pasar al tema vamos a bajar una rom de mame, freeware por supuesto, que he subido a mi site:</p>
<pre># wget http://david.dantoine.org/ficheros/robby.zip -P /usr/local/share/advance/rom</pre>
<p><em>Aclaración: la opción -P indica el directorio donde guardará el fichero, que es el directorio donde advancemame buscará nuestras roms.</em></p>
<p>Ahora lo que debemos de hacer es salir de la cuenta de administrador y entrar como usuario normal, esto es muy importante y debéis acostumbraros a usar las cuentas de usuario para el uso normal y la de root sólo para tareas de mantenimiento y poco más&#8230;</p>
<p>Ejecutamos por primera vez advancemame para que genere el fichero de configuración&#8230;</p>
<pre>$ advmame</pre>
<p>Ahora vamos a crear una configuración básica con advcfg diciéndole que use como profundidad por defecto 16bits (esto es muy recomendable para nuestra ATI/AVGA).</p>
<pre>advcfg -bit 16</pre>
<p>Seleccionamos las opciones de monitor arcade o tv (según el caso) y finalmente centramos y guardamos (para más detalle mirad los tutoriales de advmame.</p>
<p><em>Aviso: Al terminar el programa advcfg, no deja escribir, esto parece un problema del advcfg cuando usa el driver svgalib, pero se soluciona fácilmente saliendo de la sesión con CTRL+D y volviendo a loguear.</em></p>
<p>Finalmente probamos nuestro mame recién instalado con la rom freeware, que no es ninguna maravilla pero al menos nos vale de testeo gráfico y sonoro <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<pre># advmame robby</pre>
<blockquote>
<h4><span class="subraya">Consejo para usuarios que hayan hecho el Apendice A (y sino a que esperas!)</span></h4>
<p>Recomiendo editar el &#8220;advance.rc&#8221; con el &#8220;Midnight Commander&#8221; el fichero lo podéis encontrar dentro del directorio &#8220;.advance&#8221; y hacerle al menos los siguientes cambios:</p>
<pre>[...]
device_color_bgr15 no
device_color_bgr16 yes
device_color_bgr24 no
device_color_bgr32 no
device_color_bgr8 no
device_color_palette8 no
device_color_yuy2 no
[...]
device_video_interlace no
[...]
misc_quiet yes
misc_safequit no</pre>
<p>Finalmente para afinar tu advmame tendrías que empezar a currarte configuraciones con el <strong>advv</strong> para que algunos juegos no te hicieran barridos extraños y asi conseguir la perfecta emulación que deseamos. Recomiendo leer el &#8220;modeline howto&#8221; que traduje.</p></blockquote>
<h4><span class="subraya">Instalando AdvanceMENU</span></h4>
<p>Bueno estamos ya en el paso final para tener nuestra máquina operativa, al menos básicamente <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /> <em>Recordad que de nuevo tenemos que trabajar con el admin (root)</em></p>
<p>Me gustaría advertir que advanceMENU tiene algunos problemas bajo Linux si este no esta correctamente configurado, pero una vez hecho, irá como la seda <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Bajaremos la versión precompilada que he preparado para el tutorial.<br />
<em>Usuarios Avanzados: En principio no es necesario que compileis una versión para vuestra CPU, más que nada por que optimizar el menu, no nos va a servir de mucho, es mejor tener una versión estable y poco más</em></p>
<p>Empezamos bajando el paquete del menu:</p>
<pre># wget http://david.dantoine.org/ficheros/advancemenu-686_2.4.12-2_i386.deb</pre>
<p>Y ahora lo instalamos simplemente haciendo:</p>
<pre># dpkg -i advancemenu-686_2.4.12-2_i386.deb</pre>
<p>Listo, ya tenemos el advmenu disponible para nuestro usuario &#8220;mame&#8221; (en nuestro ejemplo) asi que logueamos con el y arrancamos el menu para que genere sus ficheros de configuracion:</p>
<pre>$ advmenu</pre>
<p>Bien ahora antes de arrancar el menu deberíamos de editar un par de líneas que por defecto están mal configuradas y que colgarían el programa. <em>Es recomendable hacer el apendice A para poder tener un editor decente, sino lo queréis hacer, usaremos nano, que tampoco es muy complicado de usar&#8230;</em></p>
<pre>$ nano .advance/advmenu.rc</pre>
<p>Y ahora con los cursores os movéis por el documento de texto y cambiad las opciones que os pongo para que aparezcan tal que así:</p>
<pre>[...]
device_color_bgr15 no
device_color_bgr16 yes
device_color_bgr24 no
device_color_bgr32 no
device_color_bgr8 no
device_color_palette8 no
device_color_yuy2 no
[...]
device_joystick raw
[...]
device_sound none (si quereis sonido poned "oss", pero NUNCA AUTO)
[...]
device_video_interlace no
[...]</pre>
<p>Y ahora con [CTRL]+[O] guardamos (nos confirma el nombre, simplemente [ENTER]) y con [CTRL]+[X] Salimos.</p>
<p>Ahora ya podemos sin problema empezar a usar advcfg o advv para poner un modo correcto, de todas formas os dejo una mini sección con una configuración correcta para nuestra AVGA, por sino queréis pelearos con advcfg y demas xD</p>
<blockquote>
<h4><span class="subraya">Configuracion TV/Arcade monitor by D_Skywalk</span></h4>
<p>Simplemente volvéis a editar el fichero anterior y añadís estas lineas:</p>
<pre>device_video_clock 5-100 / 15.62 / 50-60
device_video_format 15620 0.727273 0.0454545 0.0909091 0.136364 0.915709 0.0114943 0.0114943 0.0613027
device_video_modeline standard_640x276 13.4563 640 664 744 856 276 278 282 303 -hsync -vsync</pre>
<p>Y finalmente buscamos la linea que dice &#8220;display_size&#8221; y cambiamos su valor por &#8220;640&#8243; <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p></blockquote>
<p>Listo, ya sólo nos queda arrancar el menu!</p>
<pre>$ advmenu</pre>
<h4><span class="subraya">Iniciando AdvanceMENU al arranque</span></h4>
<p>Para iniciar el frontend al inicio del sistema vamos a necesitar dos nuevas utilidades, aunque espero que cuando tenga más tiempo pueda hacer algun programita simple que haga aun más fácil este ultimo paso. O bueno, si alguien se anima que avise <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Empezamos con agetty que nos permitirá substituir a nuestro viejo login por el programejo que le indiquemos <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Así que como root bajamos agetty:</p>
<pre># wget http://david.dantoine.org/ficheros/agetty_2.11z-2_i386.deb</pre>
<p>Instalamos agetty con el ya conocido:</p>
<pre># dpkg -i agetty*.deb</pre>
<p>Ahora os presentaré a <strong>skymame</strong> mi pequeño script de inicio del advmenu <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /> La verdad es que es muy simple y creo que no le vendría mal algunas features, pero bueno nos vale para lo imprescindible&#8230;<br />
Arranca advmenu y nos permite apagar con pulsar intro al cerrar advmenu <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<pre># wget http://david.dantoine.org/ficheros/skymame -P /sbin</pre>
<p>Y le damos los permisos correctos para pueda ser ejecutado:</p>
<pre># chmod +x /sbin/skymame</pre>
<p>Por último editamos el inittab (/etc/inittab) para que al inicio en lugar de ejecutar el programita que pregunta el login, carge nuestro script&#8230;</p>
<p>Empezamos comentando la línea que substituiremos:</p>
<pre>#1:2345:respawn:/sbin/getty 38400 tty1</pre>
<p><em>(Podeis comentar tambien los terminales 4 5 y 6, sin problemas)</em></p>
<p>Y ahora añadimos después de la primera linea comentada:</p>
<pre>1:2345:respawn:/sbin/agetty -n -l /sbin/skymame 38400 tty1 linux</pre>
<p>A mi me ha quedado algo así:</p>
<pre>#1:2345:respawn:/sbin/getty 38400 tty1
1:2345:respawn:/sbin/agetty -n -l /sbin/skymame 38400 tty1 linux
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6</pre>
<p>Finalmente nos queda configurar un parámetro que tiene mi pequeño saltamontes y es el usuario que deseáis que arranque advmenu y advmame, evidentemente ese usuario es en el que debéis tener configurado ya todos los emus ^_^</p>
<pre># nano /sbin/skymame</pre>
<p>El usuario por defecto es &#8220;<em>mame</em>&#8220;, con solo cambiarlo ya lo teneis!</p>
<p>Listo, ahora al iniciar la máquina automáticamente aparecerá <strong>advmenu</strong> y una vez cerrado aparecerá un menu de mantenimiento que os permite, por ahora, reiniciar el menú o apagar el sistema&#8230; pero es muy fácilmente editable ya lo veréis!<br />
<em>No olvidéis enviarme las mejoras que le hagáis!!</em></p>
<h4><span class="subraya">Despedida y&#8230; ¿Cierre?</span></h4>
<p>Y llega el momento de la despedida&#8230; o nO?</p>
<p>La verdad para que engañaros aun nos faltan cosas que se irán ampliando en futuros tutoriales linuxeros y que ampliarán vuestros conocimientos para tener la perfecta maka que deseéis&#8230; Este tutorial sólo ha pretendido poner unos buenos cimientos donde construir futuros tutoriales:<br />
- soporte para LPT en Linux con OpenPPJOY,<br />
- más emuladores,<br />
- Entornos gráficos para cpus potentes,<br />
- etc&#8230;</p>
<p>Espero que todo este tutorial os haya resultado útil ya que: Muchos padawans han muerto para&#8230; eeh, bueno no <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /> pero alguna neurona si que ha caído <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Recordad enviarme vuestras impresiones, mejoras o sugerencias a mi correo:<br />
dantoine (en) gmail (punto) com</p>
<hr />
<h2><strong>3 Apéndices</strong></h2>
<p>En las siguientes secciones vamos a intentar afinar muchas cosas que no son totalmente imprescibles para tu maka, pero que no os vendrán mal si queréis hacer un uso de: &#8220;no solo juego&#8221; e incluso lo pasaréis como enanos si os gusta el &#8220;cacharreo informático&#8221; ;D</p>
<h2><strong>3.1Apéndice A: Configuración avanzada</strong></h2>
<h4><span class="subraya">Configurar idioma correctamente</span></h4>
<p>Ubuntu nos configura el sistema en español, pero ciertas utilidades no soportan aun perfectamente la configuración por defecto que ubuntu nos propone en principio, así que la vamos a cambiar:</p>
<pre># dpkg-reconfigure locales</pre>
<p><em>Aclaración: este programa permite volver a configurar programas ya instalados</em></p>
<p>Primero nos aparecerá una gran lista de idiomas, en principio sólo deberíais de dejar marcadas estas dos:</p>
<pre>es_ES.ISO-8859-1
es_ES.ISO-8859-15@euro</pre>
<p>En la siguiente pantalla nos preguntará cual queremos usar, yo os recomiendo la del &#8220;euro&#8221; <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<pre>es_ES.ISO-8859-15@euro</pre>
<p>Y listo ya tenemos nuestro idioma en un modo un poco más compatible (aunque menos internacional). Para que los cambios tengan efecto <span class="subraya">reiniciad</span> el sistema.</p>
<h4><span class="subraya">Instalando utilidades imprescindibles</span></h4>
<p>Si os apetece trastear un rato el Linux y os sentís perdidos, un poco perdidos, vamos a instalar una utilidad que os ayudara en este nuevo mundillo linuxero: <strong>Midnight Commander</strong>. Esta utilidad nos permitirá editar ficheros, copiar y demas operaciones muy fácilmente ^^_</p>
<p>Para instalarla vamos tan sólo debemos hacer:</p>
<pre># apt-get install mc</pre>
<p>Para ejecutar el programa sólo debéis teclear:</p>
<pre># mc</pre>
<p><img class="centrada" src="http://www.easylinux.de/Artikel/ausgabe/2004/06/074-shell-tipps/mark_s.jpg" alt="Imagen del articulo" /><br />
<em>Seguro que a alguno le recuerda a cierta utilidad de Norton&#8230;</em></p>
<h4><span class="subraya">Accediendo remotamente al sistema</span></h4>
<p>Para acceder remotamente al sistema vamos a usar un protocolo seguro SSH. Nos permitirá entrar y administrar la máquina remotamente, y esto es muy útil sobretodo en nuestras máquinas que en principio no están pensadas (ni acondicionadas) para un mantenimiento &#8220;in situ&#8221; <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Si usas Linux o MAC seguramente ya tendras instalado el software necesario en tu PC, pero si usas Windowz puedes bajarte <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">Putty</a> o cualquier cliente SSH que encuentres por google. Simplemente ponéis la IP del PC a conectar y marcais SSH <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Pero claro antes de todo esto, deberemos de instalarlo, vamos a ello!</p>
<pre># apt-get install ssh</pre>
<p>Listo! ^^_</p>
<h2><strong>3.2 &#8211; Apendice B: Compila tu propio mame.</strong></h2>
<p><em>Nota: Antes de empezar se recomienda haber completado el Apendice A.</em></p>
<p>Con la intención de que este tutorial valga para un futuro, no muy lejano la verdad, viendo la rapidez de versiones que publican el MAME-TEAM; voy a explicar como fácilmente compilaros vuestras versiones de MAME, adaptadas a <span class="subraya">vuestras</span> necesidades <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>La verdad que uno oye la palabra compilar y ya se cree que esta puede ser una tarea compleja, y en parte llevaría razón quien lo pensara, pero eso sería si quisieramos hacer cambios en el código o añadir drivers&#8230; pero veréis como tener al día vuestro MAME optimizado para vuestra CPU es poco menos que un paseo <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Empezaremos bajándonos la última versión, cuando se hizo este tutorial teniamos disponible la release 0.104 de advancemame:</p>
<pre># wget http://ovh.dl.sourceforge.net/sourceforge/advancemame/advancemame-0.104.0.tar.gz</pre>
<p><em>Nota: Cambiad el &#8220;104&#8243; por la version que desees usar de advanceMAME.</em></p>
<p>Ahora dejaremos a apt-get la tarea de instalarnos las librerías de desarrollo necesarias para llevar a buen puerto nuestra tarea <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<pre># apt-get install nasm libsdl1.2-dev</pre>
<p><em>Nota: Se instalarán unos 41 paquetes, pero no os asustéis por el espacio que os puedan ocupar, ya que no llega a más 10megas, heheh.</em></p>
<pre># apt-get install libfreetype6-dev</pre>
<p>El siguiente paso va a ser descomprimir advancemame y entrar en su directorio:</p>
<pre># tar xvfz advancemame*.gz
# cd advancemame*</pre>
<p>Ahora con un simple comando vamos a dejar que un script configure nuestro mame básicamente:</p>
<pre>./configure</pre>
<p><em>No se si se bien con esta letra, pero los dos primeros caracteres son: &#8220;punto&#8221; y &#8220;barra&#8221;.</em></p>
<p>Una vez configurado <span class="subraya">el siguiente paso es opcional</span>:</p>
<blockquote><p>Para aquellos que quiera afinar su configuracion de CPU pueden editar con &#8220;<strong>mc</strong>&#8221; el fichero&#8221;<em>Makefile</em>&#8221; donde unas lineas más abajo se puede leer:</p>
<pre>CONF_CFLAGS_OPT= -march=....</pre>
<p><em>Aclaración: Las CFLAGS es la forma que tenemos para activar las optimizaciones que como usuarios deseamos que tengan nuestros binarios.</em></p>
<p>Y la pregunta que os formularéis ahora ¿como sabemos cual es la mejor opción para nuestra CPU?<br />
Pues dadle las gracias a los chicos de gentoo por facilitarnos la vida (y no tener que marearnos por google) con su fantástico wiki, donde tienen una lista por CPUs y los flags recomendados: <a href="http://gentoo-wiki.com/Safe_Cflags">http://gentoo-wiki.com/Safe_Cflags</a><br />
<em>Nota: sino sabéis la familia exacta de vuestra CPU podéis hacer un &#8220;cat /proc/cpuinfo&#8221; como indica el wiki y ya tendréis todos los datos necesarios!</em></p>
<p>Además también ganaremos un poco más de velocidad si cambiamos <strong>-02</strong> por <strong>-03</strong>, a costa de un pequeño aumento de tamaño en los binarios <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Hay otro flag de optimización para los drivers que tengan partes en ASM (si es que aun queda algo en mame en ASM), es añadiendo en la linea de los flags ASM &#8220;<strong>-O9999</strong>&#8220;.<br />
Probadlo si queréis y luego me contáis si habeis notado alguna mejoría.</p>
<p>Como ejemplo os dejo mi configuración de CFLAGS para mi Celeron a 2ghz:</p>
<pre>CONF_CFLAGS_OPT= -march=pentium4 -fomit-frame-pointer -O3 -fno-merge-constants -Wall -Wno-sign-compare -Wno-unused</pre>
<p><em>Nota: El -pipe sólo tiene efectos al compilar, no tiene nada que ver con el propio ejecutable así que, rara vez lo suelo usar.</em></p>
<p>Con estos CFLAGS y la configuración por defecto de advmame (más los cambios recomendados anteriormente) consigo 400fps de media en el <em>Street Fighter II: Champion Edition (sf2ce)</em>. Para comprobar vosotros como de veloz os va, pulsad: F10 (throttle) y luego F11 (mostrar fps).</p></blockquote>
<p>Una vez está todo configurado ya sólo queda teclear:</p>
<pre># make</pre>
<p><em>Nota: durante este proceso os saldrán algunos avisos, no os preocupéis es totalmente normal&#8230; <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </em></p>
<p>Una vez más a ser pacientes ya que la compilación puede durar fácilmente más de media hora, es un buen momento de tomarnos un respiro mientras el proceso finaliza <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Una vez haya terminado, sólo nos queda instalarlo:</p>
<pre># make install</pre>
<h2><strong>3.3 &#8211; Apéndice C: Configura un logo de arranque personalizado.</strong></h2>
<p>[ Esta seccion se queda para futuras investigaciones <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /> ]</p>
<h2><strong>3.4 &#8211; Apéndice D: Dándole el toque de gracia.</strong></h2>
<p><em>Quizás algunas partes de este apéndice requieren algo de experiencia linuxera, si metes la gamba xD</em></p>
<p>Voy a dar un par de mini consejos de como mejorar el arranque de la máquina, para que este sea más veloz <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Primero vamos a quitar todo lo que no sea imprescindible para la maca del arranque&#8230;</p>
<pre># update-rc.d -f ntpdate
# update-rc.d -f console-screen.sh remove
# update-rc.d -f mdadm-raid remove
# update-rc.d -f mdadm remove
# update-rc.d -f pcmcia remove
# update-rc.d -f lvm remove
# update-rc.d -f evms remove

# update-rc.d -f rsync remove</pre>
<p><em>Podéis hacer lo mismo con ssh, y si alguna vez necesitais entrar remotamente lo iniciáis manualmente con /etc/init.d/ssh start</em></p>
<p>Ahora para que el arranque de los últimos servicios se carguen sin esperas, editamos el script de inicio:</p>
<pre># nano /etc/init.d/rc</pre>
<p>Y buscamos la linea que pone</p>
<pre>startup $i start</pre>
<p>Y le añadimos al final &#8220;&amp;&#8221; para que obtengamos:</p>
<pre>startup $i start &amp;</pre>
<p>También podemos darle cañita al sistema con hdparm, en principio comprobamos si tenemos el dma activo en nuestro disco duro&#8230;</p>
<pre># hdparm -d /dev/hda</pre>
<p><em>Siendo &#8220;hda&#8221; la unidad de tu disco duro, normalmente es &#8220;hda&#8221; o &#8220;hdb&#8221;.</em></p>
<p>Si no lo tenéis activadlo:</p>
<pre># hdparm -d1 /dev/hda</pre>
<p><em>podéis añadir este comando por ejemplo al mame.sh del inicio para que lo haga cada vez o si queréis hacerlo mejor, configurad el hdparm.conf que tenéis en /etc.</em></p>
<p>¡E..E&#8230;E..Esto es todo amigos! <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
<hr />WIP:</p>
<p>- Añadir el logo al inicio <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /><br />
- Repositorios y downloads actualizados <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /><br />
- Muchas correcciones y añadidas unas aclaraciones (gracias Jose).</p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: SDL &#8211; Entorno de Programacion Win/GP32</title>
		<link>http://david.dantoine.org/articulo/24/</link>
		<comments>http://david.dantoine.org/articulo/24/#comments</comments>
		<pubDate>Mon, 27 Mar 2006 17:17:49 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[gp32]]></category>
		<category><![CDATA[gph]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/1/#1</guid>
		<description><![CDATA[Bueno primero agradecer a Chui su trabajo con el port de SDL ya que sin el este tutorial, no tendria mucho sentido y tambien agradecer a la gente de devkitpro, por sus fantasticos screenshots xDDD Este entorno esta pensado para que podamos trabajar desde Windows, testeando nuestros programas en Zuindows y cuando realmente queramos ver [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno primero agradecer a Chui su trabajo con el port de SDL ya que sin el este tutorial, no tendria mucho sentido y tambien agradecer a la gente de devkitpro, por sus fantasticos screenshots xDDD</p>
<p>Este entorno esta pensado para que podamos trabajar desde Windows, testeando nuestros programas en Zuindows y cuando realmente queramos ver como &#8220;anda&#8221; en la GP compilamos para ella ese mismo source y lo pasamos a nuestra SMC viendo el resultado final. Con esto yo me he ahorrado algun quebradero de cabeza y menos gasto de pilas al no tener que compilar cada vez, etc&#8230; Todo ello sin contar lo utiles que son las librerias en si <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p><span id="more-24"></span>Si quereis mas informacion de como usarlas y aprovechar el trabajo de Chui: <a href="www.libsdl.org">www.libsdl.org</a></p>
<p>Lo primero que debes hacer es decidir la ruta de donde quieres que descanse tu entorno de desarrollo, en este tutorial voy a usar:</p>
<blockquote><p>C:\DevkitPro</p></blockquote>
<p>Si tu deseas usar una ruta o unidad diferente, ten encuenta luego los cambios <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Primero necesitamos compilador y librerias para gp32:</p>
<blockquote><p>devkitARM_r11-win32.exe (este es el que uso yo)<br />
o<br />
devkitARM_r15-win32.exe (la ultima version a dia de hoy)</p></blockquote>
<p><a href="http://sourceforge.net/project/showfiles.php?group_id=114505&amp;package_id=124207">http://sourceforge.net/project/showfiles.php?group_id=114505&amp;package_id=124207</a> (todas las versiones)</p>
<p>Yo os recomiendo que bajeis la r11, aunque sea mas antigua es la version con la que Chui ha compilado sus librerias de SDL y puede que os de problemas usar una version diferente del compilador, mi recomendacion es que bajeis esto:<br />
<a href="http://prdownloads.sourceforge.net/devkitpro/devkitARM_r11-win32.exe?download">http://prdownloads.sourceforge.net/devkitpro/devkitARM_r11-win32.exe?download</a></p>
<p>Aunque siempre teneis la opcion de bajaros los Sources de Chui y compilarlos para vuestra version de GCC:</p>
<p><a href="http://prdownloads.sourceforge.net/sdl-gp32/sdl4gp32-src-28082005.tar.bz2">http://prdownloads.sourceforge.net/sdl-gp32/sdl4gp32-src-28082005.tar.bz2</a></p>
<p>Dicho esto, descomprimimos en el directorio donde hayamos elegido anteriormente, en mi ejemplo <em>C:\DevkitPro</em></p>
<p><img class="centrada" src="http://david.dantoine.org/imagenwww/contenido/tutoriales/tut_extract.png" alt="Imagen del articulo" /></p>
<p>Y si ves que el directorio del &#8220;<em>devkitARM</em>&#8221; tiene un nombre diferente como: &#8220;<em>devkitarm_rXX</em>&#8221; renombralo para que quede como: &#8220;<em>devkitARM</em>&#8220;.</p>
<p>Ahora bajamos de <a href="http://www.mingw.org/download.shtml">http://www.mingw.org/download.shtml</a></p>
<blockquote><p>MinGW-4.1.1.exe<br />
Y<br />
MSYS-1.0.10.exe</p></blockquote>
<p>y los instalamos en nuestro directorio de devkitPRO&#8230;</p>
<p><img class="centrada" src="http://david.dantoine.org/imagenwww/contenido/tutoriales/tut_msys.png" alt="Imagen del articulo" /></p>
<p>Cuando termine la instalacion de Msys, apareceran unas preguntas que nos preguntaran donde tenemos instalado el MinGW, debes decirle la ruta con la barra del &#8220;<em>7</em>&#8221; (mira el ejemplo). Yo por ejemplo tengo: &#8220;<em>C:/devkitpro/MinGW</em>&#8221; <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Añadimos las variables necesarias de entorno de usuario y de sistema:</p>
<p>Os dejo un screenshot de ejemplo y mis rutas, solo amoldadlas a la ruta que vosotros hayais elegido&#8230;</p>
<p>En sistema cambiamos el PATH:</p>
<p><img class="centrada" src="http://david.dantoine.org/imagenwww/contenido/tutoriales/tut_variables.png" alt="Imagen del articulo" /></p>
<p>C:\devkitPro\MinGW\bin;C:\devkitPro\msys\bin;C:\devkitPro\devkitARM\bin</p>
<p>Y en usuario agregamos tres nuevas variables:</p>
<p><img class="centrada" src="http://david.dantoine.org/imagenwww/contenido/tutoriales/tut_newvar.png" alt="Imagen del articulo" /></p>
<p>DEVKITARM || /C/devkitPro/devkitARM<br />
DEVKITPRO || /c/devkitPro<br />
GP32PATH  || /opt</p>
<p>Para saber que tenemos bien instalado el entorno entramos en MSYS y ejecutamos:</p>
<pre>skywalker@SSTT ~
$ arm-elf-gcc --version
arm-elf-gcc.exe (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

skywalker@SSTT ~
$ gcc --version
gcc.exe (GCC) 3.4.2 (mingw-special)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
</pre>
<p>La version 3.4.4 es de la r11, si bajasteis la r15 o una superior supongo que sera algo como: 4.x.y</p>
<p>Bien si tenemos este resultado ya tenemos nuestro entorno listo, sino volved a repetir los pasos anteriores por que algo habeis olvidado <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Antes de continuar necesitamos crear un directorio para alojar nuestros ficheros&#8230;</p>
<p>en MSYS ejecutamos:</p>
<pre>$ mkdir /opt
</pre>
<p>Ahora vamos a instalar el SDL oficial (x86), para compilar aplicaciones en Windows y que nos sirva de testeo; Chui usa la version 1.2.8 y aunque la ultima oficial es la 1.2.9 mejor ceñirnos a la version que usaremos en la gp para evitar posibles problemas <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> </p>
<p><a href="http://www.libsdl.org/release/SDL-devel-1.2.8-mingw32.tar.gz">http://www.libsdl.org/release/SDL-devel-1.2.8-mingw32.tar.gz</a> y lo guardamos en el directorio /opt (lo encontrareis en msys\opt)</p>
<p>y ahora siguiendo un poco el tutorial que tiene chui en su pagina hacemos:</p>
<pre>$ cd /opt/

$ tar xzvf SDL-devel-1.2.8-mingw32.tar.gz

$ cd SDL-1.2.8/

$ mv bin/* /usr/bin/

$ mv include/SDL /mingw/include/

$ mv lib/* /mingw/lib/
</pre>
<p>(ahora estos pasos creo que no son estrictamente necesarios pero los haremos no obstante <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )</p>
<pre>$ mkdir /usr/share

$ mkdir /usr/share/aclocal

$ mv share/aclocal/* /usr/share/aclocal/
</pre>
<p>Ahora renombramos el archivo de configuracion que usa SDL:</p>
<pre>$ cp /usr/bin/i386-mingw32msvc-sdl-config /usr/bin/sdl-config
</pre>
<p>Ahora debemos editar el archivo sdl-config que tenemos en MSYS/BIN</p>
<p>En la primera linea tenemos algo como:</p>
<blockquote><p>prefix=/usr/local/cross-tools/i386-mingw32msvc</p></blockquote>
<p>Pues lo cambiamos a nuestro entorno:</p>
<blockquote><p>prefix=/mingw</p></blockquote>
<p>Guardamos y ejecutamos de nuevo en MSYS:</p>
<pre>$ sdl-config --cflags
</pre>
<p>Que dara como salida:</p>
<pre>-I/mingw/include/SDL -Dmain=SDL_main
</pre>
<p>Por ultimo (paso opcional) vamos a comprobar que el SDL esta correctamente instalado compilando los test, en MSYS ejecutamos:</p>
<pre>$ cd /opt/SDL-1.2.8/test/

$ ./configure
</pre>
<p>y empezara a compilar, si nos diera un problema algo asi como&#8230;</p>
<pre>Checking for sdl-config... no</pre>
<p>Es que no puede encontrar el fichero de configuracion, vuelve a mirar el paso donde lo copiamos mas arriba&#8230;</p>
<pre>checking for SDL - version &gt;= 1.2.7... no
*** The sdl-config script installed by SDL could not be found
*** If SDL was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the SDL_CONFIG environment variable to the
*** full path to sdl-config.
configure: error: *** SDL version 1.2.7 not found!
</pre>
<p>Es que la ruta del fichero sdl-config no es correcta, revisa el fichero de nuevo</p>
<p>Si todo fue correcto el resultado tiene que ser algo como esto:</p>
<pre>checking for sdl-config... /bin/sdl-config
checking for SDL - version &gt;= 1.2.7... yes
checking for OpenGL support... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands

skywalker@SSTT /opt/SDL-1.2.8/test
$
</pre>
<p>Bien, ponemos &#8220;make&#8221; y a esperar un poquito mas <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>Es posible (aunque no deberia) que en uno de estos pasos nos dijera que no puede encontrar la <strong>SDL.dll</strong> (o similar) teneis esa dll en <span class="subraya">msys\bin</span> os la pide por que no puede encontrarla en el sistema, para solucionarlo copiadla en vuestro directorio de &#8220;<em>windows</em>&#8221; o en &#8220;<em>windows\system</em>&#8221; para ser algo mas correctos <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Si todo va bien podriamos ejecutar sin problemas, por ejemplo:</p>
<pre>$ testsprite.exe
$ testgl.exe
$ testalpha.exe
....
</pre>
<p>Listo ya podriamos compilar un programa en windows pero aqui hemos venido a trabajar para nuestra querida GP32, ¡¡Pues vamos a ello!! xD</p>
<p>Bajamos los ficheros necesarios de <a href="http://prdownloads.sourceforge.net/sdl-gp32/?sort_by=date">http://prdownloads.sourceforge.net/sdl-gp32/?sort_by=date</a> y los guardamos en opt</p>
<p><a href="http://prdownloads.sourceforge.net/sdl-gp32/sdl4gp32-precompiled-28082005.tar.bz2">http://prdownloads.sourceforge.net/sdl-gp32/sdl4gp32-precompiled-28082005.tar.bz2</a></p>
<p>Y/O</p>
<p><a href="http://prdownloads.sourceforge.net/sdl-gp32/examples-src-28082005.tar.bz2">http://prdownloads.sourceforge.net/sdl-gp32/examples-src-28082005.tar.bz2</a> (opcional para compilar los ejemplos)</p>
<pre>$ cd /opt

$ tar xjvf sdl4gp32-precompiled-28082005.tar.bz2
</pre>
<p>Y si queremos tambien compilar los ejemplos:</p>
<pre>$ cd

$ mkdir gp32

$ cd gp32

$ tar xjvf /opt/examples-src-28082005.tar.bz2
</pre>
<p>Ahora entramos en cualquier ejemplo y lo compilamos&#8230;</p>
<pre>$ cd fonts/

skywalker@SSTT ~/gp32/fonts
$ make
arm-elf-as   -o crt0x_gp32.o crt0x_gp32.s
arm-elf-gcc -I/opt/include/SDL -I/opt/include -mtune=arm920 -march=armv4t -marm -mno-thumb-interwork -msoft-float -ffast-math -nostdlib -fno-common -ffreestanding -fno-builtin -fno-exceptions -mstructure-size-boundary=8 -fomit-frame-pointer -fstrict-aliasing -O6  -DGFXST -DGP32 -DGP32_LIBC -Wall -Wno-switch -DUSE_FIXED_POINT    -c -o fonts.o fonts.c
arm-elf-ld -Map fonts.map -nostartfiles --script arm-gp32bin.x -L/opt/lib crt0x_gp32.o  fonts.o -lSDL_gfx -lSDL_image -lSDL -lpng -ljpeg -lz -lc -lm -lgcc -o fonts.elf
arm-elf-objcopy -O binary fonts.elf fonts.gxb
b2fxec fonts.gxb fonts.fxe

b2fxeC v0.5d BETA - (c) 2002-4 Jouni `Mr.Spiv` Korhonen

Crunched 54.3% - total 189808 bytes
</pre>
<p>El siguiente paso es añadir las librerias especificas para windows de: SDL_Image, SDL_Mixer, SDL_flic, SFont y SDL_gfx&#8230;</p>
<p>[TEMPORAL RC-2]</p>
<p>Bajad el fichero de mi web: <a href="http://gp32.dantoine.org/">http://gp32.dantoine.org/</a> (Noticia del 8 de Septiembre) o directamente de <a href="http://gp32.dantoine.org/ficheros/gph/SDL_UpdateWin32_rc2.zip">aqui</a></p>
<p>Leed la documentacion y <span class="subraya">reemplazad</span> si actualizais de una version anterior.</p>
<p>TODO: Soporte para GPX2? jejej :p</p>
<p><a href="/contenido/2/"><span class="subraya">Ahora quizas os venga bien saber como generar un proyecto para SDL, pulsa aqui para acceder al tutorial de MAKEFILEs.</span></a></p>
<p>Espero que os sirva, si teneis alguna duda o he cometido algun fallo ya sabeis comentadlo <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>Un Saludo y EOF <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/15">mirko GEEPEEFIX</a> (59.18 kB)</h1>
	<p><cite>Subido: 19-08-2010 [Descargas: 306]</cite></p>
	<p>Hace funcionar el emulador GEEPEE con la versión 0.95 de las librerías de GP32 de MrMirko.

Lee el fichero de ayuda para más información.
(Compatible Windows/Linux)</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/24/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: SDL &#8211; Semi-Ameba MAKEFILE HowTo</title>
		<link>http://david.dantoine.org/articulo/2/</link>
		<comments>http://david.dantoine.org/articulo/2/#comments</comments>
		<pubDate>Thu, 23 Mar 2006 15:38:31 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[gp2x]]></category>
		<category><![CDATA[gph]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/2/#2</guid>
		<description><![CDATA[Bien lo primero que os preguntareis seguramente es: ¿Para que sirve un Makefile? Un Makefile contiene todos los pasos para generar (compilar) nuestro programa. Un programa se compone basicamente de librerias (que son un conjunto de utilidades que facilitan nuestra labor), nuestros ficheros del programa y de como debe &#8220;montar&#8221; nuestros ficheros (optimizaciones). Quiero preparar [...]]]></description>
			<content:encoded><![CDATA[<p>Bien lo primero que os preguntareis seguramente es:</p>
<h2>¿Para que sirve un Makefile?</h2>
<p>Un Makefile contiene todos los pasos para generar (compilar) nuestro programa. Un programa se compone basicamente de librerias (que son un conjunto de utilidades que facilitan nuestra labor), nuestros ficheros del programa y de como debe &#8220;montar&#8221; nuestros ficheros (optimizaciones).</p>
<h2><span id="more-2"></span>Quiero preparar mi proyecto ¿que ficheros necesito para compilarlo?</h2>
<p>Lo mejor que podemos hacer es tomar como base alguno de los ejemplos que tenemos en el directorio de GP32, por ejemplo: <strong>FONTS</strong>.</p>
<p>Lo primero sera crearnos un directorio para nuestro proyecto, que nosotros aqui llamaremos <strong>EJEMPLO</strong>. Luego de <strong>FONTS</strong> vamos a coger prestado: <em>&#8220;Makefile.win32&#8243;, &#8220;Makefile&#8221;, &#8220;crt0x_gp32.s&#8221; y &#8220;arm-gp32bin.x&#8221;</em>.</p>
<p>Ya lo siguiente que necesitariamos seria que codearas un poco y lo guardaras con: <em>&#8220;ejemplo.c&#8221;</em> (o con el nombre que tu quieras).</p>
<h2>¿que necesito conocer para compilar un programa sin problemas?</h2>
<p>Bien una vez tenemos nuestro programa codeado y el directorio preparado, necesitamos configurar nuestros MAKEFILEs para que compilen nuestro programa; ya sea para GP32 o para testearlo en Windows.</p>
<p>Tenemos: <em>&#8220;Makefile&#8221;</em> que son las ordenes/instrucciones necesarias para GP32 y <em>&#8220;Makefile.win32&#8243;</em> que seria para generar la version de Win32 (windows).</p>
<h2>¿Como creo mi Makefile propio?</h2>
<p>Bien para compilar cualquier programa basico solo necesitas modificar 2 secciones de cualquiera de estos dos MAKEFILEs:</p>
<p>Para el <em>Makefile.Win32</em>:</p>
<pre>TARGET	=	fonts.exe 

[...]

.CFILES	=	fonts.c</pre>
<p>En <strong>CFILES</strong> debeis poner todos los ficheros que componen vuestro programa, en el nuestro seria solo &#8220;ejemplo.c&#8221; y en <strong>TARGET</strong> sera el nombre final que tendra el programa.</p>
<p>Quedando algo como:</p>
<pre>TARGET	=	ejemplo.exe 

[...]

.CFILES	=	ejemplo.c</pre>
<p>Para GP32 tenemos alguna distincion pero que es practicamente igual, solo que quizas esta menos comodo&#8230;</p>
<p>Para el <em>Makefile</em> (GP32):</p>
<pre>MAPFILE		=	fonts.map
TARGET_ELF	=	fonts.elf
TARGET_BIN	=	fonts.gxb
TARGET_FXE	=	fonts.fxe

[...]

.CFILES	=	fonts.c</pre>
<p>De aqui tenemos que cambiar el nombre de todos los <strong>TARGETs</strong> de arriba, substituyendo &#8220;font&#8221; por nuestro nombre, nosotros como de costumbre seguiremos con &#8220;ejemplo&#8221;, lo demas es como siempre en <strong>CFILES</strong> poneis todos los &#8220;.c&#8221; que componen vuestro programa <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<h2>¿Como compilo para GP32 o para Win32?</h2>
<p>Se compila para GP32, usando <em>&#8220;make&#8221;</em> y <em>&#8220;make clean&#8221;</em> para limpiar/borrar todo.<br />
Se compila para Win32, usando <em>&#8220;make -f Makefile.Win32&#8243;</em> y <em>&#8220;make -f Makefile.Win32 clean&#8221;</em>, para limpiar/borrar todo.</p>
<p>TODO: Como usar librerias?</p>
<p>Un Saludo y espero que os resuelva algunas dudas, y podais empezar un proyecto básico.</p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/articulo/2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

