1 Ostatnio edytowany przez Pecus (Dzisiaj 16:30:13)

Panowie!

Robiąc kiedyś Scorcha, który na A5200 działać musiał z carta, napotkaliśmy z Pirxem problem playera RMT.
Oryginalnie player ten używa samomodyfikacji kodu do... no właśnie nie bardzo wiadomo. Jest dzięki temu kilka komórek na stronie zerowej zajętych mniej i dość fikuśna procka uruchamiająca wybrany efekt za pomocą skoku względnego (podmieniany jest bajt offsetu tego skoku).
Pirx wtedy pozmieniał tę procedurę tak, by tego wszystkiego nie robiła i działała z ROM.

Teraz robiąc inny program, chciałem użyć tamtej procedury, ale niestety, Pirx przyciął ją wtedy do potrzeb konkretnej muzyki i wyciął obsługę pewnych efektów(a chyba nawet wszystkich, bo nie znalazłem tam tego fikuśnego skoku :) ), które teraz były potrzebne.

Wziąłem więc ostatnią znaną mi procedurę playera RMT i jeszcze raz to zrobiłem - tym razem inaczej, bo trzeba było zachować wszystkie efekty.

No i daję ją Wam teraz.

Jest - tak jak oryginał - kompilowana warunkowo, więc w zależności od użytych w muzyce efektów zajmuje mniej lub więcej miejsca.
Użyłem dyrektywy MADS ".zpvar" dla wszystkich zmiennych na stronie zerowej, więc w swoim programie wystarczy zadeklarować początek tego obszaru (a najlepiej używać jej dla wszystkich swoich zmiennych na ZP :) ).
Jedyne co, trzeba zrobić, by działała z ROM, to przenieść gdzieś blok pozostałych zmiennych - oznaczony w kodzie.

Dodatkowo dodałem funkcję PSEUDOSTEREO.
Wystarczy dodać w pliku feat.txt (lub gdziekolwiek w kodzie) linijkę:
PSEUDOSTEREO equ 1
i jeśli gramy muzykę monofoniczną na jednym POKEYu (parametr STEROMODE = 0) to będzie grana na dwóch z przesunięciem o ramkę. Daje to efekt lekkiego pogłosu pomiędzy kanałami stereo - sprawdźcie w Scorchu :)

W stosunku do oryginału objętość kodu będzie nawet mniejsza (jeśli używamy wielu efektów) lub o kilka bajtów większa (jeśli efektów nie używamy). Różnice minimalne.
Na stronie zerowej rezerwuje o 3 (jeśli nie ma efektów i stereo) do 8 (jeśli użyte są wszystkie efekty i stereo) bajtów więcej niż oryginał.
Pseudo stereo wydłuża kod (w stosunku do standardowego mono) o 4 bajty.

Post's attachments

rmtplayr.asm 25.25 kb, liczba pobrań: 1 (od 2025-07-22) 

Tylko zalogowani mogą pobierać załączniki.
Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.