Welcome, Guest. Please login or register.


Author Topic: Assembly programozás (Read 348267 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #105 on: 2009.September.10. 22:58:51 »

scroll alatt teljes kepernyos, jatekhoz valo scrollra gondoltam, es rajta mozgo sprite- okkal, endi. ilyet a scroll demo sem tudott ( ha tudott volna, en is tudnam, vagy megkerdeznem a lacit ), ahol pedig nem csak scroll effekt volt, ott nem is ment frame- esen.

attol meg hogy ki tudunk rakni egy allokepet nekem nem lesz sajna orgazmusom, bar persze erdekes par masodpercig.

en ilyen demo effekteket szerettem csinalni mindig is.

most pld. ilyen animalt csillagakot szeretnek ( nem egy pixeleseket ) amik additivan kerulnek kirakasra, es ugy tunik nem tom megcsinalni... szomorusag hegyek... meg egy napot raszanok valszeg, de tobbet mar csak kis reszletekben, a jovoben.


Z80 System

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2764
  • Country: hu
    • Enterprise Forever
Re: Assembly programozás
« Reply #106 on: 2009.September.11. 01:04:50 »
Amennyire én tudom a demó definíciójában az is szerepel, hogy a gép képességeit minél jobban kihasználó program.
Ezek a képek (ill. a megjelenítő program) amelyeket endi említett elég rendesen kihasználják gépünk grafikai képességeit, szóval akár demónak is tekinthetjük. Sőt, ilyen képekkel bármelyik demót fel lehetne dobni. Annak aki akkor látná először biztos tátva maradna a szája. A demókba egyébként is szoktak képeket rakni, átvezetésnek is. Ezeknek a képeknek a megjelenítése szép teljesítmény gépünktől és persze Istvántól és Zozotól. Pár másodpercnyi érdekességnek semmiképp sem nevezném.

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: Assembly programozás
« Reply #107 on: 2009.September.11. 09:53:26 »
Én ugyan érdemben nem tudok hozzászólni a gépi kódú programozás "rejtelmeihez", de talán érdemes megnézni e tárgyban a Wopus c. játékot, ahhoz van forráskód is!

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #108 on: 2009.September.11. 10:44:23 »

:) Na jova, ugy laccik jobb lesz, ha csendbe maradok, mer meg kihuzom a gyufat ... raadasul nem is abba az iranyba megyunk amerre szerettem volna, nem a definialgatasok, meg ilyenek lennenek a cel, megha pongyolan fogalmaztam volna, vagy akar tokhulyesegeket is ...

Istvan es Zozo teljesitmenyenek megkerdojelezese meg veletlen sem allt a szandekomban. ( Mint emlitettem az emuban dolgozok, amit a mai napig nem ertek hogyan lehet csak ugy jatekbol, kedvtelesbol elkesziteni ennyire jora, mikozben Zozo a mindenkori helpem, barmi van, mindig tole kerdezek )

Es valo igaz, kihagytam, hogy a felfele scrollt engedelyezi az ep hardware- e, a c64- e meg tulajdonkepp csak a vizszintest, ugyhogy 1-1.

Nem is ezen cirkuszoltam, hanem hogy az ember mikor regen gepet vett, akkor az volt neki, es semmi mas, es azt varta, hogy mindent lehet, csak meg kell neki tanulnia. Es mikozben szepen megtanulta rajott, hogy hat azert nem lehet mindent ...

Es most mikor +15 ev programozas utan ujra probaltam valamit, ujra ledobbentett, hogy milyen marha lassan lehet akar csak par pixelt is szoftverbol (nem nick trukkel) megmozgatni a kepen.


Z80 System

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: Assembly programozás
« Reply #109 on: 2009.September.11. 10:59:40 »
Es valo igaz, kihagytam, hogy a felfele scrollt engedelyezi az ep hardware- e, a c64- e meg tulajdonkepp csak a vizszintest, ugyhogy 1-1.

