<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11160914</id><updated>2011-09-08T02:44:22.628-07:00</updated><category term='3D'/><category term='código'/><title type='text'>Historias de un coder</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11160914.post-4539663231435092414</id><published>2010-03-22T16:32:00.000-07:00</published><updated>2010-03-22T16:44:28.467-07:00</updated><title type='text'>Breakpoint 2010</title><content type='html'>He empezado una prod para la breakpoint'2010. De momento, ni una linea de código (tengo cosas de la universidad por terminar antes), pero he escrito todo el guión, junto con los garabatos más feos hechos nunca por ningún ser vivo. La idea me gusta bastante, y la coherencia entre escenas parece bastante decente. De hecho, si puedo, no voy a tener partes separadas...&lt;br /&gt;&lt;br /&gt;Ya veremos como avanza el tema. Como no tengo ningún pantallazo que poner, pongo una de una versión previa la &lt;a href="http://www.pouet.net/prod.php?which=25605"&gt;katedra&lt;/a&gt; y un palo rojo. Y me quedo tan ancho.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/S6gAYP8c4ZI/AAAAAAAAARU/5A9a0ph1lIo/s1600-h/cutredral.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 151px;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/S6gAYP8c4ZI/AAAAAAAAARU/5A9a0ph1lIo/s200/cutredral.png" alt="" id="BLOGGER_PHOTO_ID_5451607765528928658" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7WaI1gEi66M/S6gAYnHza5I/AAAAAAAAARc/cy9hzmpQiJ8/s1600-h/new_4k.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_7WaI1gEi66M/S6gAYnHza5I/AAAAAAAAARc/cy9hzmpQiJ8/s200/new_4k.jpg" alt="" id="BLOGGER_PHOTO_ID_5451607771750558610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-4539663231435092414?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/4539663231435092414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=4539663231435092414' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/4539663231435092414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/4539663231435092414'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2010/03/breakpoint-2010.html' title='Breakpoint 2010'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7WaI1gEi66M/S6gAYP8c4ZI/AAAAAAAAARU/5A9a0ph1lIo/s72-c/cutredral.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-3716112446338893457</id><published>2010-03-13T13:28:00.001-08:00</published><updated>2010-03-13T13:30:47.634-08:00</updated><title type='text'>Vídeo de la Platipus/Incognita en progreso</title><content type='html'>&lt;div style="text-align: justify;"&gt;Como comentaba en la otra entrada, aquí esta el vídeo:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hU4_dz3b9G8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/hU4_dz3b9G8&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;Como comento en la descripción, hay muchos bugs por corregir, pero ya es algo mejor que nada :) Oh, y funciona en Windows Vista sin problemas :D&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-3716112446338893457?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/3716112446338893457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=3716112446338893457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/3716112446338893457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/3716112446338893457'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2010/03/video-de-la-platipusincognita-en.html' title='Vídeo de la Platipus/Incognita en progreso'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-3656920351862098327</id><published>2010-03-13T07:08:00.001-08:00</published><updated>2010-03-13T08:42:28.010-08:00</updated><title type='text'>Obsesiones estupidas</title><content type='html'>&lt;div style="text-align: justify;"&gt;Un buen amigo me comentó un día que envidiaba mi fuerza de voluntad, ya que me meto en mil proyectos, en los cuales acostumbro a invertir bastante tiempo. Mi respuesta fue: "No es que tenga mucha fuerza de voluntad, simplemente soy muy obsesivo". Al igual que aprendiendo, programo sobretodo para luchar contra la sensación de que no puedo hacer algo. Si algo sale mal, lo intento de mil maneras diferentes hasta que sale bien.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;Mi ultima obsesión, como casi siempre, salió en un momento de aburrimiento: tenía ganas de ver la &lt;a href="http://www.pouet.net/prod.php?which=542"&gt;Platipus&lt;/a&gt; de &lt;a href="http://www.pouet.net/groups.php?which=246"&gt;Incognita&lt;/a&gt;. Hacía mucho que no la veía, pero recordaba que en Windows XP ya daba muchos problemas, a saber en Windows Vista. Nada, que la pruebo, y no muestra las primeras escenas, las siguientes las muestra mal, y se ve todo como una mierda. Una persona inteligente, habría encendido el PC de al lado, con Windows XP, pero yo no: porque hacerlo fácil cuando puedes hacerlo difícil, lento y complicado? La solución era clara, buscar el código fuente de la demo, y parchearlo para que funcione en Windows Vista. Es mas, rehacer el renderer y pasarlo a OpenGL.&lt;br /&gt;&lt;br /&gt;A pesar que ha dado &lt;span style="font-weight: bold;"&gt;muchos &lt;/span&gt;problemas, ya que tenía parte del código del sistema de demos (porque porté la &lt;a href="http://shashclp.blogspot.com/2005/12/port-de-la-mayhem-windows-12.html"&gt;Mayhem a Windows&lt;/a&gt;), este no acababa de cuadrar, ademas de tener que hacer ingeniería inversa del formato de datos (había cambiado ligeramente), tener que implementar el renderer de OpenGL sin saber como va exactamente como va el Direct3D7, y otras cosillas (corrupción de memoria por coger la memoria de un heap, y liberarlo en otro), ahora ya esta al 50%. Hay muchos problemas aún, pero la mayoría son del renderer, lo cual es &lt;span style="font-style: italic;"&gt;solucionable&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Lo que mas me preocupa, es que el renderer recibe polígonos pre-transformados, con lo cual falla la corrección de perspectiva, y parece que se este pintando con el software renderer de la &lt;a href="http://www.pouet.net/prod.php?which=274"&gt;Overdose&lt;/a&gt; (&lt;span style="font-weight: bold;"&gt;zas, en toda la boca&lt;/span&gt;). A ver si lo termino, y pido permiso a los Incognita para hacerlo publico. Unas capturas y un vídeo, todo muy temporal, así que disculpad los errores :P&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/S5uv6lx1E-I/AAAAAAAAAQ8/9TJfAteV8QM/s1600-h/Platipus_001.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/S5uv6lx1E-I/AAAAAAAAAQ8/9TJfAteV8QM/s200/Platipus_001.jpg" alt="" id="BLOGGER_PHOTO_ID_5448141595343131618" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/S5uv63CEVOI/AAAAAAAAARE/7aBcYPG6n7U/s1600-h/Platipus_002.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/S5uv63CEVOI/AAAAAAAAARE/7aBcYPG6n7U/s200/Platipus_002.jpg" alt="" id="BLOGGER_PHOTO_ID_5448141599974642914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/S5uv7BOXLeI/AAAAAAAAARM/yibExuQTp64/s1600-h/Platipus_003.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/S5uv7BOXLeI/AAAAAAAAARM/yibExuQTp64/s200/Platipus_003.jpg" alt="" id="BLOGGER_PHOTO_ID_5448141602710564322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;PS: El vídeo lo añadiré en otro post, que la conexión desde donde escribo esto es algo inestable.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-3656920351862098327?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/3656920351862098327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=3656920351862098327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/3656920351862098327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/3656920351862098327'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2010/03/obsesiones-estupidas.html' title='Obsesiones estupidas'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7WaI1gEi66M/S5uv6lx1E-I/AAAAAAAAAQ8/9TJfAteV8QM/s72-c/Platipus_001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-209216426424866665</id><published>2009-09-24T09:34:00.000-07:00</published><updated>2009-10-06T11:24:35.776-07:00</updated><title type='text'>Batallitas</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hoy toca una de batallitas, estaba viendo demos viejas para recordar tiempos pasados, y he decidido empezar un post sobre tonterías de prods antiguas de Collapse que relativamente poca gente sabe. Allá vamos:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=7986"&gt;Here 2 Stay&lt;/a&gt;: Esta prod fue un desastre en todos los sentidos. La poca experiencia, la falta de tiempo y demasiadas ganas de sacar algo, hicieron que mucho trabajo artístico se desechara o se usara mal. A día de hoy aun me sabe mal haberla terminado tal como se terminó. Antes de el &lt;span style="font-style: italic;"&gt;apretón&lt;/span&gt; pre-deadline, quedamos en mi piso de Barcelona, cosa que por la época hacíamos mucho para preparar prods. Madgoblin recordará seguramente cierta anécdota del fin de semana anterior a la party :P&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=8413"&gt;Xmastro 2002&lt;/a&gt;: Después de la &lt;span style="font-style: italic;"&gt;desastrosa &lt;/span&gt;primera prod, esta segunda, una producción navideña, se hizo con la idea de hacer algo sencillo que quedara bonito. Creo que funcionó muy bien, y los objetivos se acabaron cumpliendo. A pesar que acabé odiando la canción de tanto escucharla, y que la nieve era un hack del copón (si os fijáis, se pinta en 2D, y para simular que no es así, se van añadiendo copos a las texturas de la escena 3D).&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=9603"&gt;Let yourself go&lt;/a&gt;: Posiblemente una de las demos mas divertidas de montar. La mitad la programé en el tren en viajes Reus-Barcelona (la parte del túnel la hice integra en un viaje de hora y media). Al llegar a la party tenía 1 o 2 efectos de forma definitiva, y, como llegué a la party con Dar, hice todos los efectos configurables con teclas, y él los retocó hasta estar a su gusto. Algunos los toqueteé mientras él iba mandando. Fue MUY divertido, en cuestión de 5 horas, hicimos unas 6 partes nuevas. Luego él monto los layers, y montar la demo fue algo mas caótico, porque probaba un nuevo sistema que había &lt;span style="font-style: italic;"&gt;diseñado&lt;/span&gt; para la prod. Estuve 3 días sin dormir, y cuando presenté la demo, me quedé dormido delante del PC. Dar me despertó para la proyección. Recuerdo que estaba muy dormido y casi no vi nada, pero recuerdo los aplausos a media demo y al final de esta: luego nos fuimos de fiesta toda la noche por Durango, cerrando todos los bares y discotecas que encontramos :P&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=10986"&gt;Da Cube 4&lt;/a&gt;: Con esta prod empieza la época oscura de Collapse. Parcialmente porque empezamos a hacer las cosas un poco separados. Quizás debería haberme centrado en hacer más las cosas que pedían los artistas y menos lo que me daba la santa gana... La prod salió debido al "pique" con bp/fuzzion para que alguien más se dedicara a 4k. De hecho, ya me había dejado su dropper de &lt;span style="font-style: italic;"&gt;.com&lt;/span&gt;, así que tenía la parte más complicada (para un principiante) solucionada. La verdad, es que no conté a nadie que estaba preparando la prod, y el primero en verla fue bp: los dos organizábamos la sección de proyección/compos de la bcnparty, y andaba haciendo pruebas a ultima hora y la vio. Aún recuerdo su comentario, el primero sobre la prod: "Sin la música esto no tiene gracia" :P Al final creo que gustó bastante, algún día haré la final (de hecho, una versión mucho mas definitiva lleva años cogiendo polvo en mi HD), si algún músico se anima a hacer versión de la música.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=11307"&gt;HappyNewYearMo 2004&lt;/a&gt;: Esta demo se hizo con el motor de b52. Mi participación se limitó a modelar el jarrón que sale en la prod, y una tool rápida para limpiar los ficheros ASE que se usaban en la prod. No me impliqué mucho en el desarrollo, así que poco puedo contar de ella :_(&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=11922"&gt;Never Forget&lt;/a&gt;: Esta prod la empecé después de cortar con la que entonces era mi novia. De hecho, si leéis el scroller final, hay una referencia escueta al tema. La idea general era reproducir el diseño que shock hizo para la que tenía que ser nuestra primera producción: aun tenía los bocetos que hizo, así que me dediqué a hacer escenas con el raytracer lo más parecidas posibles a estos. A nivel de código, me lancé a portar el raytracer a openGL, para que la interpolación de los quads resultantes del raytracing se hiciera por hardware, aunque la implementación dejaba MUCHO que desear. Otro detalle curioso es que toda la sincro la hice en una noche, mientras me fumaba un paquete y medio de tabaco: no tenía implementado ningún sistema para saltar al final de la producción, asi que cada vez que retocaba alguna cámara o sincronización del final tenía que verla entera. Fue una noche muy larga, pero divertida. También a resaltar que no dije nada a nadie hasta que tuve la prod al 80% (faltaban las texturas, pulir el track, y acabarla): quedé con los Collapse de Barcelona, nos fuimos a comer por el Born, y cuando terminamos de comer, en la misma mesa, abrí el portátil y les enseñé la prod. Me parece que nunca he visto a shock tan sorprendido como ese día :)&lt;/li&gt;&lt;/ul&gt;Si gusta, sigo explicando historias de las prods, que aun quedan las de 4k, con historias mucho más surrealistas :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-209216426424866665?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/209216426424866665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=209216426424866665' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/209216426424866665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/209216426424866665'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2009/09/batallitas.html' title='Batallitas'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-5710062373875282614</id><published>2009-08-06T14:33:00.000-07:00</published><updated>2009-08-09T14:45:51.352-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><title type='text'>Puños fuera!</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hace unos días estuve en casa de un amigo que acaba de tener un hijo (técnicamente su pareja, pero ya se entiende). Hacía casi dos años que no nos veíamos, aunque hace mucho que nos conocemos: al irme de Barcelona, habíamos perdido el contacto. Fui a su piso, conocí a su hijo (que entonces hacía 7 días exactos que había nacido) y me invitaron a comer. Su madre preparó unas de las paellas mas espectaculares que puedo recordar. Compartieron lo que tenían conmigo, de forma generosa.&lt;br /&gt;&lt;br /&gt;Cuando era pequeño, solíamos ir, con mis padres y los compañeros del club excursionista, bastante de camping. Allí, casi siempre que comíamos se hacia en comunidad, se compartía la comida con todos, y nadie abusaba comiéndoselo todo ni nada parecido.&lt;br /&gt;&lt;br /&gt;Y porque cuento todo este rollo personal, cuando os importa un pepino? Pues porque al final de este post hay el código de la ultima prod que hemos hecho slack y yo. He limpiado un poco el código, y ahora debería requerir menos GPU, pudiendo funcionar en aquellas tarjetas que no soporten GLSL 1.2 (o OpenGL 2.1 completo, si lo preferís). Ademas, he reducido el tamaño de la prod a la vez que he añadido soporte decente para resoluciones diferentes y para esconder el ratón.&lt;br /&gt;&lt;br /&gt;No he añadido contenido ni he corregido el que había, prefiero trabajar en nuevas prods que no invertir tiempo en esta: únicamente sacamos versión final porque ha sido un trabajo derivado de limpiar el código para publicarlo. De hecho, al poco de publicar este post estaré empezando la nueva prod. Ademas he publicado versión final de la 4k:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_final.zip"&gt;otopoto / Collapse &amp;amp; Gatitos (versión &lt;/a&gt;&lt;a href="http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_final.zip"&gt;final&lt;/a&gt;&lt;a href="http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_final.zip"&gt;)&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://collapse.untergrund.net/downs/clp&amp;amp;gtt_otopoto_src.zip"&gt;otopoto / Collapse &amp;amp; Gatitos (código fuente)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Preguntas, insultos y correcciones serán bienvenidas.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-5710062373875282614?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/5710062373875282614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=5710062373875282614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/5710062373875282614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/5710062373875282614'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2009/08/punos-fuera.html' title='Puños fuera!'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-250633790645907261</id><published>2009-07-26T14:48:00.000-07:00</published><updated>2009-08-09T14:45:36.767-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><title type='text'>Nueva 4k</title><content type='html'>&lt;div style="text-align: justify;"&gt;Pues eso, hemos terminado una nueva 4k. Las criticas no han sido buenas, y quedamos segundos. Ademas, para añadirle insulto, es la 4k a la que posiblemente he dedicado mas tiempo. Vaya, un fiasco, no? No creáis. Voy a contar porqué.&lt;br /&gt;&lt;br /&gt;Hace 2 años exactos, decidí dejar de producir. Acababa de volver de la Euskal, habíamos ganado la competición de 4k, y yo solo podía sentir frustración por la producción con la que habíamos ganado: mucho material reutilizado y hecha con desgana. El hecho que ganara solo añadió insulto al asunto. Ya entonces consideraba seriamente que no producía al nivel que podía hacerlo, al menos en lo que respecta a técnica. Hacer cosas abstractas esta bien una temporada, pero después de unos años...&lt;br /&gt;&lt;br /&gt;Decidí dejar de producir hasta que no pusiera todo mi empeño en una producción. Hace algo menos de un año empecé con la versión final de la &lt;a href="http://pouet.net/prod.php?which=9603"&gt;Let yourself go&lt;/a&gt;, ya que creía que merecía un poco de amor antes de olvidarla para siempre. La idea era pillar carrerilla en algo orientado a la demoscene, y luego empezar algo nuevo. Siempre con la idea de volver a producir con ganas, y dar lo que pudiera, al menos a nivel técnico.&lt;br /&gt;&lt;br /&gt;Y aunque el resultado de la &lt;a href="http://www.pouet.net/prod.php?which=53554"&gt;otopoto&lt;/a&gt; no sea el que tenía en la cabeza, y siendo consciente que había muchísimas cosas por pulir, puedo levantar la cabeza alto y sentirme orgulloso de haber trabajado en ella a consciencia. Obviamente, el resultado artístico deja que desear, pero técnicamente tiene detalles interesantes. En la próxima tengo que recordar centrarme mas en la parte artística, como hacía con las producciones mas abstractas.&lt;br /&gt;&lt;br /&gt;Solo para notar como las prisas finales hicieron recortar en calidad, comparad los 2 shots siguientes. El primero es el de la prod a una semana de la party, el segundo de la versión presentada en la party:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSepQkAI/AAAAAAAAAQM/0Gyroc42Pug/s1600-h/Isle_GOOD.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 112px;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSepQkAI/AAAAAAAAAQM/0Gyroc42Pug/s200/Isle_GOOD.png" alt="" id="BLOGGER_PHOTO_ID_5363523590871355394" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSOzpTwI/AAAAAAAAAQE/5PIPrSCaWxA/s1600-h/Isle_BAD.png"&gt; &lt;img style="cursor: pointer; width: 200px; height: 112px;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSOzpTwI/AAAAAAAAAQE/5PIPrSCaWxA/s200/Isle_BAD.png" alt="" id="BLOGGER_PHOTO_ID_5363523586619952898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;No mucho mas que comentar al respecto, si alguien quiere mas detalles, que comente y le responderé lo mejor que sepa.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A parte, en esta euskal también di una charla sobre 4k. Hubo cosas que funcionaron muy bien y otras que no. A parte, estaba algo nervioso, pues la sala estaba MUY llena (50-70 personas) y no había ensayado la charla tan a fondo como hubiera querido. Tenéis, de momento, el audio y las diapositivas usadas &lt;a href="http://conferencias.euskadigital.net/index.php?id=190"&gt;aquí&lt;/a&gt;. A final de verano saldrá el vídeo de la charla, cuando esté disponible ya lo comentaré por aquí.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-250633790645907261?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/250633790645907261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=250633790645907261' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/250633790645907261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/250633790645907261'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2009/07/nueva-4k.html' title='Nueva 4k'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7WaI1gEi66M/Sm8QSepQkAI/AAAAAAAAAQM/0Gyroc42Pug/s72-c/Isle_GOOD.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-7375988922320294846</id><published>2009-07-03T13:09:00.000-07:00</published><updated>2009-07-03T14:55:53.482-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><title type='text'>Hoy, snippets cortos de código</title><content type='html'>&lt;link rel="stylesheet" type="text/css" href="http://shash.clp.googlepages.com/csharp.css"&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;div style="text-align: justify;"&gt;Viendo como OpenGL va a deprecar parte del API (cosa que me parece bien, a ver si conseguimos mejores drivers!), y la costumbre de programar cosas de mas que tenemos algunos, he creído que alguien le seria útil. Funcionan 100% igual que las funciones de la API (misma matriz, etc). Empezaré por el mas trivial (la implementación es directa respecto a la documentación), crear una matriz de proyección ortográfica, con los mismos parámetros que &lt;a href="http://www.opengl.org/sdk/docs/man/xhtml/glOrtho.xml"&gt;gluOrtho&lt;/a&gt;:&lt;br /&gt;&lt;/div&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;CMatrix4x4 CreateOrtographicProj (&lt;span class="kwrd"&gt;float&lt;/span&gt; left,   &lt;span class="kwrd"&gt;float&lt;/span&gt; right, &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                                  &lt;span class="kwrd"&gt;float&lt;/span&gt; bottom, &lt;span class="kwrd"&gt;float&lt;/span&gt; top, &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;                                  &lt;span class="kwrd"&gt;float&lt;/span&gt; Near,   &lt;span class="kwrd"&gt;float&lt;/span&gt; zFar)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; CMatrix4x4 result;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt;  tx = -(right+left)/(right-left),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        ty = -(top+bottom)/(top-bottom),&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        tz = -(zFar+zNear)/(zFar-zNear);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt; result.Set (2.f/(right-left), 0.f,              0.f,               tx,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;             0.f,              2.f/(top-bottom), 0.f,               ty,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;             0.f,              0.f,             -2.f/(zFar-zNear),  tz,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;             0.f,              0.f,              0.f,               1.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  15:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Como apunte, en todos los snippets de codigo usan ciertas clases matemáticas sencillas que uso, en esta la clase matriz cuadrada de 4 elementos. Si hay alguna duda sobre esto, comentadlo y expando los detalles sobre ellas. A efectos prácticos, podéis suponer que CMatrix4x4::Set (...) es equivalente a ir asignando a un array de floats de 16 elementos: el primer parámetro seria el primer elemento del array, el segundo parámetro el segundo elemento, etc.&lt;br /&gt;&lt;br /&gt;En segundo lugar, proyección en perspectiva, equivalente a &lt;a href="http://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml"&gt;gluPerspective&lt;/a&gt;:&lt;br /&gt;&lt;/div&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;CMatrix4x4 CreatePerspectiveProj (&lt;span class="kwrd"&gt;float&lt;/span&gt; fovy,  &lt;span class="kwrd"&gt;float&lt;/span&gt; aspect, &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                                  &lt;span class="kwrd"&gt;float&lt;/span&gt; zNear, &lt;span class="kwrd"&gt;float&lt;/span&gt; zFar)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt; f    = tanf (((fovy/180.f)*(&lt;span class="kwrd"&gt;float&lt;/span&gt;)M_PI) / 2.0f);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt; div  = (zNear-zFar);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt; f   = IsFloatEqual(f, 0.f) ? FLT_MAX : 1.f / f;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; div = IsFloatEqual(div, 0.f) ? FLT_MAX : 1.f / div;&lt;/pre&gt;&lt;span class="lnum"&gt;  &lt;/span&gt;&lt;span class="lnum"&gt; 9:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt; CMatrix4x4 result;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt; result.Set (f / aspect, 0.f,   0.f,              0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;             0.f,          f,   0.f,              0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;             0.f,        0.f,   (zFar+zNear)*div, (2.f*zFar*zNear)*div,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;             0.f,        0.f,  -1.f,              0.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; result;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A comentar, la macro IsFloatEqual solo compara dos números en coma flotante: el método normalmente mas recomendado (pero menos rápido, obviamente), es restarlos, coger el valor absoluto, y comparar si es menor que cierto &lt;span style="font-style: italic;"&gt;epsilon&lt;/span&gt;. Esto se hace así debido a que por precisión de los numeros en coma flotante, comparar con numeros exactos (por ejemplo, haciendo float == 0.0) es desaconsejable.&lt;br /&gt;&lt;br /&gt;Finalmente, el que tiene mas curro, el &lt;a href="http://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml"&gt;gluLookAt&lt;/a&gt; (sobretodo, porque la documentación obvia ciertos detalles):&lt;/div&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;CMatrix4x4 CreateLookAt (&lt;span class="kwrd"&gt;const&lt;/span&gt; CVector3 &amp;amp;eye,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;                         &lt;span class="kwrd"&gt;const&lt;/span&gt; CVector3 &amp;amp;center, &lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;                         &lt;span class="kwrd"&gt;const&lt;/span&gt; CVector3 &amp;amp;up)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; CVector3 f      (center-eye);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt; CVector3 upLocal(up);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   7:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; f.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt; upLocal.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt; CVector3 s = f ^ upLocal;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt; CVector3 u = s ^ f;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  13:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt; s.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt; u.Normalize();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt; CMatrix4x4 result, translate;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt; result.Set ( s.x,  s.y,  s.z, 0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;              u.x,  u.y,  u.z, 0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;             -f.x, -f.y, -f.z, 0.f,&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;              0.f,  0.f,  0.f, 1.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  23:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt; translate.SetTranslation (eye*-1.f);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  25:&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt; &lt;span class="kwrd"&gt;return&lt;/span&gt; result*translate;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A ver, destacar de este snippet, que el &lt;span style="font-weight: bold;"&gt;operador^&lt;/span&gt; de la clase CVector3 equivale a hacer un producto vectorial (cross product), que el método &lt;span style="font-weight: bold;"&gt;Normalize&lt;/span&gt; hace lo inferible del nombre (es decir, normaliza el vector usando su modulo), y que el método &lt;span style="font-weight: bold;"&gt;SetTranslation &lt;/span&gt;de la clase CMatrix4x4, simplemente asigna a una traslación a la matriz (en este caso, al ser una matriz identidad, simplemente creamos una matriz de traslación).&lt;br /&gt;&lt;br /&gt;No he explicado a fondo que hace cada parte, para eso tenéis los links a la documentación de OpenGL, y si hay mas preguntas mejor dejad comentarios.&lt;br /&gt;&lt;br /&gt;La licencia de este código es la obvia y clásica &lt;span style="font-style: italic;"&gt;haced lo que os dé la gana con él&lt;/span&gt;. Si encontrais algun bug, comentarlo y aprendemos todos de ello :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-7375988922320294846?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/7375988922320294846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=7375988922320294846' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/7375988922320294846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/7375988922320294846'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2009/07/hoy-snippets-cortos-de-codigo.html' title='Hoy, snippets cortos de código'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-6310465408453012048</id><published>2009-06-16T08:30:00.000-07:00</published><updated>2009-06-16T11:53:49.743-07:00</updated><title type='text'>Como se creó la Extasik / Collapse &amp; Necrostudios</title><content type='html'>Iba a hacer un post técnico sobre mi demo-engine, comentando tonterías que estoy haciendo, y las mil paridas que estoy aprendiendo a base de leer más libros de C++ (y darme cuenta que soy un pardillo de C++), pero como no estoy en casa, he preferido contar como surgió la que es, posiblemente, la producción de la que estoy mas orgulloso: la &lt;span style="font-style: italic;"&gt;extasik&lt;/span&gt;.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Primero empecemos con el contexto de la producción en si:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table style="width: 299px; height: 157px;" bgcolor="#000000" border="0" cellpadding="2" cellspacing="1"&gt;&lt;tbody&gt;&lt;tr bgcolor="#446688"&gt;&lt;td style="text-align: left;" nowrap="nowrap"&gt;&lt;a href="http://www.pouet.net/prod.php?which=25605"&gt;katedra&lt;/a&gt;&lt;/td&gt;  &lt;td style="text-align: left;"&gt;July 2006&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#557799"&gt; &lt;td style="text-align: left;" nowrap="nowrap"&gt;&lt;a href="http://www.pouet.net/prod.php?which=24459"&gt;e-fill&lt;/a&gt;&lt;/td&gt;  &lt;td style="text-align: left;"&gt;April 2006&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#446688"&gt; &lt;td style="text-align: left;" nowrap="nowrap"&gt;&lt;a href="http://www.pouet.net/prod.php?which=24382"&gt;extasik&lt;/a&gt;&lt;/td&gt;  &lt;td style="text-align: left;"&gt;March 2006&lt;br /&gt;&lt;/td&gt;                             &lt;/tr&gt;&lt;tr bgcolor="#557799"&gt; &lt;td style="text-align: left;" nowrap="nowrap"&gt;&lt;a href="http://www.pouet.net/prod.php?which=23863"&gt;ifparty invitation'06&lt;/a&gt;&lt;/td&gt;  &lt;td style="text-align: left;"&gt;February 2006&lt;br /&gt;&lt;/td&gt;                             &lt;/tr&gt;&lt;tr bgcolor="#446688"&gt; &lt;td style="text-align: left;" nowrap="nowrap"&gt;&lt;a href="http://www.pouet.net/prod.php?which=21133"&gt;xmo06&lt;/a&gt;&lt;/td&gt;  &lt;td style="text-align: left;"&gt;January 2006&lt;br /&gt;&lt;/td&gt;                             &lt;/tr&gt;&lt;tr bgcolor="#557799"&gt; &lt;td style="text-align: left;" nowrap="nowrap"&gt;&lt;a href="http://www.pouet.net/prod.php?which=20994"&gt;siahtu&lt;/a&gt;&lt;/td&gt;  &lt;td style="text-align: left;"&gt;December 2005&lt;br /&gt;&lt;/td&gt;             &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;(Ripeado vilmente de pouet)&lt;br /&gt;&lt;br /&gt;Como veis, fue una época realmente muy productiva, prácticamente a producción por mes, de las cuales la única que considero flojilla es la siahtu (a pesar que tenia mucho trabajo detrás, no quedo demasiado bien). En medio de todas estas producciones, esta la &lt;span style="font-style: italic;"&gt;extasik&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;En febrero de 2006, la gente de &lt;a href="http://www.bixo.org/"&gt;Bixo&lt;/a&gt; me invitaron a la Plugparty. Por ser demoscener no tenia que pagar entrada, pero insistieron que tenía que producir. La Plugparty era una party pequeña, con un publico mayoritariamente gamer, que se hacia en un pueblo tranquilo cerca de Lleida. Como al mes siguiente había la, también ahora, desaparecida &lt;a href="http://www.pouet.net/party.php?which=491&amp;amp;when=2006"&gt;ifparty&lt;/a&gt;, que organizaba, entre otros, &lt;a style="font-weight: bold;" href="http://slack.codemaniacs.com/blog/"&gt;slack&lt;/a&gt;, decidí matar dos pájaros de un tiro y hacer una invitación para tal party (diría, si mal no recuerdo, que fue &lt;span style="font-weight: bold;"&gt;slack&lt;/span&gt; quien me instó a hacerlo). Al final la prod dio la temática de la party, y quedó muy resultona. Lo importante es que fue posiblemente la primera colaboración seria con &lt;span style="font-weight: bold;"&gt;slack&lt;/span&gt; (no tendré en cuenta la &lt;a href="http://www.pouet.net/prod.php?which=20210"&gt;grevox&lt;/a&gt;, ejem), aprendiendo a usar el sinte para sincronizar, tener en cuenta cuanto ocupa y que podía hacer.&lt;br /&gt;&lt;br /&gt;Al mes siguiente había la ifparty, a la cual bajaba con los Bixo, y también tenia que llevar prod. Para cambiar mi sistema habitual de rellenar hasta llegar a 4k, esta vez decidí programar todo lo que quería en la prod, y luego sufrir bajándola hasta los 4k. Las inspiraciones principales para la prod fueron &lt;a href="http://www.pouet.net/prod.php?which=7766"&gt;The S&lt;/a&gt; (que es la obvia) y la menos obvia, &lt;a href="http://www.pouet.net/prod.php?which=30458"&gt;VHS&lt;/a&gt;. Quería una prod usando mucha sincro, rápida, y con 4 partes diferentes mínimo. Además quería postprods y algo de decoración a parte de lo mostrado en pantalla: evitar fondos negros y/o efectos "limpios", etc.&lt;br /&gt;&lt;br /&gt;La prod la empecé hacia el día 6 de marzo, es decir, 2 semanas antes de la deadline. Durante la primera semana y media, se hizo toda la parte grafica, sin optimizar nada (a parte de ciertas obviedades), y sin música ni sincronismo. De hecho, como curiosidad, la prod la probaba con la música de la&lt;span style="font-style: italic;"&gt; invitación de la ifparty&lt;/span&gt;, y no fue hasta la misma ifparty cuando &lt;span style="font-weight: bold;"&gt;slack&lt;/span&gt; hizo el track para la 4k. Entonces, el martes antes de la party, decidí que ya tenia todo el contenido que deseaba, y que era el momento de empezar a optimizar. Probé de comprimirla con &lt;a href="http://crinkler.net/"&gt;crinkler&lt;/a&gt;, para saber cuanto me había pasado de 4k: la prod ocupaba algo menos de 6kb, si no recuerdo mal.&lt;br /&gt;&lt;br /&gt;Bajar el primer kilobyte y medio fue un trabajo bastante lineal y divertido: eliminar redundancias, añadir secciones, quitar burradas, etc. Estuve 3 días casi sin dormir optimizando la producción, de hecho, la noche antes de ir hacia la party (diría que fuimos para allá el sábado por la mañana) no dormí nada. Justo cuando me venían a recoger en coche, la prod bajaba hasta los 4096 bytes (recuerdo estar bastante contento de tener la prod sin sincro ni música, pero cerca de algo presentable).&lt;br /&gt;&lt;br /&gt;Acabar la producción en la party fue posiblemente la parte más divertida. Por una parte, me había comprometido con &lt;span style="font-weight: bold;"&gt;slack&lt;/span&gt; a dar una charla sobre las 4k que había/habíamos hecho hasta ese día (que funcionó bastante bien para ser una charla orientada a explicar tonterías internas de cada prod), y aun tenia que conseguir una canción de &lt;span style="font-weight: bold;"&gt;slack&lt;/span&gt;, sincronizar y pulir la prod: todo eso en unas 12 horas. Estuve optimizando mas cosas de la prod hasta el medio día, entonces me fui a comer con bastante gente de la party a un chino, mientras el pobre &lt;span style="font-weight: bold;"&gt;slack&lt;/span&gt; se quedaba en la party haciendo la música de la prod (igualmente se tenia que quedar, al ser organizador).&lt;br /&gt;&lt;br /&gt;Cuando volvimos del chino, &lt;span style="font-weight: bold;"&gt;slack &lt;/span&gt;tenia un esbozo bastante final de la música, así que podía empezar a sincronizar y optimizar. Gran parte de la tarde se basó en hacer la sincro con la música y optimizar alguna cosa, aunque no salirse de 4k en este punto fue gracias a &lt;span style="font-weight: bold;"&gt;slack&lt;/span&gt;, pues le dejé muy poco espacio para la música. A media tarde dí la charla (explicar cosas sobre la charla es una historia para otro día), para después seguir con la prod.&lt;br /&gt;&lt;br /&gt;Quizás la parte mas remarcable fue terminar la prod en si mismo. Como muchas veces pasa, cuando teníamos la prod terminada y por debajo de 4k, la probamos en la compo machine (que traía una ATI, como no) y el texto se veía mal. Corregí el bug, pero al corregirlo la prod volvió a subir: estábamos al límite de los 4kb, y al hacer cualquier cambio, la compresión de la prod no era tan eficiente y subía bastante (10 bytes, aproximadamente). El principal problema a esas horas es que la deadline era inminente. Por suerte, slack estaba muy liado montando las compos, y yo estaba al final de la sala de la ifparty. Lo que hice fue ir dándole largas (nos pasamos mucho rato pegando gritos de punta a punta), porque sabía que no se levantaría para recorrer los 20 metros, estando hasta arriba de responsabilidades. Así conseguí casi una hora más para terminar la prod, escribir el nfo, el diz, hacer screenshots, etc. Truquillos de party-coding que no viene mal saber :P&lt;br /&gt;&lt;br /&gt;Finalmente, unas cuantas curiosidades:&lt;br /&gt;&lt;br /&gt;- La llamamos &lt;span style="font-style: italic;"&gt;extasik &lt;/span&gt;por la &lt;a href="http://www.youtube.com/watch?hl=en&amp;amp;v=hC2YXmKdrSM"&gt;canción de Chimo Bayo&lt;/a&gt;. Luego le siguió la &lt;a href="http://www.pouet.net/prod.php?which=31336"&gt;extanok&lt;/a&gt;.&lt;br /&gt;- La escena final fue en principio una sala con columnas y un objeto central (hay un screenshot al final del post). Al final se cambió. La escena que sé usó al final, se referenciaba entre &lt;span style="font-weight: bold;"&gt;slack &lt;/span&gt;y yo como la &lt;span style="font-style: italic;"&gt;escena de las tetas&lt;/span&gt;&lt;span&gt;. Est&lt;/span&gt;&lt;span style="font-style: italic;"&gt;o&lt;/span&gt;&lt;span&gt; es una referencia oscura a la &lt;span style="font-style: italic;"&gt;invitación de la ifparty06&lt;/span&gt;, donde la primera se referenciaba como la &lt;span style="font-style: italic;"&gt;escena de las p*****&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;- El texto que sale en las dos partes finales eran, en principio, el nombre completo de los dos grupos. Por motivos de tamaño se recortó.&lt;br /&gt;- La mayoría de la prod la monté a 320x240, porque mi pobre portátil se moría con los postprods.&lt;br /&gt;- Todos los objetos en la prod son cilindros. El sistema para pintarlo hereda de la grevox, la siahtu y una prod que nunca terminé.&lt;br /&gt;- El fondo de las dos primeras escenas se reutilizó para la &lt;a href="http://www.pouet.net/prod.php?which=24459"&gt;e-fill&lt;/a&gt;, pero sin rotarlo como hace en esta.&lt;br /&gt;- Gran parte del código gráfico de la extasik se reutilizó para la extanok, por ejemplo la sala y el sistema de dibujado de cilindros.&lt;br /&gt;- &lt;a href="http://www.pouet.net/prod.php?which=25605"&gt;Unos meses más tarde&lt;/a&gt;, &lt;span style="font-style: italic;"&gt;descubrimos &lt;/span&gt;el truquillo de truncar floats. La optimización en la extasik es principalmente refactorización de código.&lt;br /&gt;&lt;br /&gt;Y unos screenshots de la prod a medio montar. Las imágenes no están desaturadas, el esquema de color lo metí cuando acababa la parte gráfica:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/Sjfj1kbLWBI/AAAAAAAAAPM/LRSAoCA6cao/s1600-h/4k_if06_05.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/Sjfj1kbLWBI/AAAAAAAAAPM/LRSAoCA6cao/s320/4k_if06_05.jpg" alt="" id="BLOGGER_PHOTO_ID_5347993591975991314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/Sjfj14WyrxI/AAAAAAAAAPU/ExgPfwTAyIA/s1600-h/4k_if06_10.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/Sjfj14WyrxI/AAAAAAAAAPU/ExgPfwTAyIA/s320/4k_if06_10.jpg" alt="" id="BLOGGER_PHOTO_ID_5347993597326307090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/Sjfj1avObWI/AAAAAAAAAPE/D6_Q2Bp8jYY/s1600-h/4k_if06_13.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 241px;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/Sjfj1avObWI/AAAAAAAAAPE/D6_Q2Bp8jYY/s320/4k_if06_13.jpg" alt="" id="BLOGGER_PHOTO_ID_5347993589375724898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/Sjfj2FG_WrI/AAAAAAAAAPc/QeUHLWGwAtM/s1600-h/4k_if06_18.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 239px;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/Sjfj2FG_WrI/AAAAAAAAAPc/QeUHLWGwAtM/s320/4k_if06_18.jpg" alt="" id="BLOGGER_PHOTO_ID_5347993600749689522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-6310465408453012048?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/6310465408453012048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=6310465408453012048' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/6310465408453012048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/6310465408453012048'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2009/06/como-se-creo-la-extasik-collapse.html' title='Como se creó la Extasik / Collapse &amp; Necrostudios'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7WaI1gEi66M/Sjfj1kbLWBI/AAAAAAAAAPM/LRSAoCA6cao/s72-c/4k_if06_05.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-4769347532429683476</id><published>2009-06-06T11:27:00.000-07:00</published><updated>2009-06-06T17:52:58.554-07:00</updated><title type='text'>Cronica de la captura de una demo</title><content type='html'>Hace tiempo, en un ataque de los que nos da a algunos coders, porté varias demos de MS-DOS a Windows:&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;- Un pack que llamé internamente &lt;a href="http://escena.org/forums/topic/815/1/#post-5476"&gt;"hat-trick" de Anaconda&lt;/a&gt; (Eunectex, Requiem y fix de la Insane Elements)&lt;br /&gt;&lt;/div&gt;- La &lt;a href="http://escena.org/forums/topic/897/1/#post-5558"&gt;Fulcrum&lt;/a&gt;&lt;a href="http://escena.org/forums/topic/897/1/#post-5558"&gt;/Matrix&lt;/a&gt; (esta la porte en una noche non-stop) y la &lt;a href="http://escena.org/forums/topic/905/1/#post-5566"&gt;G-Cube&lt;/a&gt;&lt;br /&gt;- La &lt;a href="http://escena.org/forums/topic/877/1/#post-5538"&gt;Mayhem/Incognita&lt;/a&gt; (sobre esta hasta hay un pseudo-diario de desarrollo, &lt;a href="http://shashclp.blogspot.com/2005/12/port-de-la-mayhem-windows-12.html"&gt;parte 1&lt;/a&gt; y &lt;a href="http://shashclp.blogspot.com/2006/02/port-de-la-mayhem-windows-22.html"&gt;parte 2&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Y dejando de lado al capitán obvio comentado lo que todos sabéis, siempre me quedó cierta espina clavada por no haber podido portar la ultima demo de Anaconda para MS-DOS, la &lt;a href="http://www.pouet.net/prod.php?which=103"&gt;Myth Of Orion&lt;/a&gt;: pedí el código algunos coders de Anaconda, pero no lo pudieron localizar.  Tenia muchas ganas de portarla, en parte, porque así habría portado todas sus demos a Windows, permitiéndome verlas en cuanto me apeteciera. Pero el motivo mas importante es algo más largo de explicar.&lt;br /&gt;&lt;br /&gt;Hacia 1997 mi padre compró un Pentium MMX a 200Mhz. Al cabo de aproximadamente 4 años ese PC pasó a ser mio, y le metí una Voodoo Banshee. Aunque la mayoría de demos que quería ver iban bien, habia una en particular que iba a framerates bajos (menos de 10fps): la Myth Of Orion. Aunque la vi muchas veces, habia ciertas partes que se arrastraban sobremanera, y siempre quise poder verla a una velocidad decente.&lt;br /&gt;&lt;br /&gt;Hacia 2002, me compré un portatil nuevo, pero traía instalado WindowsXP, y el soporte de MS-DOS de este deja bastante que desear. Asi pues, aparqué el tema de verla bien, y seguí viendola en mi viejo equipo.&lt;br /&gt;&lt;br /&gt;Unos dos años mas tarde, &lt;a href="http://www.dosbox.com/"&gt;Dosbox&lt;/a&gt; empezó a tener soporte para VESA. Probé los primeros parches que lo traían (diría que a través de un &lt;span style="font-style: italic;"&gt;nighty build&lt;/span&gt;), y por fin pude ver la demo. Y digo ver, porque la velocidad no era muy aceptable. Ademas, se colgaba hacia el segundo minuto (sigue haciéndolo hoy en día). He ido probando cada nueva versión que sale de Dosbox, pero todas se siguen colgando en el mismo sitio, así que seguía sin poder verla bien. Por la misma época tenía también instalado el &lt;a href="http://es.wikipedia.org/wiki/Microsoft_Virtual_PC"&gt;VirtualPC&lt;/a&gt; para los demoshows de las bcnparty, pero no conseguía que funcionara bien tampoco.&lt;br /&gt;&lt;br /&gt;Avancemos hasta finales de 2008, principios de 2009. Por motivos que no vienen al caso, he tenido que usar &lt;a href="http://www.virtualbox.org/"&gt;Virtualbox&lt;/a&gt;, sobretodo para tener un Linux a mano. Hace una semana, debido a que ya no necesitaba usar mas Linux, borré el disco duro virtual donde estaba alojado, y pensé que podría probar de instalar un MS-DOS, a ver si podía ejecutar las demos antiguas que hace tanto tiempo que no veo. Mirando las &lt;span style="font-style: italic;"&gt;features&lt;/span&gt; de la aplicación, vi que soportaba una SoundBlaster16 virtual, lo cual me permitiría ver la demo bien.&lt;br /&gt;&lt;br /&gt;Una vez instalado MS-DOS en la maquina virtual, configurado el sonido, memoria, etc, para que funcione, consigo ejecutar la demo. Todo ilusionado, me dispongo a verla, y al cabo de 2 minutos se cuelga en el mismo sitio que con Dosbox!&lt;br /&gt;&lt;br /&gt;Ya sin ideas, decido mirar si &lt;a href="http://bochs.sourceforge.net/"&gt;Bochs&lt;/a&gt; o &lt;a href="http://www.nongnu.org/qemu/"&gt;Qemu&lt;/a&gt; ofrecen algo que no ofrece VirtualBox. Primero probé Bochs, porque encontré un tutorial sobre como instalar MS-DOS 6.22 en él. Luego de una hora de instalar el SO y configurar lo necesario, me decido a ejecutar la demo. El problema es que es un emulador y no un virtualizador (como Dosbox, vaya), con lo cual la velocidad es menos que aceptable. Igualmente, si funciona, al menos podré verla a 1fps: siempre que no se cuelgue en el sitio habitual.&lt;br /&gt;&lt;br /&gt;Espero los dos minutos de rigor, viendo la demo a ritmo de tortuga, y para mi sorpresa, no se cuelga! Entonces había dos problemas a superar, el segundo a consecuencia de la solución del primero:&lt;br /&gt;&lt;br /&gt;1) La demo va a 1fps, y me pierdo mucho contenido (la demo funciona como si la ejecutara sobre un Pentium 75 aproximadamente). Bochs permite configurar el numero de ciclos por segundo, con lo cual puedo ver la demo como si tuviera un Pentium 500, pero cada actualización  de pantalla tarda 4-5 segundos.&lt;br /&gt;&lt;br /&gt;2) Bochs no permite capturar la salida por pantalla a vídeo o similares.&lt;br /&gt;&lt;br /&gt;El caso ideal seria poder grabar la salida usando en método detallado en el punto 1, con algún sistema. Lo primero que se me ocurrió fue usar &lt;a href="http://www.fraps.com/"&gt;Fraps&lt;/a&gt; o &lt;a href="http://www.hyperionics.com/hc/"&gt;Hypercam&lt;/a&gt;. El primero no me sirvió, porque Bochs no usa OpenGL para la salida a pantalla. El segundo captura cualquier ventana, pero presenta otro problema: no sabía si podría tener en cuenta que solo capturara cuando la ventana se actualizara.&lt;br /&gt;&lt;br /&gt;Así que hice lo que cualquier coder pocafeinoso haría: me bajé el código fuente del Bochs, y lo modifiqué para que guardara cuando un fotograma es diferente del anterior dibujado. Para simplificar el logger, hice que grabará en raw a disco. Luego solo es cuestión de dejar al Bochs guardando toda la demo (tarda del orden de 2 horas, aproximadamente), y luego montar esas imágenes capturadas.&lt;br /&gt;&lt;br /&gt;El siguiente problema es que no sé mucho de edición de vídeo, así que en vez de buscar un software capaz de crear un vídeo en base a las capturas, ademas de tener que convertir los raw a un formato reconocible por ese software, decidí crearme mi propio conversor. Ademas, como no sabía el framerate exacto al que había captura, metí soporte para ajustar la velocidad del vídeo (y en un futuro no muy lejano, para hacer interpolación temporal, aunque sea &lt;span style="font-style: italic;"&gt;chapucero&lt;/span&gt;). Después de haber creado el vídeo, solo es necesario unirlo con la música de la demo, y tenemos una captura de la demo: fácil fácil!&lt;br /&gt;&lt;br /&gt;Las ventajas de este sistema, es que puedo capturar cualquier cosa que funcione sobre Bochs, que no son pocas. Las desventajas es que es un sistema &lt;span style="font-weight: bold;"&gt;muy&lt;/span&gt; lento y que la sincronización se tiene que hacer a mano (ademas, dista bastante de ser perfecta).&lt;br /&gt;&lt;br /&gt;Y esto es todo: espero que ver a que extremos puedo llegar, anime a algunos grupos a rebuscar su código viejuno para que haga ports como dios manda, en vez de tener que hacer chapuzas para poder ver sus demos!&lt;br /&gt;&lt;br /&gt;Unos screenshots, y cierro, que esto se ha alargado demasiado:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7WaI1gEi66M/SisOkTLNLqI/AAAAAAAAAOU/ArO8NS34aMk/s1600-h/MOO-1.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_7WaI1gEi66M/SisOkTLNLqI/AAAAAAAAAOU/ArO8NS34aMk/s400/MOO-1.png" alt="" id="BLOGGER_PHOTO_ID_5344381399590579874" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SisOku9H8XI/AAAAAAAAAOc/iy59A7wRJ_U/s1600-h/MOO-2.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SisOku9H8XI/AAAAAAAAAOc/iy59A7wRJ_U/s400/MOO-2.png" alt="" id="BLOGGER_PHOTO_ID_5344381407047709042" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SisOk-81JeI/AAAAAAAAAOs/ItVHlLFKQGA/s1600-h/MOO-4.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SisOk-81JeI/AAAAAAAAAOs/ItVHlLFKQGA/s400/MOO-4.png" alt="" id="BLOGGER_PHOTO_ID_5344381411341444578" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SisOk_nigII/AAAAAAAAAOk/t8Wbh77wXxE/s1600-h/MOO-3.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SisOk_nigII/AAAAAAAAAOk/t8Wbh77wXxE/s400/MOO-3.png" alt="" id="BLOGGER_PHOTO_ID_5344381411520577666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7WaI1gEi66M/SisOkTLNLqI/AAAAAAAAAOU/ArO8NS34aMk/s1600-h/MOO-1.png"&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Y un vídeo montado a prisa, disculpad la calidad general, pero tengo que recapturar todo de nuevo: entendedlo como una muestra previa :)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-4beb0dec3369446b" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v23.nonxt4.googlevideo.com/videoplayback?id%3D4beb0dec3369446b%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330038874%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1D1EE2C352ACF5018189B69AC726FB1D77F63049.63D60A6551C15ADBBB700EBB950FBC236D0EFEE%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D4beb0dec3369446b%26offsetms%3D5000%26itag%3Dw160%26sigh%3D3ZTWwVuFLZHvtX5aDu6ZnH1Tvho&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v23.nonxt4.googlevideo.com/videoplayback?id%3D4beb0dec3369446b%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330038874%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D1D1EE2C352ACF5018189B69AC726FB1D77F63049.63D60A6551C15ADBBB700EBB950FBC236D0EFEE%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D4beb0dec3369446b%26offsetms%3D5000%26itag%3Dw160%26sigh%3D3ZTWwVuFLZHvtX5aDu6ZnH1Tvho&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;PS: Como scenesp no está funcional, he subido el vídeo con el sistema de google, y se ha zampado la calidad para desayunar.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-4769347532429683476?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=4beb0dec3369446b&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/4769347532429683476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=4769347532429683476' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/4769347532429683476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/4769347532429683476'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2009/06/cronica-de-la-captura-de-una-demo.html' title='Cronica de la captura de una demo'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7WaI1gEi66M/SisOkTLNLqI/AAAAAAAAAOU/ArO8NS34aMk/s72-c/MOO-1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-4638853842602351888</id><published>2009-04-21T14:29:00.000-07:00</published><updated>2009-07-20T02:57:23.962-07:00</updated><title type='text'>Kings Tools</title><content type='html'>&lt;div style="text-align: justify;"&gt;Solo una entrada corta para recomendar este add-in para VisualStudio. La usé mucho en VStudio 2003, pero no funcionaba en VStudio 2008, así que me quedé sin ella, y sin documentar cómodamente en doxygen ni cambiar entre .cpp y .h rápidamente (si, sé que lo puedes hacer con macros "facilmente", pero a esta herramienta ya estoy acostumbrado).&lt;br /&gt;&lt;br /&gt;Como el código esta disponible, alguien que responde al nick/nombre de Green Chilli, dejó en los comentarios la &lt;a href="http://www.codeproject.com/KB/macros/kingstools.aspx"&gt;pagina&lt;/a&gt; de codeproject (donde se publicó el original para 2003),  el codigo modificado para que funcionara sobre 2008: el problema es que esta programado en VBasic, y no lo tenia instalado... HASTA HOY!&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Así que os pongo el código modificado, junto con el instalador ya compilado (así no tenéis que instalar la bazofia de VBasic), para facilitar el trabajo a la gente:&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;&lt;a href="http://shash.clp.googlepages.com/KingsTools_2k8_src.zip"&gt;Kings Tools 2008 src&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://shash.clp.googlepages.com/KingsTools_2k8_Setup.msi"&gt;Kings Tools 2008 installer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Repito que yo solo he compilado el codigo, no soy el autor de la modificación para que funcione en 2008 :)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-4638853842602351888?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/4638853842602351888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=4638853842602351888' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/4638853842602351888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/4638853842602351888'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2009/04/kings-tools.html' title='Kings Tools'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-3900075311617286960</id><published>2008-10-15T12:59:00.000-07:00</published><updated>2009-05-15T03:59:02.930-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><title type='text'>Volviendo a empezar, poco a poco</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hacia mucho que no escribía por aquí. El ultimo post quería decir que vuelvo a verme motivado para producir demos. Aunque muchos ya lo saben, me tomé un descanso porque noté que no producía lo mejor que podía, y no quería seguir creando productos sub-par. No creo que todas mis producciones sean mierda, ni de lejos, pero la ultima 4k, la forma de hacerla (la casi nula intención por crear algo de calidad), fue la razón que decidiera parar.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Durante el parón (y antes de él) me he visto envuelto en bastantes proyectos, algunos de ellos públicos, muchos de ellos privados, que solo han visto las pocas personas en las que confío para mostrar mis trabajos en progreso. Por eso, hoy quiero hacer un poco de resumen, con mas pantallazos que texto. Al fin y al cabo, nadie lee los blogs, para que escribir :P&lt;br /&gt;&lt;br /&gt;Me gustaría, pero no sé si conseguiré, que hubiera preguntas respecto a los proyectos. Estoy muy abierto a dar toda la información posible y ayuda. No soy muy partidario de dar código a espuertas, pues creo que coger el vicio de copiar código por sistema es malo. Aprender a hacer algo basado en una explicación concisa me parece mucho mas didáctico. Así pues, preguntad, y intentaré dar todo mi (limitado) conocimiento.&lt;br /&gt;&lt;br /&gt;Nada más, empezaré con los visores de formatos de geometría de juegos. Basicamente son cargadores del formato que usan ciertos juegos, tanto sea en sus modelos como en los mapas en si. Luego hay unas cuantas pantallas de mis colaboraciones en emuladores. Por cierto, los shots no están en orden cronológico, sino quedaba algo desestructurado, si alguien quiere saberlo lo comento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Quake 1 / Quake 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hhWQMJI/AAAAAAAAAME/JhSACOGs3II/s1600-h/quake1_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hhWQMJI/AAAAAAAAAME/JhSACOGs3II/s320/quake1_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257522132284354706" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hwtz9YI/AAAAAAAAAMM/i314hxG9uSM/s1600-h/quake2_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hwtz9YI/AAAAAAAAAMM/i314hxG9uSM/s320/quake2_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257522136409699714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Quake 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/SPb56lNC3zI/AAAAAAAAAMc/Ql0vUPn_qUo/s1600-h/q3_viewer_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/SPb56lNC3zI/AAAAAAAAAMc/Ql0vUPn_qUo/s320/q3_viewer_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257664399816187698" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SPb56w0u2nI/AAAAAAAAAMk/Ggl1kX3UCc4/s1600-h/q3_viewer_02.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SPb56w0u2nI/AAAAAAAAAMk/Ggl1kX3UCc4/s320/q3_viewer_02.jpg" alt="" id="BLOGGER_PHOTO_ID_5257664402935437938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Portal / Half life 2&lt;/span&gt;&lt;br /&gt;(mismo engine porque es el mismo formato)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3e4jp7qI/AAAAAAAAAK8/er9afP6wlms/s1600-h/hl2_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3e4jp7qI/AAAAAAAAAK8/er9afP6wlms/s320/hl2_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520987463347874" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3ezd_ToI/AAAAAAAAALE/tyGlKmUgP9A/s1600-h/hl2_02.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3ezd_ToI/AAAAAAAAALE/tyGlKmUgP9A/s320/hl2_02.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520986097405570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Visor de modelos del Half Life 2&lt;/span&gt;&lt;br /&gt;(lo programé a parte y luego lo integré en el engine de arriba)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3fOMoo3I/AAAAAAAAALM/ppWxUTNHMZg/s1600-h/hl2_mdl_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ3fOMoo3I/AAAAAAAAALM/ppWxUTNHMZg/s320/hl2_mdl_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520993272374130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Visor de modelos del Doom 3&lt;/span&gt;&lt;br /&gt;(también tengo hecho un cargador de mapas, pero no tengo shots a mano)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7WaI1gEi66M/SPb5hIjXpDI/AAAAAAAAAMU/kllR_N9IvC8/s1600-h/doom3_mdl_00.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_7WaI1gEi66M/SPb5hIjXpDI/AAAAAAAAAMU/kllR_N9IvC8/s320/doom3_mdl_00.jpg" alt="" id="BLOGGER_PHOTO_ID_5257663962628465714" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Visor de modelos del Crysis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3Dvn_E5I/AAAAAAAAAKE/eUjiu08uCq0/s1600-h/crysis_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3Dvn_E5I/AAAAAAAAAKE/eUjiu08uCq0/s320/crysis_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520521209123730" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3D62609I/AAAAAAAAAKM/JE-H8rlvvF4/s1600-h/crysis_02.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3D62609I/AAAAAAAAAKM/JE-H8rlvvF4/s320/crysis_02.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520524224549842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Port del mi motor de Quake 3 a DS&lt;/span&gt;&lt;br /&gt;(corriendo sobre emulador, también corre en el hardware real)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ4ElS1KkI/AAAAAAAAALc/7BRL_yVuSq0/s1600-h/q3_ds_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ4ElS1KkI/AAAAAAAAALc/7BRL_yVuSq0/s320/q3_ds_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257521635127536194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Port del mi motor de Quake 3 a PSP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ4E-deKAI/AAAAAAAAALk/xQ0ALPriy-A/s1600-h/q3_psp_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ4E-deKAI/AAAAAAAAALk/xQ0ALPriy-A/s320/q3_psp_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257521641883052034" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4E2N_mmI/AAAAAAAAALs/tAajjRaYZgc/s1600-h/q3_psp_02.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4E2N_mmI/AAAAAAAAALs/tAajjRaYZgc/s320/q3_psp_02.jpg" alt="" id="BLOGGER_PHOTO_ID_5257521639670651490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Desmume (emulador de DS)&lt;/span&gt;&lt;br /&gt;(Colaboración, principalmente, trabajo en el core 3D, pero también en la CPU/2D/optimización)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3EK_JfQI/AAAAAAAAAKc/dfLKgJRbaQ8/s1600-h/desmume_02.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3EK_JfQI/AAAAAAAAAKc/dfLKgJRbaQ8/s320/desmume_02.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520528554032386" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3eavw44I/AAAAAAAAAKs/mpIDVjCAo6s/s1600-h/desmume_04.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SPZ3eavw44I/AAAAAAAAAKs/mpIDVjCAo6s/s320/desmume_04.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520979461071746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ3ETPSS7I/AAAAAAAAAKk/6f6gKZtpb-M/s1600-h/desmume_03.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_7WaI1gEi66M/SPZ3ETPSS7I/AAAAAAAAAKk/6f6gKZtpb-M/s320/desmume_03.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520530769202098" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3EJue_JI/AAAAAAAAAKU/Vy3Y0vNs4mM/s1600-h/desmume_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ3EJue_JI/AAAAAAAAAKU/Vy3Y0vNs4mM/s320/desmume_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257520528215702674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;jpcsp (emulador de PSP)&lt;/span&gt;&lt;br /&gt;(Colaboración, principalmente trabajo en el core 3D)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ4EhmqUlI/AAAAAAAAALU/o-yV6lr8sJ4/s1600-h/jpcsp_01.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/SPZ4EhmqUlI/AAAAAAAAALU/o-yV6lr8sJ4/s320/jpcsp_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5257521634136969810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Y esto es todo lo "importante" a mencionar. Contando que estuve activo en la demoscene hasta Julio del 2007, tampoco está tan mal. Por supuesto, podría haber hecho más, pero mucho tiempo se dedicó al emulador de DS, cuyo desarrollo fue muy complejo.&lt;br /&gt;&lt;br /&gt;A parte, a ratos voy trabajando, como todo coder gráfico, en un engine 3D, del cual me guardaré shots para otra ocasión.&lt;br /&gt;&lt;br /&gt;Nada más que contar ni mostrar por hoy!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-3900075311617286960?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/3900075311617286960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=3900075311617286960' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/3900075311617286960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/3900075311617286960'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2008/10/volviendo-empezar-poco-poco.html' title='Volviendo a empezar, poco a poco'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7WaI1gEi66M/SPZ4hhWQMJI/AAAAAAAAAME/JhSACOGs3II/s72-c/quake1_01.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-8088576377702558107</id><published>2008-07-16T12:25:00.000-07:00</published><updated>2008-07-16T13:17:58.165-07:00</updated><title type='text'>Se acabaron las gilipolleces</title><content type='html'>&lt;div style="text-align: justify;"&gt;Estoy volviendo. Lo intento con fuerzas, y espero que lo merezca. Es el momento de volver a levantar la cabeza, y dejar a un lado las ideas de una solución sencilla. Si no es hoy, mañana. En breve, lo entenderéis.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-8088576377702558107?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/8088576377702558107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=8088576377702558107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/8088576377702558107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/8088576377702558107'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2008/07/se-acabaron-las-gilipolleces.html' title='Se acabaron las gilipolleces'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-115049100888985862</id><published>2006-06-16T13:33:00.000-07:00</published><updated>2008-07-16T12:38:43.298-07:00</updated><title type='text'>Dejando de molar</title><content type='html'>&lt;div style="text-align: justify;"&gt;Como siempre, hace ya tiempo desde la ultima entrada...&lt;br /&gt;&lt;br /&gt;Despues de la excursión de 3 dias con mi padre, se ve que volví nuevo, y me dediqué a programar bastante orientado a la scene. En cuestion de 45 dias, hice tres 4k y dos ports a windows. Un mes despues, terminé un tercer port, y desde entonces poca cosa he hecho. Para referencia, las 4k son, en orden cronologico:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.pouet.net/prod.php?which=23863"&gt;Ifparty'06 invitation / Collapse + Necrostudios&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.pouet.net/prod.php?which=24382"&gt;Extasik / Collapse + Necrostudios&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.pouet.net/prod.php?which=24459"&gt;e-fill / Collapse + Necrostudios&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y los ports:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://collapse.scenesp.org/downs/clp&amp;amp;mtx_fulcrum_w32.zip"&gt;Fulcrum / Matrix&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://collapse.scenesp.org/downs/clp&amp;amp;mtx_gcube_w32.zip"&gt;G-Cube / Matrix&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://collapse.scenesp.org/downs/clp&amp;amp;mtx_luxo_w32.zip"&gt;Luxo / Matrix&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estoy especialmente contento con las dos primeras 4k (ifparty'06 invit y la extasik), la primera por el diseño general (que despues se convirtió en la imagen de la party :O) y la otra por ser tecnicamente bastante más potente que cualquiera que hubiera hecho hasta la fecha. Sobre los ports, el de la Fulcrum fué genial hacerlo, siempre me encantó.&lt;br /&gt;&lt;br /&gt;Ahora mismo, estoy algo off de la demoscene. Los motivos son varios, y no creo necesario discutirlo aqui, pero simplemente necesito centrarme en otras cosas más interesantes que hackear graficos dentro de una 4k. Almenos ese es mi punto de vista ahora mismo.&lt;br /&gt;&lt;br /&gt;Como no quiero (ni puedo) dejar de programar en casa, estoy liado con un engine 3D, centrado en soportar ciertas cosas que hace meses que queria probar. Siento ser parco en detalles, pero de momento poco hay que contar.&lt;br /&gt;&lt;br /&gt;Como apunte final, me da la impresión que este verano no asistiré a muchas partys, no me he preocupado de inscribirme decentemente a la &lt;a href="http://www.euskal.org/"&gt;euskal&lt;/a&gt;, y los billetes a la &lt;a href="http://www.buenz.li/"&gt;Buenzli&lt;/a&gt; y la &lt;a href="http://www.evoke-net.de/"&gt;evoke&lt;/a&gt; estan demasiado caros. UPDATE: se ve que no han enviado aun las invitaciones de la &lt;a href="http://www.playboymansionparty.com/"&gt;PMP&lt;/a&gt;, sino que simplemente soy gilipollas y me creo mis opiniones demasiado rapidamente, por supuesto siempre basadas en humo :P&lt;br /&gt;&lt;br /&gt;Ah, y ademas, ahora curro de programador.&lt;br /&gt;&lt;br /&gt;Nada más, divertíos.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-115049100888985862?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/115049100888985862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=115049100888985862' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/115049100888985862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/115049100888985862'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2006/06/dejando-de-molar.html' title='Dejando de molar'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-114099533162178452</id><published>2006-02-26T15:00:00.000-08:00</published><updated>2006-02-27T02:37:38.826-08:00</updated><title type='text'>Excursión</title><content type='html'>Ya se sabe, una imagen vale mas que mil palabras:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/104/894/1600/serralada.1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/104/894/320/serralada.1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Resumiendo mucho, me he pasado 3 dias cruzando montañas, y ahora que ya he vuelto a Barcelona, la verdad es que añoro el cansancio, dolor de piernas y sudor de esos dias...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-114099533162178452?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/114099533162178452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=114099533162178452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/114099533162178452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/114099533162178452'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2006/02/excursin.html' title='Excursión'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-114000692868301544</id><published>2006-02-15T03:50:00.000-08:00</published><updated>2008-12-09T02:14:57.285-08:00</updated><title type='text'>Emulación</title><content type='html'>&lt;div style="text-align: justify;"&gt;Como algunos sabran, ultimamente, para despejarme de proyectos mas grandes y complejos, he recuperado mi emulador de gameboy que escribí por alli el 1999-2000.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Llamarlo emulador seria uno de los peores eufemismos que uno se puede imaginar, pues:&lt;br /&gt;&lt;br /&gt;- No emulaba la pantalla&lt;br /&gt;- El emulador de la cpu, tenia mas errores que lineas de codigo&lt;br /&gt;- Todo el timing estaba hecho a ojo&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Resumidamente, que era solo un core del z80 modificado que trae la gameboy.&lt;br /&gt;&lt;br /&gt;El dia 2 de enero, cuando la xmo'06 de collapse estaba parada esperando a algunos graficos, y que yo corrigiera mil bugs del engine, decidi darle un toque, a ver si lo conseguia. Porque? Hacer un GUI en windows forms me hacia mucha gracia, pero necesitaba algun proyecto, y el emulador era perfecto: necesitaba un debugger decente para la cpu, integrar graficos en la pantalla principal, un visor de sprites... Era la oportunidad perfecta!&lt;br /&gt;&lt;br /&gt;Resumiendo las 3 semanas que siguieron, hice mil versiones del debugger, cada una mas usable, un visor de sprites, integré opengl en la ventana principal, para poder ver lo que veria en una gameboy, un visor de "hardware", como lo llamo yo, que no es mas que todas las direcciones de gameboy que controlan la pantalla, y la cpu.&lt;br /&gt;&lt;br /&gt;Sobre la parte mas tecnica del emulador, comentaré como lo hice, y quizas, que cosas haria diferente ahora mismo:&lt;br /&gt;&lt;br /&gt;1o) Consigue roms libres con codigo. El debugger ayuda mucho para todo lo que no tengas codigo original, pero unos buenos comentarios son mano de santo. A parte, siempre son mas simples que un juego comercial, y ayudan a corregir detalles que de otra manera se te escaparian. Las hay para todas las consolas/maquinas, asi que no hay excusa.&lt;br /&gt;&lt;br /&gt;2o) El debugger lo mas simple posible. En las primeras versiones, tenia un debugger super-cutre, sin ni soporte para breakpoints, pero con mucha información sobre los registros especiales. Al final, he sacado esos registros especiales (que no son mas que ciertas direcciones de memoria) a otra ventana, y he dejado el debugger asi:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SH5NpOrVDNI/AAAAAAAAAEk/AAoYdYnsvuk/s1600-h/gibe_debugger.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SH5NpOrVDNI/AAAAAAAAAEk/AAoYdYnsvuk/s320/gibe_debugger.jpg" alt="" id="BLOGGER_PHOTO_ID_5223697988506160338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Mis recomendaciones en concreto, serian: añade soporte para breakpoints lo mas pronto posible, haz que el viewer del desensamblado sea scrollable, y haz que el comando run corra igual que correria el emulador sin debugger. Son detalles simples, pero yo no los tenia al principio, y me he demostrado que son muy utiles.&lt;br /&gt;&lt;br /&gt;3o) Debuggea, debuggea, y debuggea. En mi caso, el interpretador, es un switch gigantesco, y tengo que todas las instrucciones que no soporto, salga un error y salga. Antes de emular/jugar a ningun juego, probé mil roms de juegos, solo para asegurarme que el interpretador esta completo, ya habra tiempo para implementar graficos. Puedo decir que me sé gran parte del codigo tanto el Dr. Mario como el Tetris. Si no te gusta debuggear, un emulador te aburrira soberanamente.&lt;br /&gt;&lt;br /&gt;Me dejo mil cosas, pero es realmente complejo explicarlo todo en solo un post. Ahora ya emulo el 90% de los juegos de la gameboy mono perfectamente. Otro dia pondré shots :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cambiando de tema...&lt;br /&gt;&lt;br /&gt;Hablando con diversas personas del IRC y messenger, me comentaron que seria interesante que hablara de emuladores de diversas maquinas, y de joyas que he visto para gameboy/gameboy color. Empezaré por las joyas de gameboy, explicando un poco como es la maquina, para que se entienda un poquito lo que podeis ver.&lt;br /&gt;&lt;br /&gt;La gameboy mono solo puede mostrar 4 tonalidades de ocre en un LCD de 160x144 pixeles, su cpu va a 4mhz, y la pantalla funciona con un puntero a tiles de 8x8 pixeles o de 8x16 pixeles. Se pueden mostrar 40 sprites en pantalla, con una limitación de 10 por linea, pudiendo cada sprite estar girado respecto la X, la Y. A parte, tiene un background de 256x256 pixeles, scrolleable en X e Y, que funciona de manera que cuando una parte sale por un lado, aparece en el otro (scrolleable en loop, vaya, pero asi se entiende mejor). También se puede activar, la llamada "window" que es otro background que se pinta encima del background, este no loopea como el background, y tiene una resolución de 256x256. Para mas efectos, los sprites pueden tener prioridades sobre ciertos colores del background y la window, pudiendo crear asi diversos efectos (como un personaje pasando por detras de arboles, o cosas parecidas). La cpu solo puede direccionar 16bits, es decir, 64kb de datos, pero esta limitación se pasa con banking, que no es mas que tener cierto rango de memoria que se puede cambiar por otro al escribir en ciertos registros del cartucho. Con esto, se puede conseguir hasta 8kb de ram, o 2mb de rom. Hasta aqui la explicación rapida de como funciona una gameboy mono de toda la vida.&lt;br /&gt;&lt;br /&gt;La gameboy color, funciona a 4 o 8mhz, dependiendo del modo en el que este la cpu, puede mostrar hasta 64 colores en pantalla, de 32768 posibles, pero esto se puede superar cambiando la paleta por scanline. A parte, tiene varias clases de dma, para copiar memoria mas rapido.&lt;br /&gt;&lt;br /&gt;Asi pues, tenemos una consola en la que no tenemos acceso directo a pantalla, que todo lo debemos pintar en la tabla de tiles, con una cpu lenta, ademas de tener muy limitados los periodos de escritura en esa ram de tiles.&lt;br /&gt;&lt;br /&gt;El mejor emulador actualmente es el &lt;a href="http://kigb.emuunlim.com/"&gt;kigb&lt;/a&gt;, si quereis ver alguna de las roms abajo reseñadas, usadlo!&lt;br /&gt;&lt;br /&gt;Demos/juegos impresionantes:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://kigb.emuunlim.com/demo3d.zip"&gt;Stun Race FX&lt;/a&gt;: posiblemente lo mas impresionante que he visto nunca. Solo usa la gameboy mono, pero muestra 3D, buena velocidad, y muchas de las cosas que hacia el chip FX de la SuperNintedo, que era una cuantas generaciones mas avanzado. Simplemente impresionante.&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.pouet.net/prod.php?which=16402"&gt;Mental respirator&lt;/a&gt;: 3D, buenos efectos y buenos graficos, quien necesita mas?&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.pouet.net/prod.php?which=7175"&gt;Demotronic&lt;/a&gt;: Scroll vertical durante el scanline, algo que segun nintendo no se podia hacer. Vale la pena verla solo si sabeis como funcionan las maquinas por tiles.&lt;br /&gt;&lt;br /&gt;Ya seguiré comentando segun me pique, a parte, me dijeron a ver si podia comentar emus de diversas consolas, mas en general:&lt;br /&gt;&lt;br /&gt;- Gameboy Mono/Color: &lt;a href="http://kigb.emuunlim.com/"&gt;Kigb&lt;/a&gt;. Testeado con todas las roms conocidas de gameboy, 100% compatible, simplemente perfecto. Portado a varios OS, y aun en desarrollo.&lt;br /&gt;&lt;br /&gt;- MasterSystem/Gamegear: &lt;a href="http://www.smspower.org/meka/"&gt;Meka&lt;/a&gt;. Un buen gui, herramientas para desarrollar, y jugar comodamente. Portado a varios OS, con source disponible y aun en desarrollo.&lt;br /&gt;&lt;br /&gt;- Megadrive/MegaCD/32x: &lt;a href="http://gens.consolemul.com/"&gt;Gens&lt;/a&gt;. Muy rapido y compatible, como pega, que te cambie el escritorio a 16bits. Portado a varios OS, con codigo disponible, algo abandonado.&lt;br /&gt;&lt;br /&gt;- Super Nintendo: &lt;a href="http://zsnes.ipherswipsite.com/06/"&gt;ZSnes&lt;/a&gt;. Muy rapido y compatible, ademas de tener opciones para "mejorar" los graficos como para tirar un tren. Portado a varios OS, con codigo disponible, y en desarrollo.&lt;br /&gt;&lt;br /&gt;- Sega Saturn: &lt;a href="http://www7a.biglobe.ne.jp/%7Ephantasy/ssf/"&gt;SSF&lt;/a&gt;. El mejor emulador de esta autentica bestia dificil de emulador (tiene 8+ chips que se tienen que sincronizar). Aun en desarrollo, bastante compatible, aunque necesitareis un pc con windows y SSE2.&lt;br /&gt;&lt;br /&gt;- Playstation: &lt;a href="http://epsxe.com/"&gt;EPSXE&lt;/a&gt;. 100% compatible, rapido, uno de los coders es de por aqui, tiene version windows y linux, y soporta plugins. Algo abandona pero no creo que necesite mas updates.&lt;br /&gt;&lt;br /&gt;- Nintendo 64: &lt;a href="http://www.pj64.net/"&gt;Project64&lt;/a&gt; (El site a veces esta down). Utiliza emulación de las principales librerias graficas que se usaban en para la n64, asi que pierde compatibilidad en pro de la velocidad. El mas compatible, muy rapido, y aun sigue en desarrollo. Solo para windows, pero el codigo de la 1.4 es libre, asi que se podria "portar".&lt;br /&gt;&lt;br /&gt;- Dreamcast: &lt;a href="http://www.chanka.org/"&gt;Chankast&lt;/a&gt;. Muy rapido, practicamente abandonado, desarrollado por conocidos demosceners. Solo para windows :)&lt;br /&gt;&lt;br /&gt;- XBox: &lt;a href="http://www.caustik.com/cxbx/"&gt;CXbx&lt;/a&gt;. Un hack de las llamadas a las librerias/hard de xbox, para que rulen en windows, debido al parecido de la XBox a un pc. De momento solo furula el Turok y esta abandonado, pero hay source disponible.&lt;br /&gt;&lt;br /&gt;- Playstation 2: &lt;a href="http://www.pcsx2.net/"&gt;pcsx2&lt;/a&gt;. Promete ser el mejor, no puedo hablar sobre su rendimiento, a pesar que por los shots promete ir lentillo en la generación actual de CPUs. Sera/es una buena plataforma barata para desarrollar.&lt;br /&gt;&lt;br /&gt;- GameCube: &lt;a href="http://www.dolphin-emu.com/"&gt;Dolphin&lt;/a&gt;. Muy lento en nuestra generación de CPUs, pero bastante compatible, y muy impresionante como demostración del "se puede hacer". Sin codigo disponible, pero hay otro emulador hecho por los genios Duddie y Tratax, con source disponible, que dara que hablar cuando sea mas compatible, &lt;a href="http://sourceforge.net/projects/gcemu-project"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;- Nintendo DS: &lt;a href="http://dualis.1emulation.com/"&gt;Dualis&lt;/a&gt; o &lt;a href="http://yopyop156.ifrance.com/"&gt;DeSmuME&lt;/a&gt;. No funcionan juegos comerciales, pero son geniales para desarrollar para DS sin tener que comprar una DS o un cartucho grabable. Tambien es interesante el &lt;a href="http://spazioinwind.libero.it/linoma/ideas.html"&gt;iDeaS&lt;/a&gt;, que hace funcionar alguna rom comercial hasta cierto punto.&lt;br /&gt;&lt;br /&gt;Y esto es todo, me he dejado la NES pq nunca me ha interesado mucho, pero diria que el &lt;a href="http://www.jabosoft.com/jnes"&gt;JNes&lt;/a&gt; es el mejor.&lt;br /&gt;&lt;br /&gt;Buff, 2 posts en un dia, de aqui a 3 meses ya volveré a escribir algo...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-114000692868301544?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/114000692868301544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=114000692868301544' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/114000692868301544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/114000692868301544'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2006/02/emulacin.html' title='Emulación'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7WaI1gEi66M/SH5NpOrVDNI/AAAAAAAAAEk/AAoYdYnsvuk/s72-c/gibe_debugger.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-114000381050711637</id><published>2006-02-15T03:12:00.000-08:00</published><updated>2008-12-09T02:14:57.493-08:00</updated><title type='text'>Port de la mayhem a Windows (2/2)</title><content type='html'>&lt;div style="text-align: justify;"&gt;Sigo... (algo tarde, pero esto NO es un ego-blog)&lt;br /&gt;&lt;br /&gt;Viernes, 25 de Noviembre del 2005&lt;br /&gt;-------------------------------------------&lt;br /&gt;Asi pues, con el codigo de las librerias, a pesar que no era del todo compatible, parcheo mi carga de ficheros (sorprendentemente, no me habia equivocado mucho con mi cargador hecho a base de ingenieria inversa).&lt;br /&gt;&lt;br /&gt;En las siguientes 12h lo unico que hice es conseguir que todos los efectos funcionaran, ni comí ni bebí nada, solo codee sin parar. Tuve que corregir algunos bugs de coloreado, y, posiblemente lo que me llevo mas tiempo, imaginar como era el codigo de "emulación" de 32bits que usaba la original en segun que partes. Y porque usaba esto? Muy simple, el loader de imagenes, usaba el bitdepth teorico actual, y suponia que el bitdepth de la imagen era igual. Ningun problema para la mayoria de imagenes, pero habia algunas imagenes a 32bits, y claro, ponian un modo de 32bits fake (solo engañando a la estructura de control, imagino), para cargarlas bien. La razón porque estaba diseñado asi, algo "mal", se me escapa, pero lo atribuiré a codigo rapido y pre-deadline. Para corregirlo, estuve probando con diferentes valores en la estructura de control, hasta que di con el correcto.&lt;br /&gt;&lt;br /&gt;Y ahora lo interesante: partes en ensamblador puro y codigo automodificable. Como he comentado, habia partes del codigo original de la libreria que no tenia, ya que los Incognita solo tenian la versión de la libreria de windows, que a pesar ser casi 100% compatible con la de MS-DOS, carecia de ciertas definiciones. La que dió algo de trabajo fue la de control del modo grafico, ya que a base de leer los .asm acabé imaginando en que orden y de que tamaño eran todos los valores que se referenciaban tanto en los .asm como en los .cpp. Muchas pruebas despues, di con la estructura correcta, pero costó lo suyo. El otro problema, es que se usaba codigo automodificable, que a pesar que en ms-dos seguro que era util, en windows no queria usarlo, asi que reescribi partes del codigo, mas que nada unos cuantos inner-loops.&lt;br /&gt;&lt;br /&gt;Hacia las 9 de la tarde del viernes, tenia todos los efectos corriendo, menos el jarron con bump-mapping del principio, y el karateka tenia el mapeado mal, y petaba a veces. Decidí cerrar el dia, y dejarlo asi de momento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Domingo, 27 de Noviembre del 2005&lt;br /&gt;-------------------------------------------&lt;br /&gt;Una vez pasado el fin de semana, decidi que ya era hora de terminarlo, asi que me puse a debuggear a piñon los 2 efectos q no iban bien, lease el karateka, y el jarron. Para haceros una idea, el karateka tenia esta pinta:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SH5O8O9dVTI/AAAAAAAAAEs/n_OXynrRe9Y/s1600-h/mayhem_w32_4.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SH5O8O9dVTI/AAAAAAAAAEs/n_OXynrRe9Y/s320/mayhem_w32_4.jpg" alt="" id="BLOGGER_PHOTO_ID_5223699414511342898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A pesar que primero pensaba en algun problema unsigned/signed (con la eunectex/anaconda ya habia tenido algun problema parecido), despues de añadir/invertir/etc los valores de mapeado, nada, que petaba de vez en cuando, y se veia fatal.&lt;br /&gt;&lt;br /&gt;Al final, vi 2 detalles "idiotas" que se nos escapan a todos despues de releer el mismo codigo mil veces: me habia dejado cierto inner con codigo automodificable (en el jarron), y lo peor, tenia los valores de proporcion X/Y mal, ademas de una colada "menor" en la estructura de control de pantalla. Resumidamente, varios bugs menores, pero, que como siempre, juntos producian que el karateka se viera mal, y el jarron petara con su mejor "Segmentation fault".&lt;br /&gt;&lt;br /&gt;Finalizar la prod&lt;br /&gt;-------------------------------&lt;br /&gt;Esto no me acuerdo cuando lo hice, pero bueno, es igual.&lt;br /&gt;Le mandé la prod "terminada" a reboot/incognita y a ent/incognita, y ambos me dijeron que estaba mal el timing. Por lo visto, el player de windows daba valores MUY distintos para el control de que escena se debia ver en cada momento.&lt;br /&gt;&lt;br /&gt;Posiblemente esta fue la parte mas pesada de hacer, ya que casi no recordaba la original, y tuve que ver mi versión portada unos cuantos centenares de veces, haciendo el timing que creia era 100% fiel. Para aquellos que hayan tenido que sincronizar una prod asi, entendaran lo desesperante, cansado, y aburrido que es.&lt;br /&gt;&lt;br /&gt;Unas horas mas tarde, conseguí corregir el timing de la demo y acelerar la parte final de las particulas: la mandé a los coders originales, y solo ent, me comentó que le gustaria que le pusiera un control de velocidad, para que fuera al mismo framerate que la original (para que fuera mas lenta, vaya). Asi que un vsync que esperaba a la 4a vez que se iba a actualizar el monitor, y le puse un comando de consola para deshabilitar el vsync "bestia", para aquellos con pcs mas viejos, o con ganas de saber como se veria hoy en dia.&lt;br /&gt;&lt;br /&gt;Antes de empaquetar, programé un efectillo, le añadi un grafico incrustado al ejecutable, y ya teniamos parte secreta. Despues empaqueté la release, escribí el .nfo, y saque el port, mucho mas contento de poder ver la mayhem cuando me apeteciera! Para terminar este post, un link a una imagen de mi parte preferida:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://collapse.scenesp.org/shash/mayhem_w32_6.jpg"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7WaI1gEi66M/SH5O8cRKotI/AAAAAAAAAE0/JlX-leWFbeU/s1600-h/mayhem_w32_6.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_7WaI1gEi66M/SH5O8cRKotI/AAAAAAAAAE0/JlX-leWFbeU/s320/mayhem_w32_6.jpg" alt="" id="BLOGGER_PHOTO_ID_5223699418083664594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Solo dejaros con el port ya finalizado: &lt;a href="http://collapse.scenesp.org/downs/clp&amp;amp;icg_mayhem_w32.zip"&gt;Mayhem win32&lt;/a&gt;, y comentar, para los escrupulosos, que los bajos framerates de los shots linkados, son debido a que los hacia con la versión debug, que petaba menos veces en la parte del karateka :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-114000381050711637?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/114000381050711637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=114000381050711637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/114000381050711637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/114000381050711637'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2006/02/port-de-la-mayhem-windows-22.html' title='Port de la mayhem a Windows (2/2)'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7WaI1gEi66M/SH5O8O9dVTI/AAAAAAAAAEs/n_OXynrRe9Y/s72-c/mayhem_w32_4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-113354423034519433</id><published>2005-12-02T08:38:00.000-08:00</published><updated>2008-07-16T12:40:04.593-07:00</updated><title type='text'>Port de la mayhem a Windows (1/2)</title><content type='html'>&lt;div style="text-align: justify;"&gt;De vez en cuando, me gusta volver a los "origenes" y pelearme con pixels, ensamblador y codigo de bajo nivel, para recordar como antes todo era mucho mas simple.&lt;br /&gt;&lt;br /&gt;Esta vez le tocó a la Mayhem/Incognita, una de las demos que vi al principio de meterme en todo este mundillo de la demoscene. La verdad es que me decidí por dos cosas: tenia parte del codigo publicado (faltaban todas las librerias basicas) y es bastante dificil ejecutarla hoy dia.&lt;br /&gt;&lt;br /&gt;Voy a intentar explicar en un estilo parecido a un diario, como se desarrollo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Domingo, 20 de Noviembre del 2005&lt;br /&gt;---------------------------------------------&lt;br /&gt;&lt;br /&gt;Tomo la decisión de empezar el port, primero intento verla en DosBox o cualquier otro emulador que tenga a mano, sin muchos resultados. Me leo otra vez el .nfo para saber mas o menos que usaba, y reirme un rato sobre los comentarios.&lt;br /&gt;&lt;br /&gt;Descomprimo el codigo que ya habia bajado en el pasado, y creo la carpeta "mayhem_w32", donde, al igual que en la requiem, copio el codigo original en \src y creo el proyecto. De momento, solo una consola de windows, ya habra tiempo para añadir el resto. Añado el Mayhem.cpp a la solucion, y me da un millón de errores, como esperaba. Comento todo el codigo, corrijo lo que creo necesario de las cabezeras, y dejo un bonito ejecutable, que solo dice que se esta iniciando la demo. Ya es un principio.&lt;br /&gt;&lt;br /&gt;Me preocupo de ponerme en contacto con los coders de Incognita, para ver si me pueden pasar el codigo original.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lunes, 21 de Noviembre de 2005&lt;br /&gt;-----------------------------------------&lt;br /&gt;&lt;br /&gt;Hago algo de ingenieria inversa del mayhem.dat. Primero, intento usar el muti-ripper con el data, pero consigo "solo" dos .xm, lo cual ya es una referencia. Me pongo los .xm a reproducir en el winamp, y abro el data en el UltraEdit, para empezar mirar como funciona (a pesar de eso, podria haber esperado a si los Incognita me pasaban el codigo, pero tenia demasiadas ganas de ver algo en pantalla). A primer vista, veo algo q parece una cabezera, algo de texto, y el principio de un .xm, asi que cambio al visual, le enchufo el fmod al proyecto, cargo todo el mayhem.dat en memoria, y reproduzco el track diciendole al fmod que me cargue desde memoria desde el offset que conozco del .xm. Tengo que mirar el tamaño del .xm que me ha sacado el multi-ripper, pero a la segunda tira. Ya tengo una consola de texto que dice que inicia la demo y el sonido, y hasta hace lo segundo!&lt;br /&gt;&lt;br /&gt;Una vez hecho esto, cambio otra vez al UltraEdit, y busco por la extension .xm, en ASCII. Me imagino, que como el muti-ripper solo me ha sacado dos archivos, el resto tendran algun tipo de compresión, asi que no esperaba encontrar mas referencia en el dat, pero encuentro una ristra de datos al final del data, con nombres de archivo, y unos 32-40 bytes, despues de cada string. Comparando los valores de despues, descubro que uno es el tamaño de archivo, otro el offset, y dos valores que parecen double words, que desconozco de momento que son.&lt;br /&gt;&lt;br /&gt;Hago mas pruebas, exportando por los tamaños que encontré antes a ficheros. Me escribe 50 ficheros, algunos de ellos tga, de los cuales solo uno es leible. Descubro, pues, que algunos ficheros tienen algun tipo de compresion, y que en cada directorio de estos (formados, a grandes rasgos, por un string, y 4 valores int32), uno de los valores es el tamaño comprimido, otro el tamaño real, otro el offset, y un ultimo que parecen los flags, este ultimo siendo 0 para los datos no comprimidos.&lt;br /&gt;Una vez descubierto esto, tengo dos opciones: debuggear el ejecutable original y intener copiar el esquema de compresion, o esperar a ver si me pasan los sources.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Viernes, 25 de Noviembre del 2005&lt;br /&gt;-------------------------------------------&lt;br /&gt;&lt;br /&gt;Despues de 3 dias debuggeando el ejecutable original, intentando sacar el esquema sin muchos resultados, y por supuesto, sabiendo los tamaños de algunos tga y algunos de los valores estandar (la cabezera), intentar "descubrirlo", descubro a las 9 de la mañana, que Ent, despues de 3 dias sin poder encontrarnos para que me pasara los sources que encontró, ha decidido de forma inteligente, mandarmelos por mail.&lt;br /&gt;&lt;br /&gt;Mirando por encima, hay el codigo fuente de la libreria (para windows, no para ms-dos/vesa) que es compatible con la mayhem, almenos en gran parte, y un pack de todo lo de la mayhem, menos las librerias, es decir, codigo+datos sin comprimir.&lt;br /&gt;&lt;br /&gt;Decido tomarme el dia libre, y dedicarme al port...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pero eso lo explicaré en el siguiente post :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-113354423034519433?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/113354423034519433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=113354423034519433' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/113354423034519433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/113354423034519433'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/12/port-de-la-mayhem-windows-12.html' title='Port de la mayhem a Windows (1/2)'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-113284695061674189</id><published>2005-11-24T07:05:00.000-08:00</published><updated>2008-07-16T12:44:43.327-07:00</updated><title type='text'>El abandonador de blogs</title><content type='html'>&lt;div style="text-align: justify;"&gt;Ese soy yo! Comentaré un poco a que me he dedicado estos meses, a ver:&lt;br /&gt;&lt;br /&gt;1) He asistido a la PlayboyMansion party. Comentar que estuvo bien, pero poco a decir, si no estuvisteis alli, os perdisteis unas vacaciones relajadas con sceners. A pesar de eso, poco a ver con una party, o la demoscene.&lt;br /&gt;&lt;br /&gt;2) Asistí con Tux/Bixo y Mauge/Bixo, a la Inercia2k5, en Porto (Portugal). Como me pasó cuando estabamos desarrollando Hysteria4, dejé de lado el proyecto que andaba haciendo, y empezé una produccion rapida para presentar algo en la compo de 4k. La verdad es que si usé alguna parte de la prod que estaba preparando pre-party, pero empezé la prod nueva desde 0, y no sé como, la terminé en 10h. Lo peor, como todas estas fast-4k en las que me lio, que la musica la tuve que hacer yo. Por supuesto, el resultado auditivo es horrible, pero el resto creo que es pasable.&lt;br /&gt;&lt;br /&gt; Sobre la party en si, la localización no era la hostia ni mucho menos:&lt;br /&gt;- El sistema de sonido emitia ruido, perceptible aunque no muy molesto, la verdad.&lt;br /&gt;- El proyector tenia serios problemas de ruido "rosa" en pantalla.&lt;br /&gt;- No habia una sala anexa para dormir (esto lo considero menor).&lt;br /&gt;- No habia duchas decentes. Las que habia, eran comunes, con lo que consideraria condiciones higienicas altamente mejorables (daban grima, vaya).&lt;br /&gt;- No habia calefacción. Por las noches hacia frio, y te tenias que abrigar como si estuvieras en la calle.&lt;br /&gt;- La mayoria de charlas en portugués. Lo entiendo, pero igualmente no me gustó.&lt;br /&gt;- Muy poca gente. Sobre 20 de media.&lt;br /&gt;&lt;br /&gt;A favor:&lt;br /&gt;- Gratis para extranjeros y chicas.&lt;br /&gt;- Organización muy simpatica y atenta.&lt;br /&gt;- Cerveza gratis. A pesar que nos la terminamos el sabado, es algo que agradecimos mucho. Luego ps nos invitó a Ron que les habia sobrado en la ultima party a la que asistieron en verano.&lt;br /&gt;- Portugal es mucho mas barato que España, buenos precios para todo.&lt;br /&gt;- Diversión. Charlé con mucha gente, y me lo pasé realmente bien.&lt;br /&gt;&lt;br /&gt;Y por motivos desconocidos, Collapse volvió a ganar otra vez en la compo de intro 4k. El premio fué genial, un libro sobre la demoscene, y el juego de cartas de Slengpung. Si el proximo año tengo la posibilidad, repetiré sin duda.&lt;br /&gt;&lt;br /&gt;3) Organizar la bcnparty'101: no comentaré mucho sobre como ha salido, pero mejoraremos todo lo que salió mal para el proximo año. Este año me tocó ocuparme de muchas mas cosas, y fué quizas algo más stressante, pero bueno... Una semana antes, slack y Adler subieron a mi piso, y nos pasamos una semana freakeando en mi piso, fue realmente divertido y productivo. (Ademas ayudaron muchisimo a montar la bcnparty!)&lt;br /&gt;&lt;br /&gt;4) Charlas, entrevistas, etc: di una charla en la FIB (Facultat d'Informatica de Barcelona) de la UPC, sobre intros de 4k. La di en el marco de la &lt;a href="http://datr.plexiq.org/"&gt;asignatura&lt;/a&gt; que dan sml y firebite sobre demoscene en esa universidad. Fue divertido, pero salió algo mal, debido a que me dejaron menos tiempo del que tenia calculado...&lt;br /&gt;&lt;br /&gt; También nos entrevistaron a Napalm y a mi en un programa de radio, referente a la bcnparty. Podeis encontrarla &lt;a href="http://www.portalgameover.com/programas/go206B.mp3"&gt;aqui&lt;/a&gt;, la entrevista empieza a partir del minuto 29 aproximadamente.&lt;br /&gt;&lt;br /&gt; Tambien dimos una charla Slack y yo en la bcnparty'101, podeis bajar la presentación &lt;a href="ftp://ftp.scenesp.org/pub/2005/bcn101/seminars/ns&amp;amp;clp_4k_talk_spanish.zip"&gt;aqui&lt;/a&gt;. Tristemente, no la grabamos ni en video ni en mp3, asi que solo hay la presentación que usamos.&lt;br /&gt;&lt;br /&gt;6) A parte me he dedicado a portar dos 4k de Necrostudios a Windows, en particular: &lt;a href="http://collapse.scenesp.org/downs/clp&amp;amp;ns_codenoise_w32.zip"&gt;Codenoise&lt;/a&gt; y la &lt;a href="http://slack.codemaniacs.com/intros/voxel_bukkake_release.zip"&gt;Voxel bukakke&lt;/a&gt;. A su vez, slack portó a Linux, la unica producción de la que he sacado el codigo: &lt;a href="http://slack.codemaniacs.com/intros/clp+ns_etram_linux.zip"&gt;Etram&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;7) Fruto de estas "colaboraciones", decidimos hacer una 4k rapida para la &lt;a href="http://kg.slengpung.com/"&gt;Kindergarden&lt;/a&gt;, a medias. Salió algo lenta y falta de contenidos, pero la hicimos rapidamente por diversion. La podeis encontrar &lt;a href="http://collapse.scenesp.org/downs/clp&amp;amp;ns_grevox.zip"&gt;aqui&lt;/a&gt;. Teoricamente hay port a Linux, pero son incapaz de encontrarlo. Es posible que saquemos el source también si adecento algo toda mi parte (toda la parte grafica).&lt;br /&gt;&lt;br /&gt;Ya para terminar, he decidido ponerme a portar otra demo de ms-dos, de la epoca 96-98, para pelearme otra vez con codigo automodificable, bugs del watcom, y codigo que no conozco. Seguramente, escribiré una especie de diario de como va avanzando la cosa, espero empezar el diario (el port ya esta empezado!) este semana como muy tarde.&lt;br /&gt;&lt;br /&gt;Nada mas, que tanto egocentrismo y tanto texto ya es excesivo, adeu!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-113284695061674189?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/113284695061674189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=113284695061674189' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/113284695061674189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/113284695061674189'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/11/el-abandonador-de-blogs.html' title='El abandonador de blogs'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-112342399352914546</id><published>2005-08-07T06:37:00.000-07:00</published><updated>2008-07-16T13:00:39.850-07:00</updated><title type='text'>Ha pasado el tiempo</title><content type='html'>&lt;div style="text-align: justify;"&gt;Es oficial: ya no soy un pluriempleado. Hace 5 semanas que dejé uno de mis trabajos (un curro de 19.00 a 3.00 en un pub de Reus) por motivos que no creo adecuado escribir aqui. Eso me ha permitido, por primera vez en 2 años y medio, empezar a disfrutar de los fines de semanas sin tener que pelearme con los jefes o compañeros de trabajo (no sé que es peor...). Diria que he aprovechado los primeros fines de semana bien: fui a dos festivales de rock, y a la &lt;a href="http://www.euskal.org/"&gt;Euskal Encounter&lt;/a&gt; (donde por suerte pude terminar la 4k que llevaba 9 meses preparando, y aun con mas suerte, ganamos). Los ultimos dos fines de semana los he dedicado a ser feliz, y lo he conseguido con creces.&lt;br /&gt;&lt;br /&gt;Hablemos de lo importante, despues de este ladrillo: codigo, demoscene y producciones. Mas que nada, me gustaria juntar temas separados para los que no he tenido ni tiempo ni ganas de hacer posts individuales:&lt;br /&gt;&lt;br /&gt;1) El primer (y espero que no ultimo) EP de trace/mr.doob/robbiek/etc..., bajo el netlabel de roterfleck. Lo podeis conseguir &lt;a href="http://www.xplsv.com/people/robbiek/CDs/Freon150EP%20by%20R08028%20-%20RF005CDR.zip"&gt;aqui&lt;/a&gt;. Haciendo una critica muy por encima, porque lo he escuchado pocas veces, diria: Bajadlo y disfrutadlo! Realmente me ha impresionado mucho, mas que nada porque he visto durante los pocos años que conozco a trace como ha evolucionado y cambiado su capacidad musical, y realmente asombra este EP, almenos a mi personalmente. Espero que saque mas, y siga con este buen hacer. Congrats!&lt;br /&gt;&lt;br /&gt;2) La demo ganadora de la Assembly'05: Iconoclast / ASD. Podeis verla en video: &lt;a href="http://amv.demoscene.gr/asd_iconoclast.avi"&gt;LOWQ&lt;/a&gt; / &lt;a href="http://www.amusic.gr/files/Iconoclast_HQ.avi"&gt;HIGHQ&lt;/a&gt;, o bien en &lt;a href="ftp://ftp.scene.org/pub/parties/2005/assembly05/demo/iconoclast_by_andromeda_software_development.zip"&gt;realtime&lt;/a&gt; (como todos la deberiamos ver). Impresiona realmente la cantidad de trabajo que se ha invertido en ella, las transiciones, algunos efectos y shaders (algunos ya vistos/gastados por los mismos ASD), aunque coincido con algunas criticas que la musica es a ratos algo caotica, al igual que algun momento de la demo en general, que no entiendes hacia donde va todo. Recomendable verla 3 o 4 veces y apreciar todos los detalles, como los guiños a la 2nd Reality/FC, a la Stars/Nooon, a la Cyboman2, o a la Flexo/Matrix (se llamaba asi?).&lt;br /&gt;&lt;br /&gt;3) La 64k ganadora la Assembly'05: &lt;a href="ftp://ftp.scene.org/pub/parties/2005/assembly05/in64/che_guevara_by_fairlight.zip"&gt;Che Guevara / Fairlight&lt;/a&gt;. Al principio me parecio un calco de la 64k de ellos mismo de la Breakpoint'05, pero despues de los primeros 30 segundos es... Impresionante. Altamente recomendable.&lt;br /&gt;&lt;br /&gt;4) En cuanto a 4k, de la Assembly'05 he visto pocas prods aun, asi que en un acto de autobombo, voy a hablar un poco de la &lt;a href="http://collapse.scenesp.org/downs/clp_hyst4k_party_fixed.zip"&gt;Hysteria 4k / Collapse&lt;/a&gt; y de la &lt;a href="http://slack.codemaniacs.com/intros/not_art_final_version.zip"&gt;Not Art / Necrostudios&lt;/a&gt;. Primero comentare la Not Art: creo que estan muy limitados por el compresor que usan en linux. Les haria falta algo como el &lt;a href="http://www.crinkler.net/"&gt;crinkler&lt;/a&gt;, por ejemplo. Como critica constructiva, comentar que la veo algo lenta, a pesar de ser 4k, que las escenas las veo vacias, y que dura poco. A favor, unas texturas chulas, un track muy decente, y metaballs. A ver si para la siguiente conseguiis un packer mejor!&lt;br /&gt;&lt;br /&gt;En cuanto a nuestra prod, wizard y yo pudimos terminar la 4k que me habia traido de cabeza durante los ultimos 9 meses. Primero, porque no cabia ni a patadas, demasiados efectos variados, un track que necesitaba mucho espacio, y una sincro exigente. Segundo, porque yo no tenia mucha practica en 4k, asi que lo iba dejando cogiendo experiencia en otras 4k menos importantes para mi. Por suerte, quedamos primeros, a pesar que no queriamos presentar debido a que no me satisfacia (ni lo hace ahora) el resultado final, y porque nos sobraron al final solo 4 bytes... Hay una version final en camino, con mas contenidos (sobretodo el track esta MUY mejorado, el de la party version sufre de serios "problemas tecnicos" debido al cansancio) y mejoras en todo, como siempre, no? :P&lt;br /&gt;&lt;br /&gt;Bueno, lo dejo ya aqui. Mas y mejor, cuanto pueda, que tengo que seguir con cierta prod para cierta party, que no conseguire terminar :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-112342399352914546?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/112342399352914546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=112342399352914546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/112342399352914546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/112342399352914546'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/08/ha-pasado-el-tiempo.html' title='Ha pasado el tiempo'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-111991205111865290</id><published>2005-06-27T15:26:00.000-07:00</published><updated>2008-07-16T13:01:17.885-07:00</updated><title type='text'>No disponible</title><content type='html'>&lt;div style="text-align: justify;"&gt;Ultimamente he estado bastante ocupado. No he abierto el Visual en el ultimo mes, asi que tampoco he hecho nada con lo que rellenar el blog :'(&lt;br /&gt;&lt;br /&gt;Aunque he hecho un monton de cosas utiles:&lt;br /&gt;&lt;br /&gt;- He salido de fiesta por "barraques" aqui, en Reus. Para quien no lo sepa, las "barraques" es un evento que se hace (almenos aqui) una vez al año, montando por asociaciones locales, con conciertos, casitas donde se vende bebida y comida, y mucha gente. Puedo decir sin lugar a duda, que para el proximo año me vetan la entrada.&lt;br /&gt;&lt;br /&gt;- He dejado el curro del bar. Estoy hasta los cojones del curro este, no tengo ningun amigo/familiar que no me haya llamado idiota por seguir aguantando las toneladas de mierda que tengo que soportar dia tras dia. A tomar por culo, ale.&lt;br /&gt;&lt;br /&gt;- He empezado, como es habitual en verano, a currar en "La Caixa". Hago del 6 de Junio al 16 de Agosto. Podre tener vacaciones/estudiar los ultimos 15 dias de Agosto! Hace 3 años que no tengo vacaciones, asi que le tengo ganas :)&lt;br /&gt;&lt;br /&gt;- He comprado los billetes para la Euskal (voy en avion). Ademas, tambien he conseguido montarmelo para ir al &lt;a href="http://www.senglarrock.com/"&gt;Senglar Rock&lt;/a&gt; un par de dias. Me ira bien un fin de semana tranquilo, con conciertos y tal, que no sea como "barraques", espero que no se repita toda la mierda de "barraques".&lt;br /&gt;&lt;br /&gt;- Me ha registrado la Policia Secreta una vez, con divertidos resultados.(aburrimiento, perdida de tiempo y dejarnos libres al cabo de un rato, por no poder "enchufarnos" los delitos que decian que alguno de nosotros podria haver cometido)&lt;br /&gt;&lt;br /&gt;Nada, que esto va a mejor, a este ritmo me tengo que ir a vivir a Barcelona mas por ser persona "non grata" en Reus, que por decision mia. Sigh&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-111991205111865290?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/111991205111865290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=111991205111865290' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111991205111865290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111991205111865290'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/06/no-disponible.html' title='No disponible'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-111741596171465684</id><published>2005-05-29T17:37:00.000-07:00</published><updated>2008-07-16T13:03:00.031-07:00</updated><title type='text'>Rompiendo mis reglas</title><content type='html'>&lt;div style="text-align: justify;"&gt;Voy a romper mis propias reglas, porque este blog se esta convirtiendo en la cosa mas aburrida nunca creada... Asi que hablare de algunas cosas no relacionadas con programacion o desarrollo general, aunque intentare quue no se convierta en una biografia de mi rara vida.&lt;br /&gt;&lt;br /&gt;Leí hace unos dias en el &lt;a href="http://www.xplsv.com/people/trace/"&gt;blog de trace&lt;/a&gt; un comentario que recomendaba ver "Napoleon Dynamite" y realmente despues de verla quede MUY decepcionado. Aunque ya lo imaginaba, pues los gustos de trace y mios varian bastante, diria...&lt;br /&gt;&lt;br /&gt;Voy a comentar las ultimas que me han llamado la atencion o he visto, no sé, casi todas de Stephen Chow (lo siento, pero usare Shaolin Soccer como referencia ya que diria que la mayoria de la gente la ha visto):&lt;br /&gt;&lt;br /&gt;- Kung Fu Hustle (2004): (aqui llamada Kung Fu Sion, segun he visto en un trailer) es la ultima pelicula de este director. Como en Shaolin Soccer, es una comedia disparatada, donde las artes marciales tienen un papel importante, y con un acabado grafico/CG espectacular. El argumento en si habla de una comunidad de comerciantes que entran en problemas con una banda llamada "La banda del hacha". Recomendada para reirse un buen rato con una pelicula de excelente factura tecnica.&lt;br /&gt;&lt;br /&gt;- The God of Cookery (1996): Otra comedia disparatada, con el transfondo de la cocina. La estructura es muy parecida a la que despues le llevaria al exito mas internacional que fué Shaolin Soccer. Sin desvelar mucho, el argumento habla de un hombre con buenas cualidades para la cocina se ve obligado a empezar desde cero. Tambien muy recomendada, sobretodo los ultimos 30 minutos.&lt;br /&gt;&lt;br /&gt;- King of Comedy (1999): Sin duda la mas floja de las peliculas de Chow que he visto hasta el momento. El argumento es sobre un actor bastante negado, que tiene que ganarse su vida dando clase a las chicas que trabajan en un "club de acompañantes". Flojilla por un humor menos disparatado que en las otras, demasiado hincapié en sentimentalismos, y ser demasiado lenta para mi gusto.&lt;br /&gt;&lt;br /&gt;- Returner (2002): Esta ya no es de Chow, ni es una comedia, sino que esta dirigida por Takashi Yamazaki, y es una pelicula de accion mas estilo Hollywood. Como en la sinopsis que leí en el momento de verla, se podria resumir de la manera siguiente: Coge Matrix, Terminator, Aliens, mezclalas, y tendras una idea de la pelicula. Lo bueno es que tecnicamente esta muy bien, es una pelicula bien llevada, pero que falla en una mala actuacion del antagonista, y de ser algo previsible. Recomendada con un notable, segun mi gusto :P&lt;br /&gt;&lt;br /&gt;Y con esto lo dejo por hoy, si gusta, haré mas reviews de cine asiatico, que ultimamente, (en el ultimo año) es practicamente lo unico que veo.&lt;br /&gt;&lt;br /&gt;Have fun, be happy :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-111741596171465684?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/111741596171465684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=111741596171465684' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111741596171465684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111741596171465684'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/05/rompiendo-mis-reglas.html' title='Rompiendo mis reglas'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-111468352369573651</id><published>2005-04-28T03:14:00.000-07:00</published><updated>2008-12-09T02:14:57.860-08:00</updated><title type='text'>Probando la Nintendo DS</title><content type='html'>&lt;div style="text-align: justify;"&gt;Estos dias, entre cosas mas serias (y algo aburridas) que ando haciendo, me ha picado el gusanillo por la Nintendo DS, y ver la potencia y grado de emulacion que tiene realmente. No por piratear, no me interesan muchos sus juegos de momento, sino por ver que capacidad tiene para hacer efectillos. Hice mis primeras pruebas, modificando samples del devkit que hay &lt;a href="http://www.aaronrogers.com/nintendods"&gt;aqui&lt;/a&gt;, en concreto, del Complex_2D. Resucité mis 2 efectos mas simples que tenia olvidados en un CD, y los pase. Aqui el segundo, el primero era lo mismo, pero en parallax:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/SH5UictPVoI/AAAAAAAAAE8/XFmNTeyjnLk/s1600-h/star_3D_ideas.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/SH5UictPVoI/AAAAAAAAAE8/XFmNTeyjnLk/s320/star_3D_ideas.jpg" alt="" id="BLOGGER_PHOTO_ID_5223705568594581122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Nada, aqui os junto las 2 roms, probadas en los 3 emuladores que existen en la actualidad (&lt;a href="http://ideasemu.altervista.org/"&gt;ideas&lt;/a&gt;, &lt;a href="http://dualis.1emulation.com/"&gt;dualis&lt;/a&gt; y &lt;a href="http://dsemu.oopsilon.com/"&gt;dsemu&lt;/a&gt;, por orden de preferencia personal):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://collapse.scenesp.org/shash/fx_nds.zip"&gt;Roms starfield 2D y 3D&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PD: Si alguien quiere el codigo, que me lo comente por los canales habituales&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-111468352369573651?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/111468352369573651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=111468352369573651' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111468352369573651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111468352369573651'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/04/probando-la-nintendo-ds.html' title='Probando la Nintendo DS'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7WaI1gEi66M/SH5UictPVoI/AAAAAAAAAE8/XFmNTeyjnLk/s72-c/star_3D_ideas.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-111343101307645126</id><published>2005-04-13T15:18:00.000-07:00</published><updated>2008-07-16T13:07:07.133-07:00</updated><title type='text'>Lo prometido es deuda</title><content type='html'>&lt;div style="text-align: justify;"&gt;Por fin me he decidido a sacar el codigo de una de mis producciones, y me he decido por la ultima, una 4k que quedo 8a de 14 en la breakpoint'05. Espero que esto le sea util a alguien, comentarios y preguntas seran gratamente aceptados. Bueno, aqui esta: &lt;a href="http://collapse.scenesp.org/shash/clp_etram_src.rar"&gt;source de la Etram&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-111343101307645126?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/111343101307645126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=111343101307645126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111343101307645126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111343101307645126'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/04/lo-prometido-es-deuda.html' title='Lo prometido es deuda'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-111280080353297858</id><published>2005-04-06T08:14:00.000-07:00</published><updated>2008-12-09T02:14:58.383-08:00</updated><title type='text'>Retrasos...</title><content type='html'>&lt;div style="text-align: justify;"&gt;Esto lo queria postear hace tiempo, aunque por temas varios no he podido/querido hasta hoy :( Nada, aqui van unos shots renderizados con bilineal y cosillas de la requiem (hechos con el renderer no realtime del deep exploration, despues de extraer los .3ds del data):&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SH5VOp3kkfI/AAAAAAAAAFE/9SdXhoaPoss/s1600-h/render_requiem1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SH5VOp3kkfI/AAAAAAAAAFE/9SdXhoaPoss/s320/render_requiem1.jpg" alt="" id="BLOGGER_PHOTO_ID_5223706328041820658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7WaI1gEi66M/SH5VOyjDNuI/AAAAAAAAAFM/pFhv_DLAFWA/s1600-h/render_requiem2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_7WaI1gEi66M/SH5VOyjDNuI/AAAAAAAAAFM/pFhv_DLAFWA/s320/render_requiem2.jpg" alt="" id="BLOGGER_PHOTO_ID_5223706330371667682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7WaI1gEi66M/SH5VO016lEI/AAAAAAAAAFU/4uI_i8wql10/s1600-h/render_requiem3.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_7WaI1gEi66M/SH5VO016lEI/AAAAAAAAAFU/4uI_i8wql10/s320/render_requiem3.jpg" alt="" id="BLOGGER_PHOTO_ID_5223706330987664450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Esta noche/mañana posteare el codigo de mi ultima 4k, por si alguien quiere fisgar, estoy comentado un poco todo el codigo, y arreglando cosillas.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-111280080353297858?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/111280080353297858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=111280080353297858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111280080353297858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111280080353297858'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/04/retrasos.html' title='Retrasos...'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_7WaI1gEi66M/SH5VOp3kkfI/AAAAAAAAAFE/9SdXhoaPoss/s72-c/render_requiem1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-111045934893062170</id><published>2005-03-10T04:51:00.000-08:00</published><updated>2008-07-16T13:12:41.281-07:00</updated><title type='text'>Nuevas releases hoy!!!</title><content type='html'>&lt;div style="text-align: justify;"&gt;Bueno, solo un post rapido, para anunciar que hoy a las 24h sacare nuevas releases sceners!!! Que sera? Nuevas tools? Nuevas prods? A ver, a ver... :P&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-111045934893062170?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/111045934893062170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=111045934893062170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111045934893062170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/111045934893062170'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/03/nuevas-releases-hoy.html' title='Nuevas releases hoy!!!'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-110985932803814073</id><published>2005-03-03T06:07:00.000-08:00</published><updated>2008-12-09T02:14:58.745-08:00</updated><title type='text'>Emulando la game boy</title><content type='html'>&lt;div style="text-align: justify;"&gt;Por alli por el 1997 conoci la emulacion, y la verdad es me fascinó. Poder jugar a todos los juegos que &lt;strong&gt;no tuve dinero &lt;/strong&gt;para comprar, y que ya no era posible comprar, era genial. Cuando aprendi a programar, uno de los primeros objetivos, fue emular una de las consolas con las que habia perdido mas tiempo: la Game Boy. Empece un final de verano, y dos meses despues consegui esto:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_7WaI1gEi66M/SH5WYN6UD9I/AAAAAAAAAFc/SL95QsCWZus/s1600-h/gibe_msdos.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_7WaI1gEi66M/SH5WYN6UD9I/AAAAAAAAAFc/SL95QsCWZus/s320/gibe_msdos.jpg" alt="" id="BLOGGER_PHOTO_ID_5223707591847448530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Nada impresionante, la verdad, un interpretador, un desensamblador basico con memory viewer, hardware viewer, tile viewer, breakpoints, stack viewer, vaya, lo basico. Cuando empecé a implementar la LCD, lo dejé, por motivos que no vienen al caso. Fue realmente &lt;strong&gt;interesante&lt;/strong&gt; programar todo el emulador del z80, ademas de ser posiblemente mi primer proyecto serio a nivel personal. Nada mas, en un futuro mas shots :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-110985932803814073?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/110985932803814073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=110985932803814073' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/110985932803814073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/110985932803814073'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/03/emulando-la-game-boy.html' title='Emulando la game boy'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_7WaI1gEi66M/SH5WYN6UD9I/AAAAAAAAAFc/SL95QsCWZus/s72-c/gibe_msdos.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11160914.post-110968743847810274</id><published>2005-03-01T06:16:00.000-08:00</published><updated>2008-07-16T13:14:03.852-07:00</updated><title type='text'>Empezando otra vez</title><content type='html'>&lt;div style="text-align: justify;"&gt;Despues del blog colectivo que tuvimos durante el pasado año en la web de Collapse (que fue un curioso experimento), me he aventurado a empezar otro blog gracias a que wizard/Collapse me ha enseñado y recomendado este. A ver que tal sale esta vez...&lt;br /&gt;&lt;br /&gt;Dudo seriamente que hable sobre mi vida personal, porque prefiero mantenerla privada, aunque quizas algun dia se me escape algo :P Mas bien, comentare sobre mis experiencias como programador, tanto sea dirigido a la demoscene o la emuscene, que es en lo que gasto mi escaso tiempo libre.&lt;br /&gt;&lt;br /&gt;Dicho esto, vuelvo a empezar otra vez, aunque sea solo con un nuevo blog :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11160914-110968743847810274?l=shashclp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shashclp.blogspot.com/feeds/110968743847810274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11160914&amp;postID=110968743847810274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/110968743847810274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11160914/posts/default/110968743847810274'/><link rel='alternate' type='text/html' href='http://shashclp.blogspot.com/2005/03/empezando-otra-vez.html' title='Empezando otra vez'/><author><name>shash</name><uri>http://www.blogger.com/profile/16478773471229142784</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_7WaI1gEi66M/S4_DPEbHQBI/AAAAAAAAAQc/2vzHZN3pa80/S220/RLpSFVklb1UHHGNA0RmJCdws2AvW16dU8M0bYem7Usc2Yh4IO9_m6DmxQZVSAvSe.jpeg'/></author><thr:total>0</thr:total></entry></feed>
