C'est quoi vos modèles de TI ? C'est vraiment étrange, il faudrait tester avec plusieurs émulateurs :/
Des TI 82stats.fr.
Je vais essayer de trouver une rom de cette TI pour tester, mais normalement c'est la même chose que les TI 83 donc je pige pas...
Ou mieux tu peux "dumper" ta propre ROM avec TiLP II par exemple.
J'ai testé avec une rom de TI82stats.fr (pas de la mienne, j'ai du rendre le câble à mon pote: il doit remettre ses prgm à cause du mem effacé), mais ça marche nickel... cry
Je vais essayer de tester avec un autre émulateur pour voir...
Avec Virtual TI, ça ne marche tout simplement pas (au niveau de la connexion): je reste coincé sur "recherche d'un adversaire...
Et je ne comprends pas pindurti mourn
Pour PindurTI, suffit de glisser/déposer ta ROM dans la partie gauche de la fenêtre de l'emu puis de faire pareil avec une copie de la ROM dans la partie droite. Les deux sont alors reliées.

Les touches sont là (pas de clavier virtuel) : http://wikiti.brandonw.net/index.php?title=Emulators:PindurTI#Basics

Tu devrais aussi tester avec TiEmu même s'il y a quelques librairies à installer il me semble...
Bon, ça reste aussi bloqué sur "recherche d'un adversaire" avec PindurTI... c'est à n'y rien comprendre! mur
Sur les sites ou j'ai été, on me dit que tiemu n'émule pas les 82/83/83+... mais les TI89(Titanium), TI92(+), V200

EDIT: Mais pour PindurTI, c'est carrément la conexion qui ne fonctionne pas (même avec du TI basic c pas bon)
Oups je voulais dire TilEm sorry

J'vais faire quelques tests de mon côté...
ok merci
Je teste sur TILEm demain
voici mon 83p smile
Mmh ça bug pas mal avec WabbitEmu (version 1.6.2.21) et une ROM 83 v1.07. Pour savoir ta version : MODE, ALPHA, LN (mais ne pas faire ENTER, ça ferai un reset).

Le link marche mais rien ne bouge après l'affichage du cadre, de la pomme et des serpents...
Ça ressemble à ce qui c est passé la 3e fois avec nos caltos
rom:1.11fr7
je regarde celle de wabbitemu demain
Au pire, j essayerais de contacter l auteur de bell...
Merci encore pour ton aide ^^
Heuu... avec une rom 83 v1.07 sur wabbitemu (v1.6.2.21), (pareil que toi donc) ça marche impec pour moi fou
Et ça marche aussi avec la rom 1.11fr7 sur émulateur... mourn
Moi ça bug y'a rien à faire :/

t0DV

(En plus maintenant y'a un compteur qui apparait chez la deuxième TI cheeky)
Un compteur !? eek C'est surprenant...
Je suis perplexe...
Par contre, j'ai remarqué que ça ne fonctionne pas forcément si tu lances la n°2 avant la n°1: il faut lancer la 1 puis la 2 pour être sûr
Et aussi: n’appuie sur aucun bouton après avoir lancé le jeu sur les 2 caltos (pendant la recherche de connexion, ça peut faire bugguer). N'appuye que sur clear pour quitter
Rien à faire ça bug... La pomme est même déjà apparu en dehors de l'écran :/

J'ai aussi essayé avec Venus (un shell compatible Ion), pareil sad

J'ai archivé ma version de wabbitemu, ton binaire et une sauvegarde à charger une fois que tu as sélectionné ta rom (v1.07) pour tester : debug.zip
fou2
Ca marche nickel avec ta sauvegarde et ton wabbittemu... confus
C'est juste du délire!
Y'a rien à faire chez moi ça ne marche pas... Soit ça ne bouge pas soit ça bouge super rapidement (pas le temps de réagir les deux serpents se foncent dedans) fou

C'est quand même étrange qu'avec VTI ça ne marche pas, le transfert de fichiers avec le TI-OS marche parfaitement...

Il faudrait tenter de voir ce qui cloche avec le débuggueur de VTI lors de la recherche de joueurs, puis pour wabbitemu si ça marche chez toi tu vas avoir du mal à débugger :/

edit : VTI fait le même coups à d'autres jeux multi apparemment (j'ai testé bomberkids).

Par contre ça marche avec wabbitemu...
En général, l'émulation de VTI est moins fiable que les autres (Tilem2, WabbitEmu, PindurTI). J'ai arrêté de l'utilser depuis que CoBB a publié le premier beta de PindurTI ça fait plus de 6 ans (2005?).
Bonsoir!
J'ai eut la réponse de l'auteur de la librairie... mais c'est en anglais, et je ne maîtrise pas bien cette langue roll
Je comprends le sens général, mais pas tout, est-ce que vous sauriez m'éclaircir?
About your bug, I think the problem is here:


call bell_connect
    ret nz

    bcall _clrlcdfull    ;On affiche tout
    bcall _cleargbuf
    bcall _copygbuf
    ld hl,$0503
    ld (currow),hl
    ld hl,S_ENTRER
    bcall _puts
    ld b,$70
RALENTIR3:
    [...]

    call OBJ_ALEAT
    call bell_sync        ;On définit les places
    or a
    jr z,POS1


Immediately after bell_connect, you use a routine from the TI-OS. TI-OS routines have the nasty habit of enabling (linkport) interrupts and messing with ports. Probably this messes up the connect which causes one calculator to return (ret nz) and the other to get stuck in bell_sync.

