En 1989 Konami lanzaba 'Gradius III' en recreativas. El juego era tan difícil que acabó retirándolo para suavizarlo un poco, y en 1990 llegaría la versión para la Super Nintendo Entertainment System (SNES), que había generado una expectación fabulosa por contar con unos gráficos excepcionales para la época que replicaban con notable fidelidad a los de la recreativa.
El juego, no obstante, decepcionó: cuando la pantalla tenía cierto número de obstáculos y naves enemigas, la acción se ralentizaba de forma preocupante, pero casi 30 años después alguien encontró la solución: integrar un co-procesador en el cartucho del juego original para acelerar su funcionamiento. Aquel truco no era en realidad nuevo, porque resulta que varios juegos ya integraban ese coprocesador para correr sin problemas en una consola mágica pero cuyo procesador era limitado incluso en la época en la que salió.
La SNES iba a ser mucho más potente (y cara)
Los primeros diseños de la SNES a nivel hardware eran muy distintos de los que llegaron a manos de los usuarios finalmente. La idea de los ingenieros de Nintendo era ofrecer una consola mucho más potente, pero se dieron cuenta de aquello acabaría resultando en un coste excesivo para los usuarios y que además no daría demasiado margen de beneficio a Nintendo.

Además había otro problema: el líder del proyecto, Masayuki Uemura, no pudo cumplir con la exigencia de Hiroshi Yamauchi, presidente de Nintendo en aquella época, que quería que esa consola fuese retrocompatible con la NES.
Aquella opción de retrocompatibilidad fue finalmente abandonada por Nintendo, pero aquello solo permitió ahorrar 75 dólares en el precio final de la consola. El principal causante del precio final no fue su procesador principal, sino sus chips gráfico y de sonido, que de nuevo fueron una exigencia de Yamauchi y que querían sacar partido de aquella explosión de contenidos multimedia que comenzaban a aflorar en la época.
La leyenda cuenta -Nintendo nunca lo ha confirmado oficialmente- que el coste se elevaba de tal manera que Nintendo tuvo que sustituir la CPU en la que habían pensado originalmente, un Motorola MC68000 a 10 MHz, por la CPU que finalmente integraron, un Ricoh 5A22 a 3,58 MHz basado en el Motorola WDC65816.
Que vivan los cartuchos con coprocesador integrado
Aquella CPU no daba demasiado margen de maniobra a los desarrolladores, pero a Nintendo se le ocurrió una ingeniosa forma de solucionar el problema: usar coprocesadores que permitieran a los juegos correr con más suavidad cuando lo necesitaran.

