ZX Spectrum vs. C64 flame

Témák, amik sosem évülnek el... :)
Laki
Speccyalista
Hozzászólások: 20
Csatlakozott: 2012.01.08. 23:06
Tartózkodási hely: Budapest

ZX Spectrum vs. C64 flame

Hozzászólás Szerző: Laki » 2012.03.22. 03:46

Állandóan téma a ZX Spectrum vs. C64 flame. Volt már nálunk is a listán és minden más elképzelehető fórumon. Most újra feltűnt a "melyik retro gépet vegyem programozni tanulni" post kapcsán.

Ennek kapcsán - hardveres tekintetben - általában körbejárjuk a processzort, a hang és video keltést és a memóriát. Általában az egyik gépnél valamelyik összetevőben vannak egyértelmű előnyök, majd rögtön árnyalódik is ez az előny valamivel.

A memória kérdés egyszerű, a C64-nél 64K, míg a Spectrumnál 48K. Igaz a C64-nél vannak memóriába ágyazott hardver elemek, melyek memóriát foglalnak.

A video-nál a felbontásban jobb a C64, mert a 320x200 pixeles (40x25 karakter) felbontás valamivel jobb, mint a Spectrum-nál a 256x192 pixel (32x24 karakter). A színek tekintetében egy karakter blokkonként mindkét gépnél 2 szín használható. Emellett van egy 160x200 pixeles felbontása is a C64-nek, aminél 4 szín használható egyszerre egy karakter területen, bár a vízszintes felbontás radikálisan (felére) lecsökken. A C64-en a lehetséges (megjeleníthető) színek száma 16, míg a Spectrumon 15, bár ez "csak" 7 szín két árnyalatából (normál és fényes, azaz intenzív) és a feketéből áll össze. A C64 video-jának nagyobb dobása egyértelműen a hardver sprite-ok, amivel a Spectrum nem rendelkezik, így azonos funkció eléréséhez a processzor terhelődik.

A hang esetében is a C64 az erősebb, a SID chip miatt. A sima 48-as Spectrum esetében a beeper-nek kell a SID-el felvennie a versenyt, de a kettő nyilván nem egy kategória. A Spectrumos több szólamú zenéhez is a processzor intenzív használatára van szükség, de az eredmény nem hasonlítható a SID-hez. Talán megengedhető, hogy ne a beeper-rel, hanem a 128-as AY chipjéhez hasonlítsuk a SID-et, mert így már kiegyenlítettebb a küzdelem. Mindkét chip 3 sávos (oszcillátoros) és rendelkezik az ADSR (burkológörbe) beállítás lehetőségével. Ugyanakkor a SID tudja a raw PCM data (digital sound) üzemmódot is, amit az AY-on ismét csak a processzor igénybevételével lehet megoldani. Egyesek szerint az az architektúrális különbség is lassít az AY használatán, hogy nem memóriába ágyazott a regiszteret címzése, hanem I/O műveleteken keresztül érhetőek el. Mindezek ellenére az AY és a vele kompatibilis chip-ek sokkal elterjedtebbek voltak a házi számítógépekben és a játéktermi (úgynevezett arcade machine) gépekben, míg a SID csak a Commodore gépeiben fordult elő, bár kétségtelenül azok eladási rekordokat döntöttek, így az eladott SID-ek száma nem feltétlenül marad el az AY-tól és testvéreitől.

A processzor: a Spectrum esetében a nagyon elterjedt és széles körűen használt Z80, míg a C64-nél a MOS 6510-es. A Z80 gépi kódú utasításkészlete sokkal gazdagabb, számosabb, de cserébe esetleg a végrehajtásuk időigényesebb, mint a 6510-esnél. Ugyanígy a Z80-nak több 8 bites regisztere van, melyek 16 bites párokba szervezhetőek és ennek megfelelően kezelő utasítások is vannak. Emiatt szokás a Z80-at CISC szerű processzornak, míg a 6510-est RISC szerű processzornak titulálni ebben az összehasonlításban, a MOS chip alacsonyabb órajele és kevesebb, tömörebb gépi kódú utasításkészlete miatt. Bár a 6510-es regiszterszámban tapasztalható gyengeségét árnyalja egy speciális memóriaterület kezelése, melyet kvázi regiszterekként tud használni.

