Buenas, una pregunta para los gurus de programacion del foro. Es bastante evidente que la SNES, comparada con otros ordenadores y consolas clásicas, tiene un numero de juegos Homebrew reducisimo. He leido por ahi que no existe mucha documentacion para programar en esta consola o que es una consola que requiere muchos conocimientos. Es esto asi? Es una pena porque es una grandisima consola con muchisimas posibilidades si la gente pudiera programarla.
Gracias por las respuestas!
Super Nintendo, por qué es tan complicado programar SNES?
- EdgeM
- Atari 1040 STf
- Mensajes: 803
- Registrado: 01 Feb 2008, 12:55
- Gracias dadas: 2 veces
- Gracias recibidas: 5 veces
Re: Super Nintendo, por qué es tan complicado programar SNES
La complejidad de SNES no es por documentación (que hay bastante), sino por dos factores: que la CPU es bastante justita para la época (una pequeña evolución de la mítica 6502 con algunas extensiones para manejar números de 16 bits), y (derivado de esto) la necesidad de hacer uso de los distintos chips de apoyo para hacer que un juego funcione medianamente bien.
La arquitectura de Mega Drive es mucho más sencilla, y hace uso de una CPU mucho más potente y de unos chips de apoyo (vídeo y sonido) más justitos. Por eso tiene más homebrew
La arquitectura de Mega Drive es mucho más sencilla, y hace uso de una CPU mucho más potente y de unos chips de apoyo (vídeo y sonido) más justitos. Por eso tiene más homebrew

- Kusfo
- MSX Turbo R
- Mensajes: 437
- Registrado: 17 Jul 2012, 13:05
- Sistema Favorito: Amstrad CPC
- primer_sistema: Amstrad CPC
- consola_favorita: Sega Master System
- Primera consola: Sega Master System
- Ubicación: Warcelona
- Gracias dadas: 6 veces
- Gracias recibidas: 33 veces
Re: Super Nintendo, por qué es tan complicado programar SNES
Aparte que los SDK's creados por usuarios actuales para la SNES son bastate justitos...
Amstrad CPC6128 + Spectrum +2A + SONY MSX2 HB-F1 + Commodore Amiga 500 + Sega SC-3000 + Sega Mark III + Sega Master System + Sega Megadrive + Sega Saturn+ Sega Dreamcast + Nintendo Nes + Super Nintendo + Nintendo 64 + Nintendo Gamecube + PC-Engine
- na_th_an
- Amiga 1200
- Mensajes: 1273
- Registrado: 10 Oct 2012, 11:17
- Sistema Favorito: (Otro)
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Sega Master System
- Gracias dadas: 18 veces
- Gracias recibidas: 15 veces
Re: Super Nintendo, por qué es tan complicado programar SNES
La SNES pelada es poco potente y tiene demasidas restricciones chungas. Nosotros estamos pensándonos hincarle el diente, pero las herramientas y el SDK disponible son bastante malos, según nos ha comentado Shiru, que la ha catado.
Los juegos de SNES que más molaban tienían procesadores de apoyo en los cartuchos. La consola "pelada" no mueve demasiado. La Megadrive es mucho más agradecida de programar. Parece que la diseñaron pensando en que hacer juegos fuese muy sencillo.
Los juegos de SNES que más molaban tienían procesadores de apoyo en los cartuchos. La consola "pelada" no mueve demasiado. La Megadrive es mucho más agradecida de programar. Parece que la diseñaron pensando en que hacer juegos fuese muy sencillo.
- josepzin
- Amiga 2500
- Mensajes: 3103
- Registrado: 12 Ene 2009, 14:36
- Sistema Favorito: C64
- primer_sistema: ZX81
- Ubicación: Carthagonova
- Gracias dadas: 4 veces
- Gracias recibidas: 63 veces
- Contactar:
Re: Super Nintendo, por qué es tan complicado programar SNES
Con los juegazos que tiene la SNES yo pensaba que la consola sería bastante potente, no tenía idea de que tenía tantas limitaciones.
- scooter
- Amiga 1200
- Mensajes: 1031
- Registrado: 17 Jul 2012, 09:25
- primer_sistema: C64
- Ubicación: Alicante
Re: Super Nintendo, por qué es tan complicado programar SNES
La CPU es un 65C816 de 16 bits a sorprendentemente pocos MHz.
http://www.old-computers.com/museum/com ... t=2&c=1248
http://www.old-computers.com/museum/com ... t=2&c=1248
- Ivanzx
- Amiga 1200
- Mensajes: 1620
- Registrado: 05 Abr 2007, 19:39
- Gracias recibidas: 22 veces
- Contactar:
Re: Super Nintendo, por qué es tan complicado programar SNES
Muchas gracias a todos por las respuestas
ahora me queda mas claro todo.
Asi que para programar juegos de SNES de calidad, digamos, comercial, habria que saber tambien como programar dichos chips adicionales. Por eso los juegos Homebrew de SNES existentes son bastante sencillos en general (los que mas me gustan son Donkey Kong Classic y UWOL).
Saludos!

