scummVM (Script Creation Utility for Maniac Mansion Virtual Machine) è una virtual machine che serve per giocare a certe avventure grafiche, soprattutto quelle della Lucasfilm (ora LucasArts) basate sul mitico sistema SCUMM (Script Creation Utility for Maniac Mansion, sviluppato da Ron Gilbert e Aric Wilmunder) come ad esempio Monkey Island I & II, Day of Tentacle e tante altre. Per usare scummVM bisogna essere in possesso dei data files originali.
in questa sezione spiego come configurare scummVM per il funzionamento con timidity++ e le alsa, va detto che è anche possibile utilizzare l’emulazione della adlib e di altre schede sonore in voga al tempo di questi giochi; magari molti retromaniaci apprezzeranno maggiormente un audio più “fedele” ai tempi passati… 😉 di contro c’è da notare che l’utilizzo di qualunque altro “driver” sonoro porta ad un lock del /dev/dsp nelle schede più economiche, quelle senza l’hardware mixing per intenderci, ecco perché ho preferito utilizzare le alsa.
programmi necessari
scummvmtimidity
free samples per timidity
Beneath a Steel Sky
Flight of the Amazon Queen
installiamo i programmi
apt-get install scummvm timidity freepats
e installiamo anche i giochi se no, facciamo ben poco 😉
apt-get install beneath-a-steel-sky flight-of-the-amazon-queen
sono due avventure grafiche che sono state rilasciate freeware e che quindi possiamo installare senza problemi sulla nostra debian.
configuriamo timidity++
la prima cosa da fare se avete una scheda sonora come la mia (nVidia Corporation CK804 AC’97 Audio Controller) che non ha un sequencer hardware è quella di abilitare l’interfacciamento del sequencer timidity alle librerie alsa che è disabilitato di default su debianeditiamo quindi il file /etc/default/timidity
# Defaults for TiMidity++ scripts
# sourced by /etc/init.d/timidity
# installed at /etc/default/timidity by the maintainer scripts
# $Id: timidity.default,v 1.3 2004/08/07 14:33:26 hmh Exp $
### This is a POSIX shell fragment
### Enable MIDI sequencer (ALSA), default is disabled
#TIM_ALSASEQ=true## Setting overrides (of /etc/timidity.conf) for the ALSA sequencer daemon
TIM_ALSASEQPARAMS="-B2,8 -Os"
decommentiamo la linea relativa a:TIM_ALSASEQ=true
abbiamo così abilitato il sequencer ad ogni avvio.controlliamo con unaconnect -o -l
ed abbiamo un output del tipo:
client 14: 'Midi Through' [type=kernel]0 'Midi Through Port-0'client 128: 'TiMidity' [type=user]0 'TiMidity port 0 '1 'TiMidity port 1 '2 'TiMidity port 2 '3 'TiMidity port 3 '
la riga che ci interessa è: client 128: 'TiMidity' [type=user]
teniamo a mente il numero visualizzato dopo “client” (128 nel mio caso).la parte relativa a timidity è finita
configuriamo scummvm
facciamolo partire:
franam@eagle:~$ scummvm
andiamo nelle “options“e selezioniamo l’output audio alsa
non abbiamo ancora finito, se proviamo a fare partire un gioco, ad esempio beneath-a-steel-sky dovremmo avere un errore del tipo:
Looking for skyTrying to start game 'Beneath a Steel Sky'Found BASS version v0.0372 (5097 dnr entries)Can't subscribe to MIDI port (65:0) see README for help!
il problema è che dobbiamo settare una variaile d’ambiente per comunicare a scummvm su che porta andare a cercare il sequencer.la varibile è SCUMMVM_PORT che di default è settata su 65:0nel nostro caso dobbiamo settarla su 128:0
export SCUMMVM_PORT=128:0
possiamo inserire la riga precedente anche nel nostro ~/.bash_profile in maniera da non doverla digitare ogni volta che vogliamo giocare.riproviamo dovremmo avere un output del tipo:
Looking for skyTrying to start game 'Beneath a Steel Sky'Found BASS version v0.0372 (5097 dnr entries)Connected to Alsa sequencer client [128:0]ALSA client initialised [129:0]
siccome siamo maniaci: 🙂
aconnect -o -l
client 14: 'Midi Through' [type=kernel]0 'Midi Through Port-0'client 128: 'TiMidity' [type=user]0 'TiMidity port 0 'Connected From: 129:01 'TiMidity port 1 '2 'TiMidity port 2 '3 'TiMidity port 3 'client 129: 'SCUMMVM' [type=user]0 'SCUMMVM port 0 'Connecting To: 128:0
come vediamo anche “aconnect” ci informa della presenza di un client “SCUMMVM”
tutto ok quindi!
BUON DIVERTIMENTO!!!