[Atari] AtariOnLine: SFX-Engine w MAD Pascalu

[1] # AtariOnLine | Piątek, 24 Grudnia 2021 11:20CET

[Atari] AtariOnLine: SFX-Engine w MAD Pascalu
Chciałem się z Wami podzielić krótkim samouczkiem nt. Jak skorzystać z SFX-Engine w MAD Pascalu.
Mam nadzieję, że okaże się pomocny w początkach z tym silnikiem.

Zacznijmy więc



  • Wejdź na stronę repozytorium SFX-Engine i ściągnij plik ZIP, klikając w przycisk CODE a później Download ZIP (jak na poniższym obrazku)


  • Paczkę rozpakuj, gdzieś na swoim dysku.

  • Katalog `sfx_engine` należy skopiować do katalogu swojego projektu.

    Przykładowa struktura katalogu projektu, może wyglądać tak:
    + /Projekt
    |
    +- /sfx_engine
    | | sfx_engine.conf.inc
    |
    +- /music
    | | {pliki wygenerowane przez smm-conv}
    |
    +-- main.pas


  • W głównym pliku programu `main.pas` zadeklaruj ścieżkę dostępu do biblioteki `sfx_engine` i `music` oraz utwórz deklarację biblioteki w sekcji `uses`, np.

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

    uses SFX_API, atari;

  • Plik `sfx_engine.conf.inc` należy skasować smile, gdyż będzie wykorzystany plik, wygenerowany przez program `smm-conv`


Wykorzystanie programu `smm-conv`


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

  • Skopiuj ściągnięty plik do katalogu `/music`

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

  • Uruchom `cmd.exe` i przejdź do katalogu `/music` projektu

  • W linii komend wpisz:
    smm-conv music.smm music.asm -reduce:all -reindex:all
    -MC -MR -Ao:0x7000 -Aa:0

    Znaczenie parametrów:
    • `music.smm` - nazwa pliku źródłowego (nasza muzyczka)
    • `music.asm` - nazwa pliku wyjściowego - dane w assemblerze
    • '-reduce:all` - wyłącza z pliku wyjściowego nieużywane definicje SFXów oraz TABów (opcja `all`)
    • `-reindex:all` - układa kolejno indeksy definicji SFXów oraz TABów
    • `-MC` - generuje plik konfiguracyjny dla SFX_API `sfx_engine.conf.inc`
    • `-MR` - generuje plik z definicją zasobów dla MAD Pascala `resource.rc`
    • `-Ao:0x7000` - określa adres dla generowanych danych w assemblerze
    • `-Aa:0` - powoduje wyłączenie buforowania audio (rejestrów **POKEY**) w pliku konfiguracyjnym `sfx_engine.conf.inc`

    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ć na samym początku programu, przed wywołaniem innych zasobów.

  • W programie głównym `main.pas` dodaj jeszcze następujące linie:

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

    • `SFX_StartVBL` inicjuje silnik SFX, podpinając go pod przerwanie VBLANK
    • `SFX_PlaySong(0)` uruchamia odtwarzanie muzyczki od wiersza 0
    • `SFX_End()` kończy działanie silnika SFX

  • Skompiluj plik `main.pas` - jak to zrobić najwygodniej? Odsyłam do dokumentu Bocianu MAD Pascal i Geany

  • Uruchom XEXa w swoim ulubionym emulatorze lub na prawdziwym komputerze




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

