Jak w temacie. Kupiłem nowego jakiś czas temu w USA. Jest do niego jedna gra (California Games).
Używany dosłownie kilka razy, nawet oryginalne baterie Duracell'a jeszcze działają o dziwo ;)
Jeśli ktoś jest zainteresowany to czekam na propozycje cenowe.

602

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

Jestem (już od dawna) za SIO2USB. Nie ma sensu kupować dodatkowych interfaceów, kart i przejściówek. Proste rozwiązania sa najlepsze.
Ja mam notebooka, PC-ta dawno się pozbyłem i żadnego COM'a nie mam i miec nie chcę, bo nie ma to już żadnego sensu.

603

(4 odpowiedzi, napisanych Zloty)

Ja raczej czasu nie znajdę - za dużo roboty.
A tak na marginesie Pub Książęcy już nie istnieje - jest jakas nowa głupia nazwa.

604

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

Przeróbka do 2000F to przełącznik, kondensatorek i rezystorek. To nawet nie tyle jest interface co obejście filtra magnetofonu :) Rozmontuj zepsuty magnetofon, zobacz gdzie są te trzy kabelki przylutowane i przenieś do nowego. Prosta sprawa :)

605

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

Hehe, fajne ;) Można będzie sobie poszpanować wśród zwykłych śmiertelników :D

606

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

Sikor: pczeczytaj uważnie co napisałem wcześniej. Zresztą nie będę wskazywał palcem, kto chciał się synchronizować z zegarem atomowym przez internet. Skoro w założeniach opóźnienie w jedną stronę wynosi od kilkunastu do ponad stu ms to chyba oczywiste jest, że synchronizacja pingami jest czystą abstrakcją.

607

(72 odpowiedzi, napisanych Emulacja - 8bit)

Wydaję mi się, że temat dyskusji nieco się oddalił. Może wizualnie przypomnę o temacie :-)

http://img516.imageshack.us/img516/4531/cimg00956ws.th.jpg

608

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

A tak na serio to obie opcje nie są drogie i są REALNE to urzeczywistnienia. W o bu przypadkach są także profity podatkowo-celno-finansowe :)
A gdybyśmy się załapali jako non-profit to nawet ten 1% podatku ktoś by nam przekazał może?.... ;)

609

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

Kościół Wyznawców Antica :))

610

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

Sikor: chodzi oczywiście o gry niewymagające korzystania z klawiatury, choć gdyby przygotować sprecjalną wersje komputerów do pracy w sieci dałoby się to zrobić :)

Co do synchronizacji czastu to nie obraź się, ale nie masz pojęcia o tym co mówisz. Synchronizacja czasu przez internet z zegarem atomowym da Ci dokładość co do 1 sekundy, a w tym rpzypadku wymagana dokładność wynosi minimum 1/100 sek.

To, że coś tutaj piszę i dzielę się z Wami swoimi mniej lub bardziej realnymi pomysłami wcale nie oznacza, że mam kilka godzin dziennie na skońćzenie Propera. Tak ja napisałem skończę ta grę jeśli będę mógł sobie na to pozwolić.

611

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

A może założymy fundację? ;)
Fundacja pomocy biednym programistom, albo Fundacja na rzecz 8-bitowego oprogramowania :)))

612

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

Sikor - jeśli będziesz mi płącic kilka tysięcy złotych miesięcznie to Ci napiszę co będziesz chciał. Wybacz, ale nikt za mnie tych pieniędzy póki co nie zarobi - sa pewne priorytety.

Obiecałem, że jeśli uda mi się znaleźć trochęc zasu to grę skońćzę (a raczej napiszę od nowa), ale nie oczekuj, że rzucę wszystko... trzeba z czegoś żyć.

613

(72 odpowiedzi, napisanych Emulacja - 8bit)

Nosty: te 20% to tak na oko i o smartphonie mówiłem :) główy nie dam ile dokładnie było. Mój PPC czyli iPaq h4150 chodzi na bateriach prawie 10h. Zawsze można zwolnić zegar i przyciemnic obraz - to wydłuzy czas pracy. WiFi i BT niestety zżerają baterie :(
Atari800 na smartphone chodzi u mnie dziwnie - jedne demka chodzą szybko inne wolno. Jakkolwiek w Spy vs Spy gram ostatnio dość często i bez żadnego dyskomfortu związanego z opóźnieniami.
Nie wiem jak jest z Mitac Mio - jak dla mnie jest to dziwne, że tylko 35%... może źle podaje prędkość? ;) Jak miałem kiedyś iPaq h1940 gdzie był 200MHz Arm to Numen działał na 100% a miałem wrażenie niekiedy, że nawet szybciej ;) Niestety Pocket Pocketowi nie równy....

Jelloonek: oj, no zjadłem jeden "+" ;) Co do efektów to była tylko przenośnia. Chodziło mi o to, że jeśli stosuje się wyuzdane techniki programistyczne ;) typu self modyfing code, rozpisywanie pętli czy tablicowanie czego się da to są to rzeczy dla kompilatora raczej nie do przyjęcia. Kompilator zawsze będzie się starał wyprodukować szybki i poprawny kod zgodnie z zasadami, a żeby osiągnąć zysk trzeba czasami pokombinować i pewne zasady złamać (patrz: nielegalne rozkazy). Fakt, nie ma może zbyt wiele dobrych kompilatorów na 6502, ale nawet jakby były to nie uwierze (póki nie zobaczę), że taki kompilator mógłby bardziej przyśpieszyć efekty np. występujące w Numenie czy jakimkolwiek innym powalającym na kolana demku.

Co do większych procesorów zgadzam się - kompilator lepiej potrafi optymalizować, bo nowe procki mają zaszyte rozmaite cuda (jasnowidzenie, kolejkowanie, cacheowanie, potoki, strumyki i inne rzeczki ;) ) i żaden z programistów nie jest w stanie sprawdzić kodując real-time, że jeśli zamieni dwa rozkazy miejscami to akurat w piątym potoku zwolni się jakiś rejestr i wtedy wykonają się ona 3x szybciej, bo w drugim potoku będzie następny dostęp do rejestru wykorzytanego za pięć linii :)))
Jakkolwiek algorytm działania programu dobiera programista i w ten sposób jest w stanie optymalizować dane zagadnienie na dany procesor. Chodzi mi o to, że każdy procesor jest w czymś lepszy, jeden liczy szybciej, drugi przetwarza dane szybciej etc.

Fox: A kiedy przyśpieszysz to co się da? ;) Jeśli chodzi o Pockety to jak już gdzieś rozmawialiśmy sprawa się rozwiąże po zmienie obsługi pamięci dodatkowej.

614

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

Sikor: mylisz się - gra może zachowywać się na dwóch komputerach tak samo pod warunkiem, że uruchomisz je jednocześnie i że nie ma zdarzeń losowych. W tym przypadku uruchamianie gry z klawiatury może ale nie musi stanowić problemu. Jakkolwiek gdyby odpalić oba komputery idealnie jednocześnie to liczby losowe (a właściwie pseudolosowe) byłyby na obu identyczne - wiem bo sprawdzałem.
Opóźnienia joysticka będą w zależności od jakości sieci, jednak tak jak napisałem wczoraj największy problem to synchronizacja obu interfaceów.
Czy ktoś to zrealizuje? Nie wiem :) Przedstawiłem tutaj pomysł - zapytałem publicznie czy ktoś jest zainteresowany, czy warto. Jak na razie nikt sie nie zgłosił. Ja nie obiecałem nikimu, że ten projekt będę realizował, także nie ma co do Ciebie przemawiać ;)

615

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

Generalnie chodzi o zliczanie cykli i nie musi to być koniecznie fi2, ale skoro jest to można wykorzystać - jest w końcu bardzo stabilne i nim oba komputer syę rozsynchronizują minie duuużo czasu ;)

Załóżmy, że są dwaj gracze A i B. Obaj mają odpowiedni zestaw (komputer, interface, joystick, etc.). Po podłączeniu i uruchomieniu wszystkiego oba zestawy obliczają średnie i najgorsze czasy opóźnień między sobą. Aby te dane były na tyle zadowalające, aby można było grać zakładam, że obliczanie trwa 40 minut. Oba zestawy synchronizują swoje liczniki (chodzi o liczniki w IMGL'ach) czyli ustawiają je na zero :)

- Gracz A wciska fire.
- A wysyła informację do B, jednak nie przekazuje tej informacji do komputera tylko czeka.
- B otrzymuje informację, bierze wartość najgorszego opóźnienia (z B do A), przelicza je na cykle, dodaje do aktualnego stanu licznika i wysyła do A potwierdzenie z wyliczoną wartością, po czym zaczyna liczyć.
- A otrzymuje potwierdzenie najprawdopodobniej szybciej niz wynosi najgorsze opóźnienie (albo równo z nim) i czeka, aż jego licznik będzie równy odebranej wartości, po czym zapodaje fire do komputera :)
- Dokładnie w tym samym czasie B również dolicza się tego samego stanu i również zapodaje fire do swojego komputera.

Tak po krótce wyglądałaby komunikacja. Oczywiście przelanie tego na software i hardware nie jest takie proste i wybmaga dużo żmudnej roboty i pomiarów, ale to co opisałem jest realne mimo, iz oparte na statystyce i prawdopodobieństwie, bo w końcu nastąpi ten moment, że opóźnienie maksymalne zostanie przekroczone i komenda przyjdzie po czasie :(

Największym problemem w tym całym zaganieniu jest porornie banalna rzecz, a mianowicie początkowe wyzerowanie liczników. Żeby to wszystko, co napisałem, działało oba liczniki muszą być w miarę dobrze zsynchronizowane, żeby ewentualny poślizg o kilka cykli nie był większy niż powiedzmy 1/10 ramki (gra przecież może sprawdzać joya nawet 3 razy na ramkę).

De facto mamy tutaj znany problem synchronizacji czasu w sieciach teletransmisyjnych i możnaby pokusić się o wykorzystanie znanych sposobów. Dość ciekawą opcją byłoby wykorzystanie sygnału GPS. Moznaby też pokusić się o skonstruowanie liczników w formie dołączanych modułów, zsynchronizować je przy produkcji i po prostu fizycznie wysłać pocztą. Wtedy (zakładając, że bateria pozwoli im działać przez kilka miesięcy) mamy dwa idealnie zsynchronizowane liczniki - przynajmniej na jakiś czas :) Podobny sposób wykorzystuje się bodajże w tokenach bankowych.

Także reasumując - zostawmy na razie problem realizacji IMGL'a i sprawdźmy czy możliwe jest posiadanie dwóch identycznych liczników, które będą ze sobą porządnie zsynchronizowane?

616

(72 odpowiedzi, napisanych Emulacja - 8bit)

jellonek: znam to twierdzenie :) chodzi mi jednak, że kod w C+ można pisać z myslą o pewnej architekturze i choćbyś miał najlepszy kompilator na świecie to nie zastąpi to optymalizacji pod dany procesor. Najlepsze przykłady można znaleźć na naszym "podwórku". Czy da się na małe Atari zrobić takie efekty jak w Numenie pisząc je w C+ i kompilując na 6502? Czy jednak trzeba podejść indywidualnie do procesora i zastosować pewne sztuczki? ;) Wierzę, że GCC jest dobrym kompilatorem, ale PocketAtari.exe z tego co wiem jest kompilowany na eVC+3.0 Microsoftu. Nataomiast skoro (podobno) Arm bazuje na 6502 to można zaryzykować domniemanie, że mogą istnieć podobne sztuczki pozwalające przyśpieszyć działanie emulatora.

Jednym zdaniem - zgadzam się z Draco w tej kwestii :)

617

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

A ja Wam mówię, że jest na to sposób :) Jedyny mankament tego rozwiązania to to, że opóźnienie może się dodatkowo zwiększyć o kilka procent względem rzeczywistego no i trzeba się strasznie nakombinować, żeby to wszystko działało jak trzeba.

Draco: dobrze kombinujesz :) dodaj tylko do tego specjalne timery i synchronizację z fi2.

Pytanie tylko czy warto...

618

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

Żeby było jasne - ja nie twierdzę, że to się da zrobić. To jest tylko teoretyczny pomysł, ale może ktoś wymyśli sposób, żeby to działało.

619

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

Takiej sytuacji nie bedzie. Napisałem przecież, że do komputera podłączany jest interface a Joy do interfaceu i zadaniem czarnego pudełka jest opóźnić Joy'a loklanie tak, aby w obu komputerach event nastpąpił równocześnie. Nie jest to łatwe - wiem, ale mam pewien pomysł jak to rozwiązać :) Kluczem jest tutaj dokładna synchronizacja wszystkich urządzeń.

620

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

Komunikacja po UDP jest tym, co powinno być zastosowane w opcji nr 2 IMHO ;)

Jeśli chodzi o problem rozsynchronizowania komputerów to wyjdzie w praniu. Kiedyś było takie demo WFMH gdzie trzeba było puścić muzyczkę z dwóch komputerów, żeby było stereo - o ile pamiętam słuchałem i nagrywałem przez dobre kilkanaście minut i nic się nie rozjechało, jakkolwiek szansa na rozsynchronizowanie komputerów jakaś tam jest. Aby temu zapobiedz możnaby zrobić dodatkowo kabelek do gniazdka cartridge i synchronizować komputery za pomocą Fi2 i HLT tak, żeby żaden z komputerów nie wyjechal z taktowaniem ani o jeden cykl zegara. jednak w niektórych grach (tych niezręcznościowych) rozsynchronizowanie zegarów miałoby wpływ jedynie na muzyczkę. Np. we wspomnianej rpzeze mnie grze Spy vs Spy wszelkie eventy w grze generowane sa przez grających więc rozsynchronizowanie komputerow o sekunde czy dwie nie będzie miało znaczenia.

Co do czeskiego wynalazku to nie słyszałem, nie sprawdzałem ale w wolnym czasie jak znajde to zobaczę.

621

(72 odpowiedzi, napisanych Emulacja - 8bit)

Fox: mi chodziło tylko o to, że jeśli kod Atari800 my sie zoptymalizowalo i zmodyfikowalo pod kątem ARM-a  (pozwalajac sobie nawet na wstawki w asemblerze) to emulator moglby dzialac szybciej. Nie wiem o ile bo nie jestem specjalista od ARM-ów, ale biorąc pod uwagę, że ARM został opracowany na podstawie 6502 (podobno) mysle, ze mozna by przynajmniej te kilkanascie procent uzyskać. Podkreślam jednak, że to tylko na razie teoria nie poparta żadnymi badaniami.

622

(72 odpowiedzi, napisanych Emulacja - 8bit)

Nosty: napisalem, ze numer chodzi z grubsza na 100% :) na moje oko szybkosc emulacji w przypadku tego dema waha sie od 70 do 100 % ale oglada sie przyjemnie, natomaist Bitter Reality chodzi tak wolno, ze nie da sie ogladac niektorych czesci niestety... ale to wina emulatora. Jeśli chodzi o Pocketa to na moim h4150 emulatros smiga na 100% caly czas chyba, ze jest dostep do dodatkowe pamieci - wtedy spada do kilku procent... z winy przepisywania bankow pamieci.
Co do czasu pracy to nigdy nie mierzylem.... ale dziala dosc dlugo ;) ja i tak laduje codziennie na wszelki wypadek, ale jak sluchalem sobie kilka godzin SID playera albo ogladalem 2,5h film w divxe lecac samolotem to zuzylo sie mniej niz 20% baterii o ile pamietam.

623

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

Trochę źle mnie zrozumieliście. Żadnych "skoków" nie będzie ;)
Ja wcale nie zamierzałem wysyłać 50 pakietów na sekundę ;) To byłby kompletny bezsens.
Jeśli już miałoby tak być to lepiej byłoby przesyłać dane w formie streamingu (tj. streaming audio lub wideo). Wtedy w ciągu jednej sekundy można przesłać znacznie więcej niż 50 bajtów :) A generalnie chodzi o to, żeby mozliwie najdokładniej odtworzyć stany remote joya.

Pierwotnie myślałem o komunikacji takiej, jak w klawiaturze od PC. Przy każdej zmianie jest generowana komenda czyli jeden gracz rusza joyem w prawo to idzie tylko jeden pakiet - gdy puszcza idzie drugi pakiet. Tym sposobem dokładność ruchów jest zachowana za wyjątkiem drobnego opóźnienia od kilkunastu do kilkuset ms.

Podsumowając mamy dwie metody:
- data streaming, w której przesyłany jest aktualny stan portu Joya,
- blitter style packet, w której przesyłane są tylko zmiany stanów.

Teoretycznie pierwsza metoda mimo, że jest bardziej pasmożerna powinna dać mniejsze opóźnienie, ale póki się tego nie sprawdzi to pewności mieć nie można.

Jeśli ktokolwiek oprócz mnie jest zainteresowany proponowanym przeze mnie rozwiązaniem myślę, że watoby znaleźć ochotnika, który podjąłby się wykonania dwóch propotypów. Przetestuje się wszystkie możliwości i zobaczymy. Na pewno w jakąś grę w ten sposób pograć się da :)

624

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

W Hammurabiego, w Spy vs Spy i wiele innych ;) Nie twierdzę, że we wszystkie. Poza tym możnaby stworzyć specjalne gry pod taki interface czy nawet zaimplementować coś podobnego w emulatorze Atari800, wowczas moznaby opóźnić obraz no i obyłoby się bez lutowania :))

Wiadomo, wszystko zależy od opóźnień, ale jeśli np. w grze trzeba szybko ruszać joystickiem, to ruchy będą tak samo szybkie jak normlnie ale odrobinke opóźnione. Zresztzą skoro w Doom'a i inne gry sieciowe grają ludzie z całego świata i jakoś to wszystko chodzi to czemu by to nie miało sie sprawdzić z atarowskimi hitami ;)

Jeśli obaj gracze korzystaliby z tego samego providera i mielinp. neostradę to opóźnienia mogłyby być poniżej 20 ms.

Zreszta, póki się nie spróbuje to sie nie dowiemy w się da grać a w co nie ;)
Pomyślcie tylko... a do tego dodatkowa komunikacja przez Skype :)

625

(51 odpowiedzi, napisanych Emulacja - 8bit)

Panowie! :) Jak już zapewne wiecie nowa wersja Atari800 jest skompilowana na Pocketa :) Niestety zawiera znane błędy (niedziałający shift, control, wolna pamięć) :(

Usiłowałem skompilowac źródła według wskazówek Kostasa ale niestety eVC++ 4.0 wywala mi od 32 do 452 błędów (w zależności od ułożenia plików w podkatalogach ze źródłami). Nie mam bladego pojęcia co jest nie tak :( Większość błędów dotyczy braku możliwości znalezienia plików przez kompilator mimio, iż te pliki sa i to na miejscu. A nawet jak wszystko zgram do jednego katalogu to i tak nic nie daje. Jeśli ktoś ma jakies propozycje - czekam.