Az órajel: azaz a "megahertz", ami a processzor frekvenciája. A C64 esetében nagyjából 1 MHz, míg a Spectrumnál 3,5 MHz. Ez jelentős különbségnek tűnhet, de itt jön be a képbe a konkrét használat, azaz ugyan lassabban futnak a C64-ben a gépikódú parancsok, ugyanakkor gyorsabban is hajthatóak végre, de mégiscsak többet kell belőlük végrehajtani, mert nem annyira gazdag 6510-es assembly nyelve, mint a Z80-é, így egy Zilog utasítás kiváltásához több MOS gépi kódú parancsra van szükség, különös tekintettel a 8 bit vs. 16 bit-es regiszter szervezésre és a 6510-es kevesebb regiszterére. Ugyanakkor itt jön be megint az architektúrából adódó csavar, hogy míg a több csatornás hangot vagy az AY-nal hasonlítás esetében a digitalizált hangot és a sprite-okat a C64-nél a hardver végzi, addig a Spectrum esetében a Z80 kénytelen, mindezt a megahertz-ekből adódó értékes előnyének a kárára.

És akkor itt értünk el oda, hogy mi lenne, ha nem benchmark-okkal próbálnánk megállapítani a különbséget a két gép között, hanem ha kipróbálnánk a C64-et úgy, hogy a MOS 6510 helyett egy Z80 dobogna benne (akár 1 Mhz-en, ha a 3,5 Mhz nem megoldható) és vice versa, azaz egy ZX Spectrumban a MOS 6510-es. Tartok tőle, hogy ez utóbbi esetben nem tapasztalnánk javulást, de a C64-be helyezett Z80 processzor egy érdekes gondolatkísérlet lenne és talán megvalósíthatóbb is, hiszen nem baj, ha nem használjuk ki a Z80 I/O-ját, attól még a memóriába ágyazott periféria kezelésre megfelelő. Tudjuk, hogy a C64 erőssége nem a processzor volt, hanem a köré pakolt hardver architektúra. Mit hozna ki ebből egy Z80?

Emlékeim szerint vannak olyan különbségek a két processzor között, hogy a Z80 csak az órajel valamelyik állapotában dolgozik, míg a 6510-es magas és alacsonyban is, stb. Vannak még ilyen különbségek, amik megakadályoznák a gyakorlatban a Z80 alkalmazását?

Mi a véleményetek, megvalósítható?

Avatar
Zozosoft
Speccyalista
Hozzászólások: 724
Csatlakozott: 2012.01.06. 14:03
Kapcsolat:

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: Zozosoft » 2012.03.22. 08:21

[quote="Latyi.ca" ha kipróbálnánk a C64-et úgy, hogy a MOS 6510 helyett egy Z80 dobogna benne[/quote]
C128-ban van Z80 is! Azt mondjuk nem tudom, hogy Z80 üzemmódban mennyire éri el a teljes C64 hardvert.

Avatar
lgb
Speccyalista
Hozzászólások: 10
Csatlakozott: 2012.01.06. 13:56

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: lgb » 2012.03.22. 08:51

Latyi.ca írta:Állandóan téma a ZX Spectrum vs. C64 flame. Volt már nálunk is a listán és minden más elképzelehető fórumon. Most újra feltűnt a "melyik retro gépet vegyem programozni tanulni" post kapcsán.
Imho C64-et, mert Spectrum draga :) Marmint komolyan: nekem egy Sinclair gepem sincs, Commodore van egy rakas (C16, Plus/4, 64, 128). A problema az, hogy horribilis osszegeket kernek Spectrumert, nem is tudom miert, tenyleg ennyivel kevesebb van beloluk mint Commodore-bol? Mert amugy mas nem indokolja, azert egy C64 - lassuk be - jobban "ossze van rakva, "igazibb" keyboard-dal stb, ha csak szigoruan ezt nezzuk, anno mindegyik fenykoraban gondolom a Speccy gyartasi koltesege alacsonyabb volt, igy az ara is a C64-hez kepest. Vagy rosszul gondolom?
Ennek kapcsán - hardveres tekintetben - általában körbejárjuk a processzort, a hang és video keltést és a memóriát. Általában az egyik gépnél valamelyik összetevőben vannak egyértelmű előnyök, majd rögtön árnyalódik is ez az előny valamivel.
A memória kérdés egyszerű, a C64-nél 64K, míg a Spectrumnál 48K. Igaz a C64-nél vannak memóriába ágyazott hardver elemek, melyek memóriát foglalnak.
Nem foglalnak, ui memoria lapozassal elerheted, hogy a full 64K-ban RAM van az un I/O tartomany helyen is. Az mas kerdes, hogy ket teljes byte az mindig foglalt marad, a 0 es 1-es cimen levo (a 6510 on-chip I/O portjanak direction es data registere), amde a "memory mapped I/O' terulet (ahogy pl a ROM is) az lapozhato, igy a teljes RAM, 64K (na jo, 64K-2byte ... hehe) elerheto, es szabadon felhasznalhato.

