Fajnie. Czy SLIGHT moze udostepnic schemat SLIGHT SID ?

Chciałem to zrobić, jak wszytsko dogram na 100%. W chwili obecnej nie mam zbyt dużo wolnego czasu... przez co zaraz zginę śmiercią tragiczną posterzelony z jakiejś dubeltuwy przez STRYKER'a ;) Bo on już się strasznie niecierpliwi ;)

Mam jeszcze jeden problem do rozwiązania, jest jedna sytuacja w której zapis do SID'a mi się "wali". Chodzi o moment gdy ATARI zapisze mi tuż przed opadającym zboczem zegera 1MHz. Wtedy wartość która powinna być wpisana do SID'a idzie sobie w kosmos :( czego efetem jest najczęściej słyszalne "pyknięcie". Nie miałem zbyt wiele czasu na poprawki. Nie chciałbym udostępniać schematu bubla... bo inaczej tego nazwać nie mogę. Najgorsze jest to że zrobiłem sobie do tego płytki. Bo myślałem iż efekt pyknięcia jest spowodowany przekłamaniami na magistrali danych. Winą wtedy obarczyłem niechlujnie zmontowany prototyp na płytce uniwersalnej (długie przewody od magistali, itp.)

Także jak tylko zrobię poprawki i wykonam nowe PCB i sprawdzę że wszystko działa na 100% to bez problemu to udostępniam.

pozdrawiam
Seban/SLIGHT

zalozylem ze sluchaczowi nie bedzie przeszkadzal dzwiek SID'a obnizony o pol tonu :).

A jednak :) to słychać :)

A tak btw, zawsze się zastanawiałem jak to jest w ATARI ST, tam procek ma 8MHz, a AY jest taktowany chyba 2MHz, jak wyglądają zapisy do układu AY z punktu widzenia procesora ;) Przecież moge zrobić parę zapisów do jego rejestrów i on nawet ich nie zobaczy ;) Czy może procek jest wstrzymywany na czas zapisu do AY???


czyli taki jednobajtowy FIFO :)

Dokładnie tak, tyle że jeszcze trzeba zapanować na ChipSelectem ;) i odpowiedniej chwili go wygnerować dla SID'a. A ponieważ nie wolno dopuścić wieloktornego zapisu tej samej wartości do SID'a... i już mówię dlaczego, np. wpis do danego rejestru startuje gen. obwiedni, a ponowny wpis powoduje jego restart. W momencie dwukrotnego zapisu tej samej wartości may kiszkę. Prote playery działają jednak te bardziej zakręcone już się syfią :(

pozdrawiam
Seban/SLIGHT

a czy nie by mozna sida taktowac 1/2 czestotliwosci procka?

Tu nie do konca o to chodzi. Oczywiscie to wydaje sie najbajdziej rozsadnym rozwiazaniem, ale jest tu pewnien szczegół ;) Przy taktowaniu SID'a inna czestotliwoscia zmienia sie rowniez czestotliwosc jego generatorów. Wszystkie SID'y dostepne w sieci nalezalo by przerobic poprwiajac tablice czestotliwosci w playerach lub dodac 12-bitowe tablice konwersji czestotliwosci :) Ale nie o to nam przecież chodzi ;)

Pierwsza wersja slight-sida którą miałem podpiętą do ATARI była własnie tak zrealizowana. Ale przerabianie tysięcy gotowych SID'ow byłoby bezsensowne.

Wiec sprawę trzeba zrobić tak aby SID był taktowany swoją częstotliwością 1MHz aby zachować tą samą czestotliwość pracy SID'a. Niestety magistrala SID'a również wtedy pracuje na częstotliwości 1MHz i zapisy przez ATARI dokonywane z czestotliwością 1.773447 będą zupełnie nie trafione :)

Można zrealizowac to na dwa sposoby.

#1) łatwiejszy w realizacji ale trudniejszy dla wykonania przez normalnych użytkowników/pasjonatów ATARI. Mówię o wykorzystaniu jakiegoś mikrokontrolera z jednej strony podpiętego pod szynę ATARI, natomiast z drugiej strony będzie miał podpiętego SID'a. Całość będzie taktowana np. wielokrotnością 1MHz. SID będzie pracował sobie np. 1MHz, a mikrokontroler np. 10MHz. Będzie przechwytywał zapisy z ATARI, buforował chwile ;) a potem zapisywał do SID'a. Można wykorztać funkcję  PSP z MCU Microchip, nadaje się idealnie do tego. (zresztą tak jak zaproponował Electron). Do zaimplementowania w parę dni.

#2) sposób trudniejszy w realizacji projektowej, ale łatwiejszy do zmontowania dla szarego użytkownika. Nie wykorzystujemy żadnej logiki programowalnej (CPLD, procków, itd.). Opieramy się tylko na standardownych ukłdach (TTL, CMOS). I własnie tak jest zrealizowany SLIGHT SID. Bazuje on na tym iż ATARI i tak nie zapisze częściej niż dwa razy w ciągu 1MHz ;) Mam dwa 1 bajtowe zatrzaski. jeden buforuje adres, drugi dane z szyny atari. W momencie gdy przychodzi opadająca zbocze 1MHz zegara taktującego SID'a owe dane zostają do niego wpisane.

pozdrawiam
Seban/SLIGHT

2,904

(20 odpowiedzi, napisanych Software, Gry - 8bit)

Cześć!

To zupełnie nie związane z tematem ale Wy jako specjaliści od MAC65 może mi odpowiecie na moje zakręcone pytanie :) Kiedyś sam używałem MAC65 i uważałem że inne narzędzia się do niczego nie nadają... i do tego miałem manie zapisywanie wszystkiego dziesiętnie :) ale pewnego dnia przyszedł SoTe i mnie spacyfikował, od tego czasu stałem się niewolnikem QA :) i musiałem uznać wyższość systemu hexadecymalnego nad dziesiętnym ;)