La peculiaridad de estos coprocesadores era que no estaban en la consola como tal, sino que estaban integrados en los juegos, o más bien, en los cartuchos de juegos, que contaban con chips específicos que "ayudaban" a la CPU de la SNES para que esos juegos fueran fluidos.
Esa estrategia se beneficiaba del hecho de que los coprocesadores que fueron apareciendo eran cada vez mejores y se podían adecuar a cada juego según las necesidades de la época y del desarrollador, haciendo que dichos títulos pudieran ofrecer muchas más prestaciones que las que hubieran podido ofrecer de correr en el hardware nativo de la consola.
La lista de chips que se usaron en los cartuchos de la SNES es larga, y de hecho en la Wikipedia existe una buena relación de todos ellos con los cartuchos de los juegos en los que se instalaron. Normalmente era fácil detectar que un juego tenía uno de estos coprocesadores: a los pines originales y normales de los cartuchos "normales" se le sumaban otros 16, ocho a cada lado.
Entre los juegos que integraron esos coprocesadores estaban 'Super Mario World 2: Yoshi's Island', 'Star Fox' o 'Super Mario RPG: Legend of the Seven Stars", que fue uno de los muchos que usaron el coprocesador SA-1. Este chip era una versión "overclockeada' del 5A22 que permitía llegar a los 10,74 MHz en lugar de los 3,58 MHz originales y que incluía 2 KB de RAM interna que además iba más rápida que la del chip nativo.
Hackeando juegos 30 años después
La idea de hacer que ciertos juegos pudieran ir fluidos gracias a un coprocesador acabó siendo un singular forma de hacer que la retroinformática cobrar un nuevo sentido para usuarios como Vítor Vitela.
Ese es el nombre del hacker brasileño que como indicábamos al principio se encargó de crear una ROM parcheada para 'Gradius III' muy especial y que gracias al chip SA-1 evitaba la célebre ralentización del juego, sobre todo en la fase 2 de las burbujas.
Aquella mejora trajo una desventaja curiosa, no obstante: aquella ralentización en fases complicadas con muchos enemigos favorecía al jugador humano permitiendo "pensar un poco" antes de actuar y así poder superar este juego extremadamente difícil. Con el coprocesador en marcha, la fluidez era absoluta en todas las fases del juego, lo que acababa haciendo el juego más difícil que nunca.
No se puede tener todo, suponemos.
Ver 29 comentarios
29 comentarios
amfortas
Bueno, sobre todo lo que se está comentando:
Se ha dicho siempre que de la SNES su punto débil fue su procesador. Si éste al menos hubiera sido al doble de mhz otro gallo cantaría.
La SNES tenía mejor sonido, mejores gráficos, pero en ciertos juegos se la notaba más torpe para moverlos que la MegaDrive.
Al parecer Nintendo en el desarrollo final optó por continuar con la filosofía de la NES y si algún juego requería potencia extra, tirar por chips en los cartuchos, pero claro... si comparabas la lista de precios de la época (1994), un juego de MegaDrive costaba de promedio 8.000 ptas y uno de SNES unas 10.000 (llegando en algunos casos concretos a 15.000). Yo por ese motivo estuve tentado a comprar una MD, pero finalmente me decanté por la SNES (que aún conservo impoluta con su caja y plásticos).
Como se ha comentado, Nintendo vive de su hardware y software. Si en una generación falla, ve peligrada seriamente su estabilidad, y por eso siempre debe de tener un equilibrio en lanzar consolas potentes, pero contenidas en precio, y eso al final significa tener que recortar prestaciones. Una de las debilidades de sus portátiles son las pantallas ya que siempre ha metido pantallas de baja resolución, pero precisamente gracias a su división de portátiles ha podido aguantar las bajas ventas de la N64 y GC.
La Wii es un caso curioso: Fue la ganadora de la generación de PS3 y 360 pero se la ha criticado que debido a su escasa potencia muchos juegos importantes de su generación no fueron portados a ella. Yo creo que si se hubiera esforzado en que la Wii llegara a alcanzar los 720p (gráfica y procesador el doble de potente) muchas compañías se la hubieran tomado más en serio.
Finalmente Nintendo ha decidido por tener estrategias de dar un producto exclusivo y claramente diferenciado de la competencia, cosa que de momento le está funcionando.
santiagopantoja
sobre lo del gradius 3 no es misterio y la historia es algo diferente, konami había sacado el sexi parodius en japón y ese juego manejaba mas sprites y no tenia ralentizaciones los rom hackers sabían de que el parodius tenia ese sub procesador y solo lo aplicaron al gradius 3 como a muchos otros juegos
DrKrFfXx
Yo era un chaval que no entendía muchode precios por la época de la SNES, pero los cartuchos con microprocesadores integrados costaban un jodido ojo de la cara, era lo que me decían mis padres. Medio revisando por internet fuentes para mis nubosos recuerdos, algunos cartuchos de SNES llegarían a costar 120$ hoy en día ajustados a la inflación. Juegos de 3-4 horas de duración si eras medio bueno jugando.
A 3-4 juegos que compraras ya te rentaría más pagar por el Motorola ese a 10mhz de una vez, que pagarlo a plazos en forma de precios absurdos en cada cartucho.
videtti
Eso de que SNES era mucho más potente que megadrive.... Tenéis que argumentarlo mejor.
gonzaavellaneda
Que buenos juegos salieron para la SNES. Recién cuando tuve mi primer celular android y entre al hermoso mundo de los emuladores, pude jugar todas las joyas que no pude de chico como el Chrono Trigger, Final Fantasy 6 y 5, los Dragon Quest, Lufia II, Earthbound Secret of Mana, Breath of Fire 2 y tantos otros.
imf017
Javi ... ¿por qué has puesto fotos de la SNES y cartuchos americanos? Pura curiosidad ...
stranno_
Probablemente SNES usó la CPU que usa probablemente para una posible retro-compatibilidad con NES que nunca se fraguó (porque falta el resto del hardware). La CPU de NES es la CPU del Apple II y la CPU de SNES es la CPU del Apple IIGS, que es retro-compatible con la primera.
En cuanto a los chips en cartuchos no es más que un legado de NES. En NES prácticamente todos los cartuchos de juegos medio-ambiciosos tienen chips, los llamados mappers. Básicamente la CPU de NES solo acepta 32Kb de memoria de programa + 8Kb de tablas, en los cuales tendría que entrar el juego entero, los juegos más simples entran pero los más complejos requieren más memoria. Los mappers se encargan de mapear la memoria (CHR o PGR) de los cartuchos en fragmentos que la CPU de NES pueda manejar, y a mayores añaden alguna característica más potente en ciertos juegos (sonido, ram, etc).
fefe
Me ha recordado al U.N. Squadron, a ratos iba como a cámara lenta para después acelerarse y volver a velocidad normal.
sanj
Javier... vendiste tu Super Nintendo y tus juegos, ¿no?
Como las imágenes son de los juegos y consola americanos...
O eso, o que la tienes en el fondo del trastero, je.
;D
jaimer1
Pero que sarta de supercherías tan salvajes....para ser "elucubradores" les falta practica. Ricoh "CLONO" el MOTOROLA bajo la venia de Nintendo. PUNTO.
https://disruptiveludens.wordpress.com/2018/07/01/graficos-retro-super-famicom-super-nintendo-entertainment-system/
jordi.gutierrez.92
Me da igual todo SNES fue y sera la mejor época, el boom del gaming, los inicios, los mejores juegos, los mejores tiempos...Se tenia que decir, y se dijo xDDD
erwendigo
Cuando el que escribe un artículo no tiene ni puñetera idea pero se atreve a dar lecciones obtenemos bodrios infumables, dedicados aparentemente sólo a relucir el ego personal del autor en un paroxismo que demuestra, además de éste, sólo su infinita ignorancia, en estas condiciones mencionadas, obtenemos resultados como éste:
"por la CPU que finalmente integraron, un Ricoh 5A22 a 3,58 MHz basado en el Motorola WDC65816. "
Tremenda metedura de pata digna de penetrar en los ANALes de la historia del sinsentido técnico, espero que por lo menos el autor escriba gratis en Xataka, porque visto el nivel, si se pagara algo por este bodrio sería de crimen capital.
El WDC65816, como bien indica su numeración, es una cpu de Western Design Center, una cpu que no tiene una mierda que ver con Motorola, totalmente incompatible binariamente con los M68000 mencionados antes.
Pero la ofensa va mucho más allá cuando vemos al típico chiquillo repite-cifras soltar la tontería, por enésima vez, de los MHz como forma de evaluar una cpu, ignorando mil cosas y detalles sobre la realidad técnica de lo que se habla.
La cpu de la SNES, basada en una línea de procesadores emparentados con el famoso 6502 y distintas continuaciones de éste ya en 16 bits, tiene una filosofía radicalmente distinta a los motorola 68000 (pero curiosamente, sí tiene claras similitudes con el Motorola 6800, que por otro lado no tiene una mierda que ver en diseño y filosofía con el 68.000 posterior, que no es en absoluto retrocompatible), entre muchas cuestiones que hacían a esta cpu muy rápida para su tiempo, está cosas tan "baladís" como el tener un IPC mucho más alto que el 68.000 de Motorola, el tiempo mínimo, o ciclos de reloj más bien, mínimo necesario para ejecutar una instrucción simple es de sólo 2, mientras que el motorola necesitaba un mínimo de 4 ciclos de instrucciones.
Esto es, que para hacer un puñetero ADD la cpu de la SNES podía necesitar en un caso dado 2 ciclos de reloj, mientras que la de la Genesis necesitaba un mínimo de 4 o más, haciendo que de facto los famosos MHz importaran una mierda para medir el rendimiento de ambas cpus, pues el procesador de Ricoh igualaba o superaba a la mayoría de instrucciones a ejecutar en el Motorola en tiempo REAL de ejecución necesario. Por diseño y la existencia además de la "zero page" o "direct page" de la cpu de Ricoh (y concepto proveniente desde el original 6502), la cpu de Ricoh metía apenas una penalización media de 1 ciclo extra de reloj para acceder a una zona especial de memoria donde esta cpu podría almacenar "registros" por el equivalente de varios cientos de éstos, dado que realmente sólo usaba un registro genérico interno (acumulador), mientras que el motorola tenía 16 registros genéricos internos (y otros 16 para direccionamiento, pero también el Ricoh tenía aparte otros registros para estos menesteres), lo cual hacía que la cpu pudiera trabajar más cómodamente con varias variables sin tener que acceder a memoria, pero soportando una penalización mucho más grande de acceso a memoria que el Ricoh cuando tenía que hacer esto (y lo recalco, SIEMPRE hay que hacer esto por lo menos una vez, al igual que suele ser necesario hacer una escritura a memoria tras una op interna entre registros), lo cual hacía que el Ricoh fuera en realidad más rápido si se tenía que trabajar frecuentemente con la memoria (ojo, no confundir esto con las DMAs que es algo distinto).
En general, la cpu de Ricoh es como poco equivalente a la de Motorola en velocidad de ejecución, o incluso más rápida según el caso, la gran ventaja de la Motorola estaba en su juego de instrucciones más rico (y potente, sobre todo para un ordenador genérico que necesitara ejecutar código más "profesional" y con más tipos de datos, por ejemplo su soporte de código para 32 bits era muy superior, pero totalmente inútil para juegos, eso se puede también extender al soporte de varias operaciones aritméticas o trigonométricas inexistentes en el Ricoh, y demás), donde fallaba la cpu de Ricoh era más en la dificultad de entender ciertos conceptos de funcionamiento (página cero de memoria) y su uso adecuado para obtener un plus de velocidad.
El SA1 tiene esa "memoria interna de 2Kb más rápida" porque es justo su puñetera página cero de "registros", y la necesita para su correcto funcionamiento, y siendo una cpu que funciona a una frecuencia más alta que la RAM de la consola, necesitaba esa memoria interna para mantener la velocidad pico que era capaz de desarrollar, mientras que la cpu original de la SNES ya estaba en sincronía de funcionamiento entre cpu y memoria usada (por cierto, el SA1 es una cpu muchísimo más rápida que cualquier Motorola 68.000, incluso la versión de 16 MHz).
Las ralentizaciones de algunos juegos de SNES, sobre todo de primera hornada como es el caso de GRADIUS 3, tiene que ver más con la falta de habilidad y conocimiento de los programadores con el hardware, las peculiaridades de la cpu y su modelo de programación muy distinto al M68000 (si venías de programar recreativas y máquinas del estilo de la Genesis, con cpus con modelos de funcionamiento al estilo del 68.000, o incluso recreativas basadas en z86 como cpus tipo V20, etc, simplemente no sabrías exprimir la cpu de Ricoh, si venías de programar las pocas recreativas que aún usaban cpus del tipo 6502, antes muy abundantes, o de programar para la NES, C64, o mismamente la PC Engine, tenías muchas papeletas para saber usar bien esta cpu).
Pero sobre todo de un hard gráfico muy potente pero con un modelo de uso complejo, basado en un sistema "multiprocesador" de varios PPUs trabajando en paralelo, más capaces y con más posibles que procesadores de sprites más simples como el usado en la Genesis, pero éste mucho más agradecido de usar por tener menos condicionantes en su uso y, dentro de sus "limitaciones", muy capaz de alcanzar picos de rendimiento sin problema al revés que el caso de los chips de Sony.
Chips de apoyo en los cartuchos se llevaban usando desde la NES original, venir con el cuento de que esto fue un parcheo por un error de diseño de Nintendo es una tontería colosal, y de facto es lo que también hizo SEGA con su Megadrive/Genesis en un caso para competir con la superioridad alcanzada por Nintendo con los super FX con Virtual Racing, y de hecho también en el fondo es la idea que hay detrás de la "seta" del 32X, pues no es una coincidencia que se coloque justo en la ranura de cartuchos y no se conectara a través de la ranura de expansión, básicamente usaba el bus adicional de dicha ranura de cartuchos para ampliar las capacidades de la Genesis y funcionar como un gran coprocesador, el 32X no es más que una forma glorificada de expansión de capacidades usando el mismo bus de interconexión para cartuchos que iba más allá de la idea de usar dicho bus sólo para acceder a datos (sólo lectura) en un cartucho, sino a un bus de ampliación y una forma de alimentación además a un hard adicional.
El mismo concepto que hay detrás de los cartuchos de NES, SNES, etc. Y a nadie se le ocurre, al igual que al autor de este dislate, decir la bobada de que esta posibilidad está ahí porque SEGA se equivocó al usar el M68000 como cpu principal siendo demasiado "rata".
Y sí, la "retrocompatibilidad" era importante, pero no lo que suelta en el artículo el autor, lo que era importante era la facilidad de compatibilizar el código escrito para el 6502 de la NES y poder portarlo fácil a la SNES, dado que el Ricoh hasta arrancaba por defecto en un modo de 8 bits que lo transformaba en un "super-6502", se tenía que arrancar esta cpu de una forma fuera de la existente por defecto para usar sus capacidades expandidas de 16 bits (registros, nuevas instrucciones, mejoras de éstas, etc), algo que no me extrañaría que pasara en los primeros títulos para la SNES donde había ralentizaciones.
Es muy simple, en cada caso de ralentizaciones que demuestran que "la cpu era débil" en la SNES, hay casos posteriores del mismo autor que demuestran lo contrario. En el caso de Gradius 3, Axelay, por ejemplo, ni qué decir de los mil títulos posteriores de Konami que van muy fluidos con un mayor despliegue técnico en todos lo sentidos, incluso si se compara el Super Castlevania IV vs Dracula X, se puede ver esto, el último tiene cero ralentizaciones a pesar de que gráficamente de hecho llega a superar al original (por superior que sea el IV en jugabilidad y ambientación), SuperGnG de capcom, Demons Crest, y así un suma y sigue. Porque simplemente los primeros títulos sufrieron del desconocimiento de los desarrolladores de la máquina.
Evidentemente, el SA1 que es compatible con el código para el Ricoh original, y siendo tan rápido como es (fácilmente equivalente a un Motorola a 20-25 MHz, sino más), puede y de hecho arregla cualquier problema de la mala codificación o errores cometidos en el código para cartuchos de SNES en el tema de la cpu en esos primeros lanzamientos, aunque no arregla nada si las ralentizaciones son debidas al hard gráfico y su mal uso, que es otro de los casos potenciales.
Juegos con ralentizaciones masivas en Genesis se encuentran y no son para nada raros, poca gente veo hablando de las muchas ralentizaciones, desincronizaciones de audio, o flickering masivo de sprites no renderizados en pantalla de juegos iniciales pero bajo equipos tan pro con la máquina como los de la propia SEGA, léase el ejemplo de Strider.
Tremendas ralentizaciones, y eso que el juego fue portado por la propia SEGA para su máquina, y el Motorola M68000 era una cpu que para un desarrollador de la época era una delicia de programar (muy ortogonal, con gran riqueza y facilidad de uso de registros e instrucciones de todo tipo, etc).
sanamarcar
Nintendo siempre fue una rata en hardware, mira que el 68000 tenia que ser barato de narices por el 89, lo metio la MD en el 87. Pero luego con la N64 tb estuvieron rateando y se les quedo cortita en muchos aspectos, segun tb pude leer. Para la GC si que lo dieron todo, pero ya era tarde hasta que le metieron un mando.. y consiguieron lo que querian vender hardware viejuno a precio top con Wii. Con Wii U pues creo que era demasiado complicada por su tableto mando. No se, Nintendo siempre quiso ganar pasta con el hardware y luego con los cartuchos siempre mas que nadie. Le salva que hace Marios Y Zeldas como Dios. Pero creo y esto ya lo he dicho muchas veces, que si no dependiese del hardware, sus titulos tendrian ventas astronomicas... pero quizas se agotarian antes las franquicias.
Cuantas ventas tendria Zelda y Mario sin fueran multi... que se lo digan al GTA y RDR entre otros.