Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Questions » Jeux compatibles Titanium (119 réponse(s))
./REPRISE DU POST PRECEDENT (post n°76)   Marquer comme non lu.
Billy Charvet Ecrit le: Vendredi 8 octobre 2004 à 12:58 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


Ce n'est pas à négliger, pas mal de routines de détection de calculatrice sont patchées à cause de ça.

Je vois pas pourquoi elles ont besoin de ROM_BASE.
FL_getHardwareParmBlock marche très bien.

Bon, pour qu'un truc marche sur Titanium, faut faire quoi ?
Si j'ai bien compris:

- Pour les nostub, compiler avec le dernier TIGCC, ou si c'est un ppg
utiliser ttstart-titanium.

- Pour les kernels, installer Iceberg (HW3Patch nécessaire ?) et recompiler,
ou patcher avec GhostBuster.

C'est ça ? =)
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°77   Marquer comme non lu.
ExtendeD Ecrit le: Vendredi 8 octobre 2004 à 14:09 Déconnecté(e)    Voir le profil de ExtendeD Envoyer un email à ExtendeD Envoyer un message privé à ExtendeD  

Billy Charvet :
Je vois pas pourquoi elles ont besoin de ROM_BASE.
FL_getHardwareParmBlock marche très bien.

Il se trouve que c'est comme ça dans Tigcclib. Et ça prend beaucoup moins de place que d'utiliser FL_getHWPB.
Kevin Kofler :
M'en fous des ROM_CALLs, je peux fouiller la ROM de pas mal de manières pour trouver ce que je veux. :p Je vais faire mon possible pour gérer l'USB dans Backgammon, mais il me faudra aussi des testeurs...

Quelque chose me dit que tu auras beaucoup de mal.
    
./Post n°78   Marquer comme non lu.
Billy Charvet Ecrit le: Vendredi 8 octobre 2004 à 16:50 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


Il se trouve que c'est comme ça dans Tigcclib. Et ça prend beaucoup moins de place que d'utiliser FL_getHWPB.

C'est un ROM_Call, ca risque pas de prendre des masses.
Et puis si jamais on s'inquiète pour la place, on peut éviter les
lourdes macros de TIGCC quand elles sont inutiles.
Dans un programme lisant des variables "OTH", remplacer
les fopen, fclose etc de TIGCC par des Rom Calls FOpen, FClose etc
fera une belle différence de place, bien plus que d'utiliser les fonctions
de TIGCC au lieu de FL_getHWParmBlock...

Dans tous les cas, cette détection de merde devrait toujours
être remplacée par FL_getHWParmBlock en nostub.

Et si on veut économiser de la place, passer en kernel et utiliser le bon RAM_Call.
Au moins, ça, ça fonctionnera.
-Edité le Vendredi 8 octobre 2004 à 16:52 par Billy Charvet-
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°79   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 8 octobre 2004 à 18:29 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


ExtendeD :
Kevin Kofler :
M'en fous des ROM_CALLs, je peux fouiller la ROM de pas mal de manières pour trouver ce que je veux. :p Je vais faire mon possible pour gérer l'USB dans Backgammon, mais il me faudra aussi des testeurs...

Quelque chose me dit que tu auras beaucoup de mal.

Bof... Regarde un peu le genre de trucs que j'ai déjà faits en fouillant dans la ROM (lignes d'entrée (surtout Y=; pour HOME, Samuel Stearley m'a donné l'algorithme), Backgammon pour Fargo, ...). :)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°80   Marquer comme non lu.
EJC2810 Ecrit le: Vendredi 8 octobre 2004 à 18:57 Déconnecté(e)    Voir le profil de EJC2810 Envoyer un email à EJC2810 Envoyer un message privé à EJC2810  

Cool! A quand l'usb? :D
    
./Post n°81   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 8 octobre 2004 à 23:18 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Voilà ce que j'ai trouvé ce soir:
XR_string 0x6fe @ 0x8d713f = USB: Searching for device
XR_string 0x700 @ 0x8d7174 = USB: Device not responding
Strings used in function @ 0x94a174
 Called from jsr @ 0x8cfa3e
