atarionline.pl ATARI XE vs C64 - 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:
       
      CommentAuthorjhusak
    • CommentTime27 Nov 2011
     
    @Rastan
    jhusak: "Spectrum ->Atari "łatwa" z dokładnością do szczegółów (emulator :)".

    Tutaj się nie zgodzę. Musiałbyś pogadać z XXLem, ekspertem od portowania gier z ZXa. Gdyby to było takie "łatwe" mielibyśmy już bardzo dużą ich liczbę. Niestety pewnych ograniczeń nie da się pokonać. Atari nie ma mapy kolorów w hiresie, a i procesor 6502 w niektórych operacjach jest wolniejszy od Z80.


    Masz prawo się nie zgodzić. Prawda jest taka, że 6502 1.8 MHz i Z81 3.5 MHz są porównywalne prędkościowo. Np. Atari ma stronę zerową, która pozwala przyspieszyś krytyczne operacje o 33% (ot tak strzeliłem, zejście z 4 cykli do 3 w większości operacji na pamięci)

    Ponadto uzyskanie organizacji pamięci ekrau jak w Spectrum to jest 1:1, i to pod tym samym adresem! Zyskujemy czas na dźwiękach, które nie zajmują czasu procesora, a na spectrum owszem (chyba, że yamaha) i nie dostajemy kolorów (to jest główna bolączka). Jednak NIE WIDZĘ żadnych problemów poza tłumaczeniem kodu w przenoszeniu gier z Zx na Atari, KAŻDEJ gry.

    Gadałem z xxl. Robi to mniej więcej tak , że procka po procce przepisuje kod z80 na 6502 nic nie ruszając (wszystko zostaje tam, gdzie było, organizacja pamięci danych/ekranu również. Podejrzewam, że podpiera się też emulatorem (ja bym się podpierał)

    Prawda jest taka, że te gry nie wykorzystują możliwości kolorystycznych Atari i trochę trzeba się nakodować, a nie ma translatorów kodu; trzeba by taki napisać, a i tak wtedy kod byłby 3 x dłuższy i 3 x wolniejszy.

    Ale potem można było by optymalizować.

    Powodem, że te gry nie powstały, były zapewne różne (polityka i brak czegośtam).

    Na potwierdzenie moich słów sobacz, ile i jakie gry zostały przez xxl przeportowane z zx spectrum na Atari i w jakim czasie.
    • 2:
       
      CommentAuthorWolfen
    • CommentTime27 Nov 2011 zmieniony
     
    @_pepis - pewnie ze nie trzeba kupowac C64 zeby zobaczyc Paralax Scrolling ;) wystarczy Atari ->



    :)
    • 3:
       
      CommentAuthorTheFender
    • CommentTime27 Nov 2011 zmieniony
     
    @jhusak ale nie da się w prosty sposób przerzucić grafiki z ZX Spectrum na Atari8. Owszem, da się przerzucić w miarę prosto ale bez atrybutów koloru - czyli w 2 kolorach, co może wyglądać dziwnie. Z tego co zdążyłem zaobserwować xxl wybiera do portowania gry raczej monochromatyczne a potem je podkolorowuje na "atarowski" sposób (czyli ile się da).

    Napisałeś coś również o tym, że organizacja pamięci danych/ekranu zostaje tam, gdzie było. No nie zgodzę się. ZX Spectrum ma nieco inny sposób organizacji pamięci ekranu niż A8. W Atari zapis liniowy bajt po bajcie wypełni nam ekran w sposób ciągły. Na ZX Spectrum pamięć obrazu zajmuje 6144 bajty a podczas zapisu bajt po bajcie do tej pamięci punkty w jednej linii stawiane są jeden po drugim ale poszczególne linie nie są stawiane jedna za drugą. Ekran jest podzielony na 3 części (64 linie po 256 pixeli). I teraz tak, najpierw wypełniana jest linia 0,8,16,...56 następnie wypełniane są linie 1,9,17...,57. Procedura powtarza się do zapełnienia się 1/3 ekranu. W analogiczny sposób wypełniana są pozostałe 2 części. (źródło: K.Kuryłowicz,D.Madej,K.Marasek "Przewodnik po ZX Spectrum")
    Na Atari trzeba napisać zapewne procedurkę przekładającą taką organizację danych na atarowską.
    • 4: CommentAuthorbob_er
    • CommentTime27 Nov 2011
     
    nic nie trzeba pisać. jhusak wspomniał, że atari ma taki fajny bajer - antic. a ten bajer pozwala wyświetlać linie w dowolnej kolejności. tak więc można wyświetlać linie w tej kolejności w jakiej to opisałeś. linie można też sobie poukładać na milion innych sposobów.
    • 5:
       
      CommentAuthorTheFender
    • CommentTime27 Nov 2011
     
    Hmm, no to faktycznie. Ale pozostaje główna sprawa, czyli kolorów. Pewnie, że mając do dyspozycji brak gry albo wersję gry mono z lekkim podkolorowaniem - to ta druga opcja jest jedynie słuszną. No ale wtedy nie mówmy, że konwersja jest 1:1. Tak czy siak, xxl jest tutaj czarodziejem :)
    • 6:
       
      CommentAuthorjhusak
    • CommentTime27 Nov 2011 zmieniony
     
    Dzięki @bob_er za wyrękę :)

    @TheFender, czepłeś się tych kolorów. Zwróć uwagę, jak dużo _znanych_, _kultowych_ i _lubianych_ gier spectrum ma grafikę mono. Te portujemy 1:1. Konwersja jest 1:1. A że w innych kolory nie te? No wybredny ten użytkownik, wybredny.

    Zwróć uwagę na port Amaurote na ZX Spectrum. Nie chciało im się, a mieli na tacy podane. A może procek nie wyrobił? No żart, przecież ma 3.5 MHz (może jednak nie jest taki szybki...) No dobra, Amaurote na Atari ma doubleBuffering, co na Spectrum zajmuje trochę czasu, bo sprzętu brak.

    Jak piszesz, główna sprawa, to w ogóle obecność grafiki. Nie można powiedzieć, że się gry ze Spectrum nie da przeportować na C64, bo paleta kolorów jest inna. Podobnie na Atari, tylko tu paleta jest jeszcze inna :p
    • 7: CommentAuthorat0mic
    • CommentTime28 Nov 2011
     
    Jeśli chodzi o animację na c64 i A8 to różnie bywa.
    Moja ulubiona gra KARATEKA na C64 chodzi połowę wolniej i nie da się grać - ja się denerwuję tą powolnością. Na A8 są ładniejsze kolorki ale niestety antyaliazing postaci zmienia kolor z niebieskiego na szary jak się odejdzie od wody (start gry-pewnie ograniczenie do 4kolorów w linii). Tam gdzie da się zastosować sprites c64 wygrywa płynnością, jednak nie zawsze się da i dlatego 1,77Mhz vs 0,98Mhz robi kolosaljną różnicę. Co do gry Ghost Chaser - proszę sobie wyrobic opinię samemu. I tu skarzaty i tu ale jakby na A8 bardziej kolorowo. Jest boot Jack - bardziej grywalne na A8. Keystone Kapers - nie do zrobienia na C-64 z taką grafiką/kolorami a to prosta gra. Oczywiście z paralaksą na A8 trudniej itd.
    Gry Stealth nie ma co nawet porównywać - c64 ma za mało kolorów żeby tu konkurować.

    Jako komodorowiec i atarowiec uważam że A8 nie było dobrze oprogramowane a potencjalne możliwości zaprzepaszczono przez złą politykę firmy. Cieszy mnie tym bardziej polska scena a8. Zabawa przednia z podziwiania - może jeszcze uda mi się kiedyś coś na a8 napisać. Pozdrawiam wszystkich!
    • 8:
       
      CommentAuthorTheFender
    • CommentTime28 Nov 2011 zmieniony
     

    jhusak:

    Nie można powiedzieć, że się gry ze Spectrum nie da przeportować na C64, bo paleta kolorów jest inna. Podobnie na Atari, tylko tu paleta jest jeszcze inna :p
    W sumie to nic takiego nie napisałem. To nie jest problem podmienić za czerwony - "czerwony" atarowski, czy komodorowski. Problem, żeby ten "czerwony" dało się wogóle nanieść w odpowiednie miejsce (wiadomo, ograniczenia). Z tymi grami mono na ZX Spectrum hmmm, no niby tak. Ale są też gry stare, takie jak Jet Set Willy, Manic Miner (o tę akurat ktoś kiedyś zaczął BARDZO ŁADNIE portować na A8, ciekawe co z tym projektem się dzieje swoją drogą). Że nie wspomnę o takich jak Dan Dare,Cybernoid, czy też może Savage które to raczej kiepsko będą wyglądały w hiresie 2-kolorowym.
  1.  
    Manic Miner już jest chyba bliski ukończenia:
    Swoją drogą ta konwersja wygląda naprawdę świetnie: tryb hires w wielu kolorach wydaje się jednak zupełnie możliwy do zastosowania w grach (nie tylko w statycznych obrazkach).
    • 10:
       
      CommentAuthorRastan
    • CommentTime28 Nov 2011
     
    @TheFender: w hi-resie Atari nie posiada 2 kolorów tylko 1 kolor + 1 odcień. :)

    @jhusak: Samo przepisywanie kodu z Z80 na 6502 w stosunku 1:1 nic nie da. Gra będzie po prostu za wolno chodzić (zresztą to zależy od typu gry). Gdyby to było takie proste XXL przeportował by już kilka (a może nawet kilkanaście) gier. Z rozmowy z XXLem na party SV2011 dowiedziałem się, że port Knight Lore z ZXa wymagał dodatkowych zabiegów optymalizacyjnych, tak, żeby gra chodziła płynnie.
    Jeśli chodzi o Amaurote to na ZXa chodzi znacznie szybciej (no i lepiej wygląda, ponieważ posiada dodatkowe animowane wstawki).

    Na Atari podczas gdy na ekranie jest więcej obiektów gra drastycznie spowalnia. To było zapewne powodem tego, że na C-64 zrezygnowali z grafiki 3D. Tam przecież procesor jest słabszy niż w Atari.
    • 11: CommentAuthorxxl
    • CommentTime28 Nov 2011
     
    wydawalo mi sie ze rozmawialismy o Jet Set Willy, KnightLore byl z BBCMicro. ale tak czy owak z80 nie jest wcale taki wydajny z jednym malym ale bardzo istotnym (w niektorych grach) wyjatkiem. kopiowanie danych z uzyciem stosu - tu niestety 6502 wymieka bardzo. faktycznie przenoszenie gier z zx to deasemblacja i przepisywanie procedur (nie rozkaz w rozkaz tylko procedura w procedure) pozniej poprawianie bledow a nawet algorytmow; a obraz to co ktos u gory napisal lepiej pozostawic jak jest poniewaz odświezanie takiego (pocietego) ekranu daje duzo lepszy wynik niz gdybysmy to robili przy standardowej atarowskiej organizacji ekranu.
    • 12: CommentAuthorat0mic
    • CommentTime28 Nov 2011
     
    na ZX spectrum 128 - AMAUROTE to moja ulubiona gra choć i wersja Atari XL/XE może być:) na c64 schrzanili sprawę - można było zrobić pajączka i muchy na sprajtach jak Last Ninja I,II,III z maskowaniem sprajta jeśli zasłania go obiekt a tło też jest graficzne...
    • 13:
       
      CommentAuthorRastan
    • CommentTime28 Nov 2011 zmieniony
     
    @xxl: faktycznie chodziło o wersję BBC. nie wiem dlaczego cały czas mi się wydaje, że Knight Lore to port z ZXa. :) może dlatego, że jest to jedna z pierwszych gier jakie na ten komputer widziałem.
    a jeśli chodzi o Maniac Minera wygląda świetnie, ale to chyba nie jest port, to konwersja.
    • 14: CommentAuthorsis101
    • CommentTime28 Nov 2011
     
    Przepraszam, że piszę tutaj pierwszy swój post oraz trochę nie w temacie. Najwyżej proszę o usunięcie wpisu przez admina. Patrząc na porównanie graficzne i "silnikowe" Crownlanda z grami tego typu na C64 czy istnieje możliwość zrobienia/przeniesienia na Atari pozycji jaką jest Giana Sisters? Jakie istnieją ewentualne trudności i problemy?
    • 15:
       
      CommentAuthorjhusak
    • CommentTime28 Nov 2011 zmieniony
     
    Ja tu nie widzę problemu. Jednak gierka jest taka... jakby to powiedzieć ... trochę nijaka, nie? Może na Atari byłaby bardziej atrakcyjna, bo takich było bardzo niewiele. Jednak jest dość wolna, mało dynamiczna.
    • 16:
       
      CommentAuthorjhusak
    • CommentTime28 Nov 2011 zmieniony
     
    Jeśli chodzi o Amaurote to na ZXa chodzi znacznie szybciej (no i lepiej wygląda, ponieważ posiada dodatkowe animowane wstawki).

    No dobra, pomyliło mi się z kątem prostym :)

    Chodziło mi o Action Biker, który na Spectrum nie mógł powstać w aksonometrii płynnie skrolowanej.

    Notabene, w Action Biker na Atari cała plansza siedzi w pamięci i skrol jest czysto sprzętowy, na C64 jest sprzętowo/programowy (jak wszystko co się skroluje), a działa tak samo.
    • 17:
       
      CommentAuthorjhusak
    • CommentTime29 Nov 2011 zmieniony
     

    Rastan:

    Gra będzie po prostu za wolno chodzić (zresztą to zależy od typu gry).


    Proszę merytoryczniej (wolniej, szybciej to nic nie mówi, poza autorem, który to powiedział:)
    Gdyby to było takie proste XXL przeportował by już kilka (a może nawet kilkanaście) gier.

    Ależ xxl właśnie kilka przeportował :) Ale to jest trochę uciążliwe bawić się w translator kodu. Co innego, jeśli jest np. 5 gierek z podobnym silnikiem, to wtedy jest większy sens.


    Żeby jeszcze wyszło na moje :p proszę bardzo:

    Fakt (za xxl), pobranie dwóch rejestrów 8-bit ze stosu Z80 10 cykli, odłożenie 11 cykli.
    6502 to samo mniej więcej (PLA TAX PLA = 10 cykli, PHA TXA PHA = 8 cykli)

    Czyli niemal 2 x wolniej.

    Ale ładowanie do rejestru l/h bezpośrednio z pamięci zajmuje 20 cykli, a na 6502 8 cykli, i jest szybciej o ca 50 %. Zajmuje 6 bajtów, a na Z80 4.

    Gdy porównuję czasy wykonania porównywalnych instrukcji, są one podobne.

    Ale za to triki w postaci pozbycia się niepotrzebnych instrukcji w specjalnych przypadkach (wystarczy w 10% kodu) pozwalają nadrobić ew. różnice naszemu 6502.

    Żeby sprawdzić to wszystko trzeba by opracować kilka prostych testów, m. in.:
    1- przepisanie 16 kb w nowe miejsce
    2- softsprite - skopiowanie fragmentu pamięci z nałożeniem dwóch masek (z=tło&maska|sprite)
    3- dodanie 16384 jednobajtowych liczb
    4- dodanie 16384 dwubajtowych liczb
    5- przesunięcie 16kb w prawo o 1 i o 4
    6- zamiana nibbli w bajcie
    7- obliczenie sumy kontrolnej 16 kb danej jakimś ciekawym wielomianem.
    8- jeśli jest jakieś zastosowanie na operacje stosowe, to też, np. obliczanie wartości długiego wyrażenia a la forth.

    Każdy z tych testów miałby dwie wersje: najkrótszą oraz najszybszą.

    Rezultat byłby w cyklach, aby można było porównywać przy różnych zegarach.

    MHz to nie wszystko, nie wszystko...
    • 18: CommentAuthorEagle
    • CommentTime29 Nov 2011 zmieniony
     
    @xxl: zaintrygowałeś mnie tym stosem.
    Chodzi o coś takiego?
    Przepisanie 256 bajtów.
    LD DE,0000h
    LD HL,4000h
    LD BC,0100h
    LDIR
    • 19:
       
      CommentAuthorRastan
    • CommentTime29 Nov 2011
     
    @jhusak: ale po co taka niepotrzebna dyskusja, wyliczenia itp. swoją opinię oparłem na rozmowie z xxl'em. jeśli Ciebie temat bardzo interesuje o szczegóły musisz pytać się jego (aczkolwiek faktycznie xxl wspominał jeszcz o konwersjach z bbc, co umknęło mojej uwadze).

    nikt nie broni Ci spróbować samodzielnie coś przeportować i udowodnić, że to jest banalne. wszystko jest fajne w teorii i do czasu kiedy się za to nie weźmie. a zatem próbuj i podziel się doświadczeniem, ja chętnie się czegoś dowiem.
    • 20: CommentAuthorxxl
    • CommentTime29 Nov 2011
     
    @Eagle chodzi o to ze z80 ma rejestry 16 bitowe ktore mozna przesylac przez stos, stos mozna ustawic na dowolne miejsce w pamieci i dodatkowo nie martwic sie indeksowaniem. szerokosc rejestrow idealnie pasuje do kopiowania np "klockow" na ekran.
    obrazowo:
    ld sp,hl - zrodlo1
    pop de
    pop bc
    ld sp,hl - zrodlo2
    exx
    pop de
    pop bc - np 2 klocki po 32 bity w rejestrach
    ld sp,hl - przeznaczenie
    push bc
    push de
    exx
    push bc
    push de
    i w koleczko
    dodatkowo szczesliwie sie sklada ze mozesz aktualizowac zrodlo prosto add (16 bitowe) dla kazdego z klockow (2 zrodla) a przeznaczenie jeszcze prosciej przez organizacje ekranu wystarczy inc h (8 bitow). kasowanie ekranu ta metoda jest bardzo szybkie. moze niezbyt szczesliwy przyklad ale metode mysle dobrze przedstawilem.
    • 21:
       
      CommentAuthorjhusak
    • CommentTime29 Nov 2011 zmieniony
     
    @Rastan, chciałbym nieśmiało zauważyć nasze zróżnicowanie w podejściu.
    Piszesz: szybciej, wolniej, lepszy, gorszy itp. I jesteś pewien tego, co piszesz :)

    Ja chciałem przełożyć twoje niezbyt konkretne (bez urazy, nie każdy musi być koderem) wypowiedzi na konkret w ramach łamania stereotypów.
    Ponieważ z ciekawości zajrzałem do kilku rozkazów, ile one się czasu wykonują (wcześniej unikając Z80 jak ognia wmawiając sobie, że to jest GORSZY procesor, na podstawie jakichśtam wcześniejszych czyichś opinii)
    Jednak gry na ZX są całkiem żwawe (niektóre). Zaciekawiło mnie jak to jest i już wiem - Z80 też ma swoje triki, a pod wieloma względami jest ciekawszy dla trikowców; poza tym wygląda na dużo łatwiejszy dla kompilatorów.

    Myślę sobie o takich porównaniach jako o takim grupowym projekcie - sam nie będę tego robił, bo się nie znam na Z80, a bez praktyki, nawet jak się poznam, to nie osiągnę tego, co można. Spoko mogę podejść do części 6502, ale są tu ode mnie lepsi wyjadacze.

    Pamiętam taki trik ze stosem na Amidze (czy ST) - na Motoroli 68000
    Też się ustawiało stos na miejsce źródłowe, ładowało się wszystkie rejestry (8 rejestrów danych i siedem czy sześć adresowych) i popowało. Było ze dwa razy szybciej, niż normalnie pamięć - pamięć.
    • 22:
       
      CommentAuthorRastan
    • CommentTime29 Nov 2011
     
    @jhusak: faktycznie piszę: szybciej, wolniej, lepiej, gorzej, a opinie te opieram na własnych obserwacjach. nikomu ich nie narzucam. twoje wyliczenia są ok. ale nic z nich nie wynika i to czy Ty lub ja jesteśmy koderami nie ma tutaj najmniejszego znaczenia. to są tylko pojedyncze instrukcje, które mogą się szybciej lub wolniej wykonywać na konkretnej maszynie. w grach stosowane są różne sztuczki i triki i żeby coś więcej na ten temat napisać trzeba mieć duże doświadczenie w tej działce - tzn. przeportować jakieś tytuły. ja go nie posiadam, Ty również, więc pozostaje nam słuchać opinii autorytetów w tej kwestii. i ja tak robię. nie podobało Ci się stwierdzenie, że gra będzie chodzi zbyt wolno. zaznaczyłem, że to zależy od typu gry. jako ciekawostkę napiszę Ci, że na party SV2011 xxl pokazywał na port gry z C-64, który chodził bardzo szybko (praktycznie z taką samą szybkością jak na C-64). gra jednak była stosunkowo prosta. tak samo jest z portami z innych platform i w tym również z ZXa. gdy gra zawiera różne triki po to by wyświetlić np. większą liczbę obiektów itp. to będzie po prostu wolniejsza i będzie wymagała dodatkowych zabiegów optymalizacyjnych.
    • 23:
       
      CommentAuthorjhusak
    • CommentTime29 Nov 2011
     
    @Rastan, ok, zostawmy to.

    Kiedyś wezmę na tapetę to nieszczęsne Amaurote. Głowę dam, że może to chodzić szybciej na Atari. W chwili wolnego czasu sobie zerknę.
    • 24:
       
      CommentAuthorRastan
    • CommentTime29 Nov 2011
     
    @jhusak: jeśli udałoby Ci się przyspieszyć Amaurote to szacunek. uważam, że to jest możliwe. mam takie wrażenie, że kod w obecnej formie nie jest optymalny. :)
  2.  
    Well,

    looking at the youtube video of Amauroute on ZX *it seems* some things (besides gfx, animations) are different there...

    1) On the ZX the insects most of the time seem to leave you alone, they go on a pre-defined route. Not so on the Atari, they always go after you, so you lose lots of energy and most often a life.

    2) On the ZX the "springing" bombs don`t need to be very accurate, they will blow-up an insect, even if they land a few centimeters in front/behind/besides the insect. Not so on the Atari, the springing bombs have to be extremely accurate or precise there, otherwise they will miss the insect.

    3) On the ZX it looks like you not only have to kill the Queen, but also all insects that are in this level. Not so on the Atari, there it is enough if you kill the Queen and the level is solved (on to the next boring level).

    4) On the ZX the vehicle seems to walk as fast as the insects (or even faster), so even if they follow you, its easy to escape. Not so on the Atari, there the vehicle seems to be slower than the insects, so if they are after you, they will almost always get you.

    At least thats how I remember Amauroute on the A8. Nevertheless, in my eyes the game is extremely boring and dull on the A8... -Andreas Koch.
    • 26:
       
      CommentAuthorjhusak
    • CommentTime29 Nov 2011 zmieniony
     
    and scary :O
    well, I do not see much difference; anyway, when insects follow you the natural thing is the more of them the more game slows down. So on Atari the game will be slower because of this.

    OK, I have fired-up the two versions in paralell (48k without animations) and Atari version and Atari version is about 50% slower.

    This is especially noticable during entry level animations and transitions.

    Btw, the insects follow you when there is the flying insect around there. If you kill it, the rest will not be following you.

    Besides the speed I see no difference in gameplay between the two.
    • 27: CommentAuthorat0mic
    • CommentTime2 Dec 2011 zmieniony
     
    kilka rysunków w stylu ZX SPECTRUM na C64 - pełne retro.
    Dla mnie bomba :)
    ->link<-

    ->link<-

    ->link<-


    Czy można "pokolorować" hires jak w Manic Miner do pełnoekranowych rysunków w Hires na A8?
    A może można lepiej, z użyciem 16 odcieni ?
    • 28: CommentAuthoremkay
    • CommentTime2 Dec 2011
     
    Hi.
    Hires allows up to 8 shades. 16 shades are only possible with GTIA modes.
    • 29: CommentAuthoremkay
    • CommentTime2 Dec 2011
     
    How to add pictures to the text?
    • 30: CommentAuthoremkay
    • CommentTime2 Dec 2011
     
    Some addition to Yoomp! .
    The game uses the double scanline mode at 32 bytes width. This leaves ca. 1,65MHz. C64 has also some DMA cycle stealing, which comes to ca. 0,9MHz. So the CPU in Yoomp! has the 1,7x speed compared to the C64, This means 70% faster, not just 30%.
    • 31:
       
      CommentAuthordely
    • CommentTime2 Dec 2011
     
    This leaves ca. 1,65MHz.

    Yes, with Antic switched off.
    • 32: CommentAuthoremkay
    • CommentTime2 Dec 2011 zmieniony
     
    3200 cycles per frame used. 50Hz = 160000
    clocking 1,78 -0,160000 = 1,62
    • 33:
       
      CommentAuthorjhusak
    • CommentTime2 Dec 2011 zmieniony
     
    Antic switched on and narrow screen. However, exact cycles stolen are to be counted yet.

    (Altirra Hardware Reference):



    So it steals 48 cycles every odd line
    and 7+9 = 16 cycles every eve line
    96 lines by 48 cycles (antic fetches data up)
    96 lines by 16 cycles (only pm dma and memory refresh)
    We can count average 192 lines every line steals 32 cycles.
    in general it steals 64*96 = 6144 cycles per frame
    Times 50 equals about 307000 cycles.

    So ladies and gentelmen

    1790000 cycles per second - 307000 = 1493000

    So in yoomp processor speed is about 1.5 MHz, it is still 1.6 faster than C64.

    Anyone doubts?

    So I can see no problem in porting yoomp to ZX Spectrum with 25 frames/sec
    • 34: CommentAuthoremkay
    • CommentTime2 Dec 2011
     
    Yeah, refresh has to be added.
    • 35:
       
      CommentAuthorjhusak
    • CommentTime2 Dec 2011
     
    Well, subtracted...
    • 36: CommentAuthoremkay
    • CommentTime2 Dec 2011 zmieniony
     
    added for substraction, added to the stealing of cycles.
    • 37:
       
      CommentAuthorjhusak
    • CommentTime2 Dec 2011 zmieniony
     
    So subtracted from cycles left:) (===added with negative sign)

    BTW we are arguing saing the same thing :)
    • 38: CommentAuthoremkay
    • CommentTime3 Dec 2011
     
    But we could do some addition to the cycles, because ANTIC is copying every 2nd line.
    A 32 byte line needs (*) 6 cycles (LDA , STA ) * 96 lines * 50 Hz ....
    This exchanges the CPU cycles of 0,9MHz. Without this, we'd have a black line every 2nd line.
    • 39: CommentAuthoremkay
    • CommentTime3 Dec 2011 zmieniony
     
    And I hope we get this mode fully supported: 256 colours without interlace.

    • 40:
       
      CommentAuthorjhusak
    • CommentTime3 Dec 2011
     
    I do not understand your post #39.
    • 41: CommentAuthorGonzo
    • CommentTime3 Dec 2011
     
    emkay - how to add pictures to the text?
    just put a link to the external image, thats all :)
    • 42:
       
      CommentAuthorjhusak
    • CommentTime3 Dec 2011 zmieniony
     
    SDLSTL   =   $0230
    SDMCTL = $022F
    COLBK = $D01A
    org $600
    mwa #dlist SDLSTL
    mva #$21 SDMCTL
    loop: lda:cmp:req 20

    lda #$f
    sta COLBK

    ldx #22
    ldy #0
    l1: dey ; 2 \ this takes 5*256-1 cycles = 1279 cycles
    bne l1 ; 3 /
    dex ; 2
    bne l1 ; 3

    ; overall (1279 + 5)* x -1
    ; equals 1284*23 = 29532
    lda #$0
    sta colbk
    jmp loop

    dlist:
    :3 .db $70
    .db $4d, 00, $a0
    :95 .db $0d
    .db $41, <dlist, >dlist


    This code above does over 29500 cycles in one vbl (we can add vblkint about 500 cycles :)
    So this is real and touchable 1.5 MHz. as I counted before.

    However, the E grmode allows to execute 27000 cycles per frame, which gives 10% less power, so 1.350 MHz in graphics mode E.

    25000 cycles in text mode 40x24 per frame, which gives 1.25 MHz.


    Anyway, slightly off-top.
    • 43:
       
      CommentAuthorjhusak
    • CommentTime3 Dec 2011 zmieniony
     
    How to add images to the text?

    (edit: misunderstanding, but this is always helpful)
    1. upload picture to post, submit.
    2. copy the link of attachment
    3. paste it into edited again post
    4. append #.png or #.jpg to the link, submit.
    http://atarionline.pl/forum/?PostBackAction=Download&AttachmentID=1723#.png
    • 44: CommentAuthorGonzo
    • CommentTime3 Dec 2011
     
    jhusak :)) myślałem, że emkay pyta się jak tu na forum wstawić obrazek :)
    • 45:
       
      CommentAuthorjhusak
    • CommentTime3 Dec 2011
     
    A ja myślałem, że to Ty pytasz emkaya :)
    Jakoś przeczytałem to tak, że sobie "I" w myślach wstawiłem i się zmienił sens :)

    emkay - how to add pictures to the text?
    (I) just put a link to the external image, thats all :)
    • 46: CommentAuthorGonzo
    • CommentTime3 Dec 2011 zmieniony
     
    nie, ja tylko zacytowałem pytanie :)
    a skoro jeszcze jestem to:
    • 47: CommentAuthoremkay
    • CommentTime3 Dec 2011 zmieniony
     
    @jhusak

    Witout the copying of every 2nd line, there would be a blank line, not a consistent graphics line.
    Computers "without ANTIC" have to copy the content via CPU.
    A copy of a byte/adress needs an LDA/STA combination , thus 6 cycles were needed for one byte to copy , when using a 6502 based CPU. OK the tube is smaller than the aimed screen, so the content would need almost the half of cpu time (approximately 450000 cycles). And using 25FPS it would be around 225000 cycles of cpu usage.
    • 48: CommentAuthoremkay
    • CommentTime3 Dec 2011
     
    On C64 you see this blank lines very often.

    • 49: CommentAuthoremkay
    • CommentTime3 Dec 2011 zmieniony
     
    Or the objects got some "interlace movement" to make it look faster than it is.

    • 50:
       
      CommentAuthorjhusak
    • CommentTime3 Dec 2011
     
    @emkay, I still do not copy :/

    I perfectly know the stuff with empty/non empty lines. Talking about Antic in graphics mode $D there are no empty lines; pixels are two scanlines high; however, Antic does "latch" the last dma readings and repeats the line without fetching it again.

    Thus 64 cycles stolen when dma has to fetch new pixels, 16 cycles stolen when it does not have to (anyway, still due to PM DMA, DL DMA and refresh memory 16 cycles are stolen)

    Right?
    Or you wanted to say something completely different :)