Home

Awesome

Jak skorzystać z SFX-Engine w MAD Pascalu

+ /Projekt
|
+- /sfx_engine
|  |  sfx_engine.conf.inc
|
+- /music
|  | {pliki wygenerowane przez smm-conv}
|
+-- main.pas
|   
{$librarypath './sfx_engine/'}
{$librarypath './music/'}

uses SFX_API, atari;

Wykorzystanie programu smm-conv

Przed użyciem, należy skompilować program, ale z racji świąt, mam dla Was mały prezent.

Skompilowana wersja 1.0.1 dla Windows

Załóżmy, że nasz plik z muzyką nazywa się music.smm i jest on umieszczony w katalogu /music projektu.

smm-conv music.smm music.asm -reduce:all -reindex:all -MC -MR -Ao:0x7000 -Aa:0

Znaczenie parametrów:

Powyższe dwie opcje redukują rozmiar pliku wynikowego oraz zapotrzebowanie na pamięć w ATARI.

Po więcej szczegółów nt. konwertera odsyłam do pliku README.md programu SMM-CONV.

Uruchomienie powyższej komendy, spowoduje wygenerowanie następujących plików w katalogu /music

+- /music
   | music.asm
   | resource.rc
   } sfx_engine.conf.inc

WAŻNE Należy dodać ścieżkę w wygenerowanym pliku music/resource.rc, gdyż kompilator MAD Pascal odwołuje się względem położenia pliku głównego main.pas, nie zaś położenia pliku zasobu który jest dodany do programu.

SFX_ORG rcasm 'music/music.asm';

W pliku głównym projektu dodać należy jeszcze wczytanie pliku zasobu muzyki.

{$librarypath './sfx_engine/'}
{$librarypath './music/'}

uses SFX_API, atari;

{$r "music/resource.rc"}

UWAGA! W przypadku rozdzielenia danych za pomocą przełącznika -Ad: (w konwerterze smm-conv) należy, wczytanie pliku zasobu {$r "music/resource.rc"} umieścić <u>na samym początku programu</u>, przed wywołaniem innych zasobów.

Begin
	SFX_StartVBL();
	SFX_PlaySong(0);
	repeat until ch<>255; ch:=255;
	SFX_End();
End.

I to tyle - można się cieszyć muzyką z programu SFX Music Maker (aka SFX-Tracker) w swoim projekcie :)

Powyższy przykład w całości znajduje się na GitHubie