Asi que para programar juegos de SNES de calidad, digamos, comercial, habria que saber tambien como programar dichos chips adicionales. Por eso los juegos Homebrew de SNES existentes son bastante sencillos en general (los que mas me gustan son Donkey Kong Classic y UWOL).
Saludos!
- na_th_an
- Amiga 1200
- Mensajes: 1273
- Registrado: 10 Oct 2012, 11:17
- Sistema Favorito: (Otro)
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Sega Master System
- Gracias dadas: 18 veces
- Gracias recibidas: 15 veces
Re: Super Nintendo, por qué es tan complicado programar SNES
Además de programarlos, luego está el problema de que fabricar un cartucho real sería caro por tener que incluir el hardware necesario.
La SNES está pensada para que los programadores de NES lo tuviesen fácil a la hora de dar el salto. La CPU es prácticamente una 6502 con extensiones para manejar algunos datos de 16 bits, y muy poco más. La PPU funciona de una forma muy similar. Es como si fuera "una NES más potente", algo así como posteriormente ocurriese con GC/Wii (bueno, un poco más). Supongo que NES pretendía seguir triunfando con el mismo tipo de juegos y, además, conseguir muchos third-party rápidamente: si eras buen programador de NES, lo serías de SNES porque el sistema es muy parecido.
Las virguerías que nos dejaron flipando en la época, salvo notabilísimas excepciones (Super Mario World o a Link to the Past son maravillas jugables, aunque tampoco "impresionaban" tecnológicamente), venían de la mano de procesadores extra que se incluían en los cartuchos (algo que, por otro lado, también ocurría en la NES, juegos como Castlevania no los mueve una NES pelada, necesita procesadores externos). El ejemplo más claro es el del Yoshi's Island, que recuerdo que cuando lo vi me dejó picueto con esos escalados y parallax de varias capas - movidos todos por el chip Super FX2 que incluía en el cartucho.
Lo que vendió a la NES fue el MD-7 y su capacidad para rotar y escalar uno de los planos de scroll. Sin embargo, programarlo es una verdadera pesadilla (me quito el sombrero ante los programadores de Super Mario Kart o F-Zero). No creo que la consola pelada sea mucho más potente que una PC-Engine.
El punto fuerte real de la SNES era el sonido. El chip era una verdadera maravilla. Me flipa que cuando hacen las comparativas siempre se vayan a otras cosas olvidándose de este detalle. En sonido, la SNES arrastra por los pelos a la MD y se mea en las cuencas de su calavera. En el resto, sin ayuda de músculo externo, me temo que no.
El problema real, sin embargo, es que el SDK es una patata. Por lo visto el compilador de C que hay no optimiza nada y hay que enmarronarse mucho para sacarle partido.
Por otro lado, programar una MD es realmente amable. Es fácil hacer efectos raster. Es fácil crear sprites grandes. Es fácil hacer parallax. Es fácil hacer splits. Tienes un montón de sitio de cartucho sin tener que ponerte a paginar o usar mappers. Tienes un procesador extra y un PSG extra (el de la Master System que incluye cada MD dentro, porque cada MD lleva dentro una SMS) para hacer sus propios manejes (por ejemplo, encargarse de tocar música sin que la CPU principal se entere)... Es mucho más "amable" para los progradores. Además que el 68000 es un chip fabuloso, fácil de programar, y que se comporta muy bien de cara a ejecutar código C compilado.
La SNES está pensada para que los programadores de NES lo tuviesen fácil a la hora de dar el salto. La CPU es prácticamente una 6502 con extensiones para manejar algunos datos de 16 bits, y muy poco más. La PPU funciona de una forma muy similar. Es como si fuera "una NES más potente", algo así como posteriormente ocurriese con GC/Wii (bueno, un poco más). Supongo que NES pretendía seguir triunfando con el mismo tipo de juegos y, además, conseguir muchos third-party rápidamente: si eras buen programador de NES, lo serías de SNES porque el sistema es muy parecido.
Las virguerías que nos dejaron flipando en la época, salvo notabilísimas excepciones (Super Mario World o a Link to the Past son maravillas jugables, aunque tampoco "impresionaban" tecnológicamente), venían de la mano de procesadores extra que se incluían en los cartuchos (algo que, por otro lado, también ocurría en la NES, juegos como Castlevania no los mueve una NES pelada, necesita procesadores externos). El ejemplo más claro es el del Yoshi's Island, que recuerdo que cuando lo vi me dejó picueto con esos escalados y parallax de varias capas - movidos todos por el chip Super FX2 que incluía en el cartucho.
Lo que vendió a la NES fue el MD-7 y su capacidad para rotar y escalar uno de los planos de scroll. Sin embargo, programarlo es una verdadera pesadilla (me quito el sombrero ante los programadores de Super Mario Kart o F-Zero). No creo que la consola pelada sea mucho más potente que una PC-Engine.
El punto fuerte real de la SNES era el sonido. El chip era una verdadera maravilla. Me flipa que cuando hacen las comparativas siempre se vayan a otras cosas olvidándose de este detalle. En sonido, la SNES arrastra por los pelos a la MD y se mea en las cuencas de su calavera. En el resto, sin ayuda de músculo externo, me temo que no.
El problema real, sin embargo, es que el SDK es una patata. Por lo visto el compilador de C que hay no optimiza nada y hay que enmarronarse mucho para sacarle partido.
Por otro lado, programar una MD es realmente amable. Es fácil hacer efectos raster. Es fácil crear sprites grandes. Es fácil hacer parallax. Es fácil hacer splits. Tienes un montón de sitio de cartucho sin tener que ponerte a paginar o usar mappers. Tienes un procesador extra y un PSG extra (el de la Master System que incluye cada MD dentro, porque cada MD lleva dentro una SMS) para hacer sus propios manejes (por ejemplo, encargarse de tocar música sin que la CPU principal se entere)... Es mucho más "amable" para los progradores. Además que el 68000 es un chip fabuloso, fácil de programar, y que se comporta muy bien de cara a ejecutar código C compilado.
-
- Amiga 1200
- Mensajes: 1490
- Registrado: 07 Nov 2009, 11:38
- Sistema Favorito: C64
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo SNES
- Primera consola: Nintendo SNES
- Ubicación: Madrid
- Gracias dadas: 14 veces
- Gracias recibidas: 245 veces
Re: Super Nintendo, por qué es tan complicado programar SNES
Pues yo no estoy de acuerdo con ciertas conclusiones a las que habéis llegado. El número de juegos de SNES que tienen coprocesadores matemáticos extra en el cartucho son 70 (según Wikipedia y muchos de ellos, oscuros títulos japoneses no comercializados fuera), lo que supone un porcentaje ridículo del catálogo completo de juegos de la consola (¿1500?). La inmensa mayoría de juegos, incluso los más aclamados en su etapa final como la trilogía Donkey Kong, se mueven únicamente con los recursos de la propia consola.
Allá en los 90, cuando me atreví a programar algo en la SNES (apenas un logotipo superior, unos rasters que cambiaban el fondo y unos textos que cambiaban de color cuando con el pad escogías a lo largo de un menú para escuchar las diversas músicas que había ripeado de varios juegos) siempre lo hice en ensamblador puro. No necesité ningún compilador, solo paciencia y el manual oficial de desarrollo impreso y encuadernado que alguien se había encargado de escanear y filtrar a la escena (por cierto, todo muy "engrish" con mentalidad japonesa y pensando en gente que migraba desde NES).
La CPU 65816 puede parecer poco potente, pero las instrucciones al ser reducidas consumen pocos ciclos. Es como cuando se compara el Z80 con el 6502 de 8 bits, que uno tiene instrucciones complejas que hacen muchas cosas en una sola orden, mientras que el otro necesitas romperte más la cabeza por ser más austero... pero si un 6502 hubiese ido a 4 MHz, el rendimiento final hubiese sido superior al Z80. Es como comparar un CISC y un RISC aunque los MOS no fuesen oficialmente RISC (bueno, según Wikipedia, la revista Byte proclamó al 6502 como "el RISC original").
¿Feo programarlo? Sí, eso seguro, feo de cojones. El 68000 es una belleza comparado con un 65816. De todas formas, en la SNES no todo es fuerza bruta del 65816. A fin de cuentas estás usando la potencia del chip de vídeo constantemente para mover las cosas.
Allá en los 90, cuando me atreví a programar algo en la SNES (apenas un logotipo superior, unos rasters que cambiaban el fondo y unos textos que cambiaban de color cuando con el pad escogías a lo largo de un menú para escuchar las diversas músicas que había ripeado de varios juegos) siempre lo hice en ensamblador puro. No necesité ningún compilador, solo paciencia y el manual oficial de desarrollo impreso y encuadernado que alguien se había encargado de escanear y filtrar a la escena (por cierto, todo muy "engrish" con mentalidad japonesa y pensando en gente que migraba desde NES).
La CPU 65816 puede parecer poco potente, pero las instrucciones al ser reducidas consumen pocos ciclos. Es como cuando se compara el Z80 con el 6502 de 8 bits, que uno tiene instrucciones complejas que hacen muchas cosas en una sola orden, mientras que el otro necesitas romperte más la cabeza por ser más austero... pero si un 6502 hubiese ido a 4 MHz, el rendimiento final hubiese sido superior al Z80. Es como comparar un CISC y un RISC aunque los MOS no fuesen oficialmente RISC (bueno, según Wikipedia, la revista Byte proclamó al 6502 como "el RISC original").
¿Feo programarlo? Sí, eso seguro, feo de cojones. El 68000 es una belleza comparado con un 65816. De todas formas, en la SNES no todo es fuerza bruta del 65816. A fin de cuentas estás usando la potencia del chip de vídeo constantemente para mover las cosas.
- scooter
- Amiga 1200
- Mensajes: 1031
- Registrado: 17 Jul 2012, 09:25
- primer_sistema: C64
- Ubicación: Alicante
Re: Super Nintendo, por qué es tan complicado programar SNES
Compiladores para 68000 hay a quilos, para el 65816 muchos menos.
El 6802 tenía muchos adeptos y lo usaban muchas máquinas pero e de 16 bits es casi un desconocido. Lo usó el apple 2 gs y poco mas
El 6802 tenía muchos adeptos y lo usaban muchas máquinas pero e de 16 bits es casi un desconocido. Lo usó el apple 2 gs y poco mas
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados