INDIETRO
  ALSA
AVANTI

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.  


INDIETRO
Laboratorio Sperimentale di Matematica Computazionale - parte II
Sergio Steffè - AA 2015/2016 - PISA
AVANTI