« Arquitectura de la Nintendo DS (index)

Arquitectura de la Nintendo DS

Chapter 7: Sistema Operativo


Tabla de contenidos

  1. Punto de entrada
  2. La siguiente etapa
    1. Ventana de oportunidad
  3. Interfaz interactiva
  4. Actualizabilidad

Podemos afirmar con cierta seguridad que, en esta generación, las consolas siempre vienen acompañadas de algún tipo de capa de abstracción e interfaz interactiva. La Nintendo DS sigue heredando el modelo de sistema operativo anterior, consistente en APIs ligeras para simplificar el acceso a la E/S, pero ahora incluye una interfaz de usuario mínima para ajustar la configuración e interactuar con algunas de sus 'aplicaciones'.

Dicho esto, el sistema operativo de esta consola está distribuido en varios chips, así que empecemos por los que se leen durante el arranque.

Punto de entrada

Desde el primer momento, el ARM7 y el ARM9 deben inicializar el hardware antes de poder hacer algo de provecho. Para ello, la CPU NTR (el SoC) integra dos pequeñas ROM:

Al encender la consola, cada CPU arranca desde su respectiva ROM, ya que sus vectores de reset apuntan a cada chip. Para referencia, el vector del ARM9 está en 0xFFFF0000, mientras que el del ARM7 está en 0x00000000 .

La siguiente etapa

A continuación, cada BIOS almacena dos conjuntos de rutinas: código de arranque y llamadas de interrupción. Estas últimas no son ninguna novedad si conoces la historia de la consola anterior, pero el código de arranque ha crecido en complejidad. Además de inicializar el hardware, el código del ARM7 también realiza comprobaciones de seguridad sobre la tarjeta DS y copia el firmware del sistema a la RAM principal.

El firmware del sistema se recupera de una Flash de 256 KB que reside en la placa hija del Wi-Fi y solo es accesible a través del bus SPI . El mismo chip también almacena diversas preferencias del usuario (idioma, apodo, fecha de nacimiento, alarma y mensaje de bienvenida), así como la configuración del sistema (calibración de la pantalla táctil, indicador de primer inicio, versión del firmware y configuración del Wi-Fi).

Una vez completadas sus respectivas rutinas de arranque, ambas CPU se sincronizan para comenzar a funcionar como una 'máquina única'. El ARM9 termina de cargar muy por delante del ARM7, de modo que envía un valor de 4 bits al ARM7 y permanece en un bucle casi interminable hasta que este responde. Una vez que lo hace, ambos procesadores proceden a cargar su primer programa desde la RAM: el firmware.

Ventana de oportunidad

Si alguna vez has jugado con una Nintendo DS, probablemente hayas notado que solo puedes jugar si la tarjeta está insertada antes de encender la consola. Esto se debe a que la BIOS del ARM7 realiza algunas comprobaciones sobre la tarjeta durante el arranque (lo explico con más detalle en la sección 'Antipiratería'). Si todas las pruebas se superan, el ejecutable del juego para el ARM7 se copia entonces a la WRAM, y el del ARM9 se copia a la memoria principal.

Si los ejecutables no se copian —ya sea porque la tarjeta no es válida o no se detectó durante el arranque—, el juego no puede iniciarse y el usuario tendrá que reiniciar la consola para intentarlo de nuevo.

Interfaz interactiva

Con o sin juego presente, el sistema completa su proceso de arranque cargando la interfaz interactiva del firmware.

Image
Pantalla principal.

Image
Esta pantalla aparece cada vez que enciendes la DS. El logotipo 'Nintendo' solo aparece cuando hay una tarjeta válida insertada.

Image
Pantalla de ajustes.

La interfaz es, en líneas generales, similar a la de sus contemporáneas. Los usuarios la emplean para iniciar su juego, cambiar la configuración, descargar software mediante 'Download Play', o entretenerse con el PictoChat: un chat abierto que se comunica con las Nintendo DS cercanas (usando el protocolo 'Multi-card Play').

Conviene destacar que tanto los datos de solo lectura como los modificables residen en el mismo chip Flash (regrabable), así que, en teoría, ¡es posible sobrescribir el firmware! Por suerte, o por razones evidentes, Nintendo protegió el último cuarto del chip (64 KB) frente a escrituras exigiendo un puente en un punto de la placa base llamado SL1, accesible al retirar el compartimento de la batería. No obstante, sobrescribir el resto de la memoria flash puede seguir teniendo consecuencias catastróficas .

Actualizabilidad

Por último, este firmware acabó siendo actualizado por Nintendo en varias ocasiones (cinco, para ser exactos) con el objetivo de corregir vulnerabilidades de seguridad. Las actualizaciones no podían ser instaladas por el usuario (recuerda la protección SL1). En cambio, Nintendo incluyó el firmware revisado en los sucesivos lotes de fabricación.


Previous: 6. E/S

Next: 8. Juegos


Rodrigo Copetti © 2026 RSS Feed

Ir a la edición moderna

Inicio · Escritos · Soporte · Acerca del autor · Acerca del sitio web