By the way, bell_connect already does bell_sync if I'm not mistaken, so if both calculators waste the same amount of clockcycles it shouldn't be neccessary to use bell_sync. Then again, if it works for you that's fine, it doesn't mess anything up either smile
Are you testing the .83p with a Ti-83(+) ROM in the emulator, and testing on two Ti-82's on hardware? That could explain the difference; the ROMs of calculator models are different, so maybe you're just lucky with the ROM calls for one model, and not so lucky for the other model.

Si j'ai bien compris, il faut que j'enlève le bell_sync à cause de la routine que j’appelle?
En gros le fait d'utiliser certaines rom calls relancent des interruptions liées au port link (0 sans doute) et celles-ci font un peu n'importe quoi avec, ce qui peut causer les problèmes de connexion (conflit entre la lib bell et le TI-OS).

Ensuite il dit que ce n'est pas la peine d'utiliser la routine bell_sync si tu as déjà fait appel à bell_connect (cette dernière y fait appel apparemment), sauf si une des TI a plus de code à exécuter (ce qui est pratiquement toujours le cas puisqu'une fait sans doute office de serveur et l'autre de client, non ? confus)...

Après il dit de ne pas confondre TI 82 et TI 83(+) (ils n'ont pas la 82 stats aux USA).

Bref ce qu'il te conseil c'est de te renseigner sur les rom calls (cf wikiti), pour savoir lesquels bidouillent le port link...

J'vais faire aussi quelques recherches de mon côté, parce que si c'est ça c'est un peu inquiétant...

edit : c'est très probable que ce soit à cause de _getkey, comme indiqué dans la page sur le port 0 :
TI-OS Interference

One thing to keep in mind when writing link port related software is that the Ti-OS checks for silent transfers in the background of input routines. When two calculators are connected and one pulls a line low, the other calculator will respond by pulling the other line low to acknowledge that it has received a bit. Even when the other calculator is running an assembly program that uses the getkey romcall. This phenomenon is known to cause severe headaches for programmers who attempt to write synchronization routines smile.


En gros laisse tomber tous les rom calls d'"input", et préfères-y le direct input (cf http://tift.tuxfamily.org/asmpourlesnuls.html ).
Ok merci (c'est bien ce qu'il me semblait pour la rom mais je n'étais pas sûr)

Pour le truc de sauf si une des TI a plus de code à exécuter, en fait de toute façon, les caltos ne peuvent pas être toutes les 2 au même endroit au même moment, donc il y a un certain délai, qui n'est dépassé que s'il y a vraiment beaucoup de code. wink

Si les rom calls bidouillent le port 0 comme tu dis, c'est mauvais signe: à moins de les recoder, ce qui serait ch**t, je ne vois pas comment m'en passer

EDIT: ok merci, je vais traquer les _getkey wink
Selon le SDK _getcsc ne tient pas compte du "silent link" (apparemment c'est le protocole de connexion PC/TI), et n'emmerde donc pas le port 0. La routine suivante peut donc être utilisée pour remplacer _getkey s'il s'agit juste de faire une pause :

getkey:
	bcall _getcsc
	or a
	jp z,getkey
	ret

(Pas testé par contre...)
Mais il faut tenir compte du fait que les valeurs rendues par _GetCSC ne sont les même que _GetKey, les voici :
;======================================================================
;           Scan Code =ates
;======================================================================;
skDown          =	01h
skLeft          =	02h
skRight         =	03h
skUp            =	04h
skEnter         =	09h
skAdd           =	0Ah
skSub           =	0Bh
skMul           =	0Ch
skDiv           =	0Dh
skPower         =	0Eh
skClear         =	0Fh
skChs           =	11h
sk3             =	12h
sk6             =	13h
sk9             =	14h
skRParen        =	15h
skTan           =	16h
skVars          =	17h
skDecPnt        =	19h
sk2             =	1Ah
sk5             =	1Bh
sk8             =	1Ch
skLParen        =	1Dh
skCos           =	1Eh
skPrgm          =	1Fh
skStat          =	20h
sk0             =	21h
sk1             =	22h
sk4             =	23h
sk7             =	24h
skComma         =	25h
skSin           =	26h
skMatrix        =	27h
skGraphvar      =	28h
skStore         =	2Ah
skLn            =	2Bh
skLog           =	2Ch
skSquare        =	2Dh
skRecip         =	2Eh
skMath          =	2Fh
skAlpha         =	30h
skGraph         =	31h
skTrace         =	32h
skZoom          =	33h
skWindow        =	34h
skY=          =	35h
sk2nd           =	36h
skMode          =	37h
skDel           =	38h
Merci à tous les 2! smile
Oui mais s'il s'agit juste d'attendre l'appui de n'importe quelle touche on peut faire sans.

Pour faire un vrai test des touches autant faire avec le direct input smile
Hoho... maintenant, ça bug sur l'émulateur...
T'as seulement remplacé les _getkey ? Avant ou après la connexion ?
J'ai remplacé tous les _getkey, soit par du direct imput, soit par la routine que tu m'a proposé.
Ca bug au niveau du bell_sync il me semble: une calto continue, et l'autre y reste bloquée. Le problème, c'est que je ne peux pas m'en passer: j'en ait besoin pour savoir qui commence à droite, et qui commence à gauche...
Tu peux poster le code source ? (Ou une archive avec les fichiers includes surtout)
Je dois y aller, je poste ça en rentrant.
Merci encore de ton aide smile