..                     ,.-..                     ,..,                                   
      |  |                  .`     `.                  |    |                                  
      |''|                  |`'---'`|                  |`'-`|                                  
      |<<|                  | _____ |             _,,..|[}{]|.,,,                              
    _,|<<|,,                | \ D / |         ,-``     |[}{]|    ``',                          
  .`  `..'  `.              |  |A|  |         |-,,     ``--''    _,-'|                         
  | `''--''` |              |  |T|  |         |   ``'''------''``    |                         
  |  [ O5 ]  |              |  |A|  |         |     [ Mindkind ]     |                         
  `.   ~~   .'              | /   \ |         `-,,    ] 1010 [   _,-'                          
    `''--''`      _,,,,,,...||  C  ||.....,,,,,,_ ``'''------''```                             
      |<<|.-''```` _,,,,,...|[  O  ]|...,,,,,,_  ```''-|[}{]|                                  
    ,```   .,-''```         |[  R  ]|          ``''-., |[}{]|,                                 
   |      `.        _,,,,...||  E  ||...,,,,,         '|[}{]| |                                
   |`-,_   `'-.,,_,`********| \   / |********`._,,.-'` |[}{]|'|                                
   |    `''-.,,,_ `````'''''---------'''''`````  _,,,.-|[}{]| |                                
   |`-,_         `````''''''---------'''''''`````      |[}{]|'|                                
   |    `''[                                          ]|[}{]| |                                
   |`-,_   [       Intro to Nintendo DS Hacking       ]|[}{]|'|                                
   |    `''[                                         ] |[}{]| |                                
    `-,_        [                              ]  _,,..|[}{]|.,,,                              
      |<;`'-.,,,_                             ,-``     |[}{]|    ``',                          
    ,`     ;     ```;;;;;;;;---------;;;;;;;;;|-,,     ``--''    _,-'|                         
   |`-,_   `'-.,,_,`********|[ !?! ]|********`|   ``'''------''``    |                         
   |`-,_`''-.,,,_ `````'''''---------'''''````|     ]   Gonzo  [     |                         
   |`-,_`''-.,,, `````''''''---------'''''''```-,,               _,-'                          
    `-,_`''-.,,,[                                ]``'''------''``                              
      |<`|'-.,,,_[                              ]_,,,.-|[}{]|                                  
      |<<|       `````''''''---------'''''''`````      |[}{]|                                  
      |<<|                  |]Aka: [|                  |[}{]|                                  
      |<<|             ___,,| _____ |....--------------|[}{]|,,,,,,,,,,__                      
      |<<|,,.--'''`````   __| \ D / |....--------------|[}{]|,,,,,,,,_   `````'''--..,,_       
  _.-'``       ,,.--'`````  |  |A|  |                  |[}{]|         `````''-.,,       ``'-., 
 ;           -`             |  |T|  |,.....----------..|[}{]|,,,_                `'           ;
 |`'-.,,       `''-..,,,_.-`|  |A|  |******************|[}{]|****````-_,,,,,.--'`       _,,-'`|
 |      ```''--..,,,,,_   ```````''''''''--------------''''''''```````   __,,,,..--''```      |
 |                     ````````''''''''''--------------''''''''''````````                     |
 |                                                                                            |







Intro to Nintendo DS Hacking                                                       25/07/06

A.K.A.

Best Purchase I made this year


Word up people! Le Dr est de retour, pour vous jouer un mauvais tour!  (Ta gueule..) Pour rester 
sérieux, il y a un mois, un de mes compagnons de travail a envoyé un E-mail sur une mailing liste 
ultra secrète (pas tant que ça) pour demander s?il y avait du monde intéresser a se procurer un 
"homebrew DS devkit". Comme j'ai toujours voulu programmer pour des consoles sans rien savoir a 
leur propos vu qu?un devkit de Playstation 2 vaut à peu près 20000 -30000 $, je me suis dit que 
c'était une occasion parfaite pour m'y mettre. Voilà où le fun commence. Sans savoir dans quoi 
je m'embarquais, je lui envoie un reply pour lui dire de me mettre sur la liste d'acheteurs.

Le package comprenait 4 choses que nous avons dû commander un peu partout dans le monde pour une 
valeur totale de 180$A. les 2 choses les plus simples étaient :

*Mini SD card 1gig

*Mini SD card reader USB

Ça se trouve dans les Radio Shack et ce genre de magasin d'électronique. Je vous sortirais bien 
les marques que nous avons achetées, mais je viens tout juste de garrocher les boites sur le 
dessus de mon garde-robe ou il y a littéralement UNE MONTAGNE DE BOÎTES! le SD reader qu'on a 
acheté est assé cool. il permet de lire les cartes SD et 2 autres types que je ne connais pas le 
nom. L'une d'elle me permet de foutre ma carte de camera numérique dedans (j'ai eu la camera 
gratuite à cause qu'il manquait le reader... BARGAIN!). le mini reader est USB et fonctionne 
asser bien sans avoir a installé de drivers spéciaux avec WinXP, OSX, Linux Ubuntu (celui-là est 
dodgy des Foix, mais y' auto-mount a 85% du temp).  ils fournissent aussi des drivers pour les 
vielles version de Windows et Mac OS 8-9. 

La carte mini SD est asser "cute".  ça a la grosseur des sunshine acid  dans le film Peur et 
Dégout a Las Vegas (ironicaly) et doit s'assoir dans un adapter qui viens avec pour qu'on 
puisse la lire dans le SD reader. tout ça est asser straight forward... le résultat est qu'on a 
l'équivalent d'un removal disk dur de 1gig  de la grosseur d'un cap dacid.

Vous devez commencer à vous douter que cette carte va vite devenir le disque dur de notre DS 
mais ce que vous ne comprenez pas c'est comment est-ce qu'on va rendre le DS capable de lire la 
carte. Si vous regardez bien sur le DS... il n'y a nulle part où on peut insérer ce type de carte. 
Voilà ou ça devient intéressant. Il y a une bande de Japonais fucked up/sautez sus le crack et 
qui ne se sont probablement jamais fait sucé non plus qui ont fini par développer le M3.

Bon c'est quoi un M3? c'est un bidule de la grosseur d'une cartouche de Gameboy Advance qui fait 
un paquet de trucs le fun. 
http://www.gameboy-advance.net/nintendo_ds/nds-m3adapter.htm

Voici un link ou vous pouvez vous le commander avec une passcard que je vais vous parler un peu 
plus bas. Ils en fabriquent pour SD et CF card (ou les 2) eh oui si vous ne l'avez pas encore 
deviné, le M3 vous permet d'insérer une carte SD et de l'utiliser comme disque dur. De ce que je 
comprends, le M3 est un peu comme un mini OS foutu sur une carte GBA (qui hi-jack probablement 
le bios en même temp, ici ça commence a allez un peu trop dans l'électrique engineering pour mes 
connaissances, j'ai trouvé une couple de wiki qui explique les différentes adresses pis comment 
hi-jacker le bios de la machine. Je n?aime autant pas trop parler de se que je ne comprends pas 
trop).  so nous allons nous contenter de prendre le M3 comme un bidule qui a un mini OS/firmware 
qui nous permet de lire la carte SD/CF et flaire un paquet d'autres trucs que je vais discuter 
plus tard dans l'article.

Note : le M3 n'est pas DS spécifique, il va fonctionner sur le GBA itou.

Maintenant, la fameuse Passcard. OK celle-là de se que j'ai lue, c'est une carte d'la grosseur 
d'une cartouche de DS qui se charge de flasher le bios du DS pour pouvoir aller en mode command 
(se qui vous permet d'accéder au features du M3... ici encore, je suis pas un pro en électronique, 
so ça pourrait être faux comme information, mais de se que je comprends, il y a une protection sur 
le bios et la pass card vous permet de bypasser cette protection)

Note : maintenant que vous avez les 4 éléments requis, le fun peu commencer. Faites attention, 
avant de tout plugger. Lisez bien la documentation qui vient avec la passcard et le M3, il y a 
quelque chose a faire la première foix que vous booter le DS pour pouvoir supporter plus de 
features. Je vous avertis, la documentation a été traduis tr mal de japonais a anglais, c'est 
asser dur a suivre.


DS features
Le DS est une console asser pas puissante. c'est un peu comme s?ils avaient pris un N64 et avaient 
foutu ça dans une boite de la grosseur de 2 paquets de cigarettes canadiennes. Malgré tout, vu 
que nous n?avons pas d'OS à faire rouler, c'est un peu comme si tout le power de la machine étais a 
nous.

*premièrement, le DS contient 2 micros processeur d'architecture ARM (ARM7TDMI , et ARM946E-S. 
co-processor qui roule a 67mhz et 33mhz avec 4mb de RAM.. je vais aller plus en détail si je viens 
qu'a écrire mon article de programmation pour le DS)

*2 écrans 256x192 (pas beaucoup comparé à vos écrans 1600x1200) où celle du bas a une touch 
screen reader

*microphone avec support pour récognition de la voie

* supports wireless 802.11b (WiFi) standards (permet des connexions de 30 -100 pieds de distance)

*des speakers intégrés

*supports 2D/3D
    *en théorie, le DS pourrait renderer jusqu'a 120000 triangles, mais ce n'est pas suggère 
d'en renderer plus que 4000 si on veut garder un frame rate de 30fps
    * il peut aussi loader des textures dans la mémoire.
    *support pour cel shading (c'est Nintendo cameme)

*j'en oublie peu être


M3 features
Le M3 à tout plein de choses intéressantes. Le DS supporte Bios supporte GBA et DS mode, alors 
nous pouvons aller dans ces 2 modes pour aller jouer avec le M3. Il y a une interface très 
simple avec différentes options. 

*Movie - Eh oui, le M3 nous permet de faire jouer nos films préférés sur le DS. Bien sur, vous 
ne pouvez pas simplement placer un .avi DivX sur la SD card et expecter que le M# va le jouer. Le 
DS n'est pas asser puissant pour décompresser la compression DivX en même temp que de faire jouer 
le film. La compagnie qui a créé M3 a été asser smat pour nous donner un Mini-CD-ROM avec 2-3 
programmes utiles dessus. L'un d'eux est un Movie Converter et un Codec Pack. (Ce sont des 
programmes Windows, mais j'ai réussi à les installer avec Wine et c'est supposé fonctionner 
avec VirtualPC) le programme va prendre un fichier film et le convertir en fichier raw (j'assume 
que c'est une compression très simple, s?il y a même une compression. Et il va surement réduire 
la résolution du film pour 256x192). Le programme va même se charger d'écrire le fichier sur la 
carte SD (si elle est trouvée). Tout ce qui vous reste a faire c'est mettre la carte SD dans le 
M3 et voila! vous pouvez écouter les épisodes des Simpsons dans le bus en allant au travaille.

*Music - il y a aussi un music player. bon, un peu comme le movie, je pense qu'il faut 
re-compresser vos mp3 en un format pas trop compresser pour que le DS puisse lire. Je ne l'ai 
pas encore essayé, mais en théorie, votre DS devient un iPod (il vous reste juste à voler la 
paire d'écouteur à votre petit frère et vous allez pogner avec toutes les chicks!)

*Pictures - un simple picture viewer. je ne suis pas sur quel format sont supporté, mais je 
dirais que Bitmap et JPEG fonctionnent parfaitement (vous pouvez transporter votre pr0n itou 
dans le bus)

*Books - ça j'ai pas checké, mais je pense que ça vous permet de lire des formats eBooks (eh 
oui... lire Mindkind dans le bus. Sur votre DS.. 1337)

*PDA - Ici je ne connais pas vraiment les PDA mais je pense que ça permet de lire des applications 
pour PDA. (Quand je clique dessus, ça dit que ça ne trouve pas de fichier.pda sur mon disque dur)

*Extend - ça, je ne comprends pas trop. Ça change la façon de voir mon interface graphique du M3 
mais ça n'a pas l'air de faire grand-chose de plus.

*Setup - ici, nous pouvons modifier les settings du M3 (il n'y en a pas beaucoup), mais le M3 
support sleepmode maintenant (wuhu... ma batterie va durer plus longtemps)

*Games - voici la partie qui m'intéresse le plus et que d'âpres moi a le plus a offrir. Tout le 
monde devrait savoir se que c'est un émulateur et des ROMS? oui, bon OK... les gars de M3 on 
foutu la possibilité de jouer a n'importe quelles ROMS de Nes, SNes, GB, GBA, smc, NDS et 
probablement d'autres consoles qui sont sorties seulement au japon! oui! vous m'avez bien compris, 
vous pouvez downloader tout la série de NES ROMS sur l'internet et les mètres tous sur votre 
carte SD! GRATUITEMENT!!! anyway, si vous être un gamer cracker mental comme moi, vous devez 
comprendre pourquoi je dis que c'est le meilleur achat que j'ai fait cette année. 180$A et j'ai 
presque tous les jeux de Nintendo gratuit sur mon DS que je peu trimbaler n'importe où! des heures 
et des heures d'entertainment!!! Sur le miniCD-ROM que M3 nous donne avec la carte, il y a un 
programme qui s'appelle "Game Manager" (ils se sont forcés pour trouver un nom) qui est un 
programme Windows, mais qui fonctionne très bien avec Wine et VirtualPC. il vous permet de 
prendre n'importe quelles ROMS supportées et de le transformer en format qui va jouer sur le 
M3/DS/GBA. c'est asser straight forward, si vous ne comprenez pas, lisez le manuel qui vient avec 
(c'est GUI et nom command line)

Conclusion
bon asteure avec cette information-là, vous êtes près à 3 choses :

*être un Nintendo Warez Pimpz

*flasher devant tous vos amis en disant que vous avez hacker votre DS pour flaire tout ça

*transporter du data illégal au travers de n'importe quelle douane vu que c'est probablement trop 
débile comme amanchure pour qui pense a essayé de comprendre comment ce bidule la marche (tout 
se qu'ils savent faire c'est étampé votre passe-port... malgré que je n'aurais probablement pas 
dû dire ça vu que la GRC nous espionne et maintenant ils vont s'assurer que tous les DS qui 
rentrent au pays ne sont pas hacker)

Où allons-nous à partir d'ici? OK pour être sérieux, ça ne serre pas juste à flasher et jouer a 
des jeux en 8 bits. Si vous vous rappelez de mon intention première en achetant le gadget, c'était 
pour faire du Homebrew développement. Oui c'est possible! vous pouvez compiler votre code pour le 
DS et créer votre propre version de Tetris en exploitant les capacités du DS hardware.  C?est 
asser intéressant comme forme de programmation. C?est low level et restreint, mais ça vous donne 
une expérience de "c'est quoi programmer pour une machine qui n'est pas exactement un ordinateur 
x86". j'ai commencé a travaillé il y a 2 semaines avec NDSLib et GBALib. J?ai réussi a faire 
apparaitre des polygones sur l'écran (en utilisant leur amanchure de render qui appelle "OpenGL" 
mais qui ne l'est pas vraiment) avec une petite console pour afficher du texte et il n'y a pas 
beaucoup de lignes de code. Je vais me pratiquer un peu plus et je vais essayer de vous flaire un 
article futur sur comment débuter a faire vos propres programmes pour le DS tout en expliquant 
comment compiler votre code et faire fonctionner les 2 processeurs simultanément. 

Pour l'instant, contentez-vous de jouer avec tous les jeux magnifiques qui ont été inventer sur 
les vieilles consoles au lieu de vous pourrir l'esprit avec des clones de Doom + cool Lighting FX.

Say hi to your mum for me...
Dr.Gonzo