Retro-Programación

Esta sección está dedicada sobretodo a aquellos que quieran aprender a programar para consolas de 8 y 16 bits, en especial la NES y Master System, pero también la SNES y Megadrive

Aquí sólo usaremos ensamblador, y tendremos que bajar a nivel hardware para hacer cualquier cosa, ya que no tendremos ni APIs, ni librerías, ni nada, sino que echaremos código a pelo. Para quien no sepa programar en ningún lenguaje de alto nivel como C, Java o BASIC, ni tampoco conozca ningún lenguaje ensamblador, es posible que así de primeras le parezca un cuento en idioma extraterrestre, pero que no por ello deje de intentarlo! Aunque sólo sea por curiosidad... ¿ cómo se hacían esos juegos de NES que me viciaban tanto? Aquí tienes una posibilidad de descubrirlo.

El único cacharro que necesitas para programar una ROM es un ordenador.

Para escribir el código fuente servirá cualquier editor de texto plano, aunque conviene elegir uno que sea adecuado para programar, por las funciones adicionales que pueden simplificarnos la vida. Aviso, por si acaso, que el Word o el Writer de LibreOffice no son editores de texto de los que buscamos, porque permiten modificar la apariencia del mismo (color, tipo y tamaño de fuente,...).
También será de gran utilidad tener a mano un editor de gráficos.
Y finalmente será necesario disponer del software que a partir del código fuente genera el binario, o la ROM, que cada consola sea capaz de entender y ejecutar; habitualmente un programa ensamblador y un enlazador (linker).

Si cualquiera (tan sólo uno) de los conceptos que he mencionado te plantean dudas, no te preocupes, sigue leyendo y probablemente la imagen se vaya aclarando.

TUTORIALES

Contenido
Introducción a la programación de consolas de 8 y 16 bits
Parte 1: Entrando en harina. Entrando en la CPU
Parte 2: El chip gráfico. La NES
Parte 3: El chip gráfico. La Master System
Parte 4: Escribir código (I). Saltos
Parte 5: Escribir código (II). Pila y subrutinas
Parte 6: Escribir código (III). Manejo de bits
Parte 7: Escribir código (IV). Interrupciones y temporización
Complementos: Comparaciones y acarreo. Particularidades de NESASM
Leer

VIDEO-TUTORIALES

Cómo ensamblar la demo de NES youtube

EN PREPARACIÓN

Parte 8: Lectura del pad (solicitar)

A partir de aquí, profundizamos un poco más. Tras los tutoriales introductorios, que pretenden explicar conceptos base, empieza el camino de hacer cosas en el mundo real.

PRÁCTICA

NES (Nintendo Entertainment System)

A pesar de su tremendo éxito, la NES es una consola de escasa potencia, gobernada por una CPU lenta, y que dispone de muy poca memoria RAM y de video. No obstante se las apañó francamente bien para hacer muchas, y muy grandes cosas. Ha demostrado con creces que su capacidad es suficiente para hacer buenisimos juegos. Introduciré un poco los términos que se manejan en el mundo de la NES.

SNES (Super Nintendo)

A pesar de usar una CPU de 16 bits, la 65c816, la SNES no es mucho más rápida que la NES. Además, al contrario que otros sistemas de 16 bits, el bus de datos de SNES es de sólo 8 bits. La verdadera potencia de esta consola radica en sus dos procesadores gráficos, que manejan casi todo el apartado visual, y que hace posible la gran calidad técnica asociada a sus juegos.

Master System

La Master System es una consola bastante potente, para ser de 8 bits, gobernada por una CPU muy exitosa, usada en otras consolas y ordenadores personales de los 80. La consola dispone de más memoria que la NES, lo que elimina la necesidad de incluir memoria adicional en los cartuchos, a la supera también en riqueza visual, sobretodo cromática, quedando quizá un poco por detrás en el apartado sonoro.

Megadrive

A pesar de que Megadrive es considerada técnicamente inferior a Super Nintendo, su principal competidora, en lo relativo a determinados aspectos gráficos y de sonido, esta afirmación no deja de ser una simplificación, pues el que una consola sea más potente que otra es, en este caso, matizable.