Wiibrew, juegos caseros en wii

27 08 2008

canal homebrew logo
Ayer instalé en mi Wii el canal hombrew para wii mediante el Twilight Hack.

Vamos por partes.

El homebrew son programas caseros desarrollados por la comunidad, y generalmente gratuitos. Está de moda el desarrollo de este tipo de juegos y programas para las consolas de última generación. Tanto que XBOX360 cuenta con una comunidad oficial para comercializar los juegos creados con XNA pero este no es el tema que nos concierne.

Empecé a conocer el mundo de la scene (comunidad de programadores que se dedican a extraer el máximo partido a todo el hardware que pillan por mano) por la PSP, en la que haciendo un downgrade del software de la consola se podía explotar una vulnerabilidad para ejecutar código casero. Pese a que la primera utilidad que se nos ocurre es el poder jugar a juegos pirateados, esta funcionalidad encierra mucho, muchísimo más. Es la comunidad la que se dedica a hacer juegos amateur para PSP, a crear nuevas aplicaciones para PSP, tales como clientes/servidores de ftp (para escribir en la memoy card sin tener que conectar la consola por usb o sacar la tarjeta), servidores web, reproductores de vídeo de cualquier formato, agendas, calendarios, mensajería instantánea…. En definitiva, hay miles de aplicaciones que pueden hacer que una consola diseñada para jugar y navegar por internet, se convierta en un miniordenador con multitud de posibilidades que no solo no son soportadas por el fabricante, ni éste intenta potenciarlo, sino todo lo contrario, se persigue. Persiguen a gente que se dedica a mejorar su aparato de forma no oficial sólo porque no pueden sacar dinero de ello, pero que podrían sacarlo si lo fomentasen, vendiendo más consolas, o llevandose una parte de beneficios de venta de aplicaciones, o de otross medios, pero como siempre, se niegan a cambiar su anticuado modelo de negocio.

A lo que iba, ayer abrí mi consola a un nuevo abanico de posibilidades al instalar el canal homebrew de wii, que permite acceder a una lista por internet donde descargar e instalar de una forma ultrasencilla, aplicaciones caseras tales como juegos, emuladores, herramientas, demos, etc. Es tal el afán de la comunidad por exprimir la consola que incluso han sacado un programa para reproducir películas en DVD, que increiblemente el software oficial no permite, y gracias a ellos sí. Y no solo eso, hay una versión del reproductor libre MPlayer, que permite a la consola reproducir cualquier formato de vídeo, incluso por streaming, en la consola. Impensable para una Wii recién comprada. Así que lo próximo serán dos cosas:
1. Montarme un servidor de medios en mi portatil para acceder desde la Wii (la PS3 lo hace de serie)
2. Instalarme el ScummVM para Wii y probar el Monkey Island :D

Me parece increíble esta gente, que se dedica a encontrar fallos de seguridad con los que luego trapichear y que dan pie a todas estas posibilidades para los usuarios de estos dispositivos. Un bravo por ellos y un servidor que se muere de envidia y que le gustaría saber hacer todas esas cosas. Esta gente es capaz de modificar una partida salvada de un juego para hacer un buffer overflow y ejecutar código casero, y que parece ser la forma más común de entrar, ya que en PSP se hizo para el GTA y en Wii se hace para el Zelda. Una vez se tiene acceso al núcleo, y por ingeniería inversa, averiguan cómo explotar toda la funcionalidad. Sencillamente increible, y ya no hablemos de los que desmontan la consola y averiguan cómo saltarse la protección de los juegos….

Por qué no enseñarán estas cosas en la universidad :P

Enlaces:
Tutorial en inglés para instalarlo para torpes (con instalador para windows y todo)
Hilo en ElOtroLado (también para torpes)
Google buscando twilight hack, wii brew, wii homebrew channel para los mas hardcore



Libros sobre SDL

12 03 2008

Buenas!

He encontrado un par de libros muy buenos sobre el desarrollo de juegos en SDL.

El primero es de Alberto García Serrano y tiene licencia CC.

Lo podéis bajar de aquí, bien de la web de su autor. Son menos de 2 Mb y unas 155 páginas. Lo conozco desde hace bastante y lo he usado y está muy bien.

El segundo es de Antonio García Alba y creo que la licencia también es CC.

Es supercompleto, unas 700 páginas y pesa 14 Mb. Incluye mucho código de ejemplo y lo he subido aquí porque no se cual es la web del autor.

A ver si voy practicando con la SDL otra vez para el concurso de programación de videojuegos de la CAMPUS PARTY de este año a ver si puedo ir :D



Concurso INCREA

12 02 2008

En diciembre me presenté a un concurso sobre proyectos innovadores que había en mi universidad organizado por la cátedra INCREA. Me presenté con el proyecto de fin de carrera con la ayuda de mi tutor Raúl Montoliu que me aconsejó cómo hacer el informe. Para presentarse, aparte de un informe y una ficha, hacia falta un cartel tamaño descomunal (A2) para colgar allí en la UJI.

El otro día me mandaron un correo comunicándome que los carteles iban a ser expuestos en breve en la universidad pero no tengo ni idea de dónde ni cuando, ni cuando se resuelve el concurso, mientras tanto, os dejo con el cartel que resume mi proyecto para aquellos que aun no han entendido de que va o no he sabido explicarselo :)



Simple Youtube Video Watcher Addin for MSN Messenger

27 12 2007

Hola!

En una estupenda tarde de aburrimiento en la que no sabía qué hacer, encontré por mi mesa unos papeles sobre el desarrollo de addins para MSN Live Messenger, lo que significa que con un poco de programación en .Net se puede ampliar la funcionalidad del cliente de mensajería de Microsoft (no mucho, al menos al principio, está muy restringido, pero se puede apañar para quitar algunas limitaciones). Es por ello, que basándome en un plugin para el cliente Emesene de linux el cual permite embeber vídeos de youtube en la propia conversación, he decidido crear un plugin similar para el cliente oficial, que si bien no los incrusta en la conversación (lo cual intentaré hacer mas adelante) abre cada vídeo en una ventana externa para poder verlo sin tener que abrir el navegador y entrar en la página web.

Para instalar el addin hay que seguir los siguientes pasos:
1. Descargar el instalador. (Requiere .Net Framework 2.0 que se puede bajar aquí y flash instalado en internet explorer)
2. Instalar.
3. Si tenias el MSN abierto, cierralo del todo y vuelve a abrirlo. Si lo tenias cerrado, simplemente ábrelo de nuevo.
4. En el MSN Live Messenger, ve a Herramientas > Opciones. Abajo aparecerá la ficha “Accesorios”. Pincha
5. Agrega el archivo .dll que se encuentra en la carpeta donde se ha instalado el programa (por defecto en c:/Archivos de Programa/Simple Youtube Video Watcher)
6. En la ficha de contactos, haz clic en tu nick, y debajo de los estados que puedes poner, aparece “Activar plugin”, activalo.

Ahora cada vez que recibas un enlace a un vídeo de youtube, se abrirá una ventana con el vídeo.

También he subido el código fuente, para que luego digan que los que desarrollamos en Windows no liberamos el código, está aquí.

Notas sobre el desarrollo (para desarrolladores):
Tutorial sobre el desarrollo de addins para Messenger aquí y aquí
El principal problema de los addins para Messenger es que se ejecutan en un entorno controlado (CAS, code access security) que no permite leer/escribir ficheros, acceder a internet, etc. pero para poder hacerlo, rebuscando por ahí, encontre aquí la solución, la cual consiste en firmar digitalmente el ensamblado (Project Properties > Signing > Sign) y añadirlo a la caché de ensamblados global (GAC) escribiendo:
"C:\Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" /i "C:\Archivos de programa\MSN Messenger\NombreDelAddin.AddIn.dll"

Con esto podemos hacer cosas interesantes.

Luego para el deployment, se crea un setup project y se añade la carpeta especial Global Assembly Cache Folder donde pondremos la dll del plugin para que el instalador la coloque correctamente en c:/Windows/assembly y funcione completamente.

icono meneame.netComparte



Proyecto de fin de carrera

5 09 2007

Pese a que no es la versión definitiva, he colgado en stage6 un vídeo demo de mi proyecto.

Consiste en un sistema de visión por computador, que consta de una webcam normal y corriente, una plantilla con forma de media pista de baloncesto y unas fichas de colores. Una vez se calibra la cámara para obtener una imagen perpendicular de la pista, en la pantalla del ordenador se observa un entorno virtual donde unos muñecos en 3 dimensiones toman posiciones sobre una pista de basket virtual correspondiendo con las posiciones de las fichas de colores sobre la plantilla. De este modo, moviendo las fichas de colores con la mano, conseguimos que los muñecos de la pantalla se muevan por la pista pudiendo así plantear estrategias como si de una pizarra se tratase, o analizar jugadas.

En la versión final, hay muñecos de dos colores para diferenciar ambos equipos, una de las fichas hace de pelota que va dando botes por la pantalla y hay una canasta donde debería estar.

La librería de visión se llama OpenCV, la de gráficos es Irrlicht, está programado en C++ con Visual Studio, la canasta (que en el video no estaba aún) la hice con 3ds Max 9 y las texturas con Photoshop CS3.

Recomiendo verlo a pantalla completa haciendo doble clic en la imagen o en el botón de pantalla completa.

Actualizado: Al final saqué un 9! Si alguien quiere la memoria del proyecto que me lo diga.



OpenGL 3

18 08 2007

En el siggraph se ha anunciado por fin una versión nueva de Opengl después de que estuviese peligrando su desarrollo. Esta nueva versión tendrá como novedad el fin de estructuras como glBegin/glEnd y se orientará mas al uso de objetos como serán los objetos buffer, shader, texture filter, vertex array, image, format, rasterization, operaciones por-sample, framebuffer entre otras. Mas info aqui

A ver si cuando salga le echo un ojo y de paso vuelvo a meterle mano que lo tengo un poco olvidado!

Powered by ScribeFire.



SDL joystick + Playstation DualShock

18 08 2007

Pues me encontraba yo haciendo una chorradita con la libreria SDL que va genial para hacer juegos con gráficos en 2D o en 3D si le añadimos OpenGL y quería usar un mando de la play. Tengo un adaptador de Play a USB que se llama Super Dual Box Pro, fabricado por MayFlash con el que lo tengo conectado al PC y que podéis conseguir en cualquier tienda de videojuegos. El caso es que con el último driver para vista (el de agosto del 2007 que por lo visto salió 3 días antes de que me diese por probarlo) no detecta la cruceta y la segunda palanca la mapea como una cosa rara así que para usarlo recomiendo el driver anterior que aunque no pone que soporte vista, a mi no me hace falta (http://www.mayflash.com/Download/Super5%20pro.EXE).

Bueno, usando las funciones de la SDL para obtener información del joystick y con el driver más o menos bien configurado, el perfil del DualShock es el siguiente:

5 Axes (5 ejes aunque las dos setas solo deberían ser 4)
1 Hat (la cruceta)
0 Balls (ni idea)
16 Buttons (16 botones, que con el código que hay al final corresponde con los siguientes valores)

triángulo = 0
O = 1
X = 2
Cuadrado = 3
L2 = 4
R2 = 5
L1 = 6
L2 = 7
Start = 8
Select = 9
L3 = 10
R3 = 11
Pad Arriba = 12
Pad Derecha  = 13
Pad Abajo = 14
Pad Izquierda = 15

Estas correspondencias se pueden cambiar desde la pantalla de configuración del driver.

Código que muestra los botones:

while(!done){     
    while(SDL_PollEvent(&ev)){
        if(ev.type == SDL_JOYBUTTONDOWN){
            cout << (int)ev.jbutton.button << endl;
        }
        if(ev.type == SDL_KEYDOWN){
            done=true;
        }
    }
}
           

Technorati Tags:

Powered by ScribeFire.



Competición de robótica en periódicos

24 05 2007

Pues si, como era de esperar, también salió la supernoticia de la competición en los periódicos de la zona, el levante de castellón y el ABC de la comunidad valenciana, se ve que no hay noticias más importantes que salir nosotros en la portada jajaja, esto de la robótica triunfa, debería dedicarme a ello en el futuro…. espera… esto ya lo he dicho antes….
Dejo los dos enlaces a los PDFs, ojo que uno tiene dos páginas, y como no, salgo yo en las fotos jajaja, ¿que pasa? ¿Que no había más gente? Si éramos un montón…

ABC de la comunidad valenciana
Levante de Castellón



Robonova vs. The Mighty CardBoard Box

22 05 2007


Este es un montaje de video que he hecho con motivo de las prácticas de robótica de la uni con el robot Robonova-I, el trabajo consistía primero en montar el robot con las piezas del kit y luego programarlo en roboBASIC para que busque la caja de cartón y la derribe. El vídeo son trozos de las pruebas que íbamos haciendo hasta conseguir que tirase la caja en al menos el 90% de las veces.
Al final en la competición contra la caja lo hicimos bien en el modo de frente y de espaldas, en ambos a la primera y sin caer, cosa que otros equipos no hicieron y aun así puntuaron mejor por su cara bonita…
Veremos mañana en la competición de sumo Robot vs. Robot.

Technorati Tags:

Powered by ScribeFire.



KMLparser

9 02 2007

(This post is in two languages / Este post está en dos idiomas)

Español

Estos días que he estado trabajando en una aplicación para Google Maps, necesitaba poder cargar un track desde KML con una ruta y waypoints con descripciones y fotos. En mapki encontré un fragmento de código de JavaScript que cargaba solo placemarks pero me sirvió como base para desarrollar mi propio parser cargándolo asíncronamente con AJAX y usando funciones de DOM para obtener los nodos que me interesaban. El resultado es el siguiente…

Descargar: KMLparser.js

English:

These days I was working on an application using Google Maps, I needed to load tracks from KML files which should have a track and some waypoints with descriptions and photos. At mapki I found a fragment of JavaScript code that loads just placemarks but I used it to develop mi own kml parser that loads the file asynchronously with AJAX and uses DOM functions in order to obtain the nodes I needed.
Download: KMLparser.js

Updated: He arreglado el enlace que estaba mal. The link has been fixed.





Recomendaciones
Actividades para tus vacaciones
Buceo/Cursos de buceo  |  Excursiones naúticas  |  Piragüismo  |  Rafting  |  Surf  |  Globo aerostático  |  Heli Excursión  |  Paracaidismo  |  Parapente  |  Vuelo sin motor  |  Vuelo con motor  |  Culturales  |  Gastronomía y Enología  |  Historicas  |  Salud y Relax  |  Bicicleta montaña  |  Caballos  |  Descenso cañones  |  Escalada/Alpinismo  |  Espeleología  |  Golf  |  Paint-ball  |  Quad  |  Senderismo/Trekking  |  Todo terreno  |  Raquetas de nieve  |  Esquí alpino  |  Forfait  |  Trineo de Perros  |  Motos de Nieve  |  Snowboard