A video-nál a felbontásban jobb a C64, mert a 320x200 pixeles (40x25 karakter) felbontás valamivel jobb, mint a Spectrum-nál a 256x192 pixel (32x24 karakter). A színek tekintetében egy karakter blokkonként mindkét gépnél 2 szín használható. Emellett van egy 160x200 pixeles felbontása is a C64-nek, aminél 4 szín használható egyszerre egy karakter területen, bár a vízszintes felbontás radikálisan (felére) lecsökken. A C64-en a lehetséges (megjeleníthető) színek száma 16, míg a Spectrumon 15, bár ez "csak" 7 szín két árnyalatából (normál és fényes, azaz intenzív) és a feketéből áll össze. A C64 video-jának nagyobb dobása egyértelműen a hardver sprite-ok, amivel a Spectrum nem rendelkezik, így azonos funkció eléréséhez a processzor terhelődik.
Azt is jo lenne megnezni (foleg mivel Spectrumos vonalon nem tudom mi az igazsag), hogy mit lehet csinalni azon tul, amire szantak :) Azaz pl ez a 2 v 4 szin egy "karakternyi" teruleten szabaly ugye siman megkerulheto, es azota kulonbozo kvazi "szabvanyos" modszereket dolgoztak ki a coderek, mint FLI, es hasonlo nevu dolgok (igaz, nem keves CPU idot igenyel ez a dolog ...). Aztan a tobbi trukkrol ne is beszeljunk, kepernyo hw szintu gorgetese, a border "lebontasa" software-esen, stb. Spectrum eseten is vazolni kene az ilyen trukkoket, ha vannak - oszinten, en nem ismerem ott ezeket a dolgokat.
A hang esetében is a C64 az erősebb, a SID chip miatt. A sima 48-as Spectrum esetében a beeper-nek kell a SID-el felvennie a versenyt, de a kettő nyilván nem egy kategória. A Spectrumos több szólamú zenéhez is a processzor intenzív használatára van szükség, de az eredmény nem hasonlítható a SID-hez. Talán megengedhető, hogy ne a beeper-rel, hanem a 128-as AY chipjéhez hasonlítsuk a SID-et, mert így már kiegyenlítettebb a küzdelem. Mindkét chip 3 sávos (oszcillátoros) és rendelkezik az ADSR (burkológörbe) beállítás lehetőségével. Ugyanakkor a SID tudja a raw PCM data (digital sound) üzemmódot is, amit az AY-on ismét csak a processzor igénybevételével lehet megoldani. Egyesek szerint az az architektúrális különbség is lassít az AY használatán, hogy nem memóriába ágyazott a regiszteret címzése, hanem I/O műveleteken keresztül érhetőek el. Mindezek ellenére az AY és a vele kompatibilis chip-ek sokkal elterjedtebbek voltak a házi számítógépekben és a játéktermi (úgynevezett arcade machine) gépekben, míg a SID csak a Commodore gépeiben fordult elő, bár kétségtelenül azok eladási rekordokat döntöttek, így az eladott SID-ek száma nem feltétlenül marad el az AY-tól és testvéreitől.
Modulacio, programozhato szuro meg azert szinten sokat jelent SID eseten. Viszont nem teljesen vili mit ertesz "raw PCM" mod alatt SID eseten.
A processzor: a Spectrum esetében a nagyon elterjedt és széles körűen használt Z80, míg a C64-nél a MOS 6510-es. A Z80 gépi kódú utasításkészlete sokkal gazdagabb, számosabb, de cserébe esetleg a végrehajtásuk időigényesebb, mint a 6510-esnél. Ugyanígy a Z80-nak több 8 bites regisztere van, melyek 16 bites párokba szervezhetőek és ennek megfelelően kezelő utasítások is vannak. Emiatt szokás a Z80-at CISC szerű processzornak, míg a 6510-est RISC szerű processzornak titulálni ebben az összehasonlításban, a MOS chip alacsonyabb órajele és kevesebb, tömörebb gépi kódú utasításkészlete miatt. Bár a 6510-es regiszterszámban tapasztalható gyengeségét árnyalja egy speciális memóriaterület kezelése, melyet kvázi regiszterekként tud használni.

Az órajel: azaz a "megahertz", ami a processzor frekvenciája. A C64 esetében nagyjából 1 MHz, míg a Spectrumnál 3,5 MHz. Ez jelentős különbségnek tűnhet, de itt jön be a képbe a konkrét használat, azaz ugyan lassabban futnak a C64-ben a gépikódú parancsok, ugyanakkor gyorsabban is hajthatóak végre, de mégiscsak többet kell belőlük végrehajtani, mert nem annyira gazdag 6510-es assembly nyelve, mint a Z80-é, így egy Zilog utasítás kiváltásához több MOS gépi kódú parancsra van szükség, különös tekintettel a 8 bit vs. 16 bit-es regiszter szervezésre és a 6510-es kevesebb regiszterére. Ugyanakkor itt jön be megint az architektúrából adódó csavar, hogy míg a több csatornás hangot vagy az AY-nal hasonlítás esetében a digitalizált hangot és a sprite-okat a C64-nél a hardver végzi, addig a Spectrum esetében a Z80 kénytelen, mindezt a megahertz-ekből adódó értékes előnyének a kárára.

És akkor itt értünk el oda, hogy mi lenne, ha nem benchmark-okkal próbálnánk megállapítani a különbséget a két gép között, hanem ha kipróbálnánk a C64-et úgy, hogy a MOS 6510 helyett egy Z80 dobogna benne (akár 1 Mhz-en, ha a 3,5 Mhz nem megoldható) és vice versa, azaz egy ZX Spectrumban a MOS 6510-es. Tartok tőle, hogy ez utóbbi esetben nem tapasztalnánk javulást, de a C64-be helyezett Z80 processzor egy érdekes gondolatkísérlet lenne és talán megvalósíthatóbb is, hiszen nem baj, ha nem használjuk ki a Z80 I/O-ját, attól még a memóriába ágyazott periféria kezelésre megfelelő. Tudjuk, hogy a C64 erőssége nem a processzor volt, hanem a köré pakolt hardver architektúra. Mit hozna ki ebből egy Z80?

Emlékeim szerint vannak olyan különbségek a két processzor között, hogy a Z80 csak az órajel valamelyik állapotában dolgozik, míg a 6510-es magas és alacsonyban is, stb. Vannak még ilyen különbségek, amik megakadályoznák a gyakorlatban a Z80 alkalmazását?

Mi a véleményetek, megvalósítható?
Nem kell ehhez gondolatkiserlet :) Itt figyel epp a polcon egy CP/M cartridge C64-hez, mint a neve is mutatja, CP/M futtatasa miatt talaltak ki, amugy egy Z80 van benne, es a C64-re kell cuppantani: onnantol allithato sw-esen, hogy a Z80 vagy a 6510 "uralja"-e a gepet. Vagy igen, ahogy Zozo is megjegyzi: C128, abban be is van epitve, meg cartridge sem kell :)

Amugy imho a nehezseget mindig az jelenti, hogy almat hasonlitunk ossze a kortevel: a 6502 (most a 6510-et elhagyom, mivel alapvetoen az egy 6502 core nemi on-chip I/O porttal vegyitve) utasitasai valoban egyszeruek, viszont gyorsak, keves a regisztere, viszont a nullas lap kb azt hivatott szolgalni mintha lenne 256db regisztered 0-tol 255-ig (ne felejtsuk, hogy abban az idoben a memoria sebessege nem maradt el a CPU-etol, mint manapsag, sot sok esetben akar forditva is volt, ma mar nem feltetlen tervezne valaki ilyesmit), ezzel ellenetetben a Z80 ugyanolyan orajelen lassabb, viszont komplexebb utasitasai, tobb regisztere van (marmint "igazi" regiszter). Nem tudom, hogy lehetne valami benchmark-ot csinalni ebbol, ami tenyleg realis, egyszer elmerengtem azon, hogy altalanos feladatokat/algoritmusokat megoldo kodot kene irni Z80 es 6502-re _is_, mindkettore annyira kioptimalizalni (hozzaerto altal) amennyire csak lehet, aztan megnezni, hogy melyik CPU-n lehet az adott feladatot gyorsabban megoldani :) Mas direkt osszehasonlitas ugye azert nehez, mert ugyanaz a kod nem fut mindket CPU-n .... Emiatt nem is biztos, hogy valaha is lehet barmi "fair" dontest hozni ebben.

