Last update: 2011.06.17
Title
(provisional): Nintendo DS for pascal people
Subtitle: Nintendo DS programming with Free Pascal for beginners

TOC
(Percentage of completion):

Italiano

I. Primi passi

1. Due parole per cominciare (100%)
1.1. Perché programmare il Nintendo DS? (100%)
1.2. Gli homebrew sono legali? (100%)
1.3. Diventare sviluppatori ufficiali (100%)
2. Hardware (100%)
2.1. Specifiche tecniche e capacità del Nintendo DS (100%)
2.2. Periferiche di backup (100%)
2.3. Altre periferiche (100%)
3. Tools di sviluppo (100%)
3.1. Compilatori (100%)
3.1.1. devkitARM e GCC (100%)
3.1.2 Free Pascal (100%)
3.2. Librerie (100%)
3.2.1 LIBNDS (100%)
3.2.2 LIBNDSFPC (100%)
3.2.3 PALIB (100%)
3.2.4 SDL (100%)
3.3. Emulatori (100%)
3.3.1 Debugger (100%)
3.4. Altri tools (100%)
3.4.1 Tools per la grafica (100%)
3.4.2 Tools per il suono (100%)
4. Introduzione a FPC4NDS (100%)
4.1. Dove scaricarlo (100%)
4.2. Installazione (100%)
4.3. Altri requisiti necessari (100%)
4.4. Prova su strada (100%)
4.5. Differenze tra ARM7 e ARM9 (100%)
4.6. Un semplice template (100%)

II. La grafica

5. La gestione della memoria video (VRAM )(100%)
6. I Backgrounds (100%)
6.1. Le modalità grafiche (100%)
6.2. Configurazione dei banchi di memoria per i background (100%)
6.3. Background a tiles e mappe (100%)
6.4. Background di bitmap (100%)
7. Gli Sprites (100%)
7.1. Il DS e gli sprites (100%)
7.2. Inizializzazione (100%)
7.3. Configurazione dei banchi di memoria per gli sprites (100%)
7.4. Gestire uno sprite (100%)
7.5. Gestire le collisioni (100%)

III. Altri aspetti

8. La gestione dell’input (100%)
9. L'accesso ai files (100%)
9.1 Filesystem in sola lettura (Nitro) (100%)
9.2 Filesystem in lettura/scrittura (FAT) (100%)
10. Il suono (100%)
10.1. La gestione del suono sul DS (100%)
10.2. Esempio: riprodurre un suono (100%)
10.3. Esempio: utilizzo di moduli (100%)
11. Ultimi ritocchi (100%)
11.1 Effetti “Old School” (100%)
11.1.1 Animazioni tramite manipolazione della palette (100%)
11.1.2 Animazioni tramite manipolazione dell'horizontal blank (100%)
11.2 Interagire con il microfono integrato  (0%)
11.3. Interagire col meccanismo di chiusura del DS (0%)
11.4. Il WiFi (0%)

IV. Appendice

A. Tips’n’tricks (100%)
A.1. I registri (100%)
A.2. Lavorare sui bit (100%)
A.2.1 Operazioni binarie (bitwise) (100%)
A.3. Matematica in virgola fissa (100%)
B. Configurare Lazarus (100%)
C. Tabelle (80%)
D. Riferimenti (10%)
D.1. Link a siti web e materiale vario (10%)


English

(Translating...)

I. First steps

1. Two words to start 95%
1.1. Programming the Nintendo DS, why?
1.2. Are homebrew legal?
1.3. Becoming official developers
2. Hardware 95%
2.1. Nintendo DS technical specifications
2.2. Backup devices
2.3. Other devices
3. Development tools 95%
3.1. Compilers
3.1.1. devkitARM and GCC
3.1.2 Free Pascal
3.2. Libraries
3.2.1 LIBNDS
3.2.2 LIBNDSFPC
3.2.3 PALIB
3.2.4 SDL
3.3. Emulators
3.3.1 Debugger
3.4. Other tools
3.4.1 Graphics tools
3.4.2 Audio tools
4. About FPC4NDS 95%
4.1. Downloads
4.2. Installation
4.3. Other requirements
4.4. Testing it
4.5. Differences between ARM7 and ARM9
4.6. A simple template

II. Graphics

5. Video memory handling (VRAM) 95%
6. The Backgrounds 95%
6.1. Graphic modes
6.2. Configuring memory banks for backgrounds
6.3. Tiled backgrounds and maps
6.4. Bitmap backgrounds
7. Sprites 95%
7.1. The DS and sprites
7.2. Setup
7.3. Configuring memory banks for sprites
7.4. Dealing with sprites
7.5 Collision detection

III. Other aspects

8. Managing input 95%
9. File handling 0%
9.1 Read-only filesystem (Nitro)
9.2 Read-write filesystem (FAT)
10. Audio 0%
10.1. DS audio handling
10.2. Example: playing sounds
10.3. Esempio: using modules
 11. Last touch 0%
11.1 "Old school" effects
11.1.1 Palette looping based animations
11.1.2 Horizontal blank based animations
11.1. Dealing with the integrated microphone
11.2. Dealing with closing lid
 11.4. The WiFi

IV. Appendix

A. Tips’n’tricks 0%
A.1. Registers
A.2. Working with bits
A.2.1 Bitwise operations
A.3. Fixed point maths
B. Cofiguring Lazarus 0%
C. Tables 0%
D. References 0%
D.1. Web links