<?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; Programación</title>
	<atom:link href="http://david.dantoine.org/tag/programacion/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>A.G.E.S. Live &#8211; Arcade Machine System</title>
		<link>http://david.dantoine.org/destacado/922/</link>
		<comments>http://david.dantoine.org/destacado/922/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 14:07:07 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Destacado]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[ages]]></category>
		<category><![CDATA[arcade]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[emulación]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software libre y Linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Videojuegos]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/?p=922</guid>
		<description><![CDATA[Arcade Genuine Entertainment System (A.G.E.S.) es un pequeño pero potente Live de Ubuntu, enfocado a un uso exclusivo en máquinas arcade. El objetivo es tener un sistema mínimo pero usable que permita jugar fácilmente a emuladores y juegos OpenSource. Características principales Incluye pyRetro un FrontEnd pequeño, muy rápido y de uso sencillo. Ahora funciona con [...]]]></description>
			<content:encoded><![CDATA[<p>Arcade Genuine Entertainment System (A.G.E.S.) es un pequeño pero potente Live de Ubuntu, enfocado a un uso exclusivo en máquinas arcade. El objetivo es tener un sistema mínimo pero usable que permita jugar fácilmente a emuladores y juegos OpenSource.</p>
<div id="attachment_928" class="wp-caption aligncenter" style="width: 310px"><a href="http://david.dantoine.org/wp-content/uploads/2011/11/customise.jpeg"><img class="size-medium wp-image-928" title="A.G.E.S. Pantalla de Arranque" src="http://david.dantoine.org/wp-content/uploads/2011/11/customise-300x203.jpg" alt="" width="300" height="203" /></a><p class="wp-caption-text">A.G.E.S. Pantalla de Arranque</p></div>
<p><strong>Características principales<br />
</strong></p>
<ul>
<li>Incluye <a title="pyRetro, su mayor baza la rápidez y estabilidad del código." href="http://code.google.com/p/pyretro/">pyRetro un FrontEnd</a> pequeño, muy rápido y de uso sencillo.</li>
<li>Ahora funciona con las xorg en lugar de la consola de la vieja versión (0.00.1e), que permitirá nuevos emuladores y aprovecharemos la aceleración OpenGL de las tarjetas modernas.</li>
<li>Mame 0.143 + hiscore y <a href="http://arcade.groovy.org/" target="_blank">groovy patches</a> (incluye switchres para generar los modos nativos como antiguamente se hacía con advmame)</li>
<li>Kernel 2.6.38.8 + ArcadeVGA <a href="http://arcade.groovy.org/" target="_blank">parches de groovy</a> (permite tener desde el arranque 15Khz).</li>
<li>xorg-radeon 6.14.99~git 20110811 + ArcadeVGA ages-fix (permite resoluciones menores de 320&#215;240 en las xorg)</li>
<li>libsdl-1.2 + switchres patch.</li>
<li><a title="OpenPPJoy Actualizado!" href="http://david.dantoine.org/envio/853/">OpenPPJoy 0.4z</a> preconfigurado (Controles Arcade Usando LPT).</li>
<li>Modos Entrelazados totalmente operativos (en la anterior versión desde consola no funcionaban correctamente).</li>
</ul>
<p><em><span id="more-922"></span>Todos los parches usados están en el live en la ruta /opt/ages y /opt/pkg<br />
</em></p>
<p><strong>Por Hacer</strong></p>
<ul>
<li>RC2: Terminar Ages-Setup y añadir updater.</li>
<li>RC3/Final: Añadir soporte de otros emuladores en pyRetro y añadirlos a la release final, mame 0.106?</li>
</ul>
<p><strong>Testeo</strong></p>
<p>Puedes instalarla/probarla desde un pendrive, hay más info en la web de ubuntu: <a href="http://www.ubuntu.com/download/ubuntu/download" target="_blank">http://www.ubuntu.com/download/ubuntu/download</a> (Try it)</p>
<p>Página Oficial/Bugtracker: <a title="Página del Proyecto" href="https://forja.rediris.es/projects/ages/" target="_blank">https://forja.rediris.es/projects/ages</a></p>
<p><strong>RC1a fallos conocidos</strong></p>
<ul>
<li>En modo arcade no aparece la pantalla de inicio, si lo hace a 30Khz (algo falla en plymouth, investigar)</li>
<li>Cuando hay un crash de MAME la pantalla continúa a la resolución del juego (añadir un xrandr al volver?)</li>
</ul>
<p><em>Downloads, Videos y tutoriales sobre A.G.E.S. abajo</em> <img src='http://david.dantoine.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>English</h2>
<p>Arcade Genuine Entertainment System (A.G.E.S.) is a little live system exclusive for arcade cabinets. The goal is to get a minimal but usable system that allows easy playing emulators and opensource videogames.</p>
<div id="attachment_928" class="wp-caption aligncenter" style="width: 310px"><a href="http://david.dantoine.org/wp-content/uploads/2011/11/customise.jpeg"><img class="size-medium wp-image-928" title="A.G.E.S. Boot Screen" src="http://david.dantoine.org/wp-content/uploads/2011/11/customise-300x203.jpg" alt="" width="300" height="203" /></a><p class="wp-caption-text">A.G.E.S. Boot Screen</p></div>
<p><strong>Features</strong></p>
<ul>
<li>Include <a title="pyRetro, su mayor baza la rápidez y estabilidad del código." href="http://code.google.com/p/pyretro/">pyRetro FrontEnd</a> little but easy, stable and quick work.</li>
<li>Using xorg  no more console commands are need it to configure the basic system.</li>
<li>Mame 0.143 + hiscore and <a href="http://arcade.groovy.org/" target="_blank">groovy patches</a> (includes switchres to generate arcade native modes like advanceMAME)</li>
<li>Kernel 2.6.38.8 + ArcadeVGA patches <a href="http://arcade.groovy.org/" target="_blank">from groovy</a> (boot on 15Khz).</li>
<li>xorg-radeon 6.14.99~git 20110811 + ArcadeVGA ages-fix (resolutions bellow than 320&#215;240 on xorg).</li>
<li>libsdl-1.2 + switchres patch.</li>
<li><a title="OpenPPJoy Actualizado!" href="http://david.dantoine.org/envio/853/">OpenPPJoy 0.4z</a> preconfigured (Arcade Joysticks using LPT).</li>
<li>Interlazed modes working with a perfect vsync!</li>
</ul>
<p><em>Patches used are included on live, path /opt/ages and<em> /opt/pkg</em><br />
</em></p>
<p><strong>ToDo</strong></p>
<ul>
<li>RC2: To finish ages-setup and his updater.</li>
<li>RC3/Final: Add support for more emulators on pyRetro Frontend.</li>
</ul>
<p><strong>Tests</strong></p>
<p>You can try AGES from CD or using a USB/Pendrive, more info at ubuntu site: <a href="http://www.ubuntu.com/download/ubuntu/download" target="_blank">http://www.ubuntu.com/download/ubuntu/download</a> (Try it)</p>
<p>Oficial Site/Bugtracker: <a title="Página del Proyecto" href="https://forja.rediris.es/projects/ages/" target="_blank">https://forja.rediris.es/projects/ages</a></p>
<p><strong>RC1a Bugs</strong></p>
<ul>
<li>In Installed system (at 15khz) splash do not appear, working on 30Khz test (something wrong on plymouth?)</li>
<li>When MAME is crashed, screen still on game resolution (add xrandr?)</li>
</ul>
<p><em>Downloads bellow&#8230;</em></p>
<h2>Videos</h2>
<p style="text-align: center;"><object width="425" height="344" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 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/hoehL_EDAuE" /><embed width="425" height="344" type="application/x-shockwave-flash" src="http://www.youtube.com/v/hoehL_EDAuE" /></object></p>
<p style="text-align: center;"><object width="425" height="344" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 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/oGIPW_JlEM8" /><embed width="425" height="344" type="application/x-shockwave-flash" src="http://www.youtube.com/v/oGIPW_JlEM8" /></object></p>
<h2>Tutorial Videos</h2>
<p style="text-align: center;"><object width="425" height="344" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 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/zVsfd2e11vw" /><embed width="425" height="344" type="application/x-shockwave-flash" src="http://www.youtube.com/v/zVsfd2e11vw" /></object></p>
<p style="text-align: center;"><object width="425" height="344" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 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/2vDRHhCaAYQ" /><embed width="425" height="344" type="application/x-shockwave-flash" src="http://www.youtube.com/v/2vDRHhCaAYQ" /></object></p>
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/38">Ages Live 11.04.2 * Remix</a> (868 bytes)</h1>
	<p><cite>Subido: 21-10-2011 [Descargas: 109]</cite></p>
	<p>Ages Live - RC1a</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/destacado/922/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Tutoriales para Dingux (Wiki Ingles)</title>
		<link>http://david.dantoine.org/envio/133/</link>
		<comments>http://david.dantoine.org/envio/133/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 12:28:28 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Envios al blog]]></category>
		<category><![CDATA[dingoo]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/comentario/noticia/81/#81</guid>
		<description><![CDATA[La verdad que cuando empiezas a programar para el linux de Dingoo, ves que usando SDL todo funciona a la primera, pero el problema empieza a surgir cuando pasas de SDL e intentas optimizar las cosas por ti mismo, accediendo a los dispositivos directamente y para eso hay que currarselo mucho y lo peor es [...]]]></description>
			<content:encoded><![CDATA[<p><p>La verdad que cuando empiezas a programar para el linux de Dingoo, ves que usando SDL todo funciona a la primera, pero el problema empieza a surgir cuando pasas de SDL e intentas optimizar las cosas por ti mismo, accediendo a los dispositivos directamente y para eso hay que currarselo mucho y lo peor es que la información es escasa y desperdigada.</p>
<p>Pues aprovechando el puente he creado unos tutoriales a partir de todas las consultas que me han llegado de como inicializar, o diferentes modos de usar el pad, etc&#8230; espero ayuden a cualquier desarrollador que quiera comenzar a crear o portar su software preferido a dingux. </p>
<p>Aviso que no son un paso a paso son más bien consejos y código hecho, pero espero que ayuden igualmente.<br />
<a href="http://www.dingoowiki.com/index.php/Development:Tutorials">http://www.dingoowiki.com/index.php/Development:Tutorials</a></p>
<p>Un Saludo y cuando pueda los pasaré a un tutorial en el blog, por si se pierde algún día el wiki <img src="http://david.dantoine.org/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!"/>
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/envio/133/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dingoo possess you</title>
		<link>http://david.dantoine.org/envio/130/</link>
		<comments>http://david.dantoine.org/envio/130/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 11:47:08 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Envios al blog]]></category>
		<category><![CDATA[dingoo]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software libre y Linux]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/comentario/noticia/78/#78</guid>
		<description><![CDATA[Estoy reventao, la dingoo anoche pudo conmigo, hasta las 6am me tiré trasteando y todavía le queda batería a la condená xD Pero hago una pequeña introducción para el que no conozca esta pequeña joya china. La dingoo, es una consola pequeña, poco más o menos como una gameboy micro; muy potente, overclockeable hasta 400 [...]]]></description>
			<content:encoded><![CDATA[<p><p>Estoy reventao, la dingoo anoche pudo conmigo, hasta las 6am me tiré trasteando y todavía le queda batería a la condená xD<br />
Pero hago una pequeña introducción para el que no conozca esta pequeña joya china.</p>
<p>La <a href="http://es.wikipedia.org/wiki/Dingoo">dingoo</a>, es una consola pequeña, poco más o menos como una gameboy micro; muy potente, <em>overclockeable</em> hasta 400 Meganapios, no usa pilas (BIBA!) sino una batería Li-Ion con 7 horas de autonomía según wikipedia, pero que anoche me fundió a mi y estuve toda la tarde/noche/madrugada con ella y aun tiene 2/3 lineas <img src="http://david.dantoine.org/imagenwww/smileys/sorpresa.gif" alt="Smiley: Malo, malo"/></p>
<p><img class="centrada" src="http://img197.imageshack.us/img197/6474/spd20090903112735b.jpg" alt="Imagen del articulo" /></p>
<p>Lo que más me ha atraído de la consola, no son los números sino el precio (<a href="http://www.dealextreme.com/products.dx/category.609">unos 50 euros</a> &#8211; envío gratis y llegó en un par de semanas), su tamaño, que tenga una radio FM y como no <a href="http://a320.freeforums.org/">la</a> <a href="http://www.gp32spain.com/foros/forumdisplay.php?f=107">gran</a> <a href="http://a320-spain.blogspot.com/">comunidad</a> que se ha creado alrededor de ella con <a href="http://code.google.com/p/dingoo-linux/downloads/list">la salida del Hack</a> (thx Booboo), que permite instalar en ella un Dual Boot Fw-Original/Dingoo-Linux. El cual se realiza en un minutillo y te abre infinitas posibilidades <img src="http://david.dantoine.org/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!"/></p>
<p>La verdad que todo lo que he probado me ha ido bien, los emuladores más <em>pesados</em> como el de SNES (Use un Hack de Mario World que posteó Dj_syto) que en el FW original da tirones, en dingux me iba muy bien. El emulador de spectrum (port directo de GP2x), todo lo que probé también me fue bien, el FBA va perfecto que increíblemente suave va el Street Fighter II, el Cadillacs, los juegos de Neogeo (pobré el WindJammers, PowerSpikes).</p>
<p>Luego otros ports como el Hexen o el Heretic, ya si que petardeaban pero al ver lo bien que va Doom, tengo claro que es un problema más debido a ser un port rápido que a la propia consola, seguro que con más tiempo la cosa se arregla <img src="http://david.dantoine.org/imagenwww/smileys/guino.gif" alt="Smiley: guiño"/></p>
<p>Total, que aun estoy trasteando esta pequeña bestia que sólo le faltaría tener Wifi para ser perfecta (juego online/local tipo NDS sería una pasada), seguro que en los próximos días estaré enseñandoos algo nuevo para ella <img src="http://david.dantoine.org/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!"/></p>
<p>Un Saludo dingeroos!
</p></p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/envio/130/feed/</wfw:commentRss>
		<slash:comments>6</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>libReadINI &#8211; reads your INI files!!</title>
		<link>http://david.dantoine.org/proyecto/13/</link>
		<comments>http://david.dantoine.org/proyecto/13/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 15:59:04 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[gp2x]]></category>
		<category><![CDATA[gp32]]></category>
		<category><![CDATA[gph]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://david.dantoine.org/contenido/13/#13</guid>
		<description><![CDATA[LibReadINI es librería que lee ficheros INI, hecha completamente en C, lo que permite ser usada en proyectos de GP32 sin problemas Aunque evidentemente puede ser usada en cualquier otra plataforma que soporte C, como proyectos para programas en MSDOS u otros pequeños sistemas embebidos. Español See the english version of this text below La [...]]]></description>
			<content:encoded><![CDATA[<p>LibReadINI es librería que lee ficheros INI, hecha completamente en C, lo que permite ser usada en proyectos de GP32 sin problemas <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /> Aunque evidentemente puede ser usada en cualquier otra plataforma que soporte C, como proyectos para programas en MSDOS u otros pequeños sistemas embebidos.</p>
<h2><span id="more-13"></span>Español</h2>
<p><em>See the english version of this text below</em></p>
<p>La librería no tiene dependencias externas de SDL, libxml o similares, como la librería &#8220;oficial&#8221; de lectura de INIs que por ejemplo se usa en GP2X. Y lo mejor pesa muy poquito -unos 6kb- y es bastante rápida, aunque seguro que se podría mejorar, así comparte tus mejoras <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>La librería lee dos tipos de ficheros INI tipo, M$ (los que todos conocemos), o tipo &#8220;conf&#8221; de linux.</p>
<p>Un fichero INI podría ser algo como esto:</p>
<pre>[General]
    name = Junk Config File Test
    version = 2

[Mode]
    StrictMode = yes
    useflags = no
    phase = 5

[OtherSection]
    name = Hello

[AnotherSection]
    name = Bye
</pre>
<h3>Ejemplo Práctico</h3>
<p>Su uso es muy simple:<br />
- Primero abrimos el fichero, que podría ser algo como:</p>
<pre>    if(!cfgOpen("./configs/ejemplo.ini", MS_STYLE))
    {
       //no encontre el fichero
    }else
    {
        //fichero leido!
    }
</pre>
<p>- Una vez abierto, hay que elegir una sección que la librería se encargara de buscar. Para seleccionar una sección seria:</p>
<pre>    if(cfgSelectSection("General"))
    {
        //haz lo que sea...
    }else
    {
        //pues se ve que no la encontro!!! xD
    }
</pre>
<p>- Una vez seleccionada se pueden pedir datos de la misma usando funciones para cadenas, números y booleanos&#8230; unos ejemplos finales:</p>
<pre>        currentVersion = (Uint8) cfgReadInt("version", 1);
</pre>
<p><em>Ex: Lee la variable versión del fichero INI y la almacena en nuestra variable, currentVersion.</em><br />
<em>(El numero del final es un valor por defecto, por si no lo encuentra, etc.)</em></p>
<p>Finalmente cuando hemos terminado de trastearla debemos hacer, simplemente:</p>
<pre>    cfgClose();
</pre>
<p>La ventaja de usar ficheros INI es que puede hacer cambios en las configuraciones de sus programas y ver los cambios sin que se requiera una nueva compilación. Y si luego lo necesita siempre podría encapsular todo el código &#8220;INI&#8221; en un fichero binario&#8230; <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p><strong><em>Para acceder a más ejemplos vea la documentación de la libreria</em></strong></p>
<hr />
<h2>English</h2>
<p>LibReadINI is a library to read INI files, developed in C code.</p>
<p>Now you can read your game/program INI files on your GP32 and other embeddeds platforms that can run a C code!! <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<p>Dont have any external dependencies (SDL, libxml, etc&#8230;)<br />
Little -6kb- and quick code, but if you can make a better code, share your changes <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p><strong><em>Examples and more info on the library`s documentation</em></strong></p>
<hr />
<h2>Is used by&#8230; / usada por&#8230;</h2>
<ul>
<li>Abalon &#8211; The RPG Engine by D_Skywalk (GP32 / GP2x)</li>
<li><a href="http://www.laisladelabandoware.com/">Game Launcher by Monthy (MSDOS)</a></li>
</ul>
<p><em>If you used this lib email me, thanks!</em><br />
<em>Si usas esta librería mándeme un email, gracias!</em><br />
<div class="descargas">
  <h1><a href="http://david.dantoine.org/descargas/10">libReadINI</a> (22.91 kB)</h1>
	<p><cite>Subido: 15-05-2010 [Descargas: 627]</cite></p>
	<p>Primera versión publica para GP2x/Gp32 o su tostadora.<br/>
[b]libReadINI 0.8f[/b]<br/>
<br/>
First Test release for GP2x/Gp32 or your toaster.<br/>
[b]libReadINI 0.8f[/b]<br/>
<br/>
(License changed to LGPL, thanks Uncanny)</p>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/proyecto/13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GP32 / GP2X Community Linux SDK</title>
		<link>http://david.dantoine.org/proyecto/10/</link>
		<comments>http://david.dantoine.org/proyecto/10/#comments</comments>
		<pubDate>Sat, 10 Jun 2006 08:48:19 +0000</pubDate>
		<dc:creator>D_Skywalk</dc:creator>
				<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[Desarrollo]]></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/10/#10</guid>
		<description><![CDATA[Desde este proyecto publicaré todas mis aportaciones para poder disfrutar de una plataforma de desarrollo útil para GPx en Linux y además se darán unos pasos básicos de como instalarlos&#8230; SPANISH English version bellow GP2X Toolchain El entorno de desarrollo para GP2X, tiene como objetivo una compilación que permita ejecutables que ocupen casi cien veces [...]]]></description>
			<content:encoded><![CDATA[<p>Desde este proyecto publicaré todas mis aportaciones para poder disfrutar de una plataforma de desarrollo útil para GPx en Linux y además se darán unos pasos básicos de como instalarlos&#8230;</p>
<h2><span id="more-10"></span>SPANISH</h2>
<p><em>English version bellow</em></p>
<h3>GP2X Toolchain</h3>
<p>El entorno de desarrollo para GP2X, tiene como objetivo una compilación que permita ejecutables que ocupen casi cien veces menos, un simple programa pasa de 500kb a 5kb si evitamos la compilación estática; y el arranque instantáneo, gracias a utilizar las librerías que todos tenemos instaladas dentro de nuestra GP2X.</p>
<p>No obstante, el entorno no obliga a nada y puedes seguir compilando estáticamente sin problemas <img src="/imagenwww/smileys/alegre2.gif" alt="Smiley: contento!" /></p>
<p>La versión actual incluye:</p>
<pre>LINUX HEADERS: 2.4.25-GP2X
BINUTILS: 2.16.1
GLIBC: 2.2.5
GCC: 3.4.6
</pre>
<p><a href="http://ages.forja.rediris.es/lfs/toolchain-linux-like-official-skybuild.tar.bz2">Y puedes bajarla de aquí</a>.<br />
<em>El espacio ha sido cedido por el <a href="http://ages.forja.rediris.es">proyecto AGES</a> en la Forja de REDIRIS.</em></p>
<p>Para instalarla abre una consola como root y entra en la carpeta donde hayas bajado el paquete y escribe:</p>
<pre># tar xvjf toolchain-linux*.tar.bz2
# mv gp2x /opt
</pre>
<p>También puedes bajar el <a href="http://ages.forja.rediris.es/lfs/toolchain-uncanny.tgz">toolchain completo de Uncanny</a> que incluye además sus librerías SDL a parte de los compiladores y utilidades.<br />
<em>El espacio ha sido cedido por el <a href="http://ages.forja.rediris.es">proyecto AGES</a> en la Forja de REDIRIS.</em></p>
<p>Para instalarla abre una consola como root y entra en la carpeta donde hayas bajado el paquete y escribe:</p>
<pre># tar xvjf toolchain-uncanny*.tgz
# mv gp2xdev /usr/local/
</pre>
<h3>GP2X Development SDL Library</h3>
<p>Para esta parte he preparado una librería para escena la escena que llamaremos &#8220;Community&#8221; y la compararé con la oficial de GPH.</p>
<p>Cada una de ellas contiene, a no ser que se indique lo contrario:</p>
<pre>SDL: 1.2.9 (Paeryn) Community - 1.2.7 Oficial
SDL_mixer: 1.2.7 (oficial sin soporte smeg) [WAV, MOD (mikmod), MP3 (smeg), OGG (tremor)]
SDL_image: 1.2.4 [JPG, PNG]
SDL_ttf: 2.0.7
SDL_gfx: 2.0.13 (solo Community)
SDL_sound: 1.0.1 (solo Community) - [WAV, VOC, MP3 (no smeg), MID (timidity), MOD (modplug), OGG (vorbis), RAW, AU, AIFF]
libMAD: 1.15.b
libId3tag: 1.15.b (solo Community)
libUniCodeFont (solo Oficial)
</pre>
<p><em>Tened encuenta que si usáis librerías no incluidas en la consola deberéis compilar estáticamente.</em></p>
<p><a href="http://david.dantoine.org/ficheros/gph/gp2x-libs-community.tar.bz2">La versión de &#8220;community&#8221; la puedes bajar de aquí</a>.<br />
La versión oficial la puedes encontrar en <a href="http://dev.gp2x.com/forum/viewtopic.php?t=159">el foro de desarrolladores de GP2X</a>.</p>
<p>Para instalar la versión de la escena seguid estos pasos como root:</p>
<pre># tar xvjf gp2x-libs-community*.tar.bz2
# cp -R gp2x-libs-community/* /opt/gp2x
</pre>
<h3>GP2X / GP32 IDE</h3>
<p>Desde aquí iré preparando platillas o entornos de trabajo para IDEs disponibles en cualquier distribución Linux.</p>
<p>Esta versión aun no es perfecta y aun gustaría añadirle cosas, pero es perfectamente funcional y si os animáis a ayudarme a perfeccionar el entorno para GP32, quizás en poco tiempo podamos compilar, a un click de distancia, para: GP2X, LINUX y GP32 <img src="/imagenwww/smileys/lol.gif" alt="Smiley: HA HA HA ..." /></p>
<p><a href="http://david.dantoine.org/ficheros/gph/gp2x-templates-rc1a.tar.bz2">Puedes bajar desde aquí la versión 0.5 (RC1a) de las plantillas para GP2X</a>.</p>
<p>Ahora instalaremos la plantilla. Entra como root en la carpeta donde lo descomprimieras y ejecuta:</p>
<pre># tar xvjf gp2x-template*.tar.bz2
</pre>
<p>Ahora sería un buen momento para leer el fichero &#8220;LEEME.TXT&#8221; y así saber las novedades y/o problemas conocidos de las plantillas que te dispones a instalar&#8230; Ahora sigue las instrucciones de instalación de las plantillas <img src="/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!" /></p>
<p><a href="/contenido/9/">Además he preparado un pequeño tutorial para empezar a desarrollar con todo este entorno en linux</a>.</p>
<p>Feliz desarrollo!! <img src="/imagenwww/smileys/sonrisa.gif" alt="Smiley: Muy contento!" /></p>
<hr />
<h2>English</h2>
<h3>GP2X Toolchain</h3>
<p>This development enviroment for has two objetives:<br />
- Reduce weight of your binary files (500kb to 5kb using shared linking)<br />
- More quick load (you use the libs installed on your GP2X)</p>
<p>But this toolchain allow static linking if you want <img src="/imagenwww/smileys/guino.gif" alt="Smiley: guiño" /></p>
<p>This version includes:</p>
<pre>LINUX HEADERS: 2.4.25-GP2X
BINUTILS: 2.16.1
GLIBC: 2.2.5
GCC: 3.4.6
</pre>
<p><a href="http://ages.forja.rediris.es/lfs/toolchain-linux-like-official-skybuild.tar.bz2">You can download here the last toolchain</a>.<br />
<em>Mirror donated by <a href="http://ages.forja.rediris.es">AGES Project</a> on REDIRIS Forge.</em></p>
<p>Install instructions: Login as root and in your download directory do:</p>
<pre># tar xvjf toolchain-linux*.tar.bz2
# mv gp2x /opt
</pre>
<p>Also you can download <a href="http://ages.forja.rediris.es/lfs/toolchain-uncanny.tgz">the Uncanny toolchain</a> with SDL libs included.<br />
<em>Mirror donated by <a href="http://ages.forja.rediris.es">AGES Project</a> on REDIRIS Forge.</em></p>
<p>Install instructions: Login as root and in your download directory do:</p>
<pre># tar xvjf toolchain-uncanny*.tgz
# mv gp2xdev /usr/local/
</pre>
<h3>GP2X Development SDL Library</h3>
<pre>SDL: 1.2.9 (Paeryn) Community - 1.2.7 Oficial
SDL_mixer: 1.2.7 (official without smeg support) [WAV, MOD (mikmod), MP3 (smeg), OGG (tremor)]
SDL_image: 1.2.4 [JPG, PNG]
SDL_ttf: 2.0.7
SDL_gfx: 2.0.13 (only Community)
SDL_sound: 1.0.1 (only Community) - [WAV, VOC, MP3 (no smeg), MID (timidity), MOD (modplug), OGG (vorbis), RAW, AU, AIFF]
libMAD: 1.15.b
libId3tag: 1.15.b (only Community)
libUniCodeFont (only Official)
</pre>
<p><a href="http://david.dantoine.org/ficheros/gph/gp2x-libs-community.tar.bz2">Community Version Download</a>.<br />
You can download the Official libs from <a href="http://dev.gp2x.com/forum/viewtopic.php?t=159">GPH development forum</a>.</p>
<p>Community Install instructions: Login as root and in your download directory do:</p>
<pre># tar xvjf gp2x-libs-community*.tar.bz2
# cp -R gp2x-libs-community/* /opt/gp2x
</pre>
<h3>GP2X / GP32 IDE</h3>
<p><a href="http://david.dantoine.org/ficheros/gph/gp2x-templates-rc1a.tar.bz2">You can download the templates for KDevelop version 0.5 (RC1a) here</a>.</p>
<p>Install instructions: Login as root and in your download directory do:</p>
<pre># tar xvjf gp2x-template*.tar.bz2
</pre>
<p>Now its the time to see README.TXT for install and use instructions <img src="/imagenwww/smileys/xaxi.gif" alt="Smiley: guay!" /></p>
<p>Happy Codding!!</p>
]]></content:encoded>
			<wfw:commentRss>http://david.dantoine.org/proyecto/10/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>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>