Es most mikor +15 ev programozas utan ujra probaltam valamit, ujra ledobbentett, hogy milyen marha lassan lehet akar csak par pixelt is szoftverbol (nem nick trukkel) megmozgatni a kepen.

A WOPUS-ban függőleges scroll van, nézd meg a forráskódját hátha segít.
A CPC-s Commando-ban függőleges scroll, az Eggs of Death-ban pedig vízszintes van, ez utóbbi ráadásul elég gyors!
A Fire egyik szintjén emlékeim szerint elég gyors függőleges scroll van (nem karakteres), ráadásul osztott képernyőn. De hogy hogy csinálják...???  :oops:

Amikor scanneltem a könyveket viszont pont az feltűnt, hogy a gépi kóddal foglalkozó könyvek megemlítik, hogy a rengeteg bitléptető-, rotáló utasítással nagyon hatékonyan lehet vízszintes scroll-t csinálni.
« Last Edit: 2009.September.11. 11:17:09 by Lacika »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #110 on: 2009.September.11. 11:16:03 »

A wopus tippedrol ( a keperol ) jutott eszembe, hogy ja tenyleg, a felfele scroll az tamogatott, a nick kepessegeit kihasznalva meg lehet mozgatni egy teljes kepernyonyi grafikat fuggoleges iranyaban. Ennek a kodnak az elemzese azonban nem szukseges, mert ezt tudom hogy kell csinalni.

Csakhogy ha hiszed ha nem, az mar hogy egy par sprite- ot kirakj arra a felfele scrollozodo kepre, foleg ha az 50Hz hataron belul ( legfolyamatosabb mozgasu kep, rangatozas nelkul ) az mar egy z80- t probalo feladat. Sot, ha engem kerdezel, igazabol az en izlesem szerint, el is bukik az EP a megmerettetesben. Pld. sztm az kielegito lehetne, ha mondjuk 4 szinu uzemmodban, 32*32 pixeles sprite- okbol ki lehetne tenni ugy 16 darabot 50Hz- el, ugy kb 50% cpu idovel...

Az viszont erdekelne hol irnak olyat hogy bitleptetesekkel remekul lehet scrollozni... egyreszt sztm a kepernyo felso ket pixelsorat lehetne max megmozgatni ( trukk nelkul! ) z80- al ...

Z80 System

Offline Lacika

  • EP addict
  • *
  • Posts: 3211
  • Country: hu
    • http://www.ep128.hu
Re: Assembly programozás
« Reply #111 on: 2009.September.11. 11:25:20 »
Elhiszek én mindent neked a témában, a gépi kódú programozás nekem "kínaiul van"...
Példákat tudtam mutatni, de nem tudom, hogy csinálják. Az Eggs of Death-ban jó gyors vízszintes scroll van, igaz csak két sprite-al.
Viszont pont a Wopus-ban is a háttér előtt elég sok "ketyere" repked egyszerre a képernyőn.
A másik hasonló program a Shoot em' Up
« Last Edit: 2009.September.11. 11:42:33 by Lacika »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Assembly programozás
« Reply #112 on: 2009.September.11. 11:29:30 »
Amikor scanneltem a könyveket viszont pont az feltűnt, hogy a gépi kóddal foglalkozó könyvek megemlítik, hogy a rengeteg bitléptető-, rotáló utasítással nagyon hatékonyan lehet vízszintes scroll-t csinálni.

Igaz, csak a képernyő egy kis részén :) Még a legegyszerűbb esetben (2 színű LPIXEL mód) sem lehet bitléptető utasításokkal megoldani egy "Spectrum méretű" képernyő scrollozását másodpercenként 50-szer, csak kb. a felét, és akkor másra már nem is nagyon marad idő.
Vízszintes scrollra fel lehet használni az LPT-ben az LD1/LD2 címek módosítását, bár így csak fél karakteres felbontással lehet mozgatni a képet (PIXEL módban, egyébként csak egész karakterekkel), ami vagy túl gyors, vagy darabos és nem túl jól néz ki. De talán a másodpercenként 25-ször fél karakter elfogadható.

