Parhaat Amiga AGA-demot!

Anonyymi-ap

Ehkä paras koskaan AGA-Amigoille tehty demo on Starstruck, joka voitti Assembly 2006:n, jossa kilpaili PC-demojen kanssa samassa ryhmässä. Demo vaatii tietysti nopean 68060 prosessorin, mutta kaikki on softarenderöityä (kuten kaikissa muissakin AGA-demoissa), jolloin demon porttaaminen Atari Falconille oli myös helppoa, koska sillä on sama suoritin.

Hieman ihmeellistä kyllä että PC-koneiden tehot eivät riittäneet voittoon 3D-grafiikassa. Vai osasivatko äänestäjät ottaa huomioon myös tehoeron laitteissa?
https://m.youtube.com/watch?v=eqnZH7Pa3vo

Myös Assembly 2001 partyssä julkaistu Amiga AGA demo Lapsuus voitti demokilpailun, mutta siinä mentiin kyllä siinä missä aita on matalin, koska käytettiin 2x2 pikseleitä, eli demon resoluutio on vain 160x100 tai sinnepäin, ei siitä enää saa oikein selvää, mutta voitto mikä voitto.
https://m.youtube.com/watch?v=pid7hN2G660

Myös Silkcut on yksi parhaimpia AGA-demoja, Starstruckin tekijöiltä, vuonna 2004 tehty demo.
https://m.youtube.com/watch?v=72PhnUugpMg

Hyviä demoja on myös Rise (1998)
https://m.youtube.com/watch?v=6Meqv1eTVeM
Relic (1998)
https://m.youtube.com/watch?v=9XCFqZEOXb8

Uusimmista demoista voisi mainita Beamriders (2017), jossa erittäin hyvä zoom-efekti ja loppu.
https://m.youtube.com/watch?v=uJsZXgSaELE

Muitakin demoja on paljon, sekä alkuaikoina tehtyjä, että viime aikoina, voidaan jatkaa tätä ketjua myöhemmin.

10