Ale wracając do tematu... z tego co pamiętam plik .OBJ wygenerowany przez MAC65, miał bardzo smieszne nagłowki, cały plik był podzielony na jakieś śmieszne bloki po $fa bajtów chyba, czyli np. jak kod znajdował się w obszaże $8000-$9000, wyglądało to chyba tak:

$ff,$ff
$00,$80,$f9,$80, <dane>
$fb,$80,$ff,$80, <dane>
$00,$81,$fa,$81, <dane>
<itd.>

mogłem coś pokręcić ale chyba jakoś tak to wyglądało (może inne były długości). Zawsze się zastanawiałem po jaką cholerę MAC65 taki motyw robi ;) Doszło nawet do tego że napisał kiedyś program linkujący położone obok siebie bloki w pliku w jeden większy ;)

Może Wy właśnie (Pecuś lub Pirx) wiecie dlaczego MAC65 właśnie coś takiego robił? Wiem że to głupie, ale pytam po prostu z czystej ciekawości. Kiedyś sobie to tłumaczyłem tym iż MAC65 ma po prostu bufor 256 bajtów, i w takich kawałkach własnie zapisuje dane.  Ale czy jest to prawidłowa odpowiedź... nie wiem ;)

A jeszcze jedno słowo apropos FAT'u... kiedyś była taka ksiązka "DOS 5.0 od środka, z tego co pamiętam, tam dość dokładnie była opisana struktura FAT12 i FAT16. Może ją gdzieś jeszcze mam. Jeżeli byłoby to przydatne to mógłbym jej poszukac i przeskanowac parę kartek z rozdziału o strukturze FAT.

pozdrawiam
Seban/SLIGHT

2,905

(34 odpowiedzi, napisanych Sprzęt - 8bit)

oj, oj... chyba jednak to drugie (pamięć, hehe)... Pamietam, jak w snail-mailu pisales kiedys do mnie, ze np. na prosbe Żbika piszesz blokade do ARDEN (i/lub tego TECHNOIDA)

ojoj... chyba cos z moja pamiecia nie tak jednak... coś mi sie kołacze po głowie, ale prawie nic nie pamiętam... nawet nie wiem czy zostalo to wykorzystane w w/w grach. ehhh.... starość nie radość :(


A detekcja uzycia freezera opierala sie chyba (jak mi Gumi tlumaczyl) na podpatrywaniu co sie dzieje na stosie kompa....  :rolleyes:

A co detekcji uzycia freezera... to było kilka metod. Jena z nich bylo oczywiscie wykorzystanie faktu iz freezer wlasnie potrzebowal troche miejsca na stosie, gdzie umieszczal kawalek swojego kodu.

Kolejnym z pomyslow bylo rzeczywiscie zablokowanie przerwan NMI. Wymagalo to od kodera pewnego nakladu sil, aby bez przerwan DLI czy VBL zrealizowac to co chcial, ale dawalo sie zrobic :)

Kolejna z metod bylo wykorzystanie faktu iz po zalozeniu do kompa freezera, przy zapisie do ktoregokolwiek z rejestrow sprzetowych (ANTIC,POKEY,GTIA,PIA) ta sama wartosc zostala wpisywana rownolegle do pamieci RAM znajdujacej sie w tym samym obszarze (np. zapis do GTIA $d000-$d01f, powodowal wpisanie tej samej wartosci do RAMu pod adresem $d000-$d01f. Normalnie ta pamiec nie byla dostepna, jednak po wcisnieciu przycisku freezera, ten niedostepny nigdzie RAM byl przemapowywany w obszar strony zerowej ;) tak wiec to co ostatnio bylo wpisane w $d000-$d01f, znajdowalo sie teraz w adresach $00-$1f, potem potem wartosci wpisane do POKEY'a byly widoczne $20-$3f. To samo dotyczylo ANTICA, itd.

Teraz wystarczyło wykorzystać fakt iż w normalnym atari (bez freezera), zapis np. $d000 to to samo co zapis $d020. Natomiast w przypadku kompa z freezerem... juz nie ;) dla freezera tylko zapis do $d000 bedzie ostatnim aktualnym zapisem do GTIA ;) I teraz jak widzicie możliwości są nieskończone ;). jednym z pierwszych naszych pomyslow bylo wykorzystanie kolizji grafiki PMG ;) np. dwa sprite'y ustawiamy na pozycjach $00 i np $f0 (poza ekranem) ale w taki sposob iz:

lda #$00
sta $d000
sta $d001
lda #$f0
sta $d020

i juz wiadomo co bedzie po uzyciu freezera ;) obiekt z pozycji $f0
powroci na pozycje $00, bo dla freezera był to ostatni poprawny zapis do GTIA ;)

Sposoboów jest o wiele wiecej. Kombinowac można dowolnie ;)

Swego czasu SoTe i ja wymyślaliśmy sobie z nudów sposoby na freezera ;) Pod koniec dzialalnosci mielismy ich chyba z kilkanascie ;) Zrobilismy sobie z tego takie male hobby ;)

Najlepszym numerem jaki zrobilismy bylo umieszczenie RiverRaida w chyba SampleEditorze :) po uzyciu Freezera odpala sie RiverRaid ;)

pozdrawiam
Seban/SLIGHT

2,906

(34 odpowiedzi, napisanych Sprzęt - 8bit)

Hej Dracon!

Może po kolei... z tego co ja wiem pomoc wbudowana we frezzera byla juz w wersji ktora zostala zmodyfikowana przez Roberta Kujde albo kogos z jego otoczenia. Ta wlasnie ta wersje poprawial i modyfikowal SoTe robiac Code3 Freezera. W code 3 freezereze rowniez byla pomoc, po wcisnieciu klawisza chyba "H" w debugerze.

