miércoles, 6 de abril de 2011

Aprendiendo C: Satuxconv (I)

Mis conocimientos en lenguajes de programación son muy escasos. Con mi ordenador MSX aprendí Basic, a los 13 años de edad. Pascal y Cobol se añadieron a la lista durante el segundo grado de FP. La lista se detuvo aquí y me centré en sistemas operativos, redes, etc.

Hoy, 14 años más tarde, me he puesto manos a la obra para aprender nuevos lenguajes y el elegido ha sido, por su cercanía a los sistemas *nix, C. Con miras a C++ y, finalmente, QT.

Vuelta al aprendizaje

Encontré un manual de iniciación bastante bueno en la web de Nacho Cabanes. Y a ponerse a ello: con paciencia ir asimilando nuevas órdenes y algunas nuevas formas de hacer las cosas. Algunos viejos conceptos de los lenguajes que conocía me sirvieron para avanzar un poco más rápido, ya que eran muy similares. Pude comprobar que era cierta la frase aquella de (más o menos decía así): aprender cualquier lenguaje te da una buena base para aprender otros lenguajes de programación.

Una vez terminado el curso, como seguir ? He optado por hacer un programa, no muy complicado pero que contenga pequeños retos que, al empezar, no sepa como afrontar. Ayudándome de Internet puedo ir resolviendo esos problemas y, en el fondo es lo que interesa, aprender y ganar experiencia.

Qué programa hacer ? Debería ser un programa que no existiera en GNU/Linux y me gustaría utilizar... pensemos...

Satuxconv: Parcheador de imágenes ISO de Sega Saturn

Sega Saturn fue la consola de 32 bits de Sega. Fue la segundona en la batalla ganada por Sony con su Playstation.

Un servidor pudo hacerse con una Saturn de segunda mano por 5000 de las antiguas pesetas (1998, aproximadamente) junto con un par de juegos. Por desgracia para esta plataforma, muchos juegos buenos no salieron de Japón, así que la única manera de poder disfrutarlos era descargarlos de Internet y grabarlos en CD.

Pero esto no era suficiente, la consola lleva una protección regional. Se dividió el mundo en 8 partes y tanto la consola como los juegos llevan uno (o dos, como máximo) regiones en su código. Si no coinciden, la consola se niega a ejecutar el juego. Esta táctica se sigue utilizando hoy en día en las consolas actuales.

Pues bien, existía en aquel tiempo un programa para MsDos, llamado Satconv, que permitía cambiar la imágen ISO de región, a voluntad. Si el juego era japonés, podía cambiarle la región a Europa y jugarlo sin problemas en una Saturn española. Gracias a dicho programa pude disfrutar de auténticas joyas para esta plataforma.

Hoy en día existen programas gráficos que hacen esa misma función, como SRP. Pero en Linux creo que no hay nada parecido. Así nació, mi primer reto: hacer un programa parecido al Satconv pero para GNU/Linux, utilizando el lenguaje de programación C.

Sabía mostrar mensajes por pantalla, obtener ordenes del usuario y abrir ficheros. Pero no tenía ni idea de como "parchear" imágenes ISO y/o BIN. Es más, no tenía ni idea de como abrir dichos ficheros. Toca investigar y aprender :)

En el siguiente post, empezamos a entrar en materia.

No hay comentarios:

Publicar un comentario