Avatar
Asimo
Speccyalista
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: Asimo » 2012.03.22. 10:11

Latyi.ca írta:Ugyanakkor a SID tudja a raw PCM data (digital sound) üzemmódot is
Ilyet nem tud. Az első széria SID chipekben volt egy bug. A kimeneti szint nem volt tökéletesen nulla, amit a hangerő állítással lehetett modulálni, ezzel szimulálva egy 4-bites D/A-t. Persze ehhez sok CPU időre volt szükség. A SID későbbi verziójában ezt a hibát csökkentették, az így lejátszott hangminták minősége romlott.
Latyi.ca írta:Talán megengedhető, hogy ne a beeper-rel, hanem a 128-as AY chipjéhez hasonlítsuk a SID-et, mert így már kiegyenlítettebb a küzdelem.
Csak szubjektíven: Ha egymás mellett hallgatunk egy AY-t és egy SID-et, akkor egy hatalmas szakadékot érzékelhetünk. A SID egy szintetizátor chip. Bob Yannes-t, a SID tervezőjét, pont a zenei szintézis területén szerzett tapasztalatai miatt kérték fel. A SID-et nem véletlenül hasonlítgatták a Moog-hoz, ami persze túlzás, de jól jelzi a többi prüntyögővel szembeni fölényét. Ahhoz persze, hogy gyönyörű hangzásokat csaljunk ki a chipből, érteni kell ezekhez a modulációs technikákhoz.
Latyi.ca írta:Mindkét chip 3 sávos (oszcillátoros) és rendelkezik az ADSR (burkológörbe) beállítás lehetőségével.
Ez túl egyszerű összehasonlítás. Egyrészt az AY ADSR-e bőven elmarad a SID-től (az oszcillátorok kimenete is több hullámformát ismer a SID-ben), másrészt a SID-ben jóval több modulációs technika van, és végül is a hang, a zene sokszínűségét, szépségét a változatos modulációk teszik lehetővé. Ebben erős a SID, ebben van a legtöbb, akár egyszerre is alkalmazható modulációs mód.

De SID témában van egy másik részletesebb topik, ha el akarunk menni ebbe az irányba.
Latyi.ca írta:mi lenne, ha nem benchmark-okkal próbálnánk megállapítani a különbséget
Én továbbra is a benchmarkokban "hiszek". Pl. egy tömörítő algoritmus, egy 3D kockát forgató rutin stb.
De ez az én hülyeségem. :)

Avatar
Pgyuri
Speccyalista
Hozzászólások: 482
Csatlakozott: 2012.01.06. 13:34

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: Pgyuri » 2012.03.22. 11:18

Üdv,

Őszintén, van bármi jelentősége, hogy melyik lenne a jobb ???? És ha a kocka gyorsabban forog C64-en, akkor a kérdés úgy hangzik doncortio-nak, hogy "Akarsz 3D kockát forgatni ? Akkor C64-et vegyél." vagy ha gyorsabban tömörít a Spectrum, akkor inkább azt vegyen ? Ha esetleg az jön ki, hogy egy millió szám összeadását a Spectrum gyorsabban végzi el, akkor azt kell venni, mert igaz 20 évente egyszer van ilyen feladat, de akkor milyen jól jön ...

Olyan kicsi az eltérés a két gép között, hogy semmi jelentősége. Vagy ha kiderülne bármi is, akkor 30 év után deklarálni lehetne, hogy melyik gép jobb ? Ehh.

Szerintem mindkét gép szeretnivaló és sok örömet ad. Játszani, programozni mindkettőn lehet.

Különben is az Enterprise a legjobb 8 bites gép a világon :) (már ha csináltak volna bele legalább egy hardver horizontális scroll-t, mert anélkül csapnivaló)

Pgyuri

