Thursday, February 14, 2008

[todo] runme reloaded

"Runme", c'est ma "combox" à moi. Entendez par là un petit outil pour la DS qui permet de se passer de linker et d'accélérer le cycle développement. Il est capable de transférer des fichiers d'un PC vers le répertoire "moving" de la DS à 90KB/s, techniquement capable (également) de transférer des fichiers de la DS vers le PC, mais pour l'heure, je me suis limité au choix des 4 fichiers édités par le Sprite Editor. Côté PC, il faut un programme spécial (petit script perl ou un programme java) pour "offrir" un fichier au téléchargement.

"Runme" is my all-in-one transfer and testing tool on the nintendo DS. The kind of "get-rid-of-your-linker" or "i-lost-my-media-card-reader" tool that is intended to boost software development on the console. It's my favourite way of transferring content from a PC to the console through WiFi at speeds approaching 90KB/s.
With the proper program running on your PC, it can also beam files out of the console (though i don't have a user-friendly interface for this atm).
Over time, it has gathered module player and bare game engine facilities, but it still lacks a couple of features to get a release of its own as "runme: reloaded".

Bref. Il serait temps que je fasse quelque-chose de "releasable" à partir de ce projet . Genre:

  • [wish] faire une version java qui intègre upload et download sur PC.
  • [done] permettre de choisir n'importe quel fichier pour l'exporter hors de la DS
  • [done] choisir le répertoire dans lequel les transferts s'opèrent sur la carte flash (pour l'instant, tout ce passe dans /moving)
  • [wish] prévoir un type "répertoire" pour l'importation vers la DS. Il apparaît comme une simple entrée dans la liste des transferts, mais quand on l'active, il crèe un nouveau répertoire sur la DS, recontacte le serveur et lui demande les fichiers un par un ... Ce serait bien pour tester VGDMS ^_^ (edit: remplacé par un server.pl qui présente les fichiers les uns après les autres).
  • [wish] intégrer les stubs "auto-update" dans la PAlib pour conquérir le monde...
  • [done] m'assurer que le démarrage d'un autre programme marche même lorsque les patches DLDI entrent en jeu.
edit: j'ai re-testé les patches DLDI ce midi. Au moins, le patcheur embarqué est cohérent avec lui-même et le fait que le "stub" qui passe d'un programme à l'autre soit en mémoire vidéo n'affecte pas son bon fonctionnement. Cherchons ailleurs ...
So the todo-list for the runme software include mostly integration of browsing widgets (to pick the import
directory or the exported file), integrate downloader and uploader in a single java program. I also need to support a "directory" transfer type which would make the DS ring back the PC and perform bulk transfers of many files at once (e.g. to test VGDMS).
The ultimate killer feature, though, would be to provide a twisted version of PALib that would be compatible with runme's program booting mechanism, but this means i first need to fix DLDI patcher embedded in the software.

3 comments:

PypeBros said...

-- petite doc que j'avais écrite avec la release de mon sprite editor sur playeradvance --
envoyer/recevoir des fichiers wifi:
il faut lancer un des programmes .pl sur un PC qui est sur le même réseau WiFi que la DS, "server.pl" pour envoyer un fichier vers la DS et "sink.pl" pour recevoir un fichier. Comme ce sont tous les deux des scripts perl, il vous faudra d'abord installer perl sur votre machine (il est déjà là si vous avez Linux, sinon, le projet ActivePerl devrait faire l'affaire).

Mettons que je veux envoyer xdad.spr, livré avec le software, que ma DS a reçu l'adresse IP 192.168.3.4 et que le PC, lui, a l'adresse 192.168.3.2, la commande à entrer (dans un shell) sera:
[code]
perl server.pl xdad.spr 192.168.3.4 192.168.3.2
[/code]

Lançons maintenant runme.nds, on choisit son point d'accès (automatique s'il a été réglé avec mariokart ou un autre) et on voit apparaitre le fichier dans une liste. En cliquant dessus, on commence le téléchargement. C'est tout. En appuyant sur le bouton "A", on peut voir le fichier, écouter le .mod/.s3m/.xm/.it etc.

Si vous n'avez pas su installer PERL, vous pouvez aussi opter pour la version JAVA du serveur (compilation pour les différentes JDK en cours) : java server <IPDS> <IPPC> <fichier1> [fichier2] [fichier3] [fichier4] ...

PypeBros said...

oups. Suis-je bête. Si vous cliquez simplement sur un nom de fichier, runme le copie dans sa mémoire de travail (512K). C'est intéressant pour écouter des mods ou regarder des images, mais pas pour transférer des fichier sur la carte SD.

Pour ça, maintenez L enfoncé pendant que vous touchez l'écran. Ca y est, le téléchargement a démarré sur la cartouche et vous voyez des tonnes de "#" pour indiquer la progression sur l'écran du haut.

Oh, vous pouvez relâcher le bouton L, hein, vous allez attraper une crampe.

PS: il n'y a pas de mode "économie d'énergie" dans mon programme, donc vous pouvez refermer la console pendant un long téléchargement.

PypeBros said...

une autre petite doc, envoyée à mon frangin :

- - - 8< - - - 8< - - -

bon. accroche-toi à tes baskets: voici le premier player NDS qui joue
.mod, .it et .s3m reçus par Wifi et qui affiche des .pcx

1. copie le ficher runme.nds sur ta carte SD

2. installe-toi PERL pour windows (p.ex.
http://home.wangjianshuo.com/archives/20021124_install_perl_on_windows_xp.htm)

3. trouve l'adresse IP de ta console DS (p.ex. 192.168.6.6) et l'adresse
IP de ta machine (p.ex. 192.168.6.2)

4. démarre le fichier runme.nds sur ta console. Si tout va bien, l'écran
du bas va t'afficher l'évolution de la connexion Wifi puis passer à un
écran vide où tu auras juste un bouton "cancel" et deux petites barres
animées en haut de l'écran (avec inscrit wifi #### ou qqch comme ça)

5. démarre le serveur sur ton PC, en ligne de commande, avec "perl
server.pl Loading.mod 192.168.6.6 192.168.6.1". Tu devrais voir
apparaître le "192.168.6.2:8081:Loading.mod" sur l'écran tactile.


6. clique une première fois sur le fichier sur ta DS, il va mettre -*
connected *- et bloquer. Clique une deuxième fois, cette fois, il va
passer à "xfer" ... seuls les fichiers de moins de 256Ko peuvent être
transférés ainsi pour l'instant.

7. une fois le transfert terminé (** complete ** sur l'écran tactile),
appuie sur A et la musique démarre dans les 2 secondes ^_^. Tu peux la
relancer en réappuyant sur A (en principe autant de fois que tu veux).

Si plutôt que de transférer un .mod, un .s3m ou un .it, tu transfères
simplement un .pcx 256 couleurs (il ne t'affichera que 256x256 pixels),
tu le verras sur l'écran supérieur en appuyant sur "A".

Tu peux retourner au menu "sélection d'un point d'accès Wifi" à tout
moment en appuyant sur "B".
Tu peux lancer plusieurs serveurs qui offrent plusieurs fichiers en même
temps, dans des consoles différentes. En principe, au-delà de 8, ça
n'aura plus d'intérêt parce que la DS ne saura plus t'en afficher plus :P

Tu peux te risquer à transférer des fichiers plus gros, mais alors il
faut maintenir "L" enfoncé pendant que tu cliques (pour le sauver sur la
carte mémoire).

je serai sur MSN si tu ne t'en sors pas ^_^