EP-s demo készítésénél az LPT valós idejű módosítására (video cím, paletta, margók) érdemes építeni, mert így sokkal kevesebb adatot kell feldolgozni adott idő alatt, mint maguknak a pixeleknek a változtatásával. Egy nagy, előre kiszámított állóképből ilyen módon érdekes effektusokat lehet létrehozni. Ennél a scrollnál például csak a 8 paletta szín változik:
[ Guests cannot view attachments ]
Egy kép vízszintes mozgatását vagy "hullámoztatását" meg lehet oldani úgy is, hogy a video cím (és esetleg a margók) állításával fél karakteres mozgatás legyen, és ezen kívül 2 vagy 4 kép legyen a memóriában a fél karakteren belüli fázisokhoz.
Talán a karakteres módokat is fel lehet használni; a karakterek vagy a karakterkészlet változtatásával szintén gyors animációt lehet elérni.
« Last Edit: 2009.September.11. 11:33:14 by IstvanV »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #113 on: 2009.September.11. 11:50:59 »

Stimmel, en is ezekkel operaltam mindig is ( a nagy meltatlankodasok kozepedte, hogy miert nem lehetett kitalalni valamit erre, hogy semmire nincs ido, akik a gepet terveztek sztm ezekkel abszolute tisztaban voltak ), de azert most megis meglepodtem, hogy mikor pld. csinaltam egy pixelsoros lpt- t, es a fuggoleges kb. 150 lpb- jeben atirom a memoriacimet vagyis osszesen atirok kb 300 byte- ot, es kozben novelem a cim erteket, kifejtve, megprobaltam tobbfele maggal, es megis olyan 30 rastersor idot elvisz... hat ez erttenetes ... 10%- at hogy atirom a cimeket ... marha sok ... persze lehet trukkozni dobb frame lpt- be foglalasaval, es akkor meg lehetne sporolni az idot mert nem kell kezzel a cimeket felulirni, de akkor nem lehet valtozo fps- su a cucc, mert az lpt mindig valtani fog, ahogy egyszer lataroltad...

szal nem meglepo hogy olyan nehez volt mindent megcsinalni ... ezzel a cpu teljesitmennyel egy muveszet barmit is csinalni.


Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Assembly programozás
« Reply #114 on: 2009.September.11. 11:57:35 »
Pld. sztm az kielegito lehetne, ha mondjuk 4 szinu uzemmodban, 32*32 pixeles sprite- okbol ki lehetne tenni ugy 16 darabot 50Hz- el, ugy kb 50% cpu idovel...

PIXEL módban ilyenből (egy sprite 8*32=256 byte) szerintem 2-t lehet megoldani, ha fontos, hogy a sprite-ok megfelelően takarják a hátteret, és az eredeti pixeleket vissza is lehessen állítani. Egyszerű XOR művelettel valamivel gyorsabb, de nem sokkal. A byte-ok felülírásával kb. kétszeres gyorsulást lehet elérni.
A karakteres mód, a sprite-oknak a karakterkészlet egy részét fenntartva jobb, mert a háttér mentése/visszaállítása csak a karakterek, és nem a pixelek másolását jelenti. Természetesen a leggyorsabb a karakteres mód takarás nélkül (de a sprite-ok tartalmazhatnak például egyszerű fix hátteret, amely minden karakternél egyforma), így már talán nem probléma a 16 4x4 karakteres sprite.
« Last Edit: 2009.September.11. 12:09:43 by IstvanV »

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10082
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Assembly programozás
« Reply #115 on: 2009.September.11. 12:25:35 »
Ha jól emléxem egyébként, Commodore-on a Timeship (vagy Timeslip?) címû játékban sem az egész képernyõ scrollozik egyszerre, hanem a képernyõ három játéktérre van osztva és abból az egyiken folyik a játék. Jó, persze vannak egész képernyõn scrollozó játékok, pl. a Cauldron úgy tudom, ilyen.
Egyébként EP-n a Zynaps, Uridium, R-type is használ vízszintes scrollt, meg a Raid Over Moscow-ban is van ilyen rész, + Gunrunner. (Az Áttörést direkt nem akartam említeni. :D )
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Assembly programozás
« Reply #116 on: 2009.September.11. 12:32:07 »

Timeslip -ben az volt a lenyeg, harom palya volt, attol meg a c64 hw alapbol az egesz kepet eltolja, idozitessel kell allitani a hw scroll regisztert az osztott scrollhoz, de meg lehet csinalni az a lenyeg, vizszintesen, kb. 0 prociidovel.

Tobbi felsorolt jatek (ha jol emlekszem mind) spectrum atirat, tehat az attributum grafikat scrollozzak /sprite- oljak, sztm nem elegseges performanciaval. ( lassu akadozos cuccok ... :) ) anyam... en leszek az EP fekete baranya ... :)


Z80 System

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10082
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Assembly programozás
« Reply #117 on: 2009.September.11. 12:43:53 »
Na, most erre talán azt tudnám mondani, az EP már egy komolyabb gép, amit nem kifejezetten játékra terveztek.  :ds_icon_cheesygrin:  :lol: Így pl. tovább bõvítve a memóriát már komolyabb adatbázisok feldolgozására lenne alkalmas, amire más 8 bites gépek nem. (Ha nem tévedek.)
A basic is lassú, de jól áttekinthetõ, így pl. pedagógiai célokra, a problémamegoldó készség fejlesztésére jobban megfelel, mint más gépeké. :D (Vagy angoltanulásra, mert meg lehet ismerni a pitch, duration, else, exception, case, handler, stb. szavakat. :D)

Egyébként érdekes, hogy napjainkig egyre nagyobb teljesítményû procikat, gépeket terveznek, de akkora értelme ennek sincs egy hétköznapi felhasználó számára, csak akkor, ha játszani akar. Pl. szöveget szerkeszteni továbbra is teljesen jó lenne a Windows 95. (Jó, én mondjuk videót szoktam tömöríteni, azért ahhoz is jól jön a nagyobb teljesítmény.)
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10082
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Assembly programozás
« Reply #118 on: 2009.September.11. 14:47:27 »
Azt nem lehet gépi kódú programozással megoldani, hogy a képet fordítsa el 90%-kal? Mert ezzel a függõleges scrollból egybõl vízszintes lehetne.
(Másik megoldás, ha a tévét/monitort fordítjuk el 90%-kal. :D )
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Assembly programozás
« Reply #119 on: 2009.September.11. 18:06:00 »
Most nézem, Z80System az FT Stúdió tagja volt? Mert hogy ott a logó a neved alatt. :) Akkor nem ajánlgatom a Scroll demót. :)))

Amúgy sok Spectrum játék, fõleg amelyekben 4 irányú és 50Hz-n futó scroll volt, nem scrollozott igazából hanem spriteokat rakott ki, azaz pálya elemeket. Minden elemnek megvolt a 8 változata, pixelenként eltolva, így gyorsan lehetett kirakni egész sokat, amelybõl aztán összeállt a pálya.

Csakhogy EP-n 2x akkora memória területet kell mozgatni ha ugyanakkora képernyõterületen akarunk scrollt, és nem lores üzemmódokat használunk. Ehhez pedig már nem elég az a kis z80 plusz sebesség ami van a Specyhez képest...

De azért szerintem lehetne egy elég komoly, elég nagy képernyõs, az említett Specy játékokhoz hasonlót csinálni, szép pixeles scrollal, jópár ellenféllel, nagy pályával. De ez már sosem fog megtörténni. :)
Vigyázat! Szektás vagyok! :)