|
|
Risultati da 1 a 2 di 2
-
20-11-2008, 17:44 #1
Senior Member
- Data registrazione
- Feb 2004
- Località
- Roma
- Messaggi
- 510
Come Risolvere i Conflitti di Imon con i Joypad: Device Conflict Remover
Questa applicazione Open Source molto rudimentale fatte da me è nata per risolvere uno dei più grossi bug che affligge la periferica IMON di SOUNDGRAPH.
Il bug si manifesta quando volete utilizzare un gioco con un joypad in modalità DirectInput.
In questo scenario, appena il joypad inizierà a dialogare con il driver DirectInput Imon andrà in conflitto con il joypad ogni 5 secondi circa causando la disconnessione e la riconnessione del joypad: ovvero in altri termini non riuscirete in nessun modo ad usare il joypad, perchè questo vi funzionerà 5 secondi si e 5 secondi no
Nonostante Soundgraph sia a conoscenza del problema da più di un anno, non si è mai preoccupata di risolverlo.
Le soluzioni casalinghe ad oggi sono 2
- Disconnettere la presa USB di imon prima di lanciare il gioco
- Disattivare la periferica usb di imon prima di lanciare il gioco
Il mio programma Conflict Device Remover serve per automatizzare del tutto la procedura di disconnessione dell'Imon quando lanciate una determinata applicazione / gioco, e a riattivare Imon una volta che essa sarà terminata.
NOTA IMPORTANTE
L'applicazione è MOLTO RUDE, e non è stata pensata per una diffusione di massa. E' nata sotto la stella "uso personale", ma dato che in molti hanno il mio stesso problema ho deciso di renderla pubblica. La procedura di installazione e configurazione di Device Conflict Remover è del tutto MANUALE e per nulla automatizzata, quindi è necessario un medio livello di esperienza dell'utente.
Siete liberi di modificare il sorgente originale di Conflict Device Remover per migliorarlo. Vi chiedo solo di non rimuovere l'intestazione del file e di rendere sempre disponibile agli utenti il nuovo codice sorgente.
COME FUNZIONA: L'IDEA
L'idea alla base di Conflict Device Remover è semplice
Disattivare Imon in automatico quando si lancia una determinata applicazione o gioco e riattivarlo al termine. Conflict Device Remover deve essere indipendente dall'Hardware e dal Software che si vuole lanciare.
Conflict Device Remover sfrutta il programma Microsoft DevCon.exe (da scaricare a parte, vedi più avanti) per mandare un comando dal prompt all'Hardware Imon, costringendolo a disattivarsi.
Il tutto viene fatto inviando delle System Call che vanno ad interagire con DevCon.exe e con l'eseguibile della vostra applicazione.
PRIMA DI INIZIARE
E' necessario compilare il file device_remover.c scritto in linguaggio C (non C++). Questo può esser fatto senza difficoltà con il programma gratuito Dev-Cpp. Una volta compilato il file device_remover.c otterrete il file Device_Remover.exe che servirà a lanciare appunto il programma omonimo.
INSTALLAZIONE
I seguenti passi devono essere eseguiti qualora non si modifichi il codice sorgente di conflict device remover per migliorarlo o adattarlo alle proprie esigenze.
1) Scaricate il file allegato a questa discussione e scaricare il programma di Microsoft "Devcon.exe"
Tale programma (che volendo è contenuto anche nel cd d'installazione di windows, ma non viene mai installato in automatico) permette da riga di comando di attivare/disattivare e gestire le periferiche hardware del PC.
Esistono due versioni di questo file, uno per sistemi operativi a 32 bit l'altro per quelli a 64 bit. Entrambi possono essere scaricati dal sito della microsoft a questo link (file zip).
http://download.microsoft.com/downlo...240/devcon.exe
nella cartella i386 c'è la versione per sistema operativo a 32bit, nella cartella ia64 c'è la versione a 64bit.
2) DECOMPRIMETE l'archivio e copiate il solo file DEVCON.exe che vi interessa (a 32 bit o a 64bit)
nella cartella C:\ del vostro computer.
3) sempre dentro la cartella C:\ create un file di testo (.txt) e chiamatelo "config.txt". Non scriveteci nulla dentro per ora.
4) A questo punto è necessario scoprire quale ID INSTANCE (in italiano PERCORSO ISTANZA DISPOSITIVO) ha la vostra periferica imon. L'id sarà necessario a Conflict Device Remover per comunicare a Devcon quale periferica USB deve essere attivata o disattivata.
Per trovare l'id del vostro imon, tasto destro su risorse del computer e fate "proprietà".
Poi andate su "hardware" e poi su "gestione periferiche". Aprite la linguetta "Periferiche Human Interface" e vedrete una serie di periferiche. Quelle a cui siamo interessati sono le HID-Compliant-Device (in italiano "Dispositivo compatibile HID").
5) Partite dal primo HID-Compliant-Device del vostro elenco, click tasto destro e scegliete DISATTIVA. Se il vostro LCD imon si blocca, si spegne o in generale smette di funzionare (il software imon dovrebbe anche segnalarvelo) allora avete trovato HID-Compliant-Device di Imon. Se invece avete disattivato qualche altra periferica, allora cliccate nuovamente con il tasto destro su di essa e sceglite ATTIVA.
Se durante tale ricerca disattiverete il vostro mouse, dovrete riattivarlo con le scorciatoie da tastiera. In ogni caso TENETE A MENTE la posizione del HID-COMPLIANT-DEVICE di Imon una volta che l'avete trovata, perchè tutti i dispositivi nell'elenco si chiamano allo stesso modo, MA sono elencati sempre nella stessa posizione.
6) cliccate nuovamente con il tasto destro sul HID-COMPLIANT-DEVICE che avete appena disattivato E TENETENE A MENTE LA POSIZIONE NELL'ELENCO. Scegliete ATTIVA. Imon a questo punto dovrebbe tornare a funzionare.
7) cliccate nuovamente con il tasto destro su HID-COMPLIANT-DEVICE di Imon e scegliete "proprietà". Poi linguetta "Dettagli" e dal menu a tendina scegliete ID Instance Device (in Italiano "Percorso Istanza Dispositivo). Nella parte inferiore vi apparirà una stringa che è proprio quello che stavamo cercando.
nel mio caso, l'istance ID di imon è
HID\VID_15C2&PID_0038&MI_01\7&34BA3C5&0&0000
ma esso varia da computer a computer.
Cliccateci sopra e una volta che sarà stata evidenziata premete la combinazione di tasti
CTRL-C per copiarla.
8) andate dentro c:\ aprite il file config.txt precedentemente creato e incollateci dentro (combinazione di tasti CTRL-V) l'istance ID di imon che avete poco fa trovato. Salvate il file.
I passi elencati fino ad ora devono essere eseguiti una sola volta all'atto delle prima installazione di conflict device remover.
Vediamo ora invece come configurare Device Conflict Remover per ogni singola vostra applicazione. I passi che seguono devono essere ripetuti per ogni applicazione/gioco che necessita che imon sia disattivo durante la sua esecuzione
A) Andate nella cartella dove si trova il FILE ESEGUIBILE (.exe) che fa partire la vostra applicazione o gioco. Copiateci dentro il file "Conflict_Remover.exe" che avete precedentemente compilato.
B) create nella stessa cartella dove avete copiato Conflict_Remover.exe un file di testo (.txt) chiamato "launcher.txt". Questo file serve a Conflict Device Remover per stabilire qual'è l'eseguibile del gioco/ applicazione che deve essere eseguito. Aprite il file launcher.txt appena creato e scriveteci dentro il nome dell'eseguibile della vostra applicazione (ad esempio PES2009.exe) e salvate il file.
BENE AVETE FINITO !
A questo punto se cliccate eseguite Conflict_Remover.exe vi si dovrebbe aprire una finestra del prompt dei comandi, poi si dovrebbe bloccare imon ed in fine dovrebbe essere lanciata la vostra applicazione. NON CHIUDETE LA FINESTRA NERA, essa deve rimanere aperta: si chiuderà da sola una volta che uscirete dalla vostra applicazione. Se la chiudete prima, imon resterà disattivato e dovrete riattivarlo a mano (punto 6 di questa guida). Quando uscirete dalla vostra applicazione / gioco, imon tornerà a funzionare.Ultima modifica di Ronzino; 20-11-2008 alle 17:54
-
20-11-2008, 17:53 #2
Senior Member
- Data registrazione
- Feb 2004
- Località
- Roma
- Messaggi
- 510
Versione Originale v1.0
20/11/2008