Przejdź do treści forum
atari.area forum
Twoje polskie źródło informacji o Atari
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Aktywne tematy Tematy bez odpowiedzi
Aktualności ze świata Atari
Nowy firmware 1.5 dla SDrive-MAX Ulepszony tryb szybki i poprawki kaset w nowej wersji firmware
Ice-T 2.8.2 Nowa wersja Ice-T dla 8-bitowego Atari już dostępna - poprawki i nowe funkcje
Galactic Panic - nowa przygodówka na ST Darmowa gra point and click na Atari ST - ponad 100 ekranów przygody.
Nowa wersja ARIFE Tool od PVBest73 Uaktualniono uniwersalne narzędzie do analizy obrazów ROM i dysków Atari
Echa Sommarhack 2025 Podczas szwedzkiego party Sommarhack zaprezentowano kilkadziesiąt produkcji,
Opcje wyszukiwania (Strona 95 z 121)
Tam mają być 4 zera. Kanał 1 i 2 jest w zybexie łączony więc warto by go ustawić po jednej stronie :)
Np.
[s]MUZ=A:>BIN>STPLAY.COM,% -1,-1,0,1 /X[/s]
Edit: Nie mogę sprawdzić na Atari bo zwaliło mi się SIO... hehe. Biednemu to wiatr w oczy itd.
Edit 2: No tak - późno już. Myślałem, że piszesz o STplay. Sprawdzę to zaraz.
Edit 3: Na emulu gra na obydwu kanałach równo. Ja żywym Atari nie mam chwilowo stereo jak wiesz...:/
Kolejny player - tym razem do formatu MUZ/ST7 Sound Trackera Henryka Cygerta (byłoby wcześniej, ale 2 dni walczyłem z głupim bugiem :/).
Player ma te same rzeczy co poprzednie :) Łącznie z odgrywaniem n razy na ramkę (w zasadzie to nie wiem po co).
Nie ma na razie modyfikacji zrobionych przez Stanisława Skwiota.
Nie wyświetla też tempa, bo akurat w tym formacie ta informacja nie jest globalna, ale ustawiana w każdym patternie osobno!
I panorama jest dla 4 kanałów, a nie dla 3 jak w CMC.
Można ściągnąć też stąd.
RUNEXTa ustawiamy:
ST7,A:>BIN>STPLAY.COM,% /X
MUZ,A:>BIN>STPLAY.COM,% /X
A i dzięki wielkie dla Epiego za player oczywiście w wersji źródłowej (jak widać jak ktoś jest utalentowany, to nawet mając źródła narobi głupich bamboli).
Edit: I jak zwykle bugs & requests please!
E tam. Napisałbyś Mikey jakiś fajny programik.
Edit: Na ATARI!
Jeśli w ciągu głównym liczysz współrzędne punktów, a za pomocą cli, sei pozwalasz na wykonanie procedury IRQ, która w międzyczasie nadeszła, to może prościej (i szybciej) byłoby wywołać zwykły jsr bez uruchamienia przerwań. Przyjęcie procedury przerwania wymaga:
- zakończenia bieżącego cyklu rozkazowego (czyli cli) - rozkaz sei pobrany prefetchem podczas wykonania cli zostaje zignorowany,
- przyjęcia przerwania przez cpu - 7 cykli (odłożenie powrotu i rejestru znaczników cpu na stos, wstawienie adresu procedury obsługi przerwania z $fffe do pc),
- przy powrocie z przerwania rti wykona się drugie 7 cykli.
A jsr zajmie 6 cykli + 6 cykli rts, nie komplikuje algorytmu, jest przejrzystsze.
Edit: A jeśli już koniecznie chcesz użyć przerwań, to zrób zamiast cli, sei po prostu brk!
Nie ma przerwań IRQ, które są chwilowo wysyłane. Żądanie IRQ utrzymuje się do chwili, aż je zgasisz. Przez potwierdzenie odebrania przerwania.
Procesor zajmuje się wykonywaniem Twojego programu. W momencie kiedy pojawi się sygnał przerwania ustawiana jest odpowiednia flaga żądania obsługi w IRQST. Jeśli znacznik I procesora jest zgaszony (a gasi go rozkaz CLI), wtedy wykonywanie programu jest zawieszane, a CPU zajmuje się wykonaniem procedury obsługi przerwania. Po wykonaniu obsługi wraca z powrotem do wykonywania programu od miejsca w którym mu przerwano.
Jeśli znacznik I jest ustawiony, to CPU nie wykonuje przerwania. Do chwili kiedy nie skasujesz flagi I po prostu przerwania nie będą obsługiwane, ale odpowiednie znaczniki ciągle będą się palić w IRQST. Jak odblokujesz przerwania (CLI), wtedy procesor będzie ciągle przerywał Twój program i będzie obsługiwał przerwania do chwili kiedy w IRQST nie zniknie ostatnie żądanie. Żądanie obsługi przerwania znika kiedy następuje potwierdzenie jego obsługi - odbywa się to przez Twoją procedurę obsługi przerwania w sposób, jaki opisano wyżej - przez zablokowanie danego przerwania w IRQEN i ponowne jego włączenie w tym samym rejestrze.
Edit: Jeśli źródło przerwań zgłasza je często (TIMER1 może to robić BARDZO często - szczególnie z ustawionym zegarem 1.77MHz), może się zdarzyć, że podczas obsługi przerwania nadejdzie nowe żądanie. Wtedy po zakończeniu obsługi bieżącego przerwania CPU od razu wejdzie z powrotem do procedury obsługi przerwania.
Ale rozkazy SEI i CLI, ani żadna ich kombinacja nie powodują wygenerowania przerwania, a jedynie ustawienie CPU w stan kiedy może już przyjmować zgłoszenia przerwań i je obsługiwać (CLI) lub kiedy ich nie będzie obsługiwać (SEI). Dlatego te przerwania nazywają się maskowalne.
Edit: Wygenerowanie przerwania odbywa się po odliczeniu licznika AUDF1 ($D200) od ustawionej wartości do zera. Rozpoczęcie odliczania następuje po wpisaniu dowolnej wartości do STIMER ($D209).
Z tego co piszesz nie ustawiasz rejestru zezwolenia na przerwanie IRQEN ($D20E) wartością zezwalającą na przerwanie TIMER1 (#1).
SEI powoduje zablokowanie obsługi przerwań przez CPU, a CLI odblokowanie obsługi ale tylko tych, które są dozwolone w IRQEN. W żadnym wypadku NIE WYGENERUJE żadnego przerwania.
IRQST ($D20E) zawiera flagi informujące, że dane źródło przerwania IRQ jest aktywne. Poprawna obsługa przerwania polega na zablokowaniu i ponownym odblokowaniu przerwania w IRQEN dzięki czemu zniknie flaga zgłoszenia w IRQST.
Żeby ładnie wyglądało w menu :D
Edit: A naprawdę to chciałem grać na 3 kanałach (a nie na 2), ale nie zdążyłem tego zrobić.
Metoda jest tutaj.
Moja jest tylko minimalnie zmodyfikowana - wygląda tak:
sei
ldx #0 ;reset pokey1
stx audctl
ldy #%11
sty skctl
lda irqens ;blokada przerwania licznika 1 pokey1
and #%11111110
sta irqen
stx audf1 ;wyciszenie kanalu 1 pokey1
stx audc1
lda #%1 ;pokey2: baseclk=15khz
sta audctl2
sty skctl2 ;reset pokeya2
sty audf12 ;po 3 liniach skaningowych powinno zlapac przerwanie jesli mono
stx audc12 ;cisza
sta irqen2 ;irq licznika 1 pokeya2
sta stimer2 ;uruchomienie licznikow (niekoniecznie potrzebne)
bit irqst
ldx #8
?stsyncloop:
stx wsync
dex
bne ?stsyncloop
and irqst ;czy wystapilo przerwanie licznika 1 w pokey1
lsr @
stx audctl2
sty skctl2
lda irqens
sta irqen
txa
rol @ ;A=0 mono; A=1 stereo
cli
Była wykorzystana w msx collection XL Digital i w playerze NEO do utworów konkursowych Yerzmyeya i Pinokia w Głuchołazach 2010.
A nie działa?
...karabinem maszynowym. Czyli jednak roboty wykończeniowe.
Zmodyfikowałem procedurę odgrywającą sample w taki sposób, że nie pozwalam na przejęcie kontroli, ale sam wywołuję odegranie 2 próbek. Zdaję sobie sprawę z tego, że to, co robię na zewnątrz aż do ponownego wywołania procedury może spowodować niestrojenie (właśnie z powodów o których napisałeś - dzięki), ale właściwie to nie ma tam tego wiele - właśnie chodzi mi o potwierdzenie zjawiska.
Procedury testuję sobie na 80 kolumnowym S2: od VBXE a tam ANTIC jest wyłączony, więc efekt powinien być chyba identyczny.
Edit: A nie 24 z 311.5 okresów (dla PAL oczywiście) :D?
Wersja 0.3 do pobrania (stąd też).
- Zmieniłem player na Jaskrowy. Nie powinno się już tak spektakularnie krzaczyć, jak poprzedni.
- Poprawiłem też synchronizację procedur odgrywających syntetyki i sample dzięki czemu muzyka nie powinna spowalniać.
- Można też zrobić pauzę (poprzednio zaczynało grać od nowa).
Co mi się zdaje, to że sample nie stroją z instrumentami syntetycznymi podczas grania .MD2. Z .MD1 powinno być ok, bo to procedura, która była poprzednio używana. Fajnie gdyby się ktoś kompetentny wypowiedział.
Zapraszam do testowania i zgłaszania uwag oraz błędów.
Spróbuj tego - powinno działać.
Oczywiście. Zaraz dorobię.
Źródło to jeszcze pół biedy. Najczęściej jednak dysponuje się kodem maszynowym hehe.
Z moich ostatnich działań nad playerami źródła miałem tylko do RMT i TMC. Do MPT był co prawda opis, jak wykorzystać ale widać gołym okiem, że nie działa to jak należy :/.
Edit: Doszły jeszcze Jaskrowe źródełka do MPT (już włączone) i CMC (nie zostały wykorzystane) i od Epiego do ST (na razie jeszcze niewykorzystane).
No i jest.
Powinien poprawnie odtwarzać RMT 4 i 8 kanałowe. Wykorzystałem procedurę Rastra i przerobiłem ją tak, żeby była w pełni relokowalna. Wymagała też uniezależnienia liczby kanałów w module od tego czy użytkownik deklaruje posiadanie stereo czy nie.
Co to robi:
- detekcja 2 pokeya,
- oblicza ilość songów, patternów, instrumentów,
- pokazuje ilość kanałów.
Jeśli moduł nie był "oczyszczony" (strip), to doczytuje nazwę songu i instrumentów i pokazuje je jeśli było /X.
Zapraszam do gry (można też ściągać stąd).
RUNEXT.CFG można ustawić tak:
tym razem bez szczegółów, bo nazwy 64 instrumentów potrafią skutecznie wszystko zaciemnić.
Edit: Bambol w urlu.
Zdekompilowałem i poprawiłem tak, żeby grał nie upakowaną muzykę, ale plik źródłowy. Bardzo prosty.
Gdyby ktoś miał problemy z pobraniem muzyki w formacie Future Composera, to można to zrobić stąd (ten zawiera oryginalny zestaw plików .FC) i stąd.
Ponieważ w drugim ATRze niektóre utwory są uszkodzone proponuję najpierw wyjąć pliki z drugiego, po czym nadpisać je tymi z pierwszego. Z poziomu linuxa można to zrobić np. za pomocą franny:
$ F=$(franny -L plik.atr|grep "\\.FC"|cut -c 5-12); for f in $F; do franny -S -i $f.FC -o $f.FC plik.atr; done
gdzie plik.atr to odpowiednio "Future Composer.atr" i "FUTURCOM.ATR".
Player kawałków z Future Composera. Features są bazowane na CMC Playerze:
- panorama,
- granie n razy na ramkę (domyślnie 1),
- liczy ilość songów, patternów, instrumentów,
- gra w stereo jak jest,
- powinien kończyć działanie po zakończeniu utworu.
Można go ściągnąć stąd lub stąd.
Zapraszam do gry i proszę o bugs & requests.
Edit: RUNEXTa należy wyedytować podając 3-ZNAKOWE rozszerzenie !!!uzupełniając je spacjami z prawej strony!!!, czyli:
FC ,A:>BIN>FCPLAY.COM,% /X
Żeby odsłuchać drugi kawałek z Lasermanii wystarczy:
mając skonfigurowanego RUNEXTa.
A tam. Procedury odgrywające prawie do wszystkiego są, więc ja to tylko robię tu murzyńską robotę.
Znalezione posty [ 2,351 do 2,375 z 3,002 ]
Forum oparte o: PunBB
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.
Wygenerowano w 0.198 sekund, wykonano 58 zapytań