d0.w == 0 if the USB is responding, d0.w != 0 if the USB is not responding
 Also called from function @ 0x8d2572
 Probably a check "which link port shall we use" (return value in d0.b). 1 = USB, 2 = LIO.
  Called from jsr @ 0x8cf0a0

0x94a72a (jsr @ 0x8cfb48), 0x951eb0 (jsr @ 0x8d05e2), 0x94ac88 (jsr @ 0x8d05f2) These send (or receive?) something...
0x94a284 (jsr @ 0x8cfb52) USB Reset - always called on close, sometimes on open too


Mon plan:
  • Finir les recherches: Que font exactement ces fonctions? Idéalement, je voudrais trouver des fonctions "envoie bloc d'octets" et "reçois bloc d'octets" dans la ROM.
  • Trouver des hacks pour les appeler.

-Edité le Vendredi 8 octobre 2004 à 23:20 par Kevin Kofler-
-Edité le Vendredi 8 octobre 2004 à 23:29 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°82   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 9 octobre 2004 à 00:07 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Nouvel élément:
0x94ad7a is also a send/receive function.
0x94a72a = USB_SendData??? 0x94ad7a = USB_RecvData??? (or the opposite...) The prototypes seem to match...
(Note: USB_RecvData apparently doesn't take a timeout parameter. Maybe these are more like OS*LinkBlock?
The return value (for both) is a short: 0 if the operation was successful, else a non-zero value.)
We just need to double-check in some way which is which, and if they really are what they look like.

-Edité le Samedi 9 octobre 2004 à 00:18 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°83   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 9 octobre 2004 à 00:09 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Si quelqu'un a accès à deux Titaniums, j'aimerais qu'il me contacte ASAP pour des tests.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°84   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 9 octobre 2004 à 01:21 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Un truc bizarre avec 0x94ad7a, c'est que cette fonction n'est pas utilisée en dehors du code USB. Donc je ne pense pas que ce soit vraiment la bonne fonction pour recevoir (ou envoyer) des données.

