Desarrollo de juegos en SEGA Saturn, un ejercicio de imaginación (1 de 3)

Gracias a Mick West puedo hacerme una idea de lo que significaba programar videojuegos en un hardware tan complicado y sumamente interesante como lo es Saturn, mi primera intención con respecto a su post en su blog Cowboy Programming fue traducirlo pero prefiero darle un valor agregado y sumar un poco de sentido a todo lo que coloca, como una especie de interpretación. Mick West recupera de sus archivos unos escritos de lo que implicó el desarrollo del primer videojuego cuando apenas pasaba un año de fundar Neversoft junto a Joel Jewett y Chris Ward, actualmente Neversoft es parte de Activition Blizzard y recordado por la aburridísima saga Tony Hawk’s Pro Skater y como no, la muy bien vendida Guitar Hero, por entonces Neversoft estaba desarrollando Skeleton Warriors para Saturn, esta de más recomendar el blog de West, tiene muchos artículos interesantes sobre programación.

Mick West
Mick West en su oficina de Neversoft en 1995

Imaginemos que estamos en mitad de los años noventa, los monitores CRT reinan en los escritorios, el acceso a Internet no es tan común como ahora y programar era una tarea titánica, casi mística, más para una plataforma casi experimental como lo es Saturn. Lo primero que explica Mick es un “paseo” por el hardware de SEGA. Saturn posee dos microprocesadores principales RISC Hitachi SH2 (Super H2) a 28.6 Mhz y un Motorola 68000 a 11.3 Mhz, lo curioso es que en su texto podemos confirmar lo que muchos ya sabíamos: muchos títulos hacen uso de un solo microprocesador, el otro se le dará -explica West- un uso cuando encuentren “que hacer con él”, recordemos que estamos en plena mitad de los años noventa, el concepto de multiprocesamiento en entornos caseros es más bien una rareza y no existían facilidades a nivel de bibliotecas de desarrollo que permitiesen hacer cosas que quizá actualmente se resuelven con las API de manera casi transparente (¿alguien dijo Grand Central Dispatch?), si los propios programadores dentro de SEGA se quejaban de lo dificil que era sincronizar los dos SH2 ¿qué quedaría para las third parties?

El hardware de SEGA Saturn
Hardware de SEGA Saturn

El Motorola 68000 lo utilizaría para el manejo de sonidos, y según el documento no hay necesidad de escribir código específico para estas labores, la propia biblioteca ofrecida por SEGA es más que suficiente. Otros detalles interesantes: el kit de desarrollo y el compilador a usar, Skeleton Warriors no fue desarrollado utilizando el kit de desarrollo oficial de SEGA, utilizó el kit de desarrollo ideado por el por entonces estudio británico Psygnosys (creadores del genial Wipeout y ahora parte de Sony bajo el nombre SCE Studio Liverpool) que era una consola Saturn modificada con una interface SCSI y un cartucho insertado que permite la ejecución y depuración del código de manera instantánea. Neversoft no sólo consideró el uso de PsyQ como plataforma de desarrollo, también se plantearon usar SNASM de Cross Products pero el código de SNASM podía ser portado facilmente a PsyQ asi que se decidió finalmente usar este último.

PsyQ de Psygnosys
Aquí el kit de desarrollo PsyQ, se puede apreciar el conector SCSI y una etiqueta que lo identifica

Más curioso aún fue compilado usando el muy conocido compilador GNU GCC con opción de compilación cruzada para microprocesadores SH2, quien se encargaba de sincronizar la consola con el computador es un programa llamado PSYBIOS, de esta forma la consola no tiene que cargar los datos desde la lectora de discos compactos sino desde el mismo computador donde se desarrolla. Neversoft también contaba con otra herramienta a nivel de hardware que facilitaba mucho la vida a la hora de depurar código: El E7000PC es un emulador de circuitos para la arquitectura Hitachi SH2, básicamente -dice West- el E7000PC se usó para decirle al código que no se detuviera en caso de un desbordamiento de memoria y así ubicar la falla y corregirla. Dentro del PC funcionaba un software que emulaba un CD-ROM (algo así como el Daemons Tools para Windows) que permite engañar la consola y que hiciera funcionar código como si estuviera cargando desde la unidad de discos compactos, mediante el PsyQ desde luego.

E7000PC de SEGA
E7000PC

Para la próxima entrada de esta miniserie trataré de exponer cómo se compilaba el código para Saturn (siempre siguiendo la explicación que coloca Mick West en su blog) y como era la estructura de archivos para el desarrollo de videojuegos en esta plataforma, en realidad no se trata de ahondar excesivamente en el tema de la programación sino más bien hacernos una idea muy general de cómo se desarrollaba por aquellos años.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s