Co do zabezpieczania Technoida... chyba się coś Ci pomyliło, bo ja nie zabezpieczałem chyba (a może już nie pamiętam ;)  żadnych gierek komercyjnie. Kiedyś co prawda na prośbę niejakiego 'ciapka' daliśmy chyba nasze procki, które miały być w jakieś grze chyba z Mirage, ale nie wiem czy kiedykolwiek ktoś to wykorzystał. Jedyne produkty zabezpiecznoe przed freezerem to były nasze niektóre demka i programy. Np. Digital Studio, Sample Editor były zabezpieczone przed freezowaniem. Ale nie miało to na celu zabezpieczenia przed zrobieniem wersji file tylko miało to na celu utrudnienie posiadaczom freezera możliwości zaglądania w nasz kod ;)

I tak Ci co wiedzieli jak mogli zrobić wszystko bez freezera ;)

Seban/SLIGHT

2,907

(34 odpowiedzi, napisanych Sprzęt - 8bit)

Hej!

Tak trochę pogrzebałem po sieci i wychodzi na to iż autorem Freezera był Pan Berhanrd Engl, troszkę informacji jest tutaj:

http://www.abbuc.de/engl.htm

Jak możemy zobaczyć na w/w (pliki PDF), instnieje wersja Freezera podpinana nawet do XE (wymagane złacze extension).

Tak wiec wszystkie wersje freezera dostepne w polsce byly modyfikacjami projektu Pana Engl'a.

Dodatkowo chyba w ABBUC #76 było coś o freezerze:

Ausgabe - Seite - Artikel - Inhalt - Autor - Art -
76 - 1/2004 - 27 -  Projekt Engl - Über die Neuauflage des Turbo-Freezers von Bernhard Engl - Matthias Reichl -Hardware

ma ktos dostep do ABBUC#76?

a może ktoś odważny/chetny przeprowadzi wywiad z Panem Bernhardem? Może opowie on nam historię Freezera?

grtx4all
Seban/SLIGHT

2,908

(34 odpowiedzi, napisanych Sprzęt - 8bit)

Hej!

W załączniku to co było na stronie atari-magazynu. Również takie same materiały dostałem od Pana Soboli. W jakiś magiczny sposób udało mu się to oddłubać i przerysować schemat. Nie wiem czy jest poprawny i czy nie ma na nim żadnych błędów.

Tak naprawdę to Freezera uważam za jedno z najlepszych modyfikacji ATARI. Tak naprawdę to dzięki niemu powstał software napisany przez SoTe, RZoG'a i mnie. Niestety każdy z nas miał to jako płytkę zalaną distalem i nikomu się nie udało tego oddłubać. Kiedyś próbowałem, ale skończyło się to tym iż musiałem sobie zakłądać drugiego freezer'a.

Zawsze chciałem wiedzieć kto wymyślił to genialne rozwiązanie sprzetowe :) podobno było ono opublikowane w magazynie Happy Computer, ale jest to tylko plotka i nie wiem czy to prawda.

Może ktoś coś wie, bardzo fajnie by było odtworzyć to rozwiązanie. Niestety nie mam zbyt wiele czasu na takie działanie i nie chciałbym sobie popsuć jedynego działającego freezera którego posiadam.

Mi Freezera montował Pan Kszysztof Stec z giełdy na grzybowskiej. Widziałem kiedyś oryginalnego Happy Freezera. Widziałem także wersję zamontowaną przez Roberta Kujdę. Podobno oryginalna wersja freezera była podłączana tylko pod to złącze krawędziowe w Atari 800XL.

Jeżeli ktoś coś może o tym napisać, dajcie znać!

pozdrawiam
Seban/SLIGHT

2,909

(25 odpowiedzi, napisanych Sprzęt - 8bit)

Cześć!

Tak na szybko... GAL to taka programowalna struktura logiczna. Wyobraź sobie że musisz wykoać jakąś prostą operację logiczną na kilku bitach, np. Y=(A or B)  and (C or D)

W normalnym przypadku musiałbyś zastosować parę ukłądów scalonych aby osiągnąć zamierzony efekt. I teraz z pomocą przychodzą programowlane struktury logiczne takie jak np. GAL'e.  Takiego GAL'a możesz sobie zaprogramować tak aby wykonywał potrzebne tobie działania. Taki GAL ma określoną ilość wejśc i wyjść. Pisząc program dla GAL'a kożystasz z jakiegoś języka programowania (np. CUPL). Piszesz po prostu równania które operują na określonej przez ciebie ilości argumentów wejsciowych a wynik działania takiej funkcji możesz przekierować na odpwiednie wyjście.

Co to oznacza w praktyce... to że zamiast 15 układów scalonych zawierających bramki możesz wsadzić jednego gala.... wszystko robi się małe i wydajne.

Po skompilowaniu programu powstaje plik którym naleźy zaprogramować GAL'a i gotowe ;)

ufff... to było w bardzo dużym uproszczeniu i skrócie ;)

pozdrawiam
Seban

2,910

(18 odpowiedzi, napisanych Sprzęt - 8bit)

Ten AL250 jest sprzedawany przez dystrybutora w Niemczech (sprawdzcie na stronie producenta). Dodatkowo, tenze dystrybutor oferuje gotowe rozwiaznie ktorego szukamy: DCX305. Wlasnie szukam cen :) Ku..na w koncu wszyscy jestesmy teraz w UE! Niech Atari tez cos z tego ma ;)

Nie abym się czepiał, ale sądzisz że taki dystrybutor sprzeda Ci parę sztuk? Oni będą chcieli od ciebie planu zamówień na najbliższe 3 lata. A minimalny zakup to będzie 1000szt. Próbek też nie dostaniesz bo nie jesteś mega-firmą która może w przyszłości zamawiać jakieś znaczące ilości więc na 99% będą Cię olewać/ignorować. :(

Mam nadzieję iż się mylę i że w końcu komuś się uda dostać parę sztuk tego układu w rozsądnej cenie ;)

pozdrawiam
Seban/SLIGHT

2,911

(18 odpowiedzi, napisanych Sprzęt - 8bit)

juz od dawna sie tym scalakiem interesowalem (już ponad rok), trzeba do tego bedzie dolozyc jakis procesor wizji/TV dekoder (np. jakis philips z serii SAA7110) bo AL250 ma wejscie cyfrowe (oczekuje strumienia danych w formacie YUV lub RGB). Ale to wszysko pestka. Spróbuj go kupić. Jak mi ktoś go kupi w rozsądnej cenie zrobie wam konwerter ATARI->monitor VGA.

pozdrawiam
Seban/SLIGHT

2,912

(30 odpowiedzi, napisanych Sprzęt - 8bit)

hej!

No mistrzu, jesteś wielki :D

Co prawda to tylko schematy cart'ów. Ale zawsze to coś na dobry początek ;)
Teraz jeszcze tylko schemat interface AST wkładenego do magnetofonu i będe maksymalnie szczęśliwy ;) Może ktoś gdzieś ma ;) Próbowałem kupić jakiś magnetofon z wbudowanym AST jednak jakoś mało skutecznie :(

pozdrawiam serdecznie
Seban

2,913

(30 odpowiedzi, napisanych Sprzęt - 8bit)

artu123! dzięki ;)

pozdrawiam
Seban

ps) a może ktoś ma jeszcze namiary na AST?

eeee.... analizując schemat z seriousa... to co przedstawiają zdjęcia to chyba nie jest Blizzard ;( Albo jednen ze scalaków jest analogowy (np. UL1111) albo to nie jest  Blizzard turbo... ja na zdjęciach widze dwa scalaczki chyba jeden tranzystor i jakąś diodę impulsową, pare biernych elementów (9 rezystorów, 2 kondensatory). hmmmm.... liczba rezytorów i kondensatorów się zgadza ze schematem Zenona ;) więc może jednak ulepszona wersja blizzarda ;) co prawda przewodów idących do płytki jest 6 a nie 7 jak schemacie Zenona... ale może jednak.

2,914

(30 odpowiedzi, napisanych Sprzęt - 8bit)

Cześć!

tak, te schematy już wcześniej widziałem. pierwszy z nich jest schematem jakiegoś cart'a. Zresztą nie mam pojęcia jakiego, ponieważ Turbo K.S.O.2000, czy tzw. Turbo w wersji F, nie posiadało pamięci RAM w cart'cie a na w.w. schemacie taka możemy zobaczyc... natomiast drugi z wymienionych schematów to shemat przeróbki Turbo 2000 KSO (podłaczanej do portu joy'a).  Oraz cart'a do tego systemu

A ja chciałem zapytać czy kotś nie ma może schematów Blizzard'a i AST (Atari Super Turbo).

pozdrawiam
Seban

2,915

(30 odpowiedzi, napisanych Sprzęt - 8bit)

i moje którkie pytanko, czy ktoś ma może właśnie schematy i instrukcje montarzu takich systemów turbo jak Blizzard i AST?

Zawsze byłem ciekawy ich działania jednak ja miałem tylko Turbo 2000 (podłączane poprzez port JOY'a) i Turbo 2000F (z małym przełącznikiem w magnetofonie turbo/normal)

pozdrawiam
Seban

2,916

(5 odpowiedzi, napisanych Miejsca w sieci)

Przez chwile sam miałem wątpliwości ;-)
Ale Miker, mogę Cię uspokoić ;) to chyba jednak nie ja ;) :lol:
A przynajmniej nic nie pamiętam ;-)

pozdrwiam!

2,917

(35 odpowiedzi, napisanych Bałagan)

Cześć!

Na początu chciałem wyjaśnić iż nie chciałem Cię urazić moimi wypowidziami.  Szanuję Cię jako osobę która spowodowała iż zainteresowałem się sceną i pisaniem dem ;) Można powiedzieć że to dzięki Tobie zaczęła się moja przygoda ze sceną :) W tamtych czasach byłeś dla mnie wzorem dla naśladowania ;) mówiłem sobie... "też kiedyś napisze coś tak fajnego jak Revenge of Magnus ;)"

Ale już dość tego niecico przydługiego i wazelinarskiego wstępu  ;) Moim celem nie było obrażanie kogokolwiek, ale próba wyjaśnienia kilku szczegułów histotycznych ;) a że jak ostatni idiota napisałem to co mi się po głowie telepało i było pewnie dość nieściłe to jest to bardzo możliwe ;-) pewnie tak jak sugerujesz przekręciłem coś co mi powtórzył SoTe. Przyznaje się iż sam tego nie sprawdziłem a tylko pisałem co pamiętałem z rozmowy sprzed wielu lat (a pamiętałem jak widać bardzo nieściśle ;) Skoto nic takiego w twoim depakerze nie ma to pewnie SoTe nie mówił o Cruncherze 5.0 i wiem że skoro tego nie sprawdziłem to nie powinienem o tym pisać. Nie chce wszczynać kolejnej sprzeczki ale może mówił to depackerze z którejś części TheTop... lub w ogóle coś źle "wymyśliliśmy"... wszak pamięć już nie ta i mogę bredzić także nie bierz tego sobie do serca :D A i dodać trzeba że umiejętności koderskie i analityczne w tamtych czasach nie były na "wysokim" poziomie :) Wszakże jeszcze dziećmi byliśmy ;)

Cieszę się zaj#&(*#( że znalazłeś chwilę czasu aby odpowiedzieć na ten post... jednak nie myślałem iż moj post potraktujesz jako "zarzut". Napisałeś pierwszy program tego typu na ATARI i chwała Ci za to :) Może znalazłbyś chwilę czasu i opowiedział nam historię powstawania Crunchera  5.0 i może chciałbyś powiedzieć parę słów o tamtych czasach? Jestem tego cholernie ciekawy ;)

No cóź mogę w tym momencie zrobić... Mogę Cię przeprosić raz jeszcze za rzeczy które napisałem na prawdą nie były.

pozdrawiam serdecznie
Sebastian Igielski a.k.a Seban/SLIGHT

2,918

(35 odpowiedzi, napisanych Bałagan)

