# Estudo sobre o Nintendo DS

## 1. Objetivos
Este trabalho tem por objetivo realizar um estudo aplicado ao dispositivo embarcado *Nintendo DS*, descrevendo suas características, detalhes de arquitetura e funcionalidades.

---

## 2. Seleção do sistema embarcado
O Nintendo DS foi escolhido por ser um dispositivo de mercado amplamente conhecido, com características únicas em termos de hardware e software embarcados.

---

## 3. Informações sobre o sistema

### 3.1 Descrição geral

O Nintendo DS é um console portátil lançado em 2004 pela Nintendo e possuia o objetivo de levar entretenimento móvel aos jogadores da época, concorrendo diretamente com o PlayStation Portable (PSP), da Sony. O nome DS vem de *Dual Screen*, apresentando em sua composição duas telas, sendo uma sensível ao toque, o que abria ainda mais o leque de possibilidades relacionadas à interações dos usuários com os jogos, como ações de toques e gestos.


<figure style="text-align: center;">
  <img src="./assets/nintendo-ds.png" style="width: 400px;" alt="Nintendo DS">
  <figcaption>Figura 1: Nintendo DS</figcaption>
</figure>


Com aproximadamente 154,02 milhões de dispositibos vendidos, é segundo console mais vendido da história, apresentando características únicas e inovadoras. O dispositivo apresenta design dobrável com a tela inferior sensível ao toque e os tradicionais controles Nintendo, à esquerda botões direcionais em quatro direções e botão de liga/desliga. Já à direita, possui os botões **A**, **B**, **X** e **Y**, **Select** e **Start**, além, de dois gatilhos **R** e **L** encontrados na parte traseira do console.


<figure style="text-align: center;">
  <img src="./assets/mais-vendidos.png" style="width: 600px;" alt="Consoles mais vendidos">
  <figcaption>Figura 2: Consoles mais vendidos</figcaption>
  <figcaption>Fonte: <a href="https://pt.wikipedia.org/wiki/Lista_de_consoles_de_jogos_eletrônicos_mais_vendidos"> Wikipedia </a></figcaption>
</figure>

Apresenta também suporte para conexões de rede via Wi-Fi, possibilitando jogatinas multiplayer online ou locais, leitor de cartuchos próprios e leitor de cartuchos compatíveis com o GameBoy Advance.

### 3.2 Características específicas

#### 3.2.1 Unidade de Processamento
O dispositivo utiliza de um chip micropocessador **CPU NTR** desenvolvido em uma parceria da ARM com a Nintendo, possuindo uma arquitetura paralela com a utilização de dois processadores em que o principal é um **ARM946E-S** e o secundário **ARM7TDMI**. Diferenciando-se de uma arquitetura paralela convencional, esta é chamada de _multiprocessamento assimétrico_ e não utiliza do método comum de mestre-escravo, mas sim, apresenta dois processadores independentes que realizam operações exclusivas, cada um tendo seu próprio barramento.
Sendo assim, utiliza também de uma memória FIFO para realizar a comunicação entre os dois processadores.


<figure style="text-align: center;">
  <img src="./assets/fifo-unit.png" style="width: 600px;" alt="Diagrama CPU">
  <figcaption>Figura 3: Diagrama CPU</figcaption>
</figure>

- **Tipo:** Microprocessador 
- **Arquitetura:** ARM7 e ARM9  
- **Fabricante:** ARM Holdings
- **Frequência de Clock:** 34 MHz e 67 MHz  