274

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Enemmän näissä ratkaisee se graafinen suunnittelu, ei tehot. Tehojen puolesta nuo ovat vuoden 1992 Intel raudalla toimivia.

      3D-grafiikka ei oikeasti ole mitenkään erityisen vaativa juttu.

      • Anonyymi

        Vuonna 1992 Intelin paras prosessori oli 486/66 MHz, ja Motorolalla oli paras 68040/40 MHz, jotka olivat molemmat suunnilleen yhtä tehokkaita kokonaislukulaskennassa. 68040 oli huomattavasti suorituskykyisempi kuin 486, varsinkin moninkertainen teho liukulukulaskennassa. Tämä siis tilanne vuoden 1992 loppupuolella.

        AGA-Amigat julkaistiin loppuvuonna 1992 myös, joten joo, rautaa oli olemassa vuonna 1992 sekä Intelillä että Commodorella/Motorolalla pyörittää näitä demoja, mutta mitä sitten? Se, että jotain on mahdollista tehdä, ei tarkoita sitä että asia tehdään. Kyllähän siinä aikaa meni että opittiin ohjelmoimaan ja että prosessorien hinta tuli alas.


      • Anonyymi
        Anonyymi kirjoitti:

        Vuonna 1992 Intelin paras prosessori oli 486/66 MHz, ja Motorolalla oli paras 68040/40 MHz, jotka olivat molemmat suunnilleen yhtä tehokkaita kokonaislukulaskennassa. 68040 oli huomattavasti suorituskykyisempi kuin 486, varsinkin moninkertainen teho liukulukulaskennassa. Tämä siis tilanne vuoden 1992 loppupuolella.

        AGA-Amigat julkaistiin loppuvuonna 1992 myös, joten joo, rautaa oli olemassa vuonna 1992 sekä Intelillä että Commodorella/Motorolalla pyörittää näitä demoja, mutta mitä sitten? Se, että jotain on mahdollista tehdä, ei tarkoita sitä että asia tehdään. Kyllähän siinä aikaa meni että opittiin ohjelmoimaan ja että prosessorien hinta tuli alas.

        68040:ssä oli yksi merkittävä heikkous: Siinä oli vain 4kt cache. Tuo rajoitti toistuvan tekstuurin koon 32x32 pikselin kokoiseksi.

        486:ssa oli avainjuttuna 8kt cache, että saatiin 64x64 pikselin kokoista tekstuuria käytettyä toistuvasti, tai vaikka 64x64 pikselin kokoinen billboard mitä monistaa. Sopi kivasti L1 cacheen palette lookupin kanssa.

        486:lle kyllä tehtiin sitten sitä tekstuurimapattua 3D-grafiikkaa silloin 90-luvun alkupuolella peleissä, ei vain demoissa.


      • Anonyymi
        Anonyymi kirjoitti:

        68040:ssä oli yksi merkittävä heikkous: Siinä oli vain 4kt cache. Tuo rajoitti toistuvan tekstuurin koon 32x32 pikselin kokoiseksi.

        486:ssa oli avainjuttuna 8kt cache, että saatiin 64x64 pikselin kokoista tekstuuria käytettyä toistuvasti, tai vaikka 64x64 pikselin kokoinen billboard mitä monistaa. Sopi kivasti L1 cacheen palette lookupin kanssa.

        486:lle kyllä tehtiin sitten sitä tekstuurimapattua 3D-grafiikkaa silloin 90-luvun alkupuolella peleissä, ei vain demoissa.

        Ei pidä paikkaansa. 68040:ssa on myös 8 kt cache, mutta siinä on erikseen 4 kt muistia datalle, ja 4 kt käskyille. Voit unohtaa sen että 486:n välimuistiin mahtuu 2x enemmän dataa, koska koodia menee myös cacheen. Yleensä tällainen jaettu välimuisti on tehokkaampi kuten 68040:ssa on, koska mm dataa ja käskyjä voi käsitellä rinnakkain, mutta on toki tilanteita, jossa 486:n cache toimii nopeammin.

        Isompi ongelma on kuitenkin 486:n rekisterien vähyys, 68040:ssa on 16 kpl 32-bittisiä rekistereitä, joista 8 kpl on datarekistereitä, ja 8 kpl osoiterekistereitä.


      • Anonyymi
        Anonyymi kirjoitti:

        Ei pidä paikkaansa. 68040:ssa on myös 8 kt cache, mutta siinä on erikseen 4 kt muistia datalle, ja 4 kt käskyille. Voit unohtaa sen että 486:n välimuistiin mahtuu 2x enemmän dataa, koska koodia menee myös cacheen. Yleensä tällainen jaettu välimuisti on tehokkaampi kuten 68040:ssa on, koska mm dataa ja käskyjä voi käsitellä rinnakkain, mutta on toki tilanteita, jossa 486:n cache toimii nopeammin.

        Isompi ongelma on kuitenkin 486:n rekisterien vähyys, 68040:ssa on 16 kpl 32-bittisiä rekistereitä, joista 8 kpl on datarekistereitä, ja 8 kpl osoiterekistereitä.

        Tuossa 3D-grafiikassa se koodi optimointiin assemblerilla niin, että suurin osa ajasta menee pienessä silmukassa. Kriittinen kohta oli rasterointi. Siinä tosiaankin pyöri pieni optimoitu silmukka kossa koodia oli vähän. Sen sijaan dataa oli yli 4kt kun se pelkkä 64x64 tekstuuri vei tasan 4kt, mutta lisäksi sitten oli paletti lookup, että riippuen varjostuksesta tai etäisyydestä kameraan, napattiin eri paletista väriä ja ne piti saada myös sopimaan data cacheen.

        486:ssa 3D-grafiikan piirrossa rekisterien vähyys todellakin oli ongelma.

        Noin perstuntumalla 68040 ja 486 olivat varmaan jokseenkin samantasoisia mutta piirrettäviä asioita optimoitiin eri tavalla.

        68040:lla jos oli 64x64 pikselin tekstuuri, siinä ei oikein voinut olla varjostusta mikä oli oikeastaan aika huono juttu piirrettäessä isoja varjostettuja polygoneja joissa toistuva kuvio.

        486:lla taas mieluusti välteltiin tekstuureja ja samanaikaisia tekstuuri gouraudin jos jostain sai huomaamatta pois esimerkiksi LOD:ia käyttämällä koska rekisterien vähyys hyydytti rasteroinnin sisäsilmukkaa.


      • Anonyymi
        Anonyymi kirjoitti:

        Tuossa 3D-grafiikassa se koodi optimointiin assemblerilla niin, että suurin osa ajasta menee pienessä silmukassa. Kriittinen kohta oli rasterointi. Siinä tosiaankin pyöri pieni optimoitu silmukka kossa koodia oli vähän. Sen sijaan dataa oli yli 4kt kun se pelkkä 64x64 tekstuuri vei tasan 4kt, mutta lisäksi sitten oli paletti lookup, että riippuen varjostuksesta tai etäisyydestä kameraan, napattiin eri paletista väriä ja ne piti saada myös sopimaan data cacheen.

        486:ssa 3D-grafiikan piirrossa rekisterien vähyys todellakin oli ongelma.

        Noin perstuntumalla 68040 ja 486 olivat varmaan jokseenkin samantasoisia mutta piirrettäviä asioita optimoitiin eri tavalla.

        68040:lla jos oli 64x64 pikselin tekstuuri, siinä ei oikein voinut olla varjostusta mikä oli oikeastaan aika huono juttu piirrettäessä isoja varjostettuja polygoneja joissa toistuva kuvio.

        486:lla taas mieluusti välteltiin tekstuureja ja samanaikaisia tekstuuri gouraudin jos jostain sai huomaamatta pois esimerkiksi LOD:ia käyttämällä koska rekisterien vähyys hyydytti rasteroinnin sisäsilmukkaa.

        Nyrkkisääntö on että 68040 on noin 4 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 68030. Mutta 486 on vain noin 2 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 68030. Lopputulos on että 68040 on lähes 2 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 486 kokonaislukutoiminnoissa. Ja liukuluvuissa moninkertainen nopeus.

        Amigalla tyypillinen innerloop, jossa piirettiin yksi teksturoitu pikseli kerrallaan vei 5 käskyä.

        Ongelmana Amigoissa on taas pieni muistinopeus, ei ole VLB-tasoista grafiikkamuistin nopeus, ja prosessorikortit oli osa huonosti tehty, niin että prosessorin FAST-muistikin oli aika hidasta. Nykyiset kortit ovat nopeampia, esim. 68060/100 MHz pääsee lähes 100 MB/s muistinopeuteen FAST-muistissa, vanhoissa korteissa oli 40-60 MB/s maksimi (toki myös alhaisemmat kellotaajuudet). Lopuksi vielä c2p-käännös päälle, koska Amigoissa ei ole 8-bit chunky pixel-moodia.

        Onneksi 68020 alkaen on sellainen feature että jos kirjoittaa prosessorilla muistiin, niin prosessori voi jatkaa käskyjen suoritusta, kunhan ei koske muistiin uudestaan, kunnes edellinen muistikirjoitus on suoritettu. On meinaan elintärkeä, jos on latenssia hitaassa grafiikkamuistissa, ettei prosessori pysähdy siihen täysin. Siinä saa sitten keksiä järkevää työkuormaa, onneksi m68k:ssa on paljon rekistereitä jolloin muistiin ei tarvitse koskea.

        Sanoisin että 68030/50 MHz on optimaalinen prosessori AGA-koneille, 68040 tai 68060 ovat liian nopeita ja menettävät osan tehostaan hitaaseen grafiikkamuistiin kaikesta huolimatta, mikä on harmi.


      • Anonyymi
        Anonyymi kirjoitti:

        Nyrkkisääntö on että 68040 on noin 4 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 68030. Mutta 486 on vain noin 2 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 68030. Lopputulos on että 68040 on lähes 2 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 486 kokonaislukutoiminnoissa. Ja liukuluvuissa moninkertainen nopeus.

        Amigalla tyypillinen innerloop, jossa piirettiin yksi teksturoitu pikseli kerrallaan vei 5 käskyä.

        Ongelmana Amigoissa on taas pieni muistinopeus, ei ole VLB-tasoista grafiikkamuistin nopeus, ja prosessorikortit oli osa huonosti tehty, niin että prosessorin FAST-muistikin oli aika hidasta. Nykyiset kortit ovat nopeampia, esim. 68060/100 MHz pääsee lähes 100 MB/s muistinopeuteen FAST-muistissa, vanhoissa korteissa oli 40-60 MB/s maksimi (toki myös alhaisemmat kellotaajuudet). Lopuksi vielä c2p-käännös päälle, koska Amigoissa ei ole 8-bit chunky pixel-moodia.

        Onneksi 68020 alkaen on sellainen feature että jos kirjoittaa prosessorilla muistiin, niin prosessori voi jatkaa käskyjen suoritusta, kunhan ei koske muistiin uudestaan, kunnes edellinen muistikirjoitus on suoritettu. On meinaan elintärkeä, jos on latenssia hitaassa grafiikkamuistissa, ettei prosessori pysähdy siihen täysin. Siinä saa sitten keksiä järkevää työkuormaa, onneksi m68k:ssa on paljon rekistereitä jolloin muistiin ei tarvitse koskea.

        Sanoisin että 68030/50 MHz on optimaalinen prosessori AGA-koneille, 68040 tai 68060 ovat liian nopeita ja menettävät osan tehostaan hitaaseen grafiikkamuistiin kaikesta huolimatta, mikä on harmi.

        "Lopputulos on että 68040 on lähes 2 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 486 kokonaislukutoiminnoissa. Ja liukuluvuissa moninkertainen nopeus."

        Niin mutta kyseessähän ei ole pelkät kellojaksot kun lasketaan asioita. Commodore 64:llä se oli suunnilleen näin.

        Uudemmilla koneilla prosessorin rekisterien ja muistijärjestelmän välinen kaista on kokoajan ratkaisevampi. Amiga 500:lla käytännössä laskettiin mikä kaista on ja paljon tarvitsee sekunnissa piirtää kun blitterillä tekee operaatioita. Viimeiset 20v tuskin on missään saatu olennaisesti eroa assemblerilla hinkkaamalla missään kun yhdessä kääntäjien kehittymisen kanssa, marginaalisesti vähemmän kellojaksoja käyttävä ei merkitse mitään kun jarru on muistikaistassa.

        Piirrettäessä GPU:lla, koko piirron kuormittavuus menee käytännössä muistikaistan mukaan. Cachet ovat lähinnä sitä varten, että nopeuttavat hakuja kun shaderit laskevat asioita.

        Softarenderöinnissä oli ensisijaisen tärkeää saada rasteroinnin silmukat toimimaan L1 cachessa. Muistikaista oli niin tiukassa, että esimerkiksi Z-bufferia ei kannattanut käyttää. Oli paljon tehokkaampaa pitää polygonimäärä rajallisena ja käyttää z-sorttia. Näin siis jo sillä VLB väylällä.

        "Ongelmana Amigoissa on taas pieni muistinopeus, ei ole VLB-tasoista"

        Niin. Eli turha toivo 64x64 pikselin tekstuureilla fillata kuvaa kun tulisi cachemissiä koko aika.

        68040/40MHz käytännössä vastasi 486DX2/66MHz
        68030/50MHz vastasi 486DX/25MHz


      • Anonyymi
        Anonyymi kirjoitti:

        "Lopputulos on että 68040 on lähes 2 kertaa nopeampi kuin samalla kellotaajuudella pyörivä 486 kokonaislukutoiminnoissa. Ja liukuluvuissa moninkertainen nopeus."

        Niin mutta kyseessähän ei ole pelkät kellojaksot kun lasketaan asioita. Commodore 64:llä se oli suunnilleen näin.

        Uudemmilla koneilla prosessorin rekisterien ja muistijärjestelmän välinen kaista on kokoajan ratkaisevampi. Amiga 500:lla käytännössä laskettiin mikä kaista on ja paljon tarvitsee sekunnissa piirtää kun blitterillä tekee operaatioita. Viimeiset 20v tuskin on missään saatu olennaisesti eroa assemblerilla hinkkaamalla missään kun yhdessä kääntäjien kehittymisen kanssa, marginaalisesti vähemmän kellojaksoja käyttävä ei merkitse mitään kun jarru on muistikaistassa.

        Piirrettäessä GPU:lla, koko piirron kuormittavuus menee käytännössä muistikaistan mukaan. Cachet ovat lähinnä sitä varten, että nopeuttavat hakuja kun shaderit laskevat asioita.

        Softarenderöinnissä oli ensisijaisen tärkeää saada rasteroinnin silmukat toimimaan L1 cachessa. Muistikaista oli niin tiukassa, että esimerkiksi Z-bufferia ei kannattanut käyttää. Oli paljon tehokkaampaa pitää polygonimäärä rajallisena ja käyttää z-sorttia. Näin siis jo sillä VLB väylällä.

        "Ongelmana Amigoissa on taas pieni muistinopeus, ei ole VLB-tasoista"

        Niin. Eli turha toivo 64x64 pikselin tekstuureilla fillata kuvaa kun tulisi cachemissiä koko aika.

        68040/40MHz käytännössä vastasi 486DX2/66MHz
        68030/50MHz vastasi 486DX/25MHz

        "Niin. Eli turha toivo 64x64 pikselin tekstuureilla fillata kuvaa kun tulisi cachemissiä koko aika."

        Ei se näinkään mene, koska koko kuvaruutu renderöidään ensin FAST-muistissa, ennenkuin kopioidaan kuvaruutu kokonaisuudessaan CHIP-muistiin. FAST-muistissa on cachemuisti normaalisti käytössä.

        Onneksi Amiga on kuitenkin joustava kone, eli pystytään nopeuttamaan c2p prosessia pudottamalla värimäärää (esim 256 värin sijaan 64 väriä, 32, tai 16 väriä), ja/tai jättämällä pois osan c2p-rutiinista, jolloin itse renderöinnistä tulee hankalampaa, koska framebufferista tulee epälineaarinen ,eli pikselit tulevat epäjärjestyksessä. Pystyykö tällä sitten nopeuttamaan renderöintiä, riippuu siitä että miten paljon ekstraa työtä joutuu tekemään sen vuoksi että framebuffer on epälineaarinen.

        "68040/40MHz käytännössä vastasi 486DX2/66MHz
        68030/50MHz vastasi 486DX/25MHz"

        Näin se menee suunnilleen.


      • Anonyymi
        Anonyymi kirjoitti:

        "Niin. Eli turha toivo 64x64 pikselin tekstuureilla fillata kuvaa kun tulisi cachemissiä koko aika."

        Ei se näinkään mene, koska koko kuvaruutu renderöidään ensin FAST-muistissa, ennenkuin kopioidaan kuvaruutu kokonaisuudessaan CHIP-muistiin. FAST-muistissa on cachemuisti normaalisti käytössä.

        Onneksi Amiga on kuitenkin joustava kone, eli pystytään nopeuttamaan c2p prosessia pudottamalla värimäärää (esim 256 värin sijaan 64 väriä, 32, tai 16 väriä), ja/tai jättämällä pois osan c2p-rutiinista, jolloin itse renderöinnistä tulee hankalampaa, koska framebufferista tulee epälineaarinen ,eli pikselit tulevat epäjärjestyksessä. Pystyykö tällä sitten nopeuttamaan renderöintiä, riippuu siitä että miten paljon ekstraa työtä joutuu tekemään sen vuoksi että framebuffer on epälineaarinen.

        "68040/40MHz käytännössä vastasi 486DX2/66MHz
        68030/50MHz vastasi 486DX/25MHz"

        Näin se menee suunnilleen.

        "Ei se näinkään mene, koska koko kuvaruutu renderöidään ensin FAST-muistissa, ennenkuin kopioidaan kuvaruutu kokonaisuudessaan CHIP-muistiin. FAST-muistissa on cachemuisti normaalisti käytössä."

        Niin mutta kun se FAST-muistikin on tässä liian hidas, että tarkoitus on että ei tule mitään muistihakuja tekstuuria luettaessa kun on ensimmäisen kerran luettu tekstuuri L1 cacheen.

        Sellainen temppu voi toimia, että 64x64 tekstuuri onkin tallennettu 4-bit/pikseli jolloin se sopisi L1 cacheen.


    • Anonyymi

      Maturefurkin "Lapsuus" oli ihan näyttävä demo, mutta taisi vaatia 060:n, eli ei ollut enää orggis-Amigan pyöritettävissä.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Olen tosi outo....

      Päättelen palstajuttujen perusteella mitä mieltä minun kaipauksen kohde minusta on. Joskus kuvittelen tänne selkeitä tap
      Ikävä
      16
      2138
    2. Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornosta

      https://www.kymensanomat.fi/paikalliset/8081054 Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornon hallussapi
      Kotka
      84
      2078
    3. Oletko sä luovuttanut

      Mun suhteeni
      Ikävä
      101
      1377
    4. Vanhalle ukon rähjälle

      Satutit mua niin paljon kun erottiin. Oletko todella niin itsekäs että kuvittelet että huolisin sut kaiken tapahtuneen
      Ikävä
      10
      1186
    5. Hommaatko kinkkua jouluksi?

      Itse tein pakastimeen n. 3Kg:n murekkeen sienillä ja juustokuorrutuksella. Voihan se olla, että jonkun pienen, valmiin k
      Sinkut
      145
      1170
    6. Maisa on SALAKUVATTU huumepoliisinsa kanssa!

      https://www.seiska.fi/vain-seiskassa/ensimmainen-yhteiskuva-maisa-torpan-ja-poliisikullan-lahiorakkaus-roihuaa/1525663
      Kotimaiset julkkisjuorut
      81
      1143
    7. Aatteleppa ite!

      Jos ei oltaisikaan nyt NATOssa, olisimme puolueettomana sivustakatsojia ja elelisimme tyytyväisenä rauhassa maassamme.
      Maailman menoa
      249
      886
    8. Omalääkäri hallituksen utopia?

      Suurissa kaupungeissa ja etelässä moinen onnistunee. Suuressa osassa Suomea on taas paljon keikkalääkäreitä. Mitenkäs ha
      Maailman menoa
      172
      858
    9. Mitä sanoisit

      Ihastukselle, jos näkisitte?
      Tunteet
      63
      834
    10. Onko se ikä

      Alkanut haitata?
      Ikävä
      59
      811
    Aihe