Rozumiem, ze Code3 Cruncher powstal w wyniku niezadowolenia z osiagow crunchera Magnusa? ;)

Dokładnie tak. SoTe był i jest taki że lubi robić rzeczy po swojemu.

Cruncher 5 Magnusa był jak na tamte czasy totalną rewelacją ;-) Bo był to jedyny tego rodzaju program na ATARI, w tym czasie ludzie z C64 mieli tych programów dziesiątki. Jednak temat packerów z C64 to temat na oddzielny post a może nawet artykuł, bo to bardzo interesujące zagadnienie. W skrócie rzecz ujmując w C64 jedyną możliwością załądowania programu było załadowanie go w obrzar przeznaczony na pamięć programu BASIC'a. Chyba około 38KB, więc teraz się domyślacie zlaczego ludzie z C64 tak szybko zaczeli się znajmować kompresją danych. ATARI miało na tyle genialnie pomyślany format pliku binarnego iż przez baaaardzo długi czas nie było takiej potrzeby. Bo ładowaliśmy sobie programy w jake obszary chcieliśmy i do tego mogliśmy wykonywać dowolny kod pomiędzy wczytanymi blokami (tzn. wektor INIT).

Ale wracając do SoTe on zawsze lubił analizowoać dany problem i rozwiązywać go po swojemu ;) A że wychodziło mu to w 99% przypadków lepiej to już nie jego winia. Nie ma co ukrywać iż Code3 Cruncher jest bardzo podobny w obsłudze do Crunchera 5, bo też na nim był wzorowany ;) Jednak procedury pakujące były napisane od nowa przez SoTe. Możecie się smiać ale pamiętam to do dziś jak SoTe pod koniec pisania swojego Packera potrafił rozpakować ciąg zero-jedynkowy na kartce pochodzący z jego packera ;) Zersztą pakowanie pliku na kartce prze SoTe też wyglądało zabawnie (pewnie nie dla niego, bo spędził nad testami procedur pakująco/depakujących naprawdę wiele godzin).

Wiem że SoTe analizował dogłębnie Cruncher 5 i bardzo mocno się zastanawiał czy procedury kompresji/dekompresji nie pochodzą z C64. Pokazywał mi kilka zastanawiających fragmętów kodu z Cruncher 5. Była chyba obsługa komórki $00 lub $01 która w C64 odpowiada za odłącznie róznych obszarów pamięci (tak jak $d301 w ATARI). Do tego po załadowniu pliku procedury przepisywały wszystko jak najniżej się da i rozpoczynały proces dekompresji od konca do początku pamięci (zawsze tak robili na C64). Tylko u nas był mały problem ;) W C64 mogli sobie odłączyć wszystko co możliwe i mieć pełne 64KB RAM, mogli odłączyć nawet rejestry sprzętowe ;) Magnus rozwiązał sprawę w ten sposób iż dane spakowane po pierwszym przebiegu (RLE, charpack) musiały się kończyć w do $cfff inaczej Cruncher odmawiał dalszej kompresji. Potem drugi przebieg pakował dane w obszarze do $cfff, a depacker chyba rozpakowyał dane do końca... ale mogłem coś popier&^#&*# dawno to było... i nie opowiadam o tym aby wywołać jakąś wojnę.... tylko dlatego że uważam to za bardzo fajną ciekawostkę! Zawsze miałem i będę miał szaczunek dla Magnusa ;)


Wcześniesza wersja Cruncher'a Magnusa (4.64) miała tylko jeden przebieg; specyficzne RLE, które ludzie z C64 nazywają char packerem. Czy nie zastanawiała was wersja *.64? bo ja się zawsze zastanawiałem czy to przypadek czy też nie. Potem Magnus dopisał drugi przebieg (LZ77 jak dla mnie) ale ludzie z C64 nazywają to chyba imploding ;)

Co by nie mówić i to i tak Magnus zapoczątkował rewolucję cruncher'ową na małym ATARI. I nie istotne w tej chwili jest czy przepiswyał to z C64 czy nie... ale on to rozpoczoł... i chwała mu za to :)

a skad czerpal wiedze o metodach kompresji?  Czy zagladal do C64? ;)

hmmm... nie powiem że SoTe nie przyglądał się Cruncher'owi Magnusa. W tamtych czasach nie było praktycznie żadnej literatury w Polsce dostępnej o tej tematyce. Ale swego czasu ukazała się seria bardzo fajnych artykułow o metodach kompresji a magazynie papierowym "KEBAB" i tam na prawdę było opisane dużo metod i rodzajów kompresji. Z tego co pamiętam SoTe dużo eksperymentował z metodami kompresji i to co wytworzył to wynik jego doświadczeń. Wiem że spakował setki plików aby dobrac tablice i metody kodowania długości sewencji. Trochę nad tym posiedział i zrobił co mógł na tamte czasy. A wyszło mu to chyba całkiem nieźle ;) Bardzo długo Clever People uzywało jego narzędzia do pakowania fileówek ;)

Raz, ze obiecales kiedys podeslac mi spakowana wersje megadema HOBBY-TRONIC '90 lub '91 (?), ktora w czasach snaila dostalem od Ciebie, ale pozniej stracilem ;  Dwa, ze chetnie obejrze wszystkie  releasy od *CLEVER PEOPLE* !!!!  :)

Wiem, obiecałem i pamiętam. Jak tylko się trochę odkuję i znajdę czas na przejrzenie dyskietek obiecuję wszystko udostępnić. Zarówno Ciebie, Strykera jak i pozostałych zniecierpliwionych i zniechęconych proszę o trochę wyrozumiałości i cierpliwości...  za jakiś czas na stronie:

http://www.n-s.pl/slight/

powinno się coś zacząć dziać ;)

Zreszta musze wam powiedzieć iż rodzina też narzuca pewne obowiązki na człowiekia i to powoduje że wolny czas czasami kurczy się prawie do 0... ;( także proszę jeszcze o cierpliwość ;)

