Friday, December 02, 2005

Port de la mayhem a Windows (1/2)

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.

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.

Voy a intentar explicar en un estilo parecido a un diario, como se desarrollo:


Domingo, 20 de Noviembre del 2005
---------------------------------------------

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.

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.

Me preocupo de ponerme en contacto con los coders de Incognita, para ver si me pueden pasar el codigo original.


Lunes, 21 de Noviembre de 2005
-----------------------------------------

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!

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.

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.
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.


Viernes, 25 de Noviembre del 2005
-------------------------------------------

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.

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.

Decido tomarme el dia libre, y dedicarme al port...


Pero eso lo explicaré en el siguiente post :)

Thursday, November 24, 2005

El abandonador de blogs

Ese soy yo! Comentaré un poco a que me he dedicado estos meses, a ver:

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.

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.

Sobre la party en si, la localización no era la hostia ni mucho menos:
- El sistema de sonido emitia ruido, perceptible aunque no muy molesto, la verdad.
- El proyector tenia serios problemas de ruido "rosa" en pantalla.
- No habia una sala anexa para dormir (esto lo considero menor).
- No habia duchas decentes. Las que habia, eran comunes, con lo que consideraria condiciones higienicas altamente mejorables (daban grima, vaya).
- No habia calefacción. Por las noches hacia frio, y te tenias que abrigar como si estuvieras en la calle.
- La mayoria de charlas en portugués. Lo entiendo, pero igualmente no me gustó.
- Muy poca gente. Sobre 20 de media.

A favor:
- Gratis para extranjeros y chicas.
- Organización muy simpatica y atenta.
- 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.
- Portugal es mucho mas barato que España, buenos precios para todo.
- Diversión. Charlé con mucha gente, y me lo pasé realmente bien.

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.

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!)

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 asignatura 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...

También nos entrevistaron a Napalm y a mi en un programa de radio, referente a la bcnparty. Podeis encontrarla aqui, la entrevista empieza a partir del minuto 29 aproximadamente.

Tambien dimos una charla Slack y yo en la bcnparty'101, podeis bajar la presentación aqui. Tristemente, no la grabamos ni en video ni en mp3, asi que solo hay la presentación que usamos.

6) A parte me he dedicado a portar dos 4k de Necrostudios a Windows, en particular: Codenoise y la Voxel bukakke. A su vez, slack portó a Linux, la unica producción de la que he sacado el codigo: Etram.

7) Fruto de estas "colaboraciones", decidimos hacer una 4k rapida para la Kindergarden, a medias. Salió algo lenta y falta de contenidos, pero la hicimos rapidamente por diversion. La podeis encontrar aqui. 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).

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.

Nada mas, que tanto egocentrismo y tanto texto ya es excesivo, adeu!

Sunday, August 07, 2005

Ha pasado el tiempo

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 Euskal Encounter (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.

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:

1) El primer (y espero que no ultimo) EP de trace/mr.doob/robbiek/etc..., bajo el netlabel de roterfleck. Lo podeis conseguir aqui. 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!

2) La demo ganadora de la Assembly'05: Iconoclast / ASD. Podeis verla en video: LOWQ / HIGHQ, o bien en realtime (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?).

3) La 64k ganadora la Assembly'05: Che Guevara / Fairlight. 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.

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 Hysteria 4k / Collapse y de la Not Art / Necrostudios. Primero comentare la Not Art: creo que estan muy limitados por el compresor que usan en linux. Les haria falta algo como el crinkler, 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!

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

Bueno, lo dejo ya aqui. Mas y mejor, cuanto pueda, que tengo que seguir con cierta prod para cierta party, que no conseguire terminar :)

Monday, June 27, 2005

No disponible

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 :'(

Aunque he hecho un monton de cosas utiles:

- 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.

- 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.

- 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 :)

- He comprado los billetes para la Euskal (voy en avion). Ademas, tambien he conseguido montarmelo para ir al Senglar Rock 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".

- 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)

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

Sunday, May 29, 2005

Rompiendo mis reglas

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.

Leí hace unos dias en el blog de trace 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...

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):

- 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.

- 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.

- 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.

- 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

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.

Have fun, be happy :)

Thursday, April 28, 2005

Probando la Nintendo DS

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 aqui, 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:



Nada, aqui os junto las 2 roms, probadas en los 3 emuladores que existen en la actualidad (ideas, dualis y dsemu, por orden de preferencia personal):

Roms starfield 2D y 3D

PD: Si alguien quiere el codigo, que me lo comente por los canales habituales

Wednesday, April 13, 2005

Lo prometido es deuda

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: source de la Etram

Wednesday, April 06, 2005

Retrasos...

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):







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.

Thursday, March 10, 2005

Nuevas releases hoy!!!

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

Thursday, March 03, 2005

Emulando la game boy

Por alli por el 1997 conoci la emulacion, y la verdad es me fascinó. Poder jugar a todos los juegos que no tuve dinero 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:



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 interesante programar todo el emulador del z80, ademas de ser posiblemente mi primer proyecto serio a nivel personal. Nada mas, en un futuro mas shots :)

Tuesday, March 01, 2005

Empezando otra vez

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...

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.

Dicho esto, vuelvo a empezar otra vez, aunque sea solo con un nuevo blog :)