Differences

This shows you the differences between two versions of the page.

Link to this comparison view

v1_bytecodes [2019/08/25 13:56] (current)
Line 1: Line 1:
 +Le Nabaztag v1 est bien plus limité que le Nabaztag v2, il faut donc avoir recours à différents bytecodes au lieu d'un seul, envoyé lors du boot du lapin comme c'est le cas sur le v2.
 +
 +Quand Mindscape a mis les sources à disposition, ils ont donné les sources des bytecodes suivants:
 +
 +  * **Nabaztag_pointbleu.vasm** Bytecode de démo je présume, fait clignoter les leds à tour de rôle en bleu clair (si je me souviens bien)
 +  * **Nabaztag_asleep_v1.0.vasm** Permet de mettre le lapin en "sommeil", leds éteintes, oreilles couchées, aucune interaction
 +  * **Nabaztag_msg_v0.9.vasm** Permet de lire un fichier audio (voir ADPCM2-4bits plus bas)
 +  * **Nabaztag_demo.vasm** Bytecode très similaire au suivant
 +  * **Nabaztag_wait.vasm** Pour moi, c'est le bytecode principal, il gère les "services" (tels que la météo, le trafic, les emails... via les leds du ventre), ainsi que les mouvements d'oreilles, les clics, le TaiChi, ... C'est sur ce bytecode là que j'ai le plus travaillé pour l'instant.
 +
 +====== VASM ======
 +
 +Ces fichiers sont des sources écrites dans un langage assembleur particulier au Nabaztag V1, le VASM, dont on peut trouver la documentation sur Internet, en cherchant **Nabaztag-vasm-RevB.pdf**
 +
 +Ces sources ont donc besoin d'être assemblées avant d'être envoyées au Nabaztag. Pour cela, plusieurs options:
 +  * Faire la conversion à la main, très déconseillé...
 +  * Utiliser la source Java fournie par Mindscape ( le fichier en question est **Vasm.java** dans le dossier des sources VASM)
 +  * Utiliser un autre assembleur. Il en existe quelques uns, dans les anciens projets de serveurs Nabaztag V1 **MAIS** beaucoup ne supportent pas certaines opcodes spécifiques au sources de Violet... 
 +  * C'est pourquoi j'en ai réécris un en Php, qui permet d'assembler les sources existantes. Par manque de ressources serveur, je ne le mets pas en ligne pour l'instant, mais n'hésitez pas à me contacter pour l'avoir, tout mon travail sur le Nabaztag est sous license GPLv3.
 +
 +====== ADPCM2-4bits ======
 +
 +Le Nabaztag est limité en ressources, il ne peut pas lire de fichiers Wav directement (laissez tomber les mp3, c'est même pas la peine d'en parler). Il faut les convertir en ADPCM2-4bits.
 +C'est un format propriétaire OKI, fermé. Il est à ma connaissance impossible de trouver de la documentation dessus librement. Il se rapproche du format ADPCM, mais les tables de conversion et peut-être une partie de l’algorithme sont différent.
 +L'idée de ce format est de convertir 4 octets du fichier WAV source en 1 octet du fichier ADP de sortie.
 +
 +Il en existe une variante, le format ADPCM2-2bits, qui doit probablement faire la même chose mais avec 8 octets, permettant une plus grande compression au détriment de la qualité. Le Nabaztag supporte très bien le format 4bits, c'est donc celui-çi qui sera maintenu
 +
 +Pour faire la conversion Wav vers ADP il faut:
 +  * Un fichier WAV:
 +    * Mono
 +    * PCM
 +    * Échantillonné à maximum 16 kHz
 +  * Un convertisseur WAV -> ADP, là plusieurs solutions
 +    * Un convertisseur avec interface graphique, sous Windows
 +    * Le fichier wav2adp de Mindscape sous GNU/Linux (32-bits)
 +    * La source de Sprites_TM: vox-adpcm2 très probablement multi-plateforme
 +    * Ma source C normalement multi-plateforme
 +    * Ma source Php
 +
 +Un petit mot sur mes sources de convertisseur: La source Php n'est qu'une adaptation "rapide" de la source C, mais elle fonctionne bien. Mes deux sources ne sont pas disponibles, pour la même raison que mon assembleur. N'hésitez pas à me contacter.
 +
 +Ensuite, pour lire ces fichiers convertis, il suffit de les inclure dans la source "...msg.vasm" de Minscape.
 +