Todas las entradas de: Arxel

ScummVM en tu iPhone/iPod touch

AVISO: El siguiente procedimiento implica hacer algunas guarrerías no soportadas por Apple. A pesar de que los creadores del AppSnapp afirman que lo peor que puede pasar es que tengas que restaurar el cacharro mediante iTunes, no me hago responsable de los posibles daños ocasionados. He dicho.

Tras la conferencia del MacWorld del pasado martes, se puso a disposición del público el nuevo firmware 1.1.3 para iPhone/iPod touch. Así que como fan de las actualizaciones, me la bajé enseguida. Con tal mala suerte que, por motivos desconocidos, iTunes no era capaz de instalarla. Por si fuera poco, mi iPod quedo enladrillado temporalmente: no podía actualizarlo, ni escuchar música ni nada de nada. Después de pelearme con él un buen rato, conseguí volver al firmware 1.1.1 y hacerlo funcionar. Y, como no hay mal que por bien no venga, aproveché para probar eso del jailbreak que en tantas partes había leído pero nunca había probado.

Pero, ¿qué es el jailbreak? Es el nombre que recibe la liberación de un iPhone/iPod touch de tal forma que escapamos de las ‘garras’ de Apple y el aparato pasa a ser algo más nuestro, es decir, podremos:

* Usar una tarjeta SIM de un operador distinto al contratado en el caso del iPhone.
* Modificar el aspecto (iconos, fondo, etc.) del interfaz.
* Usar las aplicaciones del iPhone que no vienen en el iPod touch (Mail, Maps, Stocks y Weather) sin tener que pagar los 20$ que Apple ha decidido cargar a los early-adopters como yo.
* Instalar aplicaciones de terceros (i.e. no de Apple), como por ejemplo ScummVM, que es el caso que nos ocupa.

iPhone ScummVM

Los pasos a seguir son los siguientes:

* Si tu iPhone/iPod touch ya tiene el firmware 1.1.1 (Ajustes – General – Acerca), pasa al punto 2.
* Si tu iPhone/iPod touch ya está jailbroken, pasa al punto 3.

1. Downgrade al firmware 1.1.1

Primero tendrás que bajarte el firmware 1.1.1 desde aquí. Una vez hecho esto, conecta al iPhone/iPod touch al ordenador. Si está encendido, apágalo. Ahora, enciéndelo pulsando a la vez el botón home y el botón superior. Cuando aparezca el logo de Apple, sólo deja pulsado el botón home. En teoría, debería de aparecer la pantalla pidiendo que lo conectes al ordenador y que abras iTunes (como la primera vez que lo enciendes). Ejecuta iTunes y en el menu de gestión del iPhone/iPod, haz click en restaurar pulsando a la vez Shift en el teclado. De esta forma podremos elegir el qué firmware instalar (el 1.1.1 en nuestro caso) navengando por el disco del ordenador.

itunes.png

2. Instalación de AppSnapp y jailbreak

Para hacer el jailbreak no hay más que entrar en el Safari del iPhone/iPod touch, ir a la URL http://www.jailbreakme.com y descargar AppSnapp. Pasados unos instantes y siguiendo las instrucciones en pantalla, aparecera un nuevo icono llamado Installer.

appsnapp.jpg

3. Instalación de ScummVM

Entrando en el Installer anteriormente citado, pulsamos en Install (fila de iconos inferior). Nos dirigimos a la categoría Games y ahí seleccionamos ScummVM. Ahora simplemente hay que pulsar en Install (arriba a la derecha). Una vez instalado, pulsamos el botón home, desbloqueamos el iPhone/iPod touch y veremos un nuevo icono relativo a ScummVM.

4. Copia de juegos al iPhone/iPod touch mediante scp

