Per il TI99, già da qualche anno e grazie soprattutto a Mike 'Tursi' Brent (famoso per essere il programmatore dell'emulatore del Classic99 ma anche di un sacco di altra bellissima roba tra cui ad esempio Dragon's Lair su cartuccia), è approdata sul TI-99/4A la possibilità di poter usare le musiche in formato VGM, già molto noto per i giochi di computer e console degli anni'80. Rasmus Moustgaard, ad esempio, ha sfruttato molto questa nuova possibilità implementandola nei suoi giochi per il TI-99 in assembler. Mancava però, almeno fino a oggi, la possibilità di poter fruire in qualche modo di questo formato in TI-BASIC o Extended BASIC.
Ecco quindi che arriva uno sviluppatore Italiano, Fabrizio Zavagli (appassionato del TI-99/4A sin da bambino), che ha prodotto un utile strumento di conversione!
Chi è Fabrizio Zavagli?
Il suo primo computer, quando era bambino, è stato il TI-99/4A. Questo lo ha aiutato a fare i primi esperimenti di programmazione nei quali ha riscontrato che, effettivamente, creare giochi poteva essere divertente almeno quanto giocarci. Dopo poco, venne in possesso del Commodore 64 ma era ancora troppo giovane per comprendere appieno l'assembler 6502. Fu poi con il passaggio all'Amiga, con la CPU Motorola 68000, che Fabrizio iniziò ad utilizzare l'assembler in modo proficuo. Il tanto tempo passato a studiare e sviluppare codice, lo aiutò a comprendere bene il funzionamento di hardware interno del computer e il suo software (qualcosa che si sta perdendo man mano che emergono sempre più generazioni di linguaggi di programmazione ndFZ). In quello stesso periodo riuscì anche a realizzare delle demo che furono poi rilasciate nel mondo demoscene Amiga.
Al giorno d'oggi, anche se il suo lavoro quotidiano non è legato ai giochi o alla programmazione, Fabrizio Zavagli continua a sviluppare in ASM per divertimento e per esercizio mentale, su molte piattaforme "retro": TI99, Commodore 64, Atari 2600, Vectrex ed altre, realizzando giochi e demo.
Il formato VGM
VGM (Video Game Music) è un formato di file audio per più piattaforme di videogiochi, come Sega Master System, Game Gear, Mega Drive/Genesis, MSX, Neo Geo, IBM PC AT (Adlib/SoundBlaster), e si è espanso ad una varietà di schede di sistemi arcade dal suo rilascio.
WinAMP (by Radionomy) supporta i file .VGM grazie all'aggiunta di un plug-in dedicato ed è un programma molto utilizzato per gestire tali file. (trovate il pacchetto qui)
Il convertitore VGM2XB
VGM2XB funziona in Windows in finestra DOS linea di comando (CMD) e può convertire le musiche VGM (con alcune limitazioni descritte di seguito, ndr) per essere usate in TI-BASIC o in Extended BASIC compilato sull'home computer TI-99/4A della Texas Instruments. Questo può convertire songs/moduli dal formato .VGM in un amichevole e molto compatto formato Ti99 BASIC o Extended BASIC (XB).
Di cosa si avrà bisogno per seguire questo tutorial?
Un PC con Windows;
files audio (musiche) in formato .VGM; (Un VGM di esempio è contenuto nell’archivio stesso del VGM2XB).
Un “tracker” (opzionale) per poter comporre musiche personalizzate (es. Mod2PSG2);
Convertitore VGM2XB;
Emulatore Ti99/4A (Classic99);
Come utilizzare il convertitore
Prima di tutto decomprimere l’archivio VGM2XB.zip in una cartella del vostro PC, all'interno troveremo i seguenti files:
La sintassi del convertitore VGM2XB.exe è la seguente:
VGM2XB.exe <input.vgm> <output.txt> [opzioni]
le opzioni possibili sono le seguenti:
-p:
PROGRAMMA BASIC completo (default);*
-d:
Istruzioni DATA;*
-x:
Istruzioni SOUND non compilate;*
* Per programma XB completo, si intende un listato in Extended BASIC eseguibile completo di DATA e della routine di riproduzione. Le opzioni "Istruzioni DATA" e "XB SOUND", invece, generano solamente la parte dei DATA o dei CALL SOUND (queste ultime utilizzabili anche in TI BASIC)
-n:
Include il canale del rumore, sperimentale;**
** Questa opzione permette d'includere il quarto canale "rumore" delle musiche VGM. In ogni caso, a causa delle limitazioni del BASIC, non è raccomandato farlo in quanto potrebbe provocare l'interruzione del suono, a meno che non siano soddisfatte certe condizioni (maggiori dettagli in seguito)
-r:
Imposta il timing per l'esecuzione come:
Hardware Reale, se si vuole inserire il codice in un programma XB che dovrà essere compilato (default)
-e:
Imposta il timing per l'esecuzione come:
Emulazione Classic99e necessita di attivare la modalità CPU overdrive;
(Non si applica se usata l'opzione "istruzioni XB SOUND" [-x]).
Per fare un esempio concreto, seguiranno due esempi. Il primo mostrerà la procedura e relativo output della conversione del file di esempio DEMOTUNE.VGM al fine di ottenere un programma XB che possa essere utilizzato per un gioco compilato e che sia eseguibile nell’emulatore Classic99 (con modalità CPU Overdrive attivata). Nel secondo esempio invece, lo stesso file ma convertito in istruzioni CALL SOUND per poter essere eseguito in standard BASIC (o anche Extended BASIC) su macchina reale oppure emulatore, ma senza necessità di attivare CPU OVERDERIVE.
ESEMPIO XB OVERDRIVE CLASSIC99
Dal PC Windows si dovrà entrare in ambiente DOS (linea di comando: CMD) e quindi, dalla cartella del programma, digitare la seguente sintassi:
VGM2XB.exe demotune.vgmdemotune.txt
Premendo invio al comando impostato, si avvierà il processo e verranno visualizzati tutti i passaggi di conversione.
A conclusione di tutto, se tutto sarà andato per il verso giusto senza errori si leggerà chiaramente la scritta 'Done' e il file nome del file di Output.
NB:Si noterà anche la presenza di un ulteriore file con estensione .SPF, questo può essere ignorato o cancellato; È solo un formato intermedio creato per arrivare al .TXT finale.
(N.B.: Le opzioni -p e -r sono quelle di default, quindi non è stato necessario digitarle. Al contrario, se si fosse voluto creare un file di istruzioni CALL SOUND, per un programma TI-BASIC (oppure Extended BASIC) che non doveva essere compilato, avremmo dovuto aggiungere l'opzione: -x Nel caso di opzione -x, le CALL SOUND create non necessitano dell'attivazione CPU Overdrive perché non predisposte per la compilazione e possono essere suonate alla normale velocità del TI-99/4A).
A questo punto, nella cartella scelta, si potrà vedere il nuovo file appena creato con nome: demotune.txt, sarà a tutti gli effetti un programma completo in Extended BASIC e il listato si presenterà così:
Esempio per la procedura in Classic99 e test
Si potrà, quindi, andare ad ascoltare la musica convertita usando l'emulatore Classic99 (ricordandoci che in questo caso bisogna CPU Overdrive). Si potrà ascoltare la nostra musica semplicemente copiando il listato e incollandolo nell'emulatore tramite la voce di menu: Edit → Paste XB, e quindi RUN ed ENTER. (come visibile nel video qui di fianco)
ESEMPIO BASIC/XB CLASSIC99 (NO OVERDRIVE)
Utilizzando i seguenti parametri invece (con la stessa procedura vista nell'esempio precedente):
Le le linee di CALL SOUND che che sono state ottenute, possono essere utilizzate su macchina reale o sugli emulatori, come anche Classic99 ma senza necessità d'impostare CPU Overdrive.
Esempio per la procedura in Classic99 e test
Si potrà, quindi, andare ad ascoltare la musica convertita usando l'emulatore Classic99 (ma anche su macchina reale), in BASIC o XB standard senza usare l'opzione CPU OVERDRIVE. Si potrà ascoltare la musica semplicemente copiando il listato e incollandolo nell'emulatore tramite la voce di menu: Edit → Paste XB, e quindi RUN ed ENTER. (come visibile nel video qui di fianco)
Ecco, avete fatto la vostra prima conversione di un file .VGM in Extended BASIC!
Ora vi potrete sbizzarrire nel comporre vostre melodie con un tracker, e poi convertirle semplicemente e includerle nei vostri programmi in TI-BASIC o Extended BASIC. In caso lo facciate, non dimenticate di menzionare e ringraziare Fabrizio Zavagli, che sarà sicuramente felice di sapere che è stato apprezzato il suo convertitore.
Comporre musiche originali in formato VGM
Per chi fosse interessato a cimentarsi nella realizzarne di brani originali propri, componendoli nota dopo nota, avrà bisogno di un “Tracker”.
Il più semplice e immediato (nonché gratuito) è: Mod2PSG2.
Il convertitore VGM2XB supporta la maggior parte dei comandi e degli effetti che fanno parte di Mod2PSG2, in particolare:
Polifonia con 3 canali PSG (da Channel0 a Channel2) - il Channel3 è il canale del “rumore” e, al momento su VGM2XB è solo sperimentale;
Effetti di volume e distorsione;
Strumenti personalizzati;
Ricordate di salvare la vostra musica in formato VGM per poter essere convertita (File → Export module → VGM).
Limitazioni e Suggerimenti
Di certo non si può pretendere molto dal TI-BASIC o dall'Extended BASIC nel poter eseguire qualsiasi musica, molte di quelle più famose esistenti, sono talmente veloci e con effetti particolari che, se convertite "as-is" e provate sul TI99, potrebbero deludere le aspettative. Il VGM2XB si impegnerà comunque (coraggiosamente), nel tentativo di convertire qualsiasi file .VGM gli verrà sottoposto. Ecco un elenco di massima delle limitazioni riscontrate:
La Dimensione: La memoria in XB è limitata e, purtroppo, non si è riusciti ad avere delle indicazioni precise su quanto può essere lunga una musica prima di avere un messaggio di "Memory Full", questo può dipendere da troppi fattori che riguardano come la musica è stata composta;
Gli effetti *strumentali* come i cambi di volume, sono supportati. Considerate però che usandoli andranno ad aumentare sostanzialmente la dimensione del file di output;
Si raccomanda di usare dettagli di volume nelle *tracce* che si vanno a comporre, usando il comando Vxx;
Il quarto canale "noise" è supportato, ma a causa delle limitazioni dell'Extended BASIC del Ti99. L'uso di questo canale probabilmente provocherà un'interruzione dei suoni degli altri canali, a meno che le note del canale "noise" non si vadano a sovrapporre sulle stesse linee di altre note dei canali da 1 a 3, facendo attenzione a tenere sotto controllo la durata del rumore almeno fino l'inizio della prima nota eseguita sugli altri canali. Magari impostare dei rumori brevi aiuterebbe;
Si deve sempre tenere presente quindi si sta lavorando pur sempre con programmi BASIC, quindi ci si potrà imbattere in limiti di velocità nella riproduzione dei VGM più complesse, molto più sicuro creare le proprie musiche usando una velocità bassa sul tracker (ad esempio a 6) e quindi salvarli in VGM e poi convertirli.
Lo sviluppatore non esclude che si possano scovare altre limitazioni o bug, gratitudine a chi vorrà segnalarli.
Altre Info:
Chi volesse contattare lo sviluppatore Fabrizio Zavagli, può raggiungere il suo sito: www.rasty.com
Il brano demo di Mat64 è un estratto dal prossimo WIP di Fabrizio Zavagli: Space Treat Ti;
Un particolare ringraziamento a Ciro Barile per tutti i test, i suggerimenti e l'amicizia;
Un ringraziamento speciale va anche alle persone e cani che hanno contribuito a questo progetto: Elder0010, Kamicane, Giozzy, Argo, MBR, Freshness, FRK, Jag, Kazzuya, Raoul, Mat64, Jazzcat e la banda di ONS.
Potete scaricare di seguito la versione aggiornata del VGM2XB converter:
Grandioso... W i pionieri del TI-99/4A come Fabrizio Zavagli! :-) < >
Grazie Ciro di tessere contatti continui e di recensire i prodotti dell'ingegno in ambito TI-99.< >
Ste
Il Futuro è arrivato nella tua casa: Texas Instruments TI-99/4A
La potenza di un computer professionale, la semplicità di utilizzo per tutta la famiglia Texas Instruments presenta con orgoglio il rivoluzionario TI-99/4A, il primo home computer che porta la potenza del processore 16-bit direttamente nel vostro salotto.
Preparatevi a entrare nell'era del futuro! Prestazioni Senza Precedenti Dotato dell'avanzatissimo microprocessore TMS9900, il TI-99/4A offre una potenza di calcolo che i nostri concorrenti possono solo sognare. Con una velocità di elaborazione di 3.0 MHz, le vostre applicazioni si eseguiranno con una fluidità mai vista prima.
Un Arcobaleno di Possibilità
Lasciatevi stupire dalla straordinaria grafica a 16 colori, che trasforma il vostro televisore in una finestra su mondi fantastici. Che stiate creando grafici professionali o giocando agli ultimi videogiochi, i colori brillanti del TI-99/4A renderanno ogni esperienza indimenticabile.
Per Tutta la Famiglia
I vostri bambini impareranno la programmazione con il nostro intuitivo TI BASIC Mamme e papà potranno gestire il bilancio familiare con i nostri software di produttività Gli studenti troveranno un prezioso alleato per i compiti e le ricerche I più creativi potranno esplorare nuovi mondi con i nostri programmi di grafica e musica
Espandibile Secondo le Vostre Esigenze Il modulo di sintesi vocale opzionale trasforma il vostro TI-99/4A in un vero e proprio compagno di conversazione. E con la nostra vasta libreria di cartucce, le possibilità sono infinite!
Materiale TI99?
Vuoi aiutarmi preservare la storia del TI-99 ?
Se possiedi Materiale Italiano e non che riguarda il TI-99 e che vorresti condividere nella nostra Community... contattami e potermo inserirlo nel nostro Database Globale