![]() |
|
xgalaga
Ora che abbiamo imparato i rudimenti possiamo cimentarci in una impresa più ardita!
Si tratta di questo: xgalaga è il port sotto X11 di un vecchio giochino del tipo degli "invasori spaziali" che si giocava sulla Apple II nel 1977, e del successivo "Galaga" che si giocava su varie piattaforme e con vari nomi simili.
Apparentemente questo giochino non viene più supportato.
Fortunatamente programmi Open Source scritti bene sono molto longevi. Il programma è stato scritto nel 1995 da Joe Rumsey, e da parecchi
anni non vi viene apportata nessuna modifica.
Tuttavia viene regolamente ricompilato e inserito in svariate distribuzioni di Linux senza problemi.
Ultimamente però le versioni inserite nella Ubuntu 10.10 e successive hanno perso il sonoro.
La causa di questo problema è il fatto che queste distribuzioni hanno rimosso il supporto del OSS lasciando solo quello
dell'ALSA per i suoni.
Ci sono vari sistemi per avere una certa compatibilità dei programmi che si aspettano di avere come interfaccia l'OSS,
ma quelli provati con questo giochino non sono risultati funzionanti, a causa del lag temporate del suono rispetto l'evento sul video,
o a causa di distorsioni eccessive del suono, che e' campionato a soli 8 bit, mono.
Vogliamo perciò provare a modificare il programma in modo che funzioni con l'ALSA !
Per prima cosa ci procuriamo le sorgenti orginali, e i
patch della ubuntu che sono simili a quelli della debian, e che
per lo più servono solo a completare i commenti, le icone, e i pochi cambiamenti di PATH necessari.
Possiamo estrarre le sorgenti dall'archivio, applicare i patch, configurare e compilare il programma; non possiamo installarlo
perchè l'installazione dovrebbe scrivere in /usr/local, scrivibile solo a root.
Constatato che non ci sono errori che blocchino la compilazione, possiamo divertirci ad analizzare il software.
Il programma principale lancia un server per la gestione dei suoni. I due programmi comunicano attraverso un pipe.
quando deve suonare qualcosa, il programma principale scrive nel pipe il numero del suono da eseguire. Il server
per i suoni tiene a mente i suoni da riprodurre, li miscela e man mano li suona.
Il programma, così com'è non possiamo installarlo per problemi di diritti: abbiamo però
sempre la possibilità di eseguirlo lì dove si trova!
Dobbiamo solo fare le opportune modifiche affinchè le varie routines riescano a trovare i files necessari.
Con un pochino di pazienza si scopre che basta modificare pochi PATHS nei files config.h e nel Makefile.
Si fa un make clean e dopo le modifiche si ricompila.
A questo punto il programma dovrebbe funzionare icon il sonoro sulle macchine che hanno il supporto OSS , e senza il suono sulle altre.
![]() |
|