La mayoría de los tutoriales que tratan la gestión de archivos dentro de un iPhone/iPod touch usan WinSCP, así que yo no voy a ser menos. Imagino que mediante scp a pelo en Mac OS/Unix/Linux debería de funcionar igualmente. Para poder copiar cosas al iPhone/iPod touch, primero tendremos que instalar (de forma similar a como hicimos con ScummVM) los paquetes Community Sources, BSD Subsystem y OpenSSH. Hecho esto, ejecutamos WinSCP. En él, en el campo IP ponemos la IP de nuestro iPhone/iPod touch (Ajustes – Wi-Fi – icono (>) de la conexión en uso). Como usuario ponemos root, como contraseña alpine, marcamos el protocolo SCP y hacemos click en Conectar. Ahora simplemente tendremos que arrastrar las carpetas de los juegos que tengamos en nuestro disco duro (izquierda) al iPhone/iPod touch (derecha). Para que el aparato lleve bien la contabilidad del espacio libre, es recomendable copiar los archivos en /var/root/.

winscp.png

En el wiki oficial del port de ScummVM para iPhone/iPod touch hay una lista de compatibilidad indicando los juegos soportados y su ‘corrección’ al funcionar.

5. Jugar

Pulsando en el icono ScummVM de nuestro iPhone/iPod touch, entraremos en su menú principal. Para añadir un juego, no hay más que pulsar en Add Game y buscarlo entre los directorios. Hecho esto, se añadirá a la lista de juegos disponibles.

Los controles son los siguientes:

* Click izquierdo: un toque sobre la pantalla
* Click derecho: manten un dedo sobre el lugar donde quieres hacer click y da un toque con otro.
* Cursores: desliza un dedo a lo largo de la pantalla en la dirección deseada, sin usar ningún otro.
* ESC: mantén un dedo sobre la pantalla y toca dos veces con otro.
* F5 (menú de opciones): mantén un dedo sobre la pantalla y desliza otro de arriba a abajo.
* Teclas F: pulsa el número asociado en el teclado mostrado en pantalla. Es decir, si quieres pulsar F9, pulsa la tecla 9 (obviamente sólo funcionan las teclas F1 a F9).
* Pausa: barra espaciadora del teclado en pantalla.
* (Des)Activar el modo Click+Drag: mantén un dedo sobre la pantalla y desliza otro de abajo a arriba. En este modo los clicks son enviados inmediatamente cuando tocas la pantalla, arrastra a donde deslices el dedo y ‘suelta’ cuando lo retiras. Si usas otro dedo en este modo, es como si soltases el botón izquierdo del ratón y pulsases el derecho.
* Suspender: pulsa el botón home.
* Salir: pulsa el botón home durante unos 5 segundos.

Nintendo DS Homebrew: DSDoom

DSDoom

Ingredientes:
* Una Nintendo DS (en mi caso, una Lite).
* Una Flash Cart (M3 DS Simply probada personalmente).
* El paquete DSDoom, descargable desde aquí.

Instrucciones:
* Descomprimir el ZIP descargado anteriormente en la raíz de la tarjeta SD o cualquiera que sea el almacenamiento que use la FC.
* Ejecutar dsdoom.nds.
* Jugar 😉

Notas:
* El archivo doom.wad incluído en el ZIP es la versión shareware del juego.
* En teoría cualquier archivo .wad de cualquier versión de Doom debería funcionar.
* No soporta música por el momento, pero sí efectos de sonido.
* De momento el juego online no funciona todo lo bien que debería al parecer.
* Desconozco la forma de poder jugar sin tener los archivos en el raíz, me imagino que toqueteando el archivo de configuración…

Una Obra maestra atemporal

AW1
AW2

Another World es una joya que aun 15 años desde su creación se mantiene fresca, probablemente por esa ambientación que muestra lo justo y hace volar la imaginación (la escasa paleta de colores era una imposición de la época, pero Chahi consiguió que ese minimalismo obligatorio se convirtiese en una virtud) y sumerge al jugador en una de las experiencias cinemáticas más grandes (a pesar de su corta duración) de la historia de los videojuegos.

Con motivo del 15 aniversario de su lanzamiento, Another World fue reeditado en 2006 con varios extras. El más destacable es una versión mejorada del juego con nuevos fondos más detallados y mayor resolución. De todas formas, aquellos puristas pueden jugar a la versión original a 320×200 y los fondos a 16 colores, e incluso combinar características nuevas con las viejas.
Además, en el mismo disco del juego se incluye un making of con sus creadores (audio en francés subtitulado en castellano) y un ‘diario de desarrollo’ con bocetos y notas.
Por otra parte, un segundo CD contiene la banda sonora original, regrabada para la ocasión.

Absolutamente recomendable.

FIC.tion : Creador de Aventuras conversacionales

¿Qué es FIC.tion?

FIC.tion es un proyecto orientado a crear aventuras conversacionales de forma relativamente sencilla. Su núcleo es el lenguaje SFL.

¿Por qué motivo surge este proyecto?

Necesitaba un tema para la realización de la práctica especial de la asignatura de Compiladores, que requiere el uso de uno o más elementos de un compilador (scanner, parser, generador de código, etc.). Era deseable que la idea fuese original y amena de llevar a cabo, características que reúne ésta.

¿Cuánto has tardado en acabarlo?

Primero aclarar que no está acabado, sino en un estado lo suficientemente avanzado como para que la gente no se ría (mucho) de mí.
La idea inicial surge alrededor de Febrero de 2007, pero no es hasta Marzo que me pongo manos a la obra, dedicándole un par de horas a la semana más a pensar que a implementar. FIC.tion alcanza un estado aceptable a mediados de Mayo tras dedicarle un par de semanas de manera más intensiva.
Así que la respuesta corta a la pregunta es: poco.

¿De dónde viene el nombre de FIC.tion?

Es un juego de palabras entre dos conceptos: el primero, el lugar donde estudio (Facultad de Informática de La Coruña, o FIC); el segundo es que a las aventuras conversacionales también se les conoce como ‘ficción interactiva’.

Entiendo, pero… ¿qué es una aventura conversacional?

Es quizá el primer género del mundo de los videojuegos. Su nacimiento se remonta a la década de los 70, cuando Will Crowther escribe en 1975 Adventure (después llamado Colossal Cave) en Fortran para el PDP-10. Más tarde en 1979, miembros del MIT Laboratory for Computer Science finalizan Zork, que sería uno de los muchos juegos de la compañía por excelencia del género, Infocom.
Una aventura conversacional es básicamente una historia contada en primera persona, en su estado más puro sin gráficos ni sonido, en el que la interacción entre el hombre y la máquina se basa en la escritura de comandos en lenguaje casi natural. En base a estas frases, el avatar investiga su entorno, se desplaza o usa objetos.

Antes hablabas del lenguaje SFL, ¿puedes hablar algo más de él?

Claro, SFL es el acrónimo de Structured Fiction Language. Es un lenguaje declarativo al estilo SQL, del cual coge parcialmente su nombre (Structured Query Language). Se basa en la definicion de salas, objetos y personajes con sus características.

SQL, SFL… desde luego no te has mucho estrujado las meninges…

Podría haberle llamado SIFILIS (SImple FIction Language for Interactive Software), pero quizá era algo controvertido.

¿Qué herramientas has usado para este proyecto?

– Flex, el generador de analizadores léxicos de GNU, en su versión para Linux que genera código C.
– Bison, el generador de parsers de GNU, en su versión para Linux que genera código C.
– GCC, el compilador de C de GNU en su version Linux, para generar el ejecutable en C que lee un archivo SFL.
– Javac, el compilador de Java de Sun para Linux, para generar el bytecode de la traducción desde SFL y de las clases auxiliares.

Conozco GCC y Javac, pero… ¿para qué sirven Flex y Bison?

Flex se encarga de comprobar que una cadena de entrada es léxicamente correcta, por ejemplo en C:

for(i=0;i<10;i++), es una cadena correcta desde el punto de vista léxico.
for i++ ; ( i<10 ; i=0), también lo es, ya que sus elementos pertenecen al lenguaje (for, i=0…).
fir(i=0;i<10;i++), no lo es.

Bison comprueba que una cadena es sintácticamente correcta; la primera de las anteriores lo es pero la segunda no. Además, una vez que reconoce una tira (o parte de ella) como válida, puede realizar acciones (asignar un valor a una variable, imprimir algo por pantalla, etc.)

Muy educativo, sí… ¿qué características soporta FIC.tion?

Actualmente:

* Hasta 64 habitaciones distintas por juego, con hasta 4 vecinos cada una.
* Hasta 8 items y personajes por sala.
* Conversaciones con 32 preguntas y respuestas diferentes.
* Hasta 16 interacciones diferentes por objeto, cada una de las cuales puede desencadenar 4 eventos.
* Inventario de hasta 8 objetos.
* Items con estado, que puede ser cambiado debido a eventos.
* Interacciones con objetos dependientes de interacciones previas o de estado de objetos.
* Eventos dependientes de acciones previas.
* Objetos ocultos desocultables.
* Contabilización de puntuación y número de movimientos.
* Finalización por alcance de sala u obtención de objeto.

No parece muy potente, ¿no? ¿Piensas mejorarlo?

No es muy potente teniendo en cuenta que Zork tiene casi 30 años y le da mil vueltas a éste… De todas formas, sí, tengo previsto añadirle más funcionalidades como:

* Aumentar los límites en el número de salas, objetos, etc. quizá hasta un límite infinito (o el que permita la memoria).
* Añadir nuevos tipos de eventos, incluso algunos de tipo condicional.
* Implementar condiciones de terminación compuestas más complejas.
* Hacer más flexible la interpretación de los comandos desde teclado.
* Añadir nuevas características a los objetos como peso, género, número, sinónimos…
* Implementar una sencilla interfaz para mostrar imágenes estáticas y tocar música.

¿Vas a poner FIC.tion a disposición del público?

Sí.

¿Cuándo?

Pronto.

¿Incluído el código fuente?

No.

¿Por qué no?

Odio que la gente critique mi código :] Además, tampoco es una obra magna de la ingeniería que merezca ser admirada. Así que solo distribuiré los binarios con un sencillo juego de ejemplo.

¡Pero eso va a contra del software libre!

Cierto. ¿Alguna pregunta más?

Eres un borde. ¿Al menos responderás a preguntas sobre su implementación, etc.?

Por supuesto, sin problema.

Algo es algo… ¿qué se necesita para poder crear y/o ejecutar juegos hechos con FIC.tion?

Necesitas un ordenador con Linux, un compilador de Java y mis binarios. Para crear un juego antes tendrás que haber escrito un archivo SFL correcto y para jugar a uno ya creado necesitarás su SFL o su traducción o compilación Java (.java/.class).

¿Linux? ¿Y qué pasa con Windows?

Quizá algún día portee FIC.tion a Windows, si hay gente que me lo pide y me veo con ganas :]

Una última pregunta: ¿cómo funciona SFL?

En unos días incluiré un breve tutorial del lenguaje basado en el juego que incluiré en el paquete.

Perfecto.

Pues sí, ¿puedo irme ya?

Claro, ya hemos terminado. Pero una última curiosidad, ¿ha visto el profesor de la asignatura el proyecto?

Todavía no.

¿Y si no le gusta la idea?

Buena pregunta…

Adventure Game Studio: tus Aventuras gráficas, fácilmente

¿Alguna vez has querido hacer tu propia aventura gráfica, pero no tienes los conocimientos suficientes para ello, o simplemente no te apetece o no tienes tiempo para aprender cierto lenguaje (ya sea estándar como C o ‘dedicado’ como DIV2/Fenix) o librería de programación (SDL, Allegro, etc.) para cumplir tu sueño? En ese caso, estimado Tempwin lector, lo que necesitas es Adventure Game Studio , cuyas características principales son:

* IDE basado en Windows para crear tus juegos lo más rápido y fácilmente posible.
* Versiones nativas del motor para Windows, Linux (x86) y MS-DOS.
* Lenguaje de scripting à là  C si no te gusta usar ventanitas, aunque la mayoría de las cosas se pueden hacer con ratón.
* Soporte de color de 8, 16 y 32 bits, éste último con canal alpha si se desea.
* Resoluciones de 320×200, 320×240, 640×400, 640×480 y 800×600, tanto en ventana como a pantalla completa.
* OGG, MP3, WAV, MOD, XM y MIDI para sonido y música. Sonido ambiental dependiente de la localización, sonidos automáticos para los pasos, múltiples canales de sonido, crossfading.
* Soporte de texto hablado; la voz es compilada en un archivo opcional (es decir, el juego funcionará sin voces si no las tienes, pero funcionará).
* Respuesta a eventos programada mediante el interfaz o vía scripts.
* Gestión sencilla de inventario.
* Casi todo es personalizable, desde el GUI hasta los gráficos del cursor del ratón.
* Hasta 150 personajes (NPCs) en un mismo juego, cada uno con su propio inventario; que pueden ser escalados, iluminados y moverse en 2, 4 u 8 direcciones.
* Múltiples personajes jugables (como en Maniac Mansion o Day of the Tentacle).
* Salas con scroll.
* Sistema de conversación a lo Lucasarts.
* Las traducciones a otros idiomas se pueden distribuir por separado.
* Sistema de plugins para extender las funcionalidades de AGS.
* El juego se compila a un único EXE. Voz y música se puede almacenar en archivos separados.
* El script del juego se compila a bytecode cuando se salva el juego para que el motor vaya más rápido.
* Y el resto de cosas que podrías esperar: cargar/salvar partidas, objetos, animaciones, cutscenes, etc.

Algunos juegos creados con AGS:



Lo bueno:
+ Es gratuíto.
+ Obtienes resultados en poco tiempo, ya que no tienes que aprender a usar ningún lenguaje o librería.
+ Puedes centrarte en la parte artística y jugable.
+ Los juegos corren en diferentes S.O (Windows, Linux, DOS)
+ Contenidos extra (voz, traducciones) pueden distribuírse aparte sin afectar al ‘núcleo’ del juego.

Lo malo:
– No es open source (al parecer, el autor escarmentó con su anterior proyecto libre, que fue ‘fusilado’ y vendido por parte de un listillo).
– Si quieres aprender a programar un juego como en la vida real, esto no es lo que buscas.
– Si necesitas hacer cosas muy específicas es mejor que te programes tu propio motor.
– El IDE sólo corre en Windows.

Sitio oficial

Algún día…

(qué profesional parece y todo…)

No seáis tí­midos…

Tempwin me cuenta que este weblog tiene bastantes visitas. Sin embargo, los únicos comentarios son suyos o míos. Por eso os digo (apelando a la variedad de culturas que nos leen):

(en castellano)
No seáis tí­midos, escribid comentarios. Ayudadnos a mejorar el sitio.

(en inglés)
Don’t be shy, post your comments. Help us to enhance our site.

(en lenguaje Wookiee)
HHHAAArrRRRRRRRRn hhhh! HHHurrRRRRR RRRn hhhh. UUUHHH GGG-rrrr!

GameEx: Frontend para Juegos + Home Theatre

Hoy por fin actualicé, después de mucho tiempo en el olvido, mi romset de MAME a la última versión (1.12)… y no recordaba lo asquerosillo que era el aspecto de Mame32. Así­ que me puse a buscar algún frontend molón y encontré éste: GameEx.

GameEx es un frontend basado en DirectX para MAME, Daphne, juegos de PC o cualquier emulador de lí­nea de comandos. Además también es un software de home theatre que permite reproducir ví­deo, audio, ver imágenes o escuchar emisoras de radio. Su meta original era la de ser un plugin para Windows XP Media Center y para ser usado en cabinas arcade como un frontend para MAME, pero actualmente funciona en cualquier versión de Windows a partir del 98SE y tiene más funcionalidades.

GameEx

GameEx soporta todas las versiones oficiales de MAME para DOS, Windows, MAME32, MAMEPlus, etc. Daphne y Zinc, lanzando de manera automática la emulación de los juegos basado en el hardware de PSX en éste en lugar de en MAME. También integra información sobre los juegos, las capturas de pantalla e incluso ví­deos individuales de cada juego.

Sus requisitos son:

* Windows 98SE, ME, 2000 o XP.
* .Net Framework 2.0.
* DirectX 9.0C.
* Windows Media Player 9 o superior.

Algunas capturas.

Y el link para descargarlo.

Arxel in the Mix: Finely Broken Tunes

Hasta ahora, las entradas escritas por mí relacionadas con temas musicales han sido básicamente recomendaciones sobre el trabajo de otros. Pero en esta ocasión voy a hacer una excepción y voy a recomendar una creación propia (espero que Temp me permita este autobombo :]).

Primero empecé intentando crear mis propios temas: Sound Club, distintas versiones de EJay, Reason o Fruity Loops (ahora FL Studio) han pasado por mis manos obteniendo resultados más o menos satisfactorios (más bien menos :]). Así que desde hace un par de años me dedico a la mezcla de música, primero con Traktor DJ Studio (orientado al live performance) y ahora con MixMeister Fusion (más enfocado al estudio).

Después de mi primer trabajo realizado con MixMeister (Finely Chopped Tunes, algo así como ‘temas cortados finito’ – quizá la posteemos con carácter retroactivo más adelante), vuelvo a la carga con otra sesión, titulada Finely Broken Tunes. El estilo en esta ocasión es mas bien breaks/chillout; dada mi falta de conocimientos profundos sobre el género he mezclado bastantes temas trance conocidos, pero usando el remix más acorde con el ‘ambiente’ general de la sesión.

Carátula fronta de Finely Broken Tunes

El tracklist es el siguiente:

01 Orbital - Halcyon & On & On
02 Virgin Souls - Personality (Zabiela's 'Oh So Deep' Mix)
03 Timo Maas - Der Schieber (Starecase Remix)
04 Icehouse - Don't Believe Anymore (Ivan Gough & Colin Snape Remix)
05 Peter Benisch - Skymning
06 Paul van Dyk feat. Second Sun - Crush (Hyper Remix)
07 BT - The Force Of Gravity (Dylan Rhymes Push Up Mix)
08 Energy 52 - Cafe Del Mar (Hybrid's Time Traveller Remix)
09 Paul van Dyk - Vega (Starecase Remix)
10 Lost Tribe - Gamemaster (Mandrake Chillout Breaks Mix)
11 Space Manoeuvres - Stage One (Blain Sandhag Mix)
12 Space Manoeuvres - Stage One (Space Manoeuvres' Total Separation Mix) (with 'Mike Koglin - On My Way' vocals)
13 Delerium feat. Sarah Maclachlan - Silence (Fade's Sanctuary Mix)
14 Rank 1 - Breathing (Airwave) (Breaks Dub)

Estrenando la sección NAND Pack of the Month, ponemos a vuestra disposición la descarga de mi trabajo; el pack (de unos 32 MB) incluye la sesión (obviamente) codificada como VBR a 94 Kbps, este tracklist y unas portada y contraportada creadas por un servidor.

Se agradecerán comentarios y críticas constructivas 😉

Gloria Retro Móvil

w800-Metroid

Lo bueno:
– Los clásicos de NES en tu móvil: Super Mario Bros., The Legend of Zelda, Metroid, Donkey Kong, Megaman, etc.
– La velocidad de emulación es bastante elevada (>30 fps en todos los que he probado).
– Posibilidad de mapear las teclas, rotar la pantalla, salvar/cargar partidas, etc.
– Mejores juegos (y gratis) que mucha morralla hecha específicamente para móviles.

Lo malo:
– El control no es tan preciso como con un pad, lo cual puede ser desesperante en algunos juegos.
– Ligera distorsión en los gráficos si la pantalla del móvil tiene una resolución inferior a la del juego (molesto sobre todo en las letras).
– No hay sonido (supongo que para que el emulador corriese más ligero, este Java…).