Pregunta

Me acaba de ver la falla Super Mario Bros. -1 Mundial en youtube y me empezó a preguntarse sobre el código detrás de esos juegos. ¿En qué idioma se ha utilizado? ¿Qué pasa con el sistema operativo para las consolas de juegos de video? ¿Hay algún sitio web con recursos sobre este tema? (Soy un jugador 90 de vídeo, así que estoy particularmente interesado en la programación detrás de esos juegos pero no dude en hacer de esto una wiki e incluir enlaces a recursos sobre videojuegos programación en general, si se quiere)

¿Fue útil?

Solución

Después de haber trabajado un poco en un emulador para la NES (lo tengo decodificar algunos códigos de operación, pero ninguno de los otros equipos es emulado), puedo compartir tal vez algunas respuestas.

  1. Para la mayoría de los juegos de ensamblador se utilizó. compiladores optimizadores, si está disponible para la CPU eran para nada tan bueno hace 20-30 años como lo son hoy. Para obtener un rendimiento, lo necesario para escribir en ensamblador (Esto fue así incluso en el PC. Piezas de Doom están en ASM). Con mayor razón, ya que el NES CPU ejecutó a menos de 2 MHz. Además, la memoria era más caro de lo que es hoy en día. El Mario original se almacena en aproximadamente 40k de memoria. 16k de que era el código real, y el resto era de los gráficos y recursos sonoros.

  2. Hasta la era de la consola de 32 bits, cualquier tipo de sistema operativo, o incluso incorporado en los servicios públicos, en una consola era raro (Sega CD fue el uno de los pocos en la era de los 16 bits con un BIOS reales, y hubo un pequeño programa grabado en el procesador de la Game Boy que fue responsable del logotipo de Nintendo desplazándose hacia abajo en el encendido). Ver más arriba sobre las limitaciones de tamaño, como motivo principal. Al insertar el cartucho, el chip de ROM en el coche estaba conectado directamente al bus de direcciones de la CPU. En el encendido, la CPU leería desde una dirección fija para obtener la dirección real del programa se inició a, y luego saltó a esa ubicación y ejecución comenzado.

En cuanto a los recursos, el NES Dev Wiki tiene recursos relativos a la NES hardware, junto con las referencias programmming. Dominio de Zofar también tiene documentos técnicos y ROM de dominio público para unos pocos consola bastante (no sé si debería enlazar a ZD en este sitio, solo google)

Otros consejos

La mayoría de las consolas más antiguas tenían algún tipo de ROM BIOS.

Parte del código fuente de estos son en línea:

Se puede leer la mayoría comentado desmontaje de la BIOS 7800: http: // atarihq. com / DANB / archivos / 7800bios.asm

de la Atari 5200 fuente de BIOS es más interesante, ya que hace algo más que inicializar el sistema y mostrará una pantalla de bienvenida: http://atarihq.com/danb/files/5200BIOS.txt

El Colecovision tenía una 8K ROM BIOS también (!); Es de código está aquí: http://xi6.com/code/coleco/coleco29.asm

La fuente Odyssey II BIOS está aquí: http://atarihq.com/danb/files /o2romsrc.txt

El Intellivision tenía un sistema operativo llamado "exec," no se puede encontrar un desmontaje en línea, aunque sí encontré un montón de información sobre ella: http://www.intellivisiongames.com/bluesky/hardware/intelli_tech.html#exec y noreferrer http://www.beeslife.com/faq.htm#_Toc140592020 - tenía rutinas para mover sprites, lea los controladores, y calcular raíces cuadradas !

La mayoría de las fallas en ese video son problemas técnicos a base de azulejos, donde hay errores en la detección de colisiones de los mapas de baldosas que componen los niveles. Todos los niveles se componen de azulejos de forma cuadrada. Si nota que Mario es siempre entre las baldosas en el que no debe ser.

A finales de los años 70, 80 y principios de los 90, la mayoría del software (incluyendo juegos) fueron escritos en ASM (Asamblea). Si no está familiarizado con la Asamblea, es prácticamente un lenguaje de programación muy bajo nivel que es específico de hardware para la programación de la CPU. Esto significa que usted tuvo que controlar cada píxel en la pantalla y volver a crear bibliotecas para cosas como la física, gráficos y sonido, incluso! Usted fue muy limitado en la memoria para el reciclaje era una necesidad. En el original Super Mario Bros se dará cuenta de que las nubes son los mismos que los arbustos, la única diferencia es el color. Una gran cantidad de sprites fueron reciclados y la física del juego eran limitadas.

Dado que los juegos se convirtieron en los desarrolladores cada vez más complicadas movidas en el lenguaje C que permitió el software para escribir mucho más rápido, ya que requiere menos líneas de código. Hoy en día una gran cantidad de consolas y juegos de ordenador están escritas en C ++, ya que permite un desarrollo más rápido sino que también permite que el software sea lo suficientemente cerca de hardware para jugar más rápido.

Me havn't investigación realizada al respecto, pero Super Mario Bros y juegos de releated 90 están disponibles como .NES archivos en lugar de cartucho y no de código abierto emulador también están disponibles.

AFAIK, estos son generalmente escrito en C ++. No sé acerca de la legalidad de estos archivos NES y emulador, pero disponibles en Internet. Tiene buscar con la secuencia correcta!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top