* Fonte: [Nintendo DS Architecture - CPU](https://www.copetti.org/writings/consoles/nintendo-ds/#cpu)

#### 3.2.2 Memória
A memória principal do dispositivo, assim como os processadores, também é descentralizada e possui componentes em diferentes locais, como na comunicação entre os dois processadores, para utilização exclusiva do ARM7
e para uso geral.

- **RAM:**
   - **32 KB de WRAM** (Work RAM) utilizando um barramento de 32 bits: Para armazenar dados rápidos compartilhados entre o ARM7 e o ARM9.
   Tendo em mente que apenas uma CPU pode acessar o mesmo endereço por vez.

   - **64 KB de WRAM** utilizando um barramento de 32 bits: Também para dados rápidos, mas acessível apenas pelo ARM7.
   
   - **4 MB de PSRAM** utilizando um barramento de 16 bits: Um tipo mais lento, disponível para ambas as CPUs e controlado por uma unidade de interface de memória.


<figure style="text-align: center;">
  <img src="./assets/memoria.png" style="width: 600px;" alt="Diagrama Memória">
  <figcaption>Figura 4: Diagrama memória principal</figcaption>
</figure>

- **ROM/Flash:** 36KB ROM para a BIOS e 256KB FLASH para o Firmware.

Agora, é possível observar que o salvamento do progresso dos jogos é realizado diretamente nos cartuchos, que não são mapeados com a memória do console, ou seja, necessita ser inteiro carregado para a memória do console para utilização. Assim apresentandos os componentes abaixo.

- **ROM:** 16MB, 32MB, ou 64MB
- **EEPROM/FLASH/FRAM:** 0.5KB, 8KB, 64KB, 256KB, ou 512KB

<figure style="text-align: center;">
  <img src="./assets/cartucho.png" style="width: 600px;" alt="Cartucho de jogos">
  <figcaption>Figura 5: Cartucho de jogos</figcaption>
</figure>

* Fonte: [Nintendo DS Architecture - Main Memory](https://www.copetti.org/writings/consoles/nintendo-ds/#main-memory)

#### 3.2.3 Sistema Operacional
O sistema operacional utilizado herda o modelo do console anterior, GameBoy Advanced, consistindo em APIs leves para simplificar operações de I/O e, também, uma interface simples para o usuário acessar configurações e algumas aplicações nativas. É dividido em mais de um chip, podendo ser analisado em três etapas: ponto de entrada, janela de oportunidade e shell interativo. Além de possuir, no mesmo chip, informações de configurações de linguagem, nome de usuário, alarmes e configurações de Wi-Fi, touchscreen e firmware.

- **Ponto de entrada:** nesta etapa ocorre a inicialização dos processadores ARM7 e ARM9, em que cada um é bootado pelo seu respectivo chip ROM de BIOS, conectado no barramento. Executando assim operações de verificação de segurança e de presença de cartucho no dispositivo, além de possuir um mecanismo de sincronia pois, o ARM9 inicializa muito mais rápido que o ARM7, se mantendo ocioso até que ambos iniciem, ativando assim sua sincronicidade.

- **Janela de oportunidade:** só é possível jogar caso o cartucho seja inserido antes de ligar o console pois, a BIOS do ARM7 possui verificações de cartucho em sua inicialização, copiando o executável do cartucho para a memória WRAM e, posteriormente, o ARM9 copia para a memória principal do aparelho.

- **Shell interativo:** nesta etapa, independente da presença de um cartucho, o sistema termina sua inicialização carregando uma tela interativa para o usuário.

* Fonte: [Nintendo DS Architecture - Operating System](https://www.copetti.org/writings/consoles/nintendo-ds/#operating-system)

#### 3.2.4 Sensores e Atuadores
- **Sensores:** tela LCD inferior é sensível ao toque, utilizando a tecnologia resistiva em que, quando pressionada, conecta duas camadas resistivas da tela e registram a entrada. 
- **Atuadores:** o dispositivo utiliza dois alto-falantes stéreo com o total de 16 canais PCM/ADPCM físicos no hardware.
- **Conexão com a MPU:** o subsistema de som do console é ligado apenas ao processador ARM7, assim desafogando a CPU principal, utilizando a comunicação serial em um barramento de 16 canais.

* Fonte: [GBATEK - DS Technical Data](https://problemkaputt.de/gbatek.htm#dstechnicaldata)

#### 3.2.5 Interfaces de Comunicação com fio
- É utilizada a interface **SPI** para acesso aos periféricos embutidos no dispositivos, assim sendo disponibilizados barramentos para o sistema de som, de vídeo e controle da tela sensível ao toque. Além de possuir 4 canais DMA (Direct Memory Access) em cada processador para disponibilizar tranferências de dados mais rápidas entre os componentes.

* Fonte: [GBATEK - DS DMA Transfers](https://problemkaputt.de/gbatek.htm#dsdmatransfers)

#### 3.2.6 Interfaces de Comunicação sem fio
- **Wi-Fi**: o dispositivo apresenta uma interface de conexão com banda de 2.4GHz, Wireless LAN (WLAN) e protocolo IEEE802.11b.

* Fonte: [GBATEK - DS Wireless Communication](https://problemkaputt.de/gbatek.htm#dswirelesscommunications)

#### 3.2.7 Unidades de Entrada/Saída (I/O)
- *GPIO:* Não há GPIO de uso geral exposto diretamente ao usuário no Nintendo DS. As entradas e saídas são controladas por hardware dedicado e registradores para funcionalidades específicas, como comunicação com cartuchos ou periféricos.  
- *ADC/DAC:* O DS inclui conversores ADC integrados para suporte à entrada do microfone, que converte sinais analógicos em digitais. O áudio de saída para os alto-falantes ou fones de ouvido é processado por um DAC integrado.  
- *PWM:* Não foi documentado o uso direto de PWM no DS.

#### 3.2.8 Fonte de Energia e Sistema de Alimentação
- *Tipo:* O Nintendo DS utiliza uma bateria recarregável de íons de lítio com especificações padrão de 3.7V e capacidade de 850mAh no modelo original. O Nintendo DS Lite apresenta uma bateria de maior capacidade, com 1000mAh.  
- *Gerenciamento de Energia:* O Nintendo DS possui um sistema de gerenciamento de energia integrado que permite diferentes modos de operação, como ativo, inativo e suspenso, além de desligar automaticamente o backlight das telas quando fechado para economizar energia. O modelo DS Lite introduziu ajustes de brilho configuráveis, proporcionando um uso mais eficiente da bateria. Um indicador LED informa o status da bateria, indicando se está carregando, carregada ou com nível baixo, e o dispositivo pode ser recarregado por meio de um adaptador de corrente externo com entrada de 5.2V DC.

* Fonte: [DSiBrew](https://dsibrew.org/wiki/Main_Page)

#### 3.2.9 Firmware e Atualizações
- *Firmware:*  O firmware do Nintendo DS é projetado para aproveitar ao máximo a arquitetura do hardware, coordenando as diversas funcionalidades e garantindo a compatibilidade entre gerações. Ele também desempenha um papel crucial em medidas de segurança contra modificações não autorizadas. Sua implementação e suas funções não foram divulgadas na internet, o que se sabe é que existem as seguintes versões:</br>
   - iQue DS Firmware (China) (En,Fr,De,Es,It,Zh) (2005-06-09)</br>
   - iQue DS Lite Firmware (China) (En,Fr,De,Es,It,Zh) (2006-04-26)</br>
   - Nintendo DS Firmware (World) (En,Ja,Fr,De,Es,It) (2004-10-05)</br>
   - Nintendo DS Firmware (World) (En,Ja,Fr,De,Es,It) (2004-11-26)</br>
   - Nintendo DS Firmware (World) (En,Ja,Fr,De,Es,It) (2005-02-28)</br>
   - Nintendo DS Firmware (World) (En,Ja,Fr,De,Es,It) (2005-06-06)</br>
   - Nintendo DS Firmware (World) (En,Ja,Fr,De,Es,It) (2005-12-07)</br>
   - Nintendo DS Lite Firmware (Korea) (En,Ja,Fr,De,Es,Ko) (2006-11-09)</br>
   - Nintendo DS Lite Firmware (World) (En,Ja,Fr,De,Es,It) (2006-02-05)</br>
   - Nintendo DS Lite Firmware (World) (En,Ja,Fr,De,Es,It) (2006-03-08)</br>
- *Atualizações OTA:* O Nintendo DS, lançado em 2004, não oferece suporte nativo a atualizações OTA 

#### 3.2.10 Unidade de Proteção e Segurança
- O dispositivo possui elementos básicos de segurança para proteger os jogos e o sistema. Um exemplo é o uso de criptografia proprietária nos cartuchos de jogos do Nintendo DS, dificultando a reprodução de conteúdo não autorizado. Além disso, o sistema utiliza firmware que bloqueia métodos de execução de código não autorizado, como homebrews, em versões mais recentes (v4 e superiores). Este firmware verifica a integridade do sistema e impede a execução de jogos ou aplicativos não licenciados. 

* Fonte: [DSiBrew](https://dsibrew.org/wiki/Main_Page)

#### 3.2.11 Armazenamento Externo
- O dispositivo oferece suporte a cartuchos exclusivos de jogos como meio principal de armazenamento externo. Esses cartuchos vêm em tamanhos variados de memória ROM, como 16MB, 32MB e 64MB, além de usarem memória EEPROM, Flash ou FRAM para salvar dados, com capacidades de 0.5KB a 512KB. Apesar de não oferecer suporte a cartões SD, o slot GBA pode ser utilizado para expansões ou periféricos específicos, como o Rumble Pak e o Expansion Pak (introduz vibração ao jogar e aumenta a memória RAM, respectivamente).

* Fonte: [DSiBrew](https://dsibrew.org/wiki/Main_Page)

#### 3.2.12 Interface com o Usuário (UI)
- *Displays, botões e sensores:* O dispositivo apresenta duas telas de LCD de 256x192 pixels e 3 polegadas sendo a tela inferior sensível ao toque. A tecnologia utilizada para a captura de entradas de toques na tela é chamada de *resistiva*,
em que a tela é composta por 3 camadas finas, uma resistiva, uma de vidro e uma de metal condutor, sendo que a camada resistiva e condutora são separadas por um espaçador. Quando 
algum ponto é pressionado, as duas camadas encostam e ocorre uma variação no campo elétrico naquele ponto e é enviada a coordenada deste ponto para o SO. Além disso, também apresenta botões direcionais, liga/desliga, Select, Start e dois gatilhos R e L. É interessante ressaltar que o Nintendo DS incluía uma caneta stylus que possibilitava um toque mais preciso na tela inferior, a qual era armazenada na lateral do DS. 

<figure style="text-align: center;">
  <img src="./assets/touch-screen.png" style="width: 400px;" alt="Tela resistiva">
  <figcaption>Figura 6: Tela Resistiva</figcaption>
</figure>

* Fonte: [Brasil Escola](https://brasilescola.uol.com.br/fisica/touch-screen.htm)


---

## 4. Artigos acadêmicos relacionados

1. **The scientific research potential of virtual worlds:**  
   - **Resumo:** O artigo explora como os mundos virtuais podem ser usados como ferramentas de pesquisa científica, destacando sua capacidade de simular interações sociais e comportamentos em um ambiente controlado. Ele sugere que essas plataformas têm potencial para avançar estudos em várias disciplinas, como sociologia e psicologia.  
   - **Referência:** BAINBRIDGE, W. S. *The scientific research potential of virtual worlds*. *Science (New York, N.Y.)*, v. 317, n. 5837, p. 472–476, 2007.

2. **Mario math with Millennials: The impact of playing the Nintendo DS on student achievement:**  
   - **Resumo:** Este estudo analisa o impacto do uso do Nintendo DS como ferramenta educacional no desempenho acadêmico dos estudantes. Ele destaca como jogos voltados para aprendizado podem melhorar habilidades matemáticas e incentivar o engajamento dos alunos.  
   - **Referência:** GELMAN, A. *Mario math with Millennials: The impact of playing the Nintendo DS on student achievement*. ProQuest LLC 789 East Eisenhower Parkway P.O. Box 1346 Ann Arbor, MI 48106-1346: University of Denver, 2010.

3. **The Nintendo DS platform: A multidisciplinary study:**  
   - **Resumo:** O artigo apresenta uma análise multidisciplinar da plataforma Nintendo DS, abordando suas aplicações em diversas áreas, como educação, saúde e entretenimento. Ele demonstra como o console foi adaptado para atender a diferentes propósitos além do jogo, mostrando sua versatilidade.  
   - **Referência:** GREENWOOD, F. *The Nintendo DS platform: A multidisciplinary study*. n. 2022, p. 227, 2022.

4. **Diminutive Subjects, Design Strategy, and Driving Sales: Preschoolers and the Nintendo DS:**  
   - **Resumo:** Este estudo analisa como o Nintendo DS foi projetado para atrair crianças em idade pré-escolar. Ele aborda estratégias de design, experiências de aprendizado e marketing direcionado, destacando como esses fatores impulsionaram as vendas entre esse público.  
   - **Referência:** BRYANT, J. A.; AKERMAN, A.; DRELL, J. *Diminutive Subjects, Design Strategy, and Driving Sales: Preschoolers and the Nintendo DS*. Disponível em: <https://gamestudies.org/1001/articles/bryant_akerman_drell>. Acesso em: 5 dez. 2024.

5. **Nintendo® DS projects to learn computer input-output:**  
   - **Resumo:** O artigo explora como projetos desenvolvidos para o Nintendo DS podem ser utilizados para ensinar conceitos de entrada e saída de computadores, promovendo aprendizado prático e interdisciplinar em engenharia de computação.  
   - **Referência:** LARRAZA-MENDILUZE, E. et al. *Nintendo® DS projects to learn computer input-output*. *Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education*. Anais...New York, NY, USA: ACM, 2012.

6. **Approaches and tools used to teach the computer input/output subsystem: A survey:**  
   - **Resumo:** O artigo apresenta uma pesquisa detalhada sobre as abordagens e ferramentas mais eficazes para ensinar subsistemas de entrada e saída de computadores, incluindo o uso do Nintendo DS como ferramenta prática.  
   - **Referência:** LARRAZA-MENDILUZE, E.; GARAY-VITORIA, N. *Approaches and tools used to teach the computer input/output subsystem: A survey*. *IEEE transactions on education*, v. 58, n. 1, p. 1–6, 2015.

7. **A design of the u-health monitoring system using a Nintendo DS game machine:**  
   - **Resumo:** O estudo propõe o design de um sistema de monitoramento de saúde (u-health) utilizando o Nintendo DS, demonstrando como o console pode ser aplicado em áreas além do entretenimento, como a telemedicina.  
   - **Referência:** LEE, S. et al. *A design of the u-health monitoring system using a Nintendo DS game machine*. *2009 Annual International Conference of the IEEE Engineering in Medicine and Biology Society*. Anais...IEEE, 2009.

8. **The design of the m-health service application using a Nintendo DS game console:**  
   - **Resumo:** Este artigo explora o desenvolvimento de um aplicativo de serviços de saúde móvel (m-health) para o Nintendo DS, destacando sua eficiência no monitoramento remoto de pacientes.  
   - **Referência:** LEE, S.; KIM, J.; LEE, M. *The design of the m-health service application using a Nintendo DS game console*. *Telemedicine journal and e-health: the official journal of the American Telemedicine Association*, v. 17, n. 2, p. 124–130, 2011.

9. **Nintendo DS: A pedagogical approach to teach Computer Architecture:**  
   - **Resumo:** O artigo explora como o Nintendo DS pode ser usado como uma ferramenta pedagógica para ensinar arquitetura de computadores, oferecendo atividades práticas que facilitam o aprendizado técnico.  
   - **Referência:** SANTOFIMIA, M.; MOYA, F. *Nintendo DS: A pedagogical approach to teach Computer Architecture*. *Embedded Systems and Applications*, p. 269–273, 2009.

10. **Renegade gaming: Practices surrounding social use of the Nintendo DS handheld gaming system:**  
    - **Resumo:** Este estudo examina as práticas sociais em torno do uso do Nintendo DS, incluindo como os jogadores se organizam em comunidades, compartilham experiências e exploram o console de maneiras não convencionais.  
    - **Referência:** SZENTGYORGYI, C.; TERRY, M.; LANK, E. *Renegade gaming: Practices surrounding social use of the Nintendo DS handheld gaming system*. *Proceedings of the SIGCHI Conference on Human Factors in Computing Systems*. Anais...New York, NY, USA: ACM, 2008.

11. **Visual GUI System for Game Boy Advance / Nintendo DS:**  
    - **Resumo:** O artigo apresenta o desenvolvimento de um sistema GUI visual para o Game Boy Advance e Nintendo DS, facilitando o design e a implementação de interfaces gráficas para jogos e aplicações no console.  
    - **Referência:** TOSUN, S. *Visual GUI System for Game Boy Advance / Nintendo DS*. *School of Information Science, Computer and Electrical Engineering Halmstad University*, p. 29, 2009.


---

## 5. Produtos relacionados
1. Nintendo Gameboy Advanced
2. Playstation Potable (PSP)
3. SNK NeoGeo Pocket
4. Nintendo Switch 
5. Steam Deck

---

## Autores

| Nome                        | Matrícula |
| --------------------------- | --------- |
| Gabriel Luiz de Souza Gomes | 190013354 |
| Rafael Fernandes Amancio    | 190036940 |
| Rodolfo Cabral Neves        | 180011472 |