Wracając do packerów ze stajni SLIGHT, zapomniałem dodać jeszcze o dwóch depackerach ;)  W końcu przysły czasy takie że były wokoło AMIGI i ATARI ST ;) A na tych platformach były bardzo szybkie w porównaniu z ATARI programy pakujące (np. PowerPacker dla AMIGI) i bardzo fajny (ICE-PACK) dla ATARI-ST. Już kiedyś o tym wspominałem przy okazji jakiegoś posta na AA, ale może przypomnę iż przy okazji nauki assemblera motoroli 68000 napisałem depacker dla ICE-PACK'a z ATARI ST i dokonałem optymalizacji depackera dla PP20 z amigi... którego to wypatrzyłem w releaseach z Boody Coders ;)

Były jeszcze czasy pakowania wszystkich release'ow z Clever People na C64 ;)  Przewalało się dane do spakowania na C64 ;) Pakowało (najczęsciej Cruel Cruncherem lun Exploding Faces Cruncher'em) i przewalało się to z powrtorem na ATARI gdzie po paru modyfikacjach depackera odpalało się to ATARI ;) Operacja wygłądała tak. Spakowana file'ówka ładowała się jak najwyzej w pamięć. Po załadowaniu przepisywana była w obszar $801 (tak jak się ładują programy na C64 ). Odpalało się depacker, te depackery z C64 zawsze rozpakowywały od końca pamięci w dół (znaczy się pierszy bajt rozpakowaywały od $ffff i potem $fffe). Po rozpakowaniu dane się przepisywało w odpowiednie obszary pamięci i działało ;) Możecie mówić iż to było LAME, ale jakie efektywnie i krótkie ;) Przyznaje się bez bica iż biło na głowę Code3 Crunchera i sam nie potrafiłem napisać lepszego Crunchera niż te z C64 (pod względem rozmiaru danych wyjściowych). Prędkości pakowania nz C64 były straaaaaasznie długie... dlatego potem się przerzuciłem na PP20 i PackICE ;)

pozdrawiam serdecznie
Seban/SLIGHT

2,919

(35 odpowiedzi, napisanych Bałagan)

No i wychodzie, że kiedyś efekty nie były "realtime calculating", tylko "realtime depacking". :D

Ba.... no wiesz... jak byś chciał mapę do "voxel'a" 256x256 pixeli poiliczyć na ATARI to trochę by to zajeło czasu ;) policzyliśmy wcześniej na PC, a potem SFDN Packer i już ... cały Voxel był jednak rysowany realtime, na podstawie mapy wysokości odpackowanej wcześniej ;)

Track scroll też był rysowany realtime, jednak liczenie trajektorji też by zajeło kupę czasu... więc zostały one policzone wcześniej w turbo basicu ;) a potem spakowane sine packer'em ;)

Obroty 3D korzystały ze stablicowanych wymnożonych sinusów ;) zresztą wszyscy do dziś tak robią ;) tyle że dziś bym te tablice sam policzył a kiedyś prościej mi było mieć gotowe tablice i spakować je np. sine-packerem ;)

Zapomniałeś chyba jeszcze o pakerze do 4-bitowych sampli, który został zmuszony do pakowania bodajże HIP-ów. A może to właśnie jest ShanonFano Differentian Nibble Packer? :)

Pojęcia nie miałem iż HIP był pakowany SFDN ;) tak ten packer nadaje się wyśmienicie do sampli i grafiki w trybie 9,10,11 (i wszystkiego o organizacji Nibblowej). Tak naprawdę to myślałem że nikt tego packera poza mną nie ma ;)  Nie pamiętam abym go puszczał w obieg ;) ale ja w końcu mam już skrerozę więc może go udostepniłem ;) to było tak dawno temu ;)

pozdrawiam serdecznie
Seban/SLIGHT

2,920

(35 odpowiedzi, napisanych Bałagan)

Seban, przypomnij mi w takim razie co było czym.

Ehhh.... no to trunde pytanie mi zadałeś ;)
Ja też tak naprawdę mało pamiętam ;(
Ja chyba pamiętam 3 lub 4 wersje Code3 Crunchera ;)

Pierwsza wersja... nie wiem czy wyszła publicznie... charakteryzowała sie tym iż miała jakby 3 przebiegi dekompresji ;) Pierwsza od depacking LZ77 (efekt na ekranie to inc $d01a chyba), drugi etap do dekompresja RLE (efekt to sta $d01a), trzeci etap to długie przemieszczanie rozpakowanych danych w pamięci, na ekranie dość długo migotały chyba ciemno brązowe paski.

Drugą wersją była chyba wersja 2.2 która miała przyspieszone ostatnie przepisywanie... nie było przy nim "wizualizacji". Ona spakowane dane zapisywała na dysk przeznaczony specjalnie dla siebie ;)

Kolejna wersja miała dorobiony już licznik przy depackowaniu pierwszym (LZ77), potem było RLE. Z tego co pamiętam to chyba RzOG wymolestował SoTe o licznik przy dekompresji ;) I do tego packer zapisywał zane już nie na dyskietkę ale do rozszeżonej pamięci i po zakończeniu pakowania dokonywał zapisu całości na dyskietkę.

Coś po głowie mi się pałęta  że była wersja 2.2 bez litery "D", która zamiast wykorzystywać zapis spakowanych danych na dyskietkę robiła to w dodatkowej pamięci (potrzbne były 4 banki, czyli 130XE). Ale szybko powstała wersja 3.0 z licznikiem i nie była chyba puszczona w świat wersja 2.2 (bez D), gdzie "D" miało właśnie oznaczać zapis spakowanych danych na dysk. Ale głowy sobie odciąć nie dam ;)

Żaden z w/w cruncherów nie dorobił się szybkiego depackera. Wszystkie posiadały wolną wersje dekompresora. Tak naprawdę do wersja przygotowująca dane dla FastDepackera była dwu przebiegowa... piwerwszy etap normalna kompresja bitowa... drugi etap o wiele szybszy... reorganizacja danych (wyrównanie do granic bajtów).

Idea fast depacker była zrealizowana już chyba przy Bitter Reality... jednak tak byliśmy zajarani efektem "świeczki" przy depackingu że szybki depacker w ogóle nie wchodził w grę bo świeczka się za krótko paliła ;-)

Nie pamiętam kto, ale ktoś pusił na giełdzie w Warszawie plotkę iż mamy wersję Code3 Crunchera ze świeczką przy depackingu... później ktoś pisał do SoTe że chce dostać od niego wersje Code3 Crunchera z efektem świeczki przy depackingu... oczywiście nic takiego nigdy nie istniało ;-) Ale niektórzy ludzie uparcie molestowali nas o wypuszczenie tej wersji na scene ;)

uffff... to chyba tyle ;)

Właściwie to zawsze SoTe pisał packery/depackery i nikt nas nie był z nim w stanie konkurować. Dopiero potem jak SoTe już na JIL nic nie tworzył a my pisaliśmy jeszcze Overminda to powstało kilka nigdy nie opublikowanych packerów na użytek Overminda i gierki SexySix.... na potrzeby Overmind'a napisałem chyba ShanonFano Differentian Nibble Packer oraz Sine Packera. To umożliwiało np. spakowanie 32KB mapy do comancha w chyba 4KB ;) Sine packer idealnie się nadawał do pakowania trajektorji do track scrolla i tablic potrzebnyych dla obrotów 3D ;)

Do Sexy six'a napisałem jakąś dziwną hybrydę podobną do kodowania huffmana ;) już na prawdę nie pamiętam ;) Wiem że zrobiłem jakiegoś wrednego bug'a i był problem przy kompresji/dekompresji niektórych rysunków.... nie miałem już czasu aby to poprawić i problem rozwiązano w ten sposób iż dobrano takie rysunki kótre się nie "syfiły" po komresji i dekompresji. Potem Miker się strasznie namęczył produkując kolejne "data disk" dla Sexy6 bo musiał dobierać rysunki tak aby nie trafić na buga w pakerze/depakerze ;)

więcej packerów ze stajni Code3/Slight nie pamiętam.  Muszę w końcu moje dyskietki ratować i je zacząć przeglądać może wtedy da się więcej napisać jeżeli to kogokolwiek jeszcze interesuje ;)

aaa.... był jeszcze jednek packer do Overminda ;) Pakował poszególne fazy fraktala ;) on był bardzo specjalizowany ;) depacker musiał odpackowyać poszczególne klatki w czasie rzeczywistym w międzczasie procedura zoom'ująca musiała przezoom'owywać sie od jednej rozpakowanej klatki do drugiej ;) To było jakieś RLE (poziome albo pionowe) i do tego jeszcze przed pakowaniem była zrobiona detekcja krawędzi tak aby jednolite powierzchnie zostały zastąpione bajtami 0, a odtworzenie obrazu było możwie metodą EOR, STA (jak w wypełnianych wektorkach). Tyle że packer decydował która metoda kompresji daje najmniejszy wynik i wybierą tą najbardziej optymalną ;)

Był jeszcze jeden packer... do textur w 64x64. Był on wykorzystany w niedokończonych nigdy częsciach overminda ;)

He... było jeszcze jedno.... nigdy tego w świat nie puściłem. To było coś w stylu DiskCommunicatora ;) Pakowało całe dyski do pliku i pakowało to jakimś głupim RLE... spakowałem sobie tym kilanaście dysków i potem się okazało że miałem tam jakiegoś buga i połowa stworzonych moim programem obrazów nadaje się do smieci (przewidująco liczyłem nawet CRC z tworzonych dysków). Niestety odkryłem to po tym jak skasowałem już oryginalne wersje ;(


pozdrawiam
Seban/SLIGHT

2,921

(35 odpowiedzi, napisanych Bałagan)

Gwoli ścisłości: tajną (chyba do dzisiaj) wersją był/jest Code3 Cruncher 2.2(fast depacker)

Tajną? Nie było czegoś takiego jak Code3 Cruncher 2.2 (fast depacker) sensu stricte. SoTe napisał taki programik który wczytywał plik do pamięci (max chyba 48KB) pakował go algorytmem który był w Code3 Cruncherze.... powstawał spakowany plik "zorganizowany bitowo" (strumień bitów).

Fash Depacker, hmmm... Nie wiem jak to prosto i szybko wytłumaczyć.... paker wypluwa spakowane informacje bitami, więc nawet niespakowane sekwencje nie leżą w granicy bajtów, przec co w normalnych warunkach depacker aby odczytać niespakowane kilka bajtów musi użyć procedury GetBit np. n*8 (gdzie n jest liczbą bajtów do pobrania).

Cała tajemnica fast depackera polegała na tym przeorganizowywał on plik w ten sposób że informacje czysto bitowe przechowywał bez zmian, (do popbrania wymagane urzycie procki GetBit), natomiast dane "bajtowe" np. niespakowane sekwencje, przechowywał tak aby je wyrównac do granicy bajtu więc depacker do pobrania bajtu nie musiał wykorzystać GetBit*8 tylko wykonywał zwykłe np. LDA ($80),Y co znacznie przyspieszało procedurę depakującą.

Do takiego spakowanego ręcznie pliku należało dodać później nagłowki (ręcznie) i depacker któremu podwało się dane skąd, gdzie i ile rozpakować. Wszystko ręcznie. Nigdy nie został napisany gotowy program w stylu DJ-Packer'a czy Flash-Packa... dlatego nie został nigdy opublkowany poniweważ większość ludzi i tak by sobie z nim nie poradziła... prog miał toporny interface... taki w stylu np. FileCopy 1.45 ;)

Do tego nie pakował lepiej niż Code3 Cruncher więc SoTe tego nigdy nie dociągnoł do postaci którą by mógł używać normalny użytkownik (normalny -> "nie koder" ;) )

