Przejdź do treści forum
atari.area
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
RastaConverter 1.0 RC12 Nowa wersja konwertera grafiki dla 8-bitowego Atari z wieloma poprawkami i samodzielnymi pakietami.
NeoST 0.5.2 Poznaj NeoST, wszechstronny emulator Atari ST działający w przeglądarce oraz na systemach desktopowych.
Gearlynx 1.2.23 Nowa wersja emulatora Atari Lynx Gearlynx przynosi wsparcie dla ComLynx i wiele poprawek.
VBXETERM 0.23 Nowa wersja terminala VBXETERM z obsługą VBXE, ATASCII i poprawkami błędów.
Atari System Emulator 1.9 Wydano nową wersję ASE, emulatora Atari ST napisanego w C#, z poprawkami wydajności i błędów.
Opcje wyszukiwania (Strona 40 z 123)
@Yosh: A co myślałbyś o takim fjuczerze?
Z rozmów z Tobą zrozumiałem, że generujesz kod wykonywany przez Atari, który bierze daną z rejestru i zapisuje w pamięci. A gdyby tak na dysku znajdował się gotowy program podzielony na bloki jednostronicowe o początku w obszarze carta $D500. Takie bloki ładowałbyś z dysku, podstawiał jako pamięć w $D500 i wykonywał (przez Atari) tak jak to robisz obecnie (ten kod musiałby oczywiście wiedzieć jak pobrać daną z Twojego sprzętu). Dałoby to użyszkodnikowi możliwość praktycznie bezpośredniego wykonania kodu ładowanego z dysku sektor po sektorze. Owszem - niebezpieczne. Ale wtedy znikają pytania o możliwość odtwarzania dźwięku, multiplikacji sprajtów itd.
Edit: Może te bloki mogłyby być większe, albo wręcz zawijane na stronie $D5 (nie pamiętam jak masz to dokładnie zrealizowane).
Edit 2: Albo może dałoby się zrealizować w jakiś sposób mapowanie gdzie do pamięci mają trafić konkretne bajty z sektora z dysku. Wtedy program generowałbyś sobie tak jak dotąd bazując na takiej mapie. Choć wykonanie kodu bezpośrednio z dysku dałoby znacznie większe możliwości zarówno jeśli chodzi o kompresję danych graficznych (zapis tylko danych które się zmieniły), sprajtów, dźwięku itp.
Rozmawiać na compotach? Profanacja!
Reflektowałbym zatem na 5 szt. Cart i 5 szt. ECI.
@Mq: A czy chciałoby Ci się dorobić jeszcze płytkę dla gniazda ECI?
Jeśli zmieścisz się w 512K można rozważać jeszcze wersję wykorzystującą pamięć VBXE. Choć nie wiem czy istnieją w przyrodzie jednostki mające VBXE a nie mające XRAM.
Jest jeszcze AtariMAX 8Mb (1MB). Obawiam się, że nie ma uniwersalnego schematu bankowania. Zerknij na: https://sourceforge.net/p/atari800/sour ... C/cart.txt
5K postów - Yerzu!
Co to jest za moduł? To jest odpowiednik tego co Pinokio podłącza do Atari żeby grać tego MIDI Sequencera?
To skoro argument leży w [0..95] to da się to jeszcze uprościć:
sta res
asl
adc res
ror
ror
ror
tax
and #%00111111
sta res+1
txa
ror
and #%11100000
sta res
30 cykli.
Bez zbędnych rotacji pamięci:
lsr
ror
sta res+1
ror
tax
and #%11000000
sta res
ror
adc res
sta res
txa
and #%00011111
adc res+1
and #%01111111
sta res+1
36 cykli.
lsr
sta res+1
ror
lsr res+1
ror
tax
and #%11000000
sta res
ror
adc res
sta res
txa
and #%00011111
adc res+1
sta res+1
cykl szybsze - czyli 39 zamiast 40.
mul96 lsr
ror
pha
and #%00111111
sta res+1
pla
ror
pha
and #%11000000
sta res
ror
adc res
sta res
pla
and #%00011111
adc res+1
sta res+1
rts
Edit: pha/pla możesz zastąpić tax/txa co oszczędzi 6 cykli.
seban napisał/a:W momencie gdy nastąpi dowolny odczyt z pod adresów $D500-$D5FF na wyjściu bramki U2C pojawi się zero logiczne, tym samym linia D6 magistrali danych przyjmie stan logiczny zero. W praktyce sprowadzi się to do tego iż odczyt z pod dowolnej komórki z przedziału adresowego $D500-$D5FF da wartość z zawsze wyzerowanym bitem D6. Stan pozostałych bitów D0-D5 oraz D7 będzie nieustalony. Co autor takiego rozwiązania miał na myśli?
Identycznie działał cartiridge do HAMPACK. Programy HAMPACK-a czytają jakiś rejestr $D5xx i jak bit 6 nie odpowiada założonej wartości to idą w maliny.
Ja jestem zinteresowany DOS-ami.
Sikor napisał/a:Hmm, ale to chyba da się szybko poprawić jakimś hex-edytorem dla potomnych? Pytam, bo się nie znam, ale skoro do zmiany jest jedna komórka pamięci?
O ile poprawka w wersji oryginalnej sprowadza się do zmiany jednego bajtu w kodzie, o tyle w różnych krakowanych wersjach nie jest to już takie trywialne bo należałoby dane najpierw rozpakować, zmienić i potem spakować.
Błąd w oryginalnym playerze zrobionym przez Pelca polega na tym, że do resetowania POKEY-a używa rejestru $D21F zamiast $D20F. Stąd kiedy masz Stereo to pierwszy POKEY gra źle bo po komunikacji z magnetofonu/stacji dysków zostają mu stare ustawienia, a resetowany jest drugi POKEY (a muzyka Lasermanii gra tylko na pierwszym POKEY-u).
Nawiasem mówiąc w Lasermanii, Misji, Fredzie, Saperze i Klosie używany jest Avalon Music Composer a nie Chaos music Composer :) Ale błąd w obydwu playerach jest ten sam.
Edit: Problem nie objawia się kiedy ładujesz grę z dowolnego urządzenia które nie korzysta z komunikacji szeregowej (IDE+, SIDE), bo wtedy rejestry POKEY-a nie są przez procedury transmisji dotykane i POKEY jest zresetowany jeszcze przez procedurę RESET.
ad.2.: http://ftp.pigwa.net/stuff/collections/ ... Music/mpt/ i http://mono.atari.pl/mptplay/mptplay.zip
Informacjami o wersji stereo i jej obsłudze też jestem żywotnie zainteresowany.
Edit: Zdarzają się pliki MPF, które są muzyczkami dla MPT ale mają dłuższy song - normalne MPT tego nie weźmie. OIDP była też wersja 0.99 MPT, która ma zupełnie inny format pliku.
Ładne, ładne :) A końcówka...
@xxl: Tak mi się też wydaje.
Ładne logo.
Fox napisał/a:Eee... Co to jest "dekompresja strumieniowa" ?
Niektóre algorytmy zakładają, że to co zostało dotychczas zdekompresowane jest już ciągle dostępne i odwołują się do tych danych np. kopiują fragment w bieżące miejsce. No i to mi nie odpowiada bo wtedy tak czy inaczej musiałbym rozkompresować całość do pamięci, a ja chcę w pamięci mieć tylko fragment pliku - dokładnie to, co w najbliższej przyszłości zostanie zagrane, a co po zagraniu zostanie usunięte. Więc na tym polegała by "dekompresja strumieniowa" że w dowolnej chwili chcę zdekompresować kolejny blok danych bez konieczności trzymania w pamięci tego co zostało zdekompresowane wcześniej. Oczywiście nie jest problemem, że w pamięci musi być jakiś bufor albo słownik z którego dekompresor korzysta.
Fox napisał/a:Podrzuć mailem te źródła i przykładowe pliki, to zerknę, co da się zrobić.
Jeśli masz na myśli LHAsa, to jest tu: https://github.com/fragglet/lhasa
Przykładowe dumpy:
- .ym: archiwum https://pacidemo.planet-d.net/html.html lub ftp://ftp.modland.com/pub/modules/YM/ (opis formatu: http://leonard.oxg.free.fr/ymformat.html - .ym można łatwo zdekompresować za pomocą "lha x modul.ym" i dostajesz wtedy docelowy plik z nagłowkiem "YMx!" itd.),
- .vtx: archiwum https://bulba.untergrund.net/music_e.htm (opis formatu: https://documentation.help/AY-3-8910.12 ... _e0irc.htm tu dane do dekompresji są już zaszyte w środku)
W załączniku przykłady.
Ja może uściślę. Chcę dorobić do PSGPLAY możliwość odtwarzania skompresowanych dumpów. W dostępnych formatach używana jest kompresja LZH. No i algorytmu do takiej dekompresji właśnie potrzebuję. I najlepiej gdyby to był algorytm strumieniowy (o ile się da).
@tebe: Chętnie zerknę. Obecnie mam źródła do LHAsa w C.
Czy ktoś zna jakąś implementację dekompresora LZH na Atari XL/XE? Są jakieś źródła? Ten algorytm da się wykorzystać do strumieniowej dekompresji?
Znalezione posty [ 976 do 1,000 z 3,054 ]
Forum oparte o: PunBB
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.
Wygenerowano w 0.089 sekund, wykonano 16 zapytań