Avatar
Asimo
Speccyalista
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: Asimo » 2012.03.22. 14:06

Őszintén, van bármi jelentősége, hogy melyik lenne a jobb ????
Számomra van. Persze nem így megfogalmazva. Én a ZX Spectrum vs C64 flame-t onnan fogtam meg, ahol azt az Elit esetében abbahagytuk: azért lett-e az Elite lassabb C64-en, mert a C64 ebben a kategóriában lassabb, vagy azért, mert nincs elég jól optimalizálva a kód. Engem érdekel a benchmark része, mint adat. Nem érdekel, hogy ki miért választja ezt vagy azt a gépet. Nevezzük technikai érdeklődésnek. Lehet, hogy megint rossz topikban vagyok. :)
Szerintem mindkét gép szeretnivaló és sok örömet ad. Játszani, programozni mindkettőn lehet.
Így van. Szerintem a Spectrum egy gyönyörű számítógép, egy szép dobozos példánynak mindig kell lennie a vitrinben otthon. :)
De azon programozni? Soha. Nem vagyok én mazochista. :) A 80-as években igen, akkor azon kezdtem, de 2012-ben ez a tudás már nagyon nem releváns.
Persze egy játékot megírni csak úgy hobbiból, az oké. De azt sem fejleszteném magán a Speccy-n.
Ugye másik topikunk is szól erről, hogy korabeli játékokat min fejlesztettek, és már a 80-as években is akadtak olyanok, akik nem a Speccy-n írták a programot, nem véletlenül.

Szerintem először a gépeket emulátoron kellene kipróbálni. Lehet, hogy már ott eldől a kérdés, hogy melyik legyen.

Avatar
Pgyuri
Speccyalista
Hozzászólások: 482
Csatlakozott: 2012.01.06. 13:34

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: Pgyuri » 2012.03.22. 15:11

Üdv Asimo,

Tökéletesen értlek. A két gépet nincs értelme összehasonlítani műveleti szinten, de semmilyen más képességbeli szinten.

Számítás: Ha csak 8 bites összeadás, akkor lehet "C" a gyorsabb, míg ha 16 bites, akkor "Z", de ha közben van egy feltétel, akkor újra "C", míg ha ott ugrani kell, akkor ismét "Z". Tehát abszolút feladatfüggő a mérhető megvalósítás teljesen optimális kód esetén.

Grafika: 1 pixel mozgatása 1 pozícióval X-szer egy irányba...."C" gép a gyorsabb, míg ugyanígy 64 pixel 8 pozícióval mozgatása "Z"-n. Nem mérhető.

Játékok: Sprite mozgatása "C" gépen gyors, míg sprite-nál nagyobb grafika mozgatása "Z" gépen a nyerő. Képernyő mozgatása "C" gépen nyerő, színek mozgatása "Z" gépen győztes. Nem mérhető.

*****

Az Elite esetén szintén nincs összehasonlítási alap, mert a grafika mérete eltérő a felbontásból adódóan. Itt csak szubjektív "érzés" vélemény fogalmazható meg. Innentől pedig ki mit szokott meg. Inkább mérhető az, hogy a játékon belül mennyire összehangolt a sebesség a játszhatósággal.

Lásd például C64-en a Locomotion egy nagyon szórakoztató, teljesíthető játék, míg a Suicide Express-t fogalmam sincs kiknek tervezték, pedig a két alap ugyanaz. Spectrumnál az Starion, Elite játszható, de a Driller már kevésbé szórakoztató.

A Wizard of Wor esetén a C64 egyértelműen gyorsabb, szebb, jobb, hangulatosabb, pedig szegény Z80 vért/hőt izzad, hogy teljesítse a feladatát a végletekig optimalizált grafikai kóddal (példának okáért a lövedék ütközésvizsgálata olyan lépésszámhoz van beállítva, hogy az az adott sprite-okon belül a maszk nélküli átlátható objektumon belül véletlenül se eshessen üres területre, így jelentősen megtakarítva puffer-műveleteket).

Az Impossible Mission is emeletekkel C64-en nyerő, pedig a spectrumos programozók is kitettek magukért.

Teljesen összemérhetetlen a két gép programkódtól függetlenül. Egy szinten azonban teljesen egyenlőek ... a grafika nélküli szöveges kalandjátékokban egyértelműen mindketten azonosan teljesítenek.

Még sakk programokban összemérhető lenne a teljesítményük. Időre zajló játszmákon belül előjön a processzor teljesítménye és a remélhetőleg végletekig optimalizált kód különbsége, bár a C64 itt is 16KB memória-előnnyel indul, ami behozhatatlan lehet.

Asimo barátom, eldönthetetlen a kérésed :) és hogy mondjak olyan játékot, ami Spectrumon jobb, mint C64-en ? Hmmmmmm....nem sok van....legyen a GliderRider :) Meg talán az összes pixel-perfekt platform játékban is kedvenc ZX-ünk a nyerő, mert valahogy jobban irányítható. Igen, ez igaz.

Pgyuri

Avatar
lgb
Speccyalista
Hozzászólások: 10
Csatlakozott: 2012.01.06. 13:56

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: lgb » 2012.03.22. 15:44

Asimo írta:
Latyi.ca írta:Ugyanakkor a SID tudja a raw PCM data (digital sound) üzemmódot is
Ilyet nem tud. Az első széria SID chipekben volt egy bug. A kimeneti szint nem volt tökéletesen nulla, amit a hangerő állítással lehetett modulálni, ezzel szimulálva egy 4-bites D/A-t. Persze ehhez sok CPU időre volt szükség. A SID későbbi verziójában ezt a hibát csökkentették, az így lejátszott hangminták minősége romlott.
Btw, azota vannak trukkok (a test bit segitsegevel) amivel egesz jo digilejatszast lehet csinalni, sokkal jobbat mint a hangerovel, mert - ha az mukodik is jol a regi SID-eken, ahogy irod is - csak 4 bites, itt elvileg 8 bittel lehet operalni, amde kulonbozo okok miatt kisse rosszabb a gyakorlati minoseg, viccesen 7.5 bitesnek szokas hivni :-P

Latyi.ca írta:Talán megengedhető, hogy ne a beeper-rel, hanem a 128-as AY chipjéhez hasonlítsuk a SID-et, mert így már kiegyenlítettebb a küzdelem.
Csak szubjektíven: Ha egymás mellett hallgatunk egy AY-t és egy SID-et, akkor egy hatalmas szakadékot érzékelhetünk. A SID egy szintetizátor chip. Bob Yannes-t, a SID tervezőjét, pont a zenei szintézis területén szerzett tapasztalatai miatt kérték fel. A SID-et nem véletlenül hasonlítgatták a Moog-hoz, ami persze túlzás, de jól jelzi a többi prüntyögővel szembeni fölényét. Ahhoz persze, hogy gyönyörű hangzásokat csaljunk ki a chipből, érteni kell ezekhez a modulációs technikákhoz.
Na igen, anno megjelenesekor a SID csodajara jartak, ugyanis a "tenyleg szintetizator" dobozokkal osszemerheto volt a dolog. Legalabbis remlik, hogy vmi ilyet olvastam, tovabba akkoriban nem is feltetlen epitettek meg ilyesmit egy chip-be, ezert is keltett ugymond nagy feltuntest a dolog. A tervezoje utana el is ment szintis ceghez btw (Ensoniq), vagy talan alapitotta is, nem tudom.

Avatar
lgb
Speccyalista
Hozzászólások: 10
Csatlakozott: 2012.01.06. 13:56

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: lgb » 2012.03.22. 15:52

Zozosoft írta:[quote="Latyi.ca" ha kipróbálnánk a C64-et úgy, hogy a MOS 6510 helyett egy Z80 dobogna benne
C128-ban van Z80 is! Azt mondjuk nem tudom, hogy Z80 üzemmódban mennyire éri el a teljes C64 hardvert.[/quote]

C128 eseten passz, C64 es CP/M cartridge eseten (bar lehet C128 is igy viselkedik) az a trukk van, hogy a 6510 es a Z80 cimek kozott van egy $1000 kulonbseg szandekosan: ugyanis a Z80 eseten ugye a memoria eleje fontos, pl a reset cim az nulla, mig 6510 eseten ott a CPU I/O port van, tehat volt itt egy kis gixer. Ezt oldottak meg ugy, hogy egyszeruen eltoltak a cimeket, ez szamitasba kell venni ilyenkor, amde amugy a Z80 - a fentieket leszamitva - ugyanugy eleri akkor a buszt, mintha a 6510-es lenne, tehat gondolom ugyanazon dolgokra kepes is (es ugye C64 eseten meg memory mapped I/O van, szoval Z80-nak is csak irnia/olvasnia kell a megfelelo memoriacimet pl I/O perfiferiak eleresehez - csak nem szabad megfeledkezni a mar targyalt "eltolt" memoriacimekrol!). Mondjuk a problem az, hogy lassu a Z80 ebben a kiszerelesben, nem tudom jol remlik-e, de C64 Z80 cartridge eseten 3MHz orajelen megy talan (bar nem biztos, hogy jol emlekszek). Most hirtelen nem talalok infot a pontos orajelrol, csak az remlik, hogy pl C128 eseten is az volt a "nepharag" targya, hogy lassu volt CP/M masinanak mert eleg alacsony orajelen ment a Z80 ahhoz kepest, amit egy atlag Z80 vitt olyan gepekben amikben "termeszetes modon" Z80 van, ugymond :) Mondjuk, el tudom kepzelni, hisz C64 eseten ~1MHz kornyeken van az orajel (pontos erteke fugg attol hogy PAL vagy NTSC a masina), nem egyszeru "beleganyolni" egy magasabb orajelen jaro CPU-t, hogy menjen. C128 eseten pl meg a "nativ CPU" is gondba van ha 2MHz-en megy (ui ott annyival is tud), pl a VIC-II azt siman nem birja, ezert 2MHz modban nem is hasznalhato (amde C128-ban van egy masik videochip a VDC is, azzal mukodik).

Avatar
lgb
Speccyalista
Hozzászólások: 10
Csatlakozott: 2012.01.06. 13:56

Re: ZX Spectrum vs. C64 flame

Hozzászólás Szerző: lgb » 2012.03.22. 17:26

Pgyuri írta:Üdv Asimo,

Tökéletesen értlek. A két gépet nincs értelme összehasonlítani műveleti szinten, de semmilyen más képességbeli szinten.

Számítás: Ha csak 8 bites összeadás, akkor lehet "C" a gyorsabb, míg ha 16 bites, akkor "Z", de ha közben van egy feltétel, akkor újra "C", míg ha ott ugrani kell, akkor ismét "Z". Tehát abszolút feladatfüggő a mérhető megvalósítás teljesen optimális kód esetén.

Grafika: 1 pixel mozgatása 1 pozícióval X-szer egy irányba...."C" gép a gyorsabb, míg ugyanígy 64 pixel 8 pozícióval mozgatása "Z"-n. Nem mérhető.

Játékok: Sprite mozgatása "C" gépen gyors, míg sprite-nál nagyobb grafika mozgatása "Z" gépen a nyerő. Képernyő mozgatása "C" gépen nyerő, színek mozgatása "Z" gépen győztes. Nem mérhető.
Ez igy van, amde itt (vagy masik topic-ban volt? Akkor bocs) arrol volt szo, hogy mikeppen lehet csak a CPU-t osszehasonlitani, pl Z80-at egy 6502-vel (ismet, 6510 felesleges kulon mert alapvetoen az egy 6502), mondjuk performancia szempontjabol. Nyilvan egy teljes gepet, annak minden lehetosegevel nagyon nehez osszevetni, ahogy irod is. Engem az erdekelne (es erdekelt regebben is), hogy azonos orajelre levetitve milyen a performancia 6502 vs Z80 viszonylataban. Ez szerintem erdekes kerdes, amde nem egyszeru: talan az lenne a megoldas, ahogy ilyen benchmarkokat szokas a modern idokben manapsag is hasznalni akar kulonbozo CPU-k kozott is: ki kene valasztani egy rakas algoritmust (mindenfelet) megirni a ket CPU-ra, mindegyikre lehetoleg telejsen optimalizaltan, aztan ezek eredmenyet osszeadni/sulyozni/whatever a ket CPU-ra, es eloallni egy meroszammal. Ezt nyilvan az orajellel leosztva kapunk egy erteket, ami megmutatja, hogy "atalgos" felhasznalas eseten (ez persze a valasztott benchmark algoritmusokon mulik) azonos orajelre levetitve hogy alakul a ket CPU teljesitmenye. Lehet, sokan azt mondjak, hogy ennek aztan sok ertelme nincs, meg minek ilyet csinalni, hat azt en se tudom, hogy minek, amde erdekelne megis :)

Válasz küldése

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég