atarionline.pl Colossus Chess 4.0 - w czym tkwi tajemnica szybkości Aplle 2e? - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorzbyti
      • CommentTime21 Jun 2019 16:06 zmieniony
       
      Witam wszystkich :)

      Zastanawia mnie jedna rzecz odnośnie tego programu a nie mam kompetencji by samodzielnie sprawdzić implementację i wywnioskować skąd się bierze taka różnica w prędkości działania, na tym samym procesorze, tej samej (według numerków) wersji programu.

      Ciekawe jest to, że w oficjalnych zajawkach tego programu podkreślano, że potrafi on średnio obliczać 170 pozycji na sekundę na ZX Spectrum a wyniki rozgrywek z innymi programami (Colossus dokonał pogromu ówczesnych programów dostępnych na komputery domowe) przeprowadzono za pomocą Apple ][.

      Dziwny marketing lat '80 ;) Bo implementacje na Z80 są prawie 2x wolniejsze od tych na 6502.

      Załączam wynik moich pomiarów dla 30 sek na ruch, czekałem na odpowiedź dla pierwszego d2-d4 przy wyłączonej książce debiutowej (ten czas jest dla programu umowny, stara się w tych granicach dokończyć rozpoczęte przeszukiwanie drzewa etc.). Średnia to liczba pozycji na sekundę.

      Wyniki mnie zdziwiły bo reklamowanie prędkości Spectrum wprowadza w błąd. Jest to jedna z wolniejszych implementacji tego programu (choć najszybsza na Z80).

      Wybija się Atari ze swoim wyższym taktowaniem i Plus/4 z tego samego powodu.

      A teraz sedno wpisu. Wersja na Apple ][ 1MHz 6502 jest prawie 2x szybsza od wersji na Atari!?

      Ciekaw jestem sugestii jak to możliwe. Po za tą wersją pozostałe wyglądają, że implementują ten sam algorytm ale tutaj musi być jakieś usprawnienie?

      Reasumując Colossus Chess 4.0 gra jak solida III kategoria szachowa co dla domowego amatora jest aż nadto. Wersja na Apple (na którym był development) wygląda na wersję turniejową :D

      Szczerze polecam ten najsilniejszy program szachowy na domowe 8-bit komputery.

      pozdr.
      • 2: CommentAuthorgorgh
      • CommentTime21 Jun 2019 16:06
       
      cześć zbyti, oba procesory 6502 i z80 mają porównywalną prędkość, różnica musi leżeć w innych algorytmach
      • 3: CommentAuthorzbyti
      • CommentTime21 Jun 2019 16:06 zmieniony
       
      @gorgh raczej w implementacji bo nie sądzę, by same algorytmy zmieniał co procesor. Za to na Apple już bym podejrzewał inne algorytmy. Sugerujesz, jak rozumiem, gorszą znajomość u programisty Z80 niż 6502 na którym rozpoczął pracę?

      Chociaż patrząc na zachowanie MSX2 która ma Z80 a zakończyła szukanie pierwszego ruchu czarnych po paru 18 sekundach zadowalając się ok 700 pozycjami wskazuje na przynajmniej inne ustawienia wewnątrz programu bo zewnętrzne wszędzie dałem takie same.

      Nawiasem, szkoda, że CC4 nie działa poprawnie na Rapidusie :( na tym procesorze szachownica przestaje mieć 8x8 algorytmy zaczynają szukać po kolumnach 'i' itd. :D Gdyby nie ten szkopuł na prawdę można by pograć z silnym zawodnikiem ;)

      PS. Colossus Chess 3.0 na Atari ma podobne osiągi do tego na Apple ][ w wersji 4.0. Sądzę, że wersja na Apple to raczej jakaś deweloperska a nie turniejowa. Wersja na C64 i Atari ma w moim subiektywnym odczuciu poprawiony algorytm i jest ostateczna - może wolniej liczy ale gra z większym "zrozumieniem" pozycji.

      Programy które mają przeszukane ok 4300 pozycje to zakładam, że mają ten sam algorytm bo to samo miejsce uznały za koniec wyszukiwania, więc ewidentnie realizacja algorytmu na Z80 jest 2x wolniejsza niż na 6502. Jeżeli @gorgh ma racje to się programista nie przyłożył. Wersja Apple ][ i MSX2 to jakieś inne wersje pod tym samym numerem.
      • 4: CommentAuthorzbyti
      • CommentTime21 Jun 2019 23:06 zmieniony
       
      Jakby kogoś interesowała orientacyjna siła gry 8-bit programów liczona w ELO można obadać:

      ->link<- Atari

      ->link<- C64

      lub załączone wyniki miniturnieju.
      • 5: CommentAuthorzbyti
      • CommentTime22 Jun 2019 19:06 zmieniony
       
      @gorgh przeczesałem sporo materiałów za lat '80 i początku '90. Z nieznanych mi powodów parę razy trafiłem na stwierdzenie, że 6502 bardziej się "nadawał" do pisania programów szachowych. Chociaż jakaś część popularnych kiedyś komputerów szachowych miała Z80 to jednak ogromna ich ilość zbudowana była o 6502 z taktowaniem 1, 2, 4 i więcej. Później programiści przeszli na 68000 a na krótko przed upadkiem rynku (na rzecz szachowych programów PC) RISC / ARM.

      Także wydajność może i podobna ale jakieś niuanse decydują.
      • 6: CommentAuthorgorgh
      • CommentTime22 Jun 2019 20:06
       
      programuję zarówno na 6502 jak i Z80 i moim zdaniem zaimplementowanie logiki jest porównywalne na obu procesorach
      • 7: CommentAuthorzbyti
      • CommentTime22 Jun 2019 21:06 zmieniony
       
      Dzięki za opinię :) Skoro masz takie doświadczenia to pozostaje mi tylko uznać, że tam gdzie 6502 pokazuje swoją przewagę nad Z80 to wynika to z mniejszego nakładu pracy nad wersją dla Z80 lub/i gorszą znajomością procesora przez twórcę oprogramowania.

      EOT

      ps. Z80 w komputera szachowych był stosowany głównie do 1980 roku, po 80-tym 6502 i jego odmiany. Widać to na przykładzie jednej z serii komputerów Fidelity Chess Challenger. Zwłaszcza szachy innej firm z serii Mephisto używały 6502/65C02.
      • 8:
         
        CommentAuthorTheFender
      • CommentTime22 Jun 2019 21:06
       
      Zapewne dlatego tak dobrze się portuje gry z ZX Spectrum.
      Pomijając kwestie typu ilość kolorów na ekranie ;)
      • 9:
         
        CommentAuthortdc
      • CommentTime25 Jun 2019 08:06 zmieniony
       
      Witaj zbyti! Fajnie że napisałeś - ciekawie i na interesujący mnie temat!;)

      W dzieciństwie sam zauważyłem jak kolosalna jest różnica pomiędzy programami szachowymi na różnych komputerach i tym co wyprawia CC! Dlatego zainteresowało mnie to, jak to się dzieje, do tego szybkość działania tego programu również zwracała uwagę.

      Któregoś dnia przypadkiem dotarł do mnie jakiś mistrz szachowy (w PRLu) i powiedział mi "ja programy komputerowe rozwalam w 5 minut", więc powiedziałem mu to niech Pan sprawdzi ten! Chodziło mi bardziej o to aby ktoś kto się na tym zna ocenił jakość tego programu, no i nie udało mu się pokonać CC w parę minut, po może 30 może 60 minutach (już nie pamiętam bo to dawno było;) ) musieliśmy przerwać grę bo On już musiał lecieć gdzieś.

      Niemniej ten test był wartościowy, osoba która ma osiągnięcia w tej dziedzinie, nie mogła wygrać z programem komputerowym w ciągu paru minut. Jako dzieciak miałem porównanie, że to nie ja jestem taki kiepski, tylko to program jest zadziwiająco dobry;)

      Bawiłem się też innymi programami szachowymi na różnych komputerach i konsolach, wiec widziałem że przepaść jest między nimi a CC. Najgorsze szachy są chyba na konsolę NES, ja bawiłem się nimi na Pegasusie;))


      Jeszcze raz dzięki za wiele ciekawych informacji, linków i zestawień!;)
      • 10: CommentAuthorzbyti
      • CommentTime25 Jun 2019 20:06 zmieniony
       
      @tdc fajnie, że skorzystałeś i dzięki za miłe słowa i fajne wspomnienie :)

      Jeżeli chcesz pograć z fajnymi programami (także pod względem historycznym) to pobierz sobie z ->link<-

      CB-Emu_Pro (Chess Computer Emulator) (NEW!)
      Emulator for more than 200 chess computers (based on MAME/MESS)
      (includes now MessChess for usage in any UCI/WB-GUI)
      Download from my private cloud folder CB-Emu

      Tasc-Emu (Tasc Chess Emulator) (NEW!)
      Emulation of the Tasc Final ChessCard & ChessMachine (based on MAME)
      (complete collection of all existing chess engines: King/Gideon/Rebel)
      Download from my private cloud folder CB-Emu

      CB-Emu ma taką zaletę, że możesz sobie dobrać przeciwnika pod względem własnej siły - zobacz tu ->link<- lub tu ->link<-

      Bo te profile w Chessmaster to kpina, słaby gracz gra dobrze aż robi jakiś mega głupi ruch itp. Te Mephisto czy Fidelity to inna lepsza bajka niż Chessmaster :)
      • 11:
         
        CommentAuthorKaz
      • CommentTime27 Jun 2019 13:06
       
      Fajnie, że tak zgłębiłeś temat CC. Kiedyś myśleliśmy o zorganizowaniu takiego turnieju szachowego w różnych wariantach:

      ->link<-
      • 12: CommentAuthorzbyti
      • CommentTime28 Jun 2019 00:06 zmieniony
       
      @Kaz dzięki za ciekawy wątek z linku - przeczytałem :) Szukałem wątków z CC i były dwa a tego nie znalazłem. Widać trochę informacji tam podanych podałem jeszcze raz.

      Chociaż @urborg był nieścisły: CC 4.0 dokonał pogromu tak jak napisałem uruchamiany na Apple ][. Myślenie na czasie przeciwnika można wyłączyć (napisał, że nie można) - Shift + Q i Prediction na 0 - tylko po co? ;)

      Nadmienię, że kiedyś miałem II kat. więc 1800 ELO. CC 4.0 dał mi teraz dużo zabawy.

      Pamiętam, że jak byłem nastolatkiem to znajoma mi zaproponowała grę z Colossusem na C64 wersja na cartridge czyli 2.0. Wtedy jeszcze nie chadzałem do klubu. Na standardowych ustawieniach chyba po małym cwaniakowaniu dostałem bęcki.

      Teraz jak sobie przypomniałem tę historię to odpaliłem sobie dokładnie tego karta i zagrałem. Ku mojemu zdziwieniu wygrywałem bez większego wysiłku.

      Zaszukałem informacji i tak wylądowałem z CC 4.0 na Atari :D

      Ku mojemu zdziwieniu stawił mi znaczący opór przy ustawieniu 30 min dla zawodnika na partię i włączonej książce debiutowej :) w końcu wyceniany był na 1676 czyli mocna III kat. do tego gra bez głupich błędów jak podstawienie figury etc. jak to się zdarza nawet szachistom II kat.

      ps.@Kaz jak interesuje Cię zagranie emulator vs. "coś nowego" to możesz tak zrobić jak tutaj
      programik przechwytujący kamerkę potrafi też chwytać kawałek pulpitu i interpretować jako szachownice więc można jakiś silnik UCI (lepiej jakieś automaty Fidelity lub Mephisto) sprzęgnąć z emu atari i gra będzie automatyczna.
      • 13: CommentAuthorzbyti
      • CommentTime28 Jun 2019 01:06
       
      Jako ciekawostkę podam które 8-bitowe szachy miały dalszą karierę i pod jakim szyldem.

      ARB V2 Sargon 4.0 - Sargon 2.5 Chafitz Modular Game System, was identical to Sargon II but incorporated pondering. It received a 1641 rating at the Paul Masson tournament in June–July 1979, and 1736 at the San Jose City College Open in January 1980.

      Chessmaster was first released as Chessmaster 2000 in 1986 by Software Toolworks, Inc. with a chess engine by David Kittinger, loosely based on MyChess II published by the same vendor since 1984. Kittinger's program was then modified and used in some of the versions of Chessmaster 2100 and Chessmaster 3000.

      In cooperation agreement between Fidelity Electronics and Software Toolworks in 1988, an enhanced and improved Sargon III was market as Fidelity Chessmaster 2100
      • 14:
         
        CommentAuthortdc
      • CommentTime28 Jun 2019 21:06
       
      Dzięki zbyti!;) Z chęcią się zapoznam;)
      • 15: CommentAuthorzbyti
      • CommentTime21 Jul 2019 14:07 zmieniony
       
      @gorgh może Cię zainteresuje załącznik? Widziałem, że wymiatasz na Z80 (mówię o yoomp).

      Kod Sargona na Z80.

      Książka ->link<-
      • 16: CommentAuthorzbyti
      • CommentTime24 Aug 2019 18:08 zmieniony
       
      Sargon,
      a family of chess programs by Dan and Kathe Spracklen. They started chess programming in 1977 on a Z-80 based Wavemate Jupiter III in assembly language. The first Sargon version had a 10x12 board board representation and a two ply alpha-beta search without quiescence but a SOMA like exchange evaluation.

      Sargon I was already ported to the Apple II by Kathe Spracklen's brother, Gary Shannon. Despite its lower frequency, they found the 6502 the much better processor for their program than the Z80, and soon the MOS Technology processor became the major target platform.


      ->link<- tutaj o tym czytałem. Szkoda, że temat nie jest szerzej poruszony.

      ps. zdublowałem info celowo, bo wątek wypłynął tutaj.