|
1 | | -# |
| 1 | +# Jak skorzystać z SFX-Engine w MAD Pascalu |
2 | 2 |
|
3 | | -- Katalog `sfx_engine` należy skopiować do katalogu swojego projektu, gdzie trzymasz biblioteki. |
4 | | -- plik konfiguracyny `sfx_engine.conf.inc` należy przenieść do katalogu, gdzie mieści się główny program. |
5 | | -- przykładowa struktura katalogu projektu, wyglądać tak: |
| 3 | +* Wejdź na stronę repozytorium [SFX-Engine](https://github.com/GSoftwareDevelopment/SFX-Engine) i ściągnik plik ZIP, klikając w przycisk **CODE** (jak na poniższym obrazku) |
| 4 | + |
| 5 | +  |
| 6 | + |
| 7 | +- Paczkę rozpakuj gdzieś na swoim dysku |
| 8 | + |
| 9 | +- Katalog `sfx_engine` należy skopiować do katalogu swojego projektu. |
| 10 | + |
| 11 | + Przykładowa struktura katalogu projektu, może wyglądać tak: |
6 | 12 |
|
7 | 13 | ~~~txt |
8 | | -+ Projekt |
9 | | -| | /sfx_engine |
10 | | -| | /data |
11 | | -| | start.pas |
12 | | -| | sfx_engine.conf.inc |
| 14 | ++ /Projekt |
| 15 | +| |
| 16 | ++- /sfx_engine |
| 17 | +| | sfx_engine.conf.inc |
| 18 | +| |
| 19 | ++- /music |
| 20 | +| | {pliki wygenerowane przez smm-conv} |
| 21 | +| |
| 22 | ++-- main.pas |
| 23 | +| |
| 24 | +~~~ |
| 25 | + |
| 26 | +- w głównym pliku swojego programu `main.pas` zadeklaruj ścieżkę dostępu do biblioteki `sfx_engine` i `music` oraz utwórz deklarację biblioteki w sekcji `uses`, np. |
| 27 | + |
| 28 | +~~~pascal |
| 29 | +{$librarypath './sfx_engine/'} |
| 30 | +{$librarypath './music/'} |
| 31 | +
|
| 32 | +uses SFX_API, atari; |
13 | 33 | ~~~ |
14 | 34 |
|
15 | | -- w głównym pliku swojego programu zadeklaruj ścieżkę dostępu do biblioteki `sfx_engine` oraz utwórz deklarację biblioteki w sekcji `uses`, np. |
| 35 | +- plik `sfx_engine.conf.inc` należy dostosować do własnych potrzeb lub skasować :smile: |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | +## Wykorzystanie programu `smm-conv` |
| 40 | + |
| 41 | +Przed użyciem, należy skompilować program, ale z racji świąt, mam dla Was mały prezent. |
| 42 | + |
| 43 | +[Skompilowana wersja 1.0.1 programu] |
| 44 | + |
| 45 | +* Skopiuj ściągnięty plik do katalogu `/music` . (Linuxiaże) nadaj mu prawa do uruchomienia. |
| 46 | + |
| 47 | +Załóżmy, że nasz plik z muzyką nazywa się `music.smm` i jest on umieszczony w katalogu `/music` projektu. |
| 48 | + |
| 49 | +W linii komend wpisz: |
| 50 | + |
| 51 | +~~~bash |
| 52 | +./smm-conv music.smm music.asm -reduce:all -reindex:all -MC -MR -Ao:0x7000 -Aa:0 |
| 53 | +~~~ |
16 | 54 |
|
17 | | -start.pas |
| 55 | +Znaczenie parametrów: |
| 56 | + |
| 57 | +- `music.smm` - nazwa pliku źródłowego (nasza muzyczka) |
| 58 | +- `music.asm` - nazwa pliku wyjściowego - dane w assemblerze |
| 59 | +- `-reduce:all` - wyłącza z pliku wyjściowego nieużywane definicje SFXów oraz TABów (opcja `all`) |
| 60 | +- `-reindex:all` - układa kolejno indeksy definicji SFXów oraz TABów |
| 61 | + |
| 62 | +Powyższe dwie opcje redukują rozmiar pliku wynikowego oraz zapotrzebowanie na pamięć w **ATARI**. |
| 63 | + |
| 64 | +- `-MC` - generuje plik konfiguracyjny dla **SFX_API** `sfx_engine.conf.inc` |
| 65 | +- `-MR` - generuje plik z definicją zasobów dla **MAD Pascala** `resource.rc` |
| 66 | +- `-Ao:0x7000` - określa adres (tzw. globalny) dla generowanyh danych w assemblerze |
| 67 | +- `-Aa:0` - powoduje wyłączenie buforowania audio (rejestrów **POKEY**) w pliku konfiguracyjnym `sfx_engine.conf.inc` |
| 68 | + |
| 69 | +Po więcej szczegółów nt. konwertera odsyłam do pliku README.md w programie **SMM-CONV**. |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | +Uruchomienie powyższej komendy, spowoduje wygenerowanie następujących plików w katalogu `/music` |
| 74 | + |
| 75 | +~~~ascii |
| 76 | ++- /music |
| 77 | + | music.asm |
| 78 | + | resource.rc |
| 79 | + } sfx_engine.conf.inc |
| 80 | +~~~ |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | +Ważną rzeczą, jaką należy dokonać to ustawienie ścieżki w wygenerowanym pliku `music/resource.rc`, gdyż **kompilator MAD Pascal odwołuje się względem kompilowanego pliku głównego**, nie zaś pliku zasobu który jest dodany do programu. |
| 85 | + |
| 86 | +~~~pascal |
| 87 | +SFX_ORG rcasm 'music/music.asm'; |
| 88 | +~~~ |
| 89 | + |
| 90 | +W pliku głównym projektu dodać należy jeszcze wczytanie pliku zasobu muzyki. |
18 | 91 |
|
19 | 92 | ~~~pascal |
20 | 93 | {$librarypath './sfx_engine/'} |
| 94 | +{$librarypath './music/'} |
21 | 95 |
|
22 | 96 | uses SFX_API, atari; |
| 97 | +
|
| 98 | +{$r "music/resource.rc"} |
23 | 99 | ~~~ |
24 | 100 |
|
25 | | -- plik `sfx_engine.conf.inc` należy dostosować do własnych potrzeb lub, korzystając z dołączonego programu użytkowego `smm-conv`, utworzyć i zastąpić. |
26 | | -- dane stworzone programem `smm-conv` należy umieścić w przykładowym katalogu `/data` |
| 101 | +**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. |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | +I to tyle - można się cieszyć muzyką z programu **SFX Music Maker** (aka **SFX-Tracker**) w swoim projekcie :) |
0 commit comments