Umieszczając na forum publicznym krytyczne uwagi nt. czyjejś pracy warto wpierw dokładnie zapoznać się z tematem. Inaczej dochodzi do niekończącej się sprzeczki i bezsensownego obrzucania się błotem. Jako osoba od 7 lat związana z projektem Atari800, która poświęciła mu setki jeśli nie tysiące godzin swojego czasu, będę go bronił.
laoo/ng napisał/a:Jakie są dowody, że kod atari++ jest zżynany z atar800? Z tych fragmentów kodu które czytałem, to jest on zupełnie inny.
atari++ jest zaprojektowanym od nowa emulatorem, jednak autor czerpał wiedzę o działaniu układów ze starych wersji Atari800 (sam do tego się przyznaje np. w nagłówku antic.cpp) w związku z czym występują błędy emulacji takie jak w Atari800 0.9.x. Co do żywcem wziętych fragmentów kodu to faktycznie były one niewielkie (np. tablica etykiet systemowych z monitor.c z identycznymi literówkami w nazwach etykiet jak w starych Atari800), ale autor atari++ wypierał się początkowo, że były jakiekolwiek i upierał się przy zastosowaniu swojej, jak sam napisałeś, niezrozumiałej licencji, odrzucając GPL. Dzięki temu, że udało się wywalczyć GPL możesz spokojnie wypuszczać swoje modyfikacje na GPL.
laoo/ng napisał/a:atari800 to czyste C napisany w sposób przypominający wynik działania obfuscatorów (IMHO ma szanse na wysokie miejsce w IOCCC ;) )
"Czyste C" uznaję za komplement, ale do IOCCC daleko. Chyba widziałeś mało skomplikowanych programów - są one skomplikowane, bo realizują skomplikowane funkcje. Tak jest w przypadku Atari800 - zapewnia on po prostu dokładniejszą emulację i większą wieloplatformowość, niż atari++ i dlatego kod jest bardziej skomplikowany.
laoo/ng napisał/a:a atari++ napisany jest bardzo czysto obiektowo i widać, że na początku był projekt, a nie radosne programowanie, dzięki czemu rozszerzanie go o cokolwiek nie sprawia żadnych trudności.
Bardzo podobała mi się konstrukcja pierwszych wersji atari++, jednak z tym bardzo czysto obiektowo to przesada. Co do projektu to niestety ja zauważam "syndrom Javy", tj. nadmiernej rozwlekłości kodu w imię obiektowości. Brakuje natomiast ważniejszej rzeczy: chociażby struktury katalogów w źródłach. W atari++ jest ponad 300 plików źródłowych w jednym katalogu. W tym pliki cart16k.cpp, cart16k.hpp, cart32k.cpp, cart32k.hpp i jeszcze kilkadziesiąt następnych do innych wielkości cartridge-y - czy rozwiązanie z cartridge.c i cartridge.h nie jest rozsądniejsze?
Co do łatwości rozszerzania, to w przypadku atari++ wydaje się, że wszystko trzeba robić na siłę obiektowo - a co w przypadku gdy nowa funkcjonalność niezbyt wpasowuje nam się w istniejący model obiektowy?
laoo/ng napisał/a:Najnowsze dema chodzą i jedyne co zauważyłem, to że dźwięk faktycznie trochę pierdzi (co dowodzi, że przynajmniej POKEY nie był wyrżnięty ;P). A jakie są inne ciężkie winy, że tak jest jechany i skazany na banicję?
Jeśli chodzi o mnie, to życzę projektowi atari++ jak najlepiej. Sam chciałem pomóc w jego rozwoju, jednak szybko zauważyłem, że musiałbym wykonać powtórnie pracę, którą przez lata włożyłem w Atari800, bowiem w atari++ są błędy, które kiedyś były w Atari800. Najnowsze dema nie są najlepszym miernikiem jakości emulacji, znacznie lepsze są stare gry. Ilość portów i ludzi pracujących nad rozwojem emulatora też zdecydowanie przemawia za Atari800. Chociaż obiektowość atari++ może zachwycać na pierwszy rzut oka, na dłuższą metę (np. przy wprowadzaniu istotnych poprawek w emulacji Antica) jest niepotrzebnym balastem.
jellonek napisał/a:becny kod jest w/g mnie lepiej rozwijany/bardziej przejrzysty niz atari800. ten ostatni od dluzszego czasu wyglada na zaniedbany...
od prawie roku gotowa byla poprawka do "f7" znanego z atari800win+ i do tej pory nie przejszla...
Dla projektu trwającego ponad 10 lat kilka miesięcy ciszy nie jest problemem - może po prostu jest dobry a użytkownicy zadowoleni? Niedbała jest natomiast poprawka, która w emulatorze wieloplatformowym koncentruje się na jednej platformie (używanej przez autora platformy) i nie uaktualnia dokumentacji. Gdyby poprawka była bez zarzutu, to od razu by przeszła - przecież to żaden wysiłek ją zaaplikować. Zachęcam do poprawienia poprawki tak, aby nie wprowadzała ona większego bałaganu do Atari800, niż jest obecnie.