Pierwszym programem który działał tak jak powinno było być to zrobione (w przypadku Code3 Crunchera i Fast Depackera) był packer Jiri Bernasek'a o nazwie SuperPacker. To był dla mnie przykład bardzo dobrze przemyślanego programu pakującego dla plików binarnych (nagłówek $ff,$ff,xx,xx,yy,yy). Nawet przez chwilę miałem zamiar dopisać taki interface dla procedur SoTe jednak jak zwyke w moim przypadku lenistwo zwyciężyło ;-( Potem zobaczyłem DJ-Packera.... i jeszcze później FlashPacka napisanego przez Fox'a ;)

Tak to prawda że wykorzystywaliśmy procedury SoTe do spakowania Overminda ;-) A że to coś nie miało nazwy... postanowiliśmy nazwać to Code3 Cruncher/ Fast Depacker ;)

Miker zresztą powinien pamiętać jak wyglądało składanie Overminda ;)

pozdrawiam
Seban/SLIGHT

2,922

(35 odpowiedzi, napisanych Bałagan)

Hmmm... pytasz Tatqoo co u mnie. Nie było wesoło. Zieniałem robotę i jak urat w tym czasie jak odszedłem z jednej roboty i zanim zdążyłem pójść do drugiej... rozłożyłem się nieco i wylądowałem w szpitalu ;( Teraz nadrabiam zaległości finansowe i na razie nie mam czasu na nic poza pracą ;-(

Stryker już pewnie jakieś Voo-Doo odstawia wkurzony iż Slight SID jeszcze nie gotowy... kupe fajnych rzeczy jest do zrobienia... gdyby jeszcze pracować nie trzeba było ;) Może do końa roku uda mi się stanąć na nogi i jakoś to będzie.... tak sobie obiecuje od dłuższego czasu że skończę wszystko rozpoczęte projekty... ale miesiące mi przez palce przeciekają.... tygodnie mijają jak dni... czas zapiernicza w takim tempie że nie wiem kiedy to się wszystko dzieje... Czy to jakaś starość? czy czy co? ;)

ps) Muzak zajefajny... bardzo go lubiłem w coverze SoTe, ale Twój jest stereo i też mi się bardzo podoba ;-)

pozdrawiam serdecznie
Seban/SLIGHT

2,923

(35 odpowiedzi, napisanych Bałagan)

"Soused " a.k.a. Soused Teat/SLIGHT -> SoTe -> Adam Bienias czyli np. autor MusicPro Trackera ;)

pytasz skąd... hmmm... z Warszawy ;-)
Wcześniej Soused Teat wraz z Sebanem ;-) tworzyli Code3 ;)
A obecnie SoTe jest masta-hacka-programistą (Lead Programmer) w http://www.city-interactive.com ;)

pozdrawiam
Seban/SLIGHT

2,924

(14 odpowiedzi, napisanych Software, Gry - 8bit)

hi!

Prawda, mozna pakowac Amigowskim Power Packerem ;-) Tak kiedys robilem ;-) Procedury do dekompresji gdzies jeszcze mam ;-) Tak sie pakowalo pare lat temu file pod koniec dzialalnosci Clever People ;-)

Mam chyba gdzies jeszcze zrodla moich procedurek depakujacaych do PP20 wlasnie z Amigi, zreszta pomysl stary jak swiat, swego czasu "rilejzy" Bloody Coders byly pakowane wlasnie Amigowskim Power Packerem ;-) (np. Cavernia z logo Bloody Coders, ta w bazie plikow wlasnie jest spakowana PP20).

Potem jak mialem dostep do ST napisalem depacker do PACK-ICE z ST ;-) i kolejne "fajlowki" wlasnie nim pakowalem ;-) Musze poszukac zrodelek ;-) mam nadzieje ze sie dyskietki przeczytaja ;-)

pozdr
Seban/SLIGHT

2,925

(14 odpowiedzi, napisanych Software, Gry - 8bit)

Hej!

Tu moze sie zdarzyc jeszcze jeden problem. Kod gry moze caly czas przelaczac banki carta aby dostac sie do odpowiednich danych, tak wiec przepiswyanie danych z obszaru $4000-$7FFF w obszar $8000-$BFFF moze byc po prostu klopotliwe i moze uniemozliwic dzialanie gry ;(

Pamietam jak kiedys, Miker sie uparl aby zrobic mu z cart'a gry GATO wersje file ;-) Gra wlasnie caly czas przelaczala banki aby wykorzystac jakies dane. Nie wnikajac w kod gry (bo komu by sie chcialo kod relokowac), rozwiazalem to wlasnie w ten sposob ze wszystklie dane z bankow ktore znajdowaly sie w obszarach $8000-$bfff zostaly umieszczone w dodatkowych bankach i potem procedury przelaczajace banki w carcie zostaly podmienione na procedurke przepisujaca dane z bankow w obszar $a000-$bfff lub $8000-$9fff. Gra dzialala strasznie wolno poniewaz co klatke przelaczala sobie banki ;-) ale poniewaz i tak oryginal rysoawl i tak pare klatek na sekunde to dodanie jeszcze wiekszego spowolnienie nie spowodowalo makabrycznego spowolnienia ;-)

Trzeba by bylo zobaczyc jak czesto commando przelacza owe banki i mozna sie zastanowic czy da sie zrobic file ;-) Jezeli jednak robi to co np.  ramke to mozna zapomniec o wersji file ;-)

co do objetosci pliku, to wydaje mi sie ze dane z commado sie bardzo dobrze spakuja ;-) Plik pewnie nie byl by duzy, po spakowaniu jednak gra wymagala by pewnie troche rozszezonej pamieci ;)

Jezeli gra nie przelacza bankow co chwile to mozna by sie pokusic o dekompresje i przemieszczenie danych w odpowiedni obszar w chwili przelaczenia banku przez kod gry ;-)

pozdrawiam
Seban/SLIGHT