Cette histoire d'USB m'a l'air très complexe, j'ai trouvé pas mal de fonctions qui sont apparemment de link et qui sont utilisées à partir du reste de AMS. Et je ne sais pas trop ce que font ces fonctions. (Mais je ne poste pas de liste avant d'avoir fini mon recensement.)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°85   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 9 octobre 2004 à 05:28 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Au fait, le code en question n'a peut-être pas écrit par TI eux-mêmes. À en croire les press releases, ils ont acheté des licences pour au moins 2 stacks USB-on-the-go (Mentror Graphics et Jungo), donc ils en ont peut-être utilisé un là-dedans.

Et ce qui m'énerve, c'est que j'ai déjà identifié 2 fonctions dont j'ai besoin (détection de la connexion USB et reset USB), mais pas (du moins pas de manière fiable) les fonctions pour tout simplement envoyer/recevoir des données...
-Edité le Samedi 9 octobre 2004 à 05:41 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°86   Marquer comme non lu.
EJC2810 Ecrit le: Samedi 9 octobre 2004 à 19:15 Déconnecté(e)    Voir le profil de EJC2810 Envoyer un email à EJC2810 Envoyer un message privé à EJC2810  

Je possède 2 TI-89 Titanium (enfin, moi et mon frère!).
Alors je peut tester quand tu veut!

Contacte-moi par mail ou dans ce topic si tu as besoin de moi:
jerome.charpenay@laposte.net
    
./Post n°87   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 10 octobre 2004 à 02:57 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Bon, je te maile un premier programme de test. Il ne fait pas encore grand chose, juste DetectLinkInterface et USBLinkReset (les noms ont été inventés par moi).

unsigned char DetectLinkInterface(void); (0x8d2572)
Detects if the USB link is usable. Returns 1 (USB preferred) if it is and 2
(legacy DBus IO preferred) if it isn't.

void USBLinkReset(void); (0x94a284)
This function closes and resets the USB link. It is used by AMS when done with
an USB transfer, and sometimes also before initiating one.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°88   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 10 octobre 2004 à 11:21 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


OK, voilà ce que j'ai pu trouver en analysant le processus d'envoi d'un fichier:

short USB_SendData(void *buffer, size_t size, long unknown); (0x949b86)
Sends size bytes from buffer over the USB link. For "unknown", try 0x7d0.
Returns 0 if successful, some non-0 error code otherwise.

short USB_RecvData(void *buffer, size_t size, long unknown); (0x949c7e)
Receives size bytes into buffer from the USB link. For "unknown", try 0x7d0.
Returns 0 if successful, some non-0 error code otherwise.

short USBLinkClose(void); (0x949c6a)
This function is used by AMS to finalize a file transfer.
Returns 0 if successful, some non-0 error code otherwise.


Il y a aussi des tas de routines de niveau plus haut, qui s'occupent du protocole de transfert de fichiers (handshake, ...). Si quelqu'un est intéressé... Personnellement, je n'ai besoin que des fonctions d'envoi-réception.

Un nouveau programme de test est parti dans la direction de EJC2810 (par mail).
-Edité le Dimanche 10 octobre 2004 à 11:41 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°89   Marquer comme non lu.
EJC2810 Ecrit le: Dimanche 10 octobre 2004 à 15:40 Déconnecté(e)    Voir le profil de EJC2810 Envoyer un email à EJC2810 Envoyer un message privé à EJC2810  

Bon, je teste tout ça dans la journée et je te renvoie une réponse ce soir.
    
./Post n°90   Marquer comme non lu.
EJC2810 Ecrit le: Dimanche 10 octobre 2004 à 18:21 Déconnecté(e)    Voir le profil de EJC2810 Envoyer un email à EJC2810 Envoyer un message privé à EJC2810  

C'est bon, je t'ai envoyé les résultats des tests.
    
./Post n°91   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 11 octobre 2004 à 00:00 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Merci. Résumé: La détection a l'air de marcher, mais pour l'envoi et la réception, il y a encore des problèmes.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°92   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 11 octobre 2004 à 01:58 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Puisque DetectLinkInterface n'est aparrement utilisable que pour l'envoi, voici la fonction que AMS utilise pour la réception:
unsigned char DetectReceiveInterface(short allowLIO); (0x8d25a4)
Waits for a calculator to connect on either the USB or the LIO interface.
Returns:
* 0 if something is detected on the USB link.
* 2 if allowLIO is non-zero, nothing is detected on the USB link and
  something is detected on the LIO link.
* 3 if interrupted by the user ([ON] key).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°93   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 11 octobre 2004 à 03:07 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


D'ailleurs, quelques remarques:
  • La plupart des memcpy dans le code de link ne sont pas pour envoyer des blocs de données, mais pour copier un pointeur dans un pointeur indirect (oui, des memcpy de 4 octets #sick#).
  • On trouve du "beau" code comme le suivant:
    move.w %d0,%d4
    beq.s 0f
    move.w %d4,%d0 | Eek!
    bra foo
    0:
    #mur#
  • La non-optimisation peut aussi être utile pour savoir le type des paramètres dans certains cas:
    moveq.l #0,%d0
    move.l %d0,-(%a7)
    suba.l %a0,%a0
    move.l %a0,-(%a7)
    Merci de me dire quel paramètre est un pointeur et lequel ne l'est pas. :p
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°94   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 12 octobre 2004 à 20:38 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Grrr, toujours pas de résultats pour la version de test utilisant DetectReceiveInterface. #rage# EJC2810, où es-tu???

En attendant, j'ai fait une première version d'essai de Backgammon pour USB. Mais j'attends là aussi les résultats des tests pour savoir si elle fonctionne.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°95   Marquer comme non lu.
Jfg Ecrit le: Mardi 12 octobre 2004 à 21:06 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Kevin Kofler :
#rage# EJC2810, où es-tu???.

C'est un service qu'il te propos: l'émoticon est un peu fort.
Kill Mario
    
  :: Index » Forum Ti68K » Questions » Jeux compatibles Titanium (119 réponse(s))
Pages : 5/7     « 1 2 3 4 [5] 6 7 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 75.1ms avec 18 requetes