2021-12-24 11:20 by PeBe
komentarzy: 1
→ NOWSZY [Atari] AtariOnLine: Zapowiedź KWAS #26 w Tarnowie
→ NOWSZY [Atari] AtariOnLine: Streaming z KWAS #25
→ NOWSZY [Atari] AtariOnLine: Wywiad z Pazurem
→ NOWSZY [Atari] AtariOnLine: KWAS #25 w Warszawie
→ NOWSZY [Atari] AtariOnLine: Spotkanie z człowiekiem z L.K. Avalon
→ NOWSZY [Atari] AtariOnLine: (Prawie) wszystko o Uni-Joy
→ NOWSZY [Atari] AtariOnLine: Światowa premera gry "Zgred"
→ NOWSZY [Atari] AtariOnLine: Kuba przegląda dyskietki #2
→ NOWSZY [Atari] AtariOnLine: Światowa premiera gry "Smok"
→ NOWSZY [Atari] AtariOnLine: Koncert Husaka na przełom 2021/22
wstecz24/12/2021 11:20
Inne treści związane z tematem
[multi] BizHawk x64 2.8 RC1 27/01/2022 [multi] BizHawk x64 2.8 RC1 27/01/2022
Wersja testowa multiemulatora BizHawk, specjalnie dla osób chcących sprawdzić i wspomóc projekt. Ten napisany w C# multiemulator pozwala udawać  konsole: Nintendo Entertainment System / Famicom / Famicom Disk System (NES/FDS), Super Nintendo (SNES), Nintendo 64, Gameboy, Gameboy Color, Super Gameboy, Sega Master System, SG-1000, Game Gear, Sega Genesis / Sega-CD, Sega ...
[PSX2] Dev PCSX2 SVNv1.7.2277 2022-01-25 21:34:35 [PSX2] Dev PCSX2 SVNv1.7.2277 2022-01-25 21:34:35
Bocianu opracował nowy edytor, który służy do szybkiego tworzenia sprajtów (grafiki P/M) dla ośmiobitowych Atari. Program pracuje w nowoczesnych przeglądarkach WWW, przez co nie jest wymagana instalacja czegokolwiek. Najważniejsze możliwości: edycja i animowanie trójkolorowych sprajtów (nałożonych) maksymalna wysokość sprajta: 128 pikseli maksymalna ilość klatek animacji: ...
[Atari.Area] Atari800MacX 6.0.1 [Atari.Area] Atari800MacX 6.0.1
Użytkownicy maszyn z MacOS X, a w szczególności posiadacze najnowszych modeli z procesorem M1, z pewnością będą zadowoleni, ponieważ od wersji 6.0 ich maszyny mogą się cieszyć wsparciem dla nowych układów od Apple. Zmiany i poprawki: Added support for ARM based M1 Macs. Update libSDL to version 2.0.14. Removed 2k limit on the number of characters that can be pasted into the ...
[Atari.Area] LiteDOS-SE Build 2022 January 26 [Atari.Area] LiteDOS-SE Build 2022 January 26
Ukazała się kolejna kompilacja minimalistycznego w rozmiarze DOS dla ośmiobitowych komputerów Atari. W poprawkowej wersji zauważymy: Fixed some 400/800 bugs and non Atari-OS Archiwum dystrybucyjne zawiera również kompleksową instrukcję użytkowania wraz z informacjami technicznymi. Pobieramy ze strony projektu.
[Atari.Area] 4th Annual Atari Homebrew Awards [Atari.Area] 4th Annual Atari Homebrew Awards
Jak co roku, przez ZeroPage Homebrew, AtariAge, Mark/Space | Argon, Atari Gamer oraz The Atari 2600 Homebrew Companion, organizowany jest konkurs na najlepszą pracę dla komputerów i konsol Atari w kilkunastu kategoriach. Rozpoczęło się właśnie głosowanie, w którym można wziąć udział będąc zarejestrowanym na forum AtariAge. W gronie nominowanych znalazły się również m.in. ...
Komentarze
Ostatnio dodane pliki

T-shirt "The Sacred Armour of Antiriad ZX Spectrum Element"

Retro T-Shirt The Sacred Armour of Antiriad ZX Spectrum Element - męski podkoszulek
Newsy Linkownia Emulatory na PC Wideoteka Screenshoty Bajtek Reduks Ready.Run

© Try2emu 1999 - 2022 | Krzysztof 'Faust' Karkosza Google+Kontakt