traduccion game compiler-construction hardware video-game-consoles

compiler-construction - traduccion - video game music archive



¿Cómo programar para consolas antiguas? (3)

Los fabricantes de las consolas proporcionan sus propias herramientas / compiladores (SDK) para el procesador de la máquina, ya que son (la mayoría de las veces) altamente especializados.

Pero la mayoría de las veces codificarás en C / C ++. Estoy seguro de que necesitará más a menudo que no recurrir a ASM.

Pruebe este enlace: http://www.emuparadise.me/sdk/index.php

Palabras clave de Google: sdk, consola, homebrew, indie

Quiero saber cómo programar las consolas de juegos antiguas por diversión.

¿Puedo usar un lenguaje de programación como C? ¿Tendré que usar el montaje? No conozco ningún compilador de consola, ensamblador o API. Necesitaré compilar en la imagen ROM y probar con los emuladores, porque no tengo ninguna consola.

Cada consola tiene sus características interesantes y me gustaría jugar con ellas.

  • Atari 2600 (solo 128 bytes de RAM)
  • NES (solo 8 bits)
  • SNES (una buena consola, de 16 bits)
  • PS1 (3D, complejo)
  • Game Boy (simple, monocromático)

Los sistemas más antiguos como Atari, NES y GameBoy se programan normalmente en Assembly o C. Hay una variedad de herramientas de desarrollo para GameBoy con las que he jugado, como:

Rednex Gameboy Development (ASM): http://www.otakunozoku.com/rednex-gameboy-development-system/
GBDK (C): http://gbdk.sourceforge.net/

Y aunque hay muchos enlaces muertos en ella, esta página tiene mucha información y enlaces sobre el desarrollo de GameBoy en general: http://www.devrs.com/gb/

Para la NES hay dos tutoriales de ensamblaje que conozco. El segundo tutorial está vinculado desde el primero con la afirmación de que es superior, pero realmente no puedo comentar ya que el segundo enlace no existió la última vez que estuve interesado en este tema.
http://www.patater.com/nes-asm-tutorials
http://www.nintendoage.com/forum/messageview.cfm?catid=22&threadid=7155

Si no es demasiado nuevo para usted, el GBA tiene muchos recursos excelentes para hacer en casa y normalmente está programado con C. La gran cantidad de información sobre el GBA lo convierte en un buen lugar para comenzar:

DevKitPro proporciona una completa cadena de herramientas GNU para el desarrollo de GBA (DevKitARM + libgba): http://www.devkitpro.org/

TONC es una muy buena guía para la GBA con muchas explicaciones detalladas: http://www.coranac.com/tonc/text/

Por último, la hoja de gbatek indispensable que detalla el hardware de GBA. Esto le dirá qué registros en el GBA tiene que jugar para cambiar los modos de gráficos, modos de sonido, uso de interrupciones, etc.
http://nocash.emubase.de/gbatek.htm

La programación para estos sistemas de juego más antiguos comparte mucho en común con los microcontroladores de programación. Sin algún tipo de capa de abstracción, tiene que hacer un montón de manipulación de registros a nivel de bits para hacer incluso las cosas más básicas.

Edición: El problema principal que encontré al hacer la programación de GBA fue descubrir cómo funcionan los registros de sonido. Fue (¿es?) Un punto ciego real en términos de tutoriales. El mejor recurso en ese momento era estudiar la hoja gbatek y estos sitios:
http://deku.rydia.net/program/sound1.html
http://belogic.com/gba/


También hay algunas más consolas caseras "abiertas" que están diseñadas para funcionar de manera similar a las máquinas del pasado, pero con un acceso mucho más fácil a la información y herramientas más amigables.

Algo así como el XGameStation Pico te dará una experiencia similar a la Atari 2600, y la Micro Edition es significativamente más poderosa y viene con documentación sobre cómo funcionan las consolas similares.

Si no está buscando explícitamente desarrollar para consolas lanzadas comercialmente a gran escala, estas pueden ser una excelente alternativa y, potencialmente, una herramienta de aprendizaje mucho mejor para alguien nuevo en la programación integrada.