![]() |
Benvenuto Visitatore ( Log In | Registrati )
![]() |
![]()
Messaggio
#1
|
|
Utente GBARL ![]() Gruppo: Membri Messaggi: 17 Iscritto il: Wed 19 May 2004 - 17:40 Utente Nr.: 684 Feedback: 0 (0%) ![]() |
scusate, e possibile giocare con il visula boy advance,in sistem link,inserendo l'ip del computer di un amico?l'opzione c'e' mi da una porta 55555 qualcuno sa dirmi gli eventuali parametri?grazie
|
|
|
![]() |
![]()
Messaggio
#2
|
|
![]() Veterano ![]() Gruppo: Veterani Messaggi: 2.071 Iscritto il: Tue 8 June 2004 - 20:10 Utente Nr.: 791 Feedback: 0 (0%) ![]() |
ok...
bada sono le 3:34 di notte e la laurea è stata abase di salsa roueda e vino... quindi prendimi con le pinze.... Son felice se in qualche modo poso darti una mano, sei molto stimato per il tuo lavoro sia da me che da tutti gli altri del forum. Non credo comunque che io possa darti molto aiuto visto che a livello di esperienza su sviluppo di emulatori sicuramente quà l'unico che ci capisce VERAMENTE qualcosa sei tu. finita questa premessa vediamo la mia analisi del codice, magari ti può essere utile, al massimo cestinala ![]() OK Mi sembra chiaro che totalPlayers ::: indica il numero di GBA collegati quindi da 2 a 4 ExchangeStructs ::: è la SUB che si occupa di analizzare i pacchetti scambiati e se chi la esegue è il GBA in stato receiver : allora prende il pachetto e lo memorizza nella zona di memoria dedicata, in caso contrario (quindi il GBA che sta chiamando la SUB è in stato sender allora manda sul canale di trasmissione il packetto interessato e contemporaneamente controlla i packetti in arrivo dagli altri GBA, li confronta con il pachetto in uscita e ogni votla che trova il pachetto in arrivo uguale a quello che sta spedento aumenta il contatore totalResponses aumenta di uno. quando questo contatore arriva al numero di GBA connessi allora noi diventiamo receiver e lo stato di sender lo becca un altro. La variabile currentPacketNumber invece la usa il sender per controllare i pacchetti che sta spedendo, e se li ha spediti ttti prima di finire la spedizione. Ora non è chiaro ne codice che vedo come vari il myPlayerNumber , questa variabile varia a secondo se chi chiama la procedura è sender o receiver (il sender becca 0) Credo che comunque venga valorizzata esternamente con questa chiamata myPlayerNumber = EWRAM[0xc5]; ma non conosco la funzione di EWRAM[0xc5]; riassumento --ogni GBA chiama la procedura ExchangeStructs valorizza myPlayerNumber tramite EWRAM[0xc5]; e se è 0 allora e sender altrimenti è receiver, la procedura che comunica con il buffer di scambio è ExchangePackets --I pachetti vengono scambiati tramite le variabili : outPacket è inPacket rispettivamente pacchetto ricevuto e spedito dal GBA attivo. --Ogni GBA appena riceve il pachetto completamente lo rimanda al sender identico tramite outPacket = inPacket in questo modo il sender conta quanti hanno ricevuto il pachetto e può decidere quando terminare il suo stato di sender e passare in stato di recever. --Ora non si capisce bene se esiste un master realmente e comunque il master si differisce dagli altri solo dal fatto che prima di postare i dati sul canale di trasmissione attende che si liberi lgia ltri mandano i dati senza controllare ?!?!?!??! --Ora potrebbe NON esistere un master fisso ma il master è chi è in quel momento è sender in questo caso la costante sender dovrebbe essere = 0 ma non riesco a capire senza conoscere altro codice.... Ora credo che il no$GBA non usi un canale reale di trasmissione bensi usi per sherare i packetti una memoria condivisa tra i vari Virtual GBA in questo caso ogni volta che un GBA aggiorna l'aria di memoria con i packetti da spedire gli altri li hanno subito a disposizione è un serie di flag controllano solo chi accede alla memoria in letura e chi può scriverci, questo spiegherebbe il perchè i vari gba vengono generati dalla stessa applicazione, in questo modo la memoria condivisa risulta generata dalla stessa applicazione e quindi non ci sono problemi di protezione... In questo modo credo che si risolvano molti problemi di sincronizzazione di canale e di comunicazione tra gba per la gestione del canale di trasmissione, proprio perchè questo canale in realtà non esiste ma è sostituito da una memoria condivisa..... ORA QQUESTE ULTIME SONO SUPPOSIZIONI, mi sono venute in mente dopo aver analizzato il codice che hai postato.....ma se la gestione del link è stata veramente fatta in questo modo allora il true link è ancora lontano perchè in questo modo il problema non viene risolto ma aggirato dato che i dati non vengono scambiati ma gestiti dalla stessa applicazione (anche se virtualmente si speza in più vitual machiens) Be senza avere altri dati a disposizione non credo di poter dire altro.... ora non so nenahce dirti se ho detto solo un cumulo di fesserie, spero che nella nebia del mio post ci possa essere una scintilla che ti aiuti nel proseguire il lavoro che hai fatto fino a questo momento, lavoro che ti assicuro vale oro per ogni linea di codice che hai scritto. Be per tutti quelli che hano letto fino a qui questo post.........be spero di non avervi annoiato e soprattutto di non aver detto solo fesserie.....buona notte a domani ![]() -------------------- ![]() ![]() ![]() ![]() ![]() |
|
|
![]() ![]() |
![]() |
Versione Lo-Fi | Oggi è il: Thu 3 July 2025- 22:09 |