Welcome, Guest. Please login or register.


Author Topic: Grafikai trükkök (Read 205711 times)

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #240 on: 2013.October.24. 16:10:48 »
Quote from: Z80System
Az 50 FPS topikba másolt cuccok alapvetően nem olyan cuccok, hogy lám azt a CXX 50 FPS -sel csinálja,
hanem olyanok, amiket talán vagy jóeséllyel lehetne megcsinálni EP -n 50 FPS -sel.

Korábban is elhangzott már több helyről hogy C64 -en is kevesebb lesz az 50 FPS cuccok aránya, mint hinni vélem. De ez már a másik topic témája lenne.
Én is úgy értettem, ahogy itt írtad, hogy azokat meg lehetne csinálni :) , a centipede-t csak azért írtam le, hogy annak a hátérmozgatása frame-enként 8 byte másolásával megoldható, és ekkor jutott eszembe a sub hunterbe betett bogyózó képernyő, ott midnen képen látható mozgás bekerülhetett volna egy frame-be.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #241 on: 2013.October.24. 16:18:14 »
Quote
Én is úgy értettem, ahogy itt írtad, hogy azokat meg lehetne csinálni :) 

Hát akkor csak siman: ja.

Bár megmondom őszintén én sorba megyek: a galaga az első ... :)

Szóval először azon gondolkodom, aztán majd egy vizszintes scroll -os cucc fog jönni, először csak 2 színnel valószínűleg, aztán jönnek majd a "ziccer" -ek ...

De ezekből bármi is valósul meg, hétköznapi halandónak nem sok öröme lesz, mert épp csak látszódni fog belőlük valami. Pontosabban az tisztán fog látszódni, hogy mire lehetne kihozni a végén, de értelmesen játszani nem lehet majd velük.

De ez meg már megint egy másik topik lenne ...
Z80 System

Offline geco

  • EP addict
  • *
  • Posts: 7218
  • Country: hu
    • Támogató Támogató
Re: Grafikai trükkök
« Reply #242 on: 2013.October.24. 16:28:38 »
A galaga tűnik a legbonyolultabbnak, átvinni az űrhajókat egyik karakterből a másikba...
Szerintem a centipede, vagy az óriáspacman :D sokkal könnyebben kivitelezhető. Bár lehet fullon megírni nem is tudnám :lol: Az ellenség mozgatása okozhat nálam problémát.

Lehet később nekiállok az egyiknek.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #243 on: 2013.October.24. 16:33:13 »
Quote
A galaga tűnik a legbonyolultabbnak,


Hát igazából sztm az oldal scroll -os dolog még a galagánál is nehezebb talán, de ha mégsem, akkor valóban ezek vannak holtversenyben az első helyen nálam is.


De hát pont ezért kezdek ezekkel és nem a "ziccerekkel". Először a nehezet, aztán jöhet az élvezet ... :)
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #244 on: 2013.October.24. 16:47:17 »
Quote
Lehet később nekiállok az egyiknek.
Minnél többen állnak neki, annál inkább sülhet ki belőle valami eredmény is.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #245 on: 2013.October.24. 20:39:49 »
Ki tudja, hogy karakteres üzemmódokban a karakterkódok legfelső 2 bitje minden színüzemmódban használható ?

Úgy értem azt irta az EXOS leírás, hogy 2 színűnél a felső két bit a paletta első 8 színét engedi kiválasztani kettesével,

De 4 színű módban akkor csak egy bit van, és azzal lehet kihasználni a 8 színt, négyesével,

vagy ott is két bit van, és a teljes 16 -os paletta kihasználható 4 -esével ?

És akkor 16 meg 256 színben meg színek szempontjából nincs semmi extra, a felső két bitnek semmi hatása ?

Természetesen végig feltételezve a 64 karakteres módot ...
Z80 System

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Grafikai trükkök
« Reply #246 on: 2013.October.24. 20:45:05 »
256 színű módban a biteknek nincs hatása (az LSBALT/MSBALT kivételével, amelyek továbbra is levágják a megfelelő bitet, de a színekre ezeknek sincs hatásuk ilyenkor).

Paletta alapú módokban (2, 4, és 16 színű) OR 2 és/vagy OR 4 művelet történik a paletta színnel. Ezek mindhárom módban működnek (és még a normál esetben grafikus módokban használt LSBALT/MSBALT bitek is), de nem mindig van értelme a használatuknak. 2 és 4 színű módban nincs lehetőség a felső 8 paletta szín használatára.
« Last Edit: 2013.October.24. 20:48:36 by IstvanV »

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #247 on: 2013.October.26. 23:27:18 »
Ez szinte nem is programozási kérdés, de attól még nem tudom.

Szóval a normál PC -s rendszereknél van egy fix frekvencia amin megy a monitor, pontosabban amire (vagy amikre) képes a monitor, ezt meghajtja egy videokartya kimenet azon a frekin, ami épp választva van a monitor által ismert frekikből.

A képfrissítésre az alkalmazói szoftver a grafikus API -kon keresztül eldöntheti hogy vár rá, vagy nem vár rá, és joccakát.

( Mondjuk épp ezzel kapcsolatban várható nagy változás most, az nvidia a "napokban" találta fel a spanyolviaszt, és bemutatnak olyan monitor és videókártya (persze csak nvidia kari ...) kombókat, amikkel meg lehet valósítani akár dinamikus képfrissítéseket is. Technikailag nemtom ez mekkora kunszt, de a lényeg hogy már nem csak a szokásos képfrissítési frekik lesznek, és ha valami épp kiesik (lassabb) a beállított frekiből, akkor a várakozás miatt egyből duplájára lassúl, vagy várakozás nélkül jön a frame tearing, hanem ha a cucc 54 vagy 37 FPS -sel tudja lökni a frame -eket, akkor a monitor azt szépen le fogja követni. Ez olyan mintha végtelen mennyiségű frekit ismerne a monitor, és még ráadásul frame -ről frame -re változhatna is az érték.)

De vissza az EP -re. Szóval EP -n ennél nagyobb befolyásunk lehet a videó jelre, ha jól értem ? Tehát van az LPB -kben az LPT reload flag, amit ha bekapcsolunk, akkor újratöltődik az LPT címe. De ez az újratöltés közvetlen befolyással lesz a kimeneten a video jelekre (RGB+szinkronok), nem ? A monitoroknál hogy van ez, lekövetik a videójelet szolgamód ? Tehát feltételezzük, hogy van egy LPT -m ami nem korrektül (az összes függőleges sorra) van összerakva, hanem mondjuk 200 sort tartalmaz. Akkor mi lesz ? Ki fog rakni képet a monitor ?Megjelenik a monitoron a kép tetejétől a 200 sor, es a monitor többi része fekete lesz ?

Ugyanez a hatás lesz akkor is, ha nem az LPB -ből, hanem a z80 forced LPT port írással váltom a címet, mondjuk minden frame -ben ?

Mert én úgy emlékszem, hogy a monitorok (TV -k) ennyire azért nem követik le a video jelet, hanem szétesik a kép ... nem is értem mi értelme van egyáltalán a forced reload -nak akkor ?

Tehát ugye ha villanásmentesen akarok LPT -t váltani, akkor a nem forced verziót kell alkalmazzam, és akkor a kép végén automatikusan fogja majd betölteni a nick a címet a (mostmár) új LPT -re. Így csak azzal kell már szívni majd, hogy mielőtt nekiállok szétbarmolni az előző LPT -t, vagy a videómemóriáját, azelőtt megbizonyosodjak róla, hogy a váltás a NICK részéről már végbement. Oké, hogy kicsi az az idő, hisz 50 Hz a frissítés, de akkor is, elvileg gondolkozva.

Ha forced módon váltok, akkor meg villanik (villanhat) egy nagyot, attól függően, hogy az előző LPT épp hol tartott mikor ráváltottam forced módon az új címet. De sztm ha mondjuk 50 fuggőleges pixelsor után forced módon LPT -t váltok, abból csak csúnyaság lesz, nem pedig a felső 50 sor ... vagy mégis ? Leköveti a monitor a jel változását ? Vagy eleve nem is lesz mit lekövessen, hisz a szinkron jelekig nem jut el az LPT így soha ...

Vagy lehet hogy forced reload- nál a NICK generál gyorsan valami szinkron jeleket a monitornak az LPB -k nélkül is ?

Szóval ...

1 Monitorok mit tudnak lekövetni ?
2 Van -e bármi értelme a forced LPT cím váltásnak ?
3 Hogyan tudom detektálni azt, hogy a nem forced LPT váltás ténylegesen betöltésre került már a NICK által (ok, persze csinálok egy tizedmásodperces várakozást, és kész, de nincs is rá hivatalos módszer) ?
« Last Edit: 2013.October.26. 23:33:11 by Z80System »
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14775
  • Country: hu
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #248 on: 2013.October.26. 23:41:52 »
A forced-nek leginkább bekapcsoláskor van szerepe, de akár resetnél is (pl pont LPT készítés közben lett resetelve), hogy mindenképpen hagyja abba a Nick amit csinál, és váltson az újra. Mert a nem meghatározott régi adatokkal lehet, hogy éppen olyan LPT-n fut, aminek sosincs vége...

Ha nem megfelelő számú sort raksz az LPT-be akkor futni fog a kép, bizonyos eltérést tolerálnak a monitorok, de pl nekünk volt olyan Junosztyunk ami kb 2 sor eltérésnél már elindult a kép lefele vagy felfele...

A detektálásra az a módszer, hogy a VINT is ott van RELOAD mellett az LPT végén, így akkor van videó megszakítás, amikor újra kezdi az LPT-t, ha nem forcos-os új volt, akkor azt.
Vagyis ha két képernyőt akarsz használni, akkor beírod az új címet, aztán várni a videómegszakításra, ha az megjött lehet törölni a régit.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #249 on: 2013.October.27. 00:00:11 »
És akkor egy már szétcsúszott videójel kimenet/TV bemenet hogy talál össze ? Mitől lesznek újra szinkronban ?

Mikor forszoltan beváltom az LPT -t, lehet hogy először elpörög az LPT végén a szinkronig, ott egymásra talál a video jel és a TV, és onnantól lesz jó a kép ?

Tehát forszolt beváltásnál az is lehet, hogy célszerű az első szinkron LPB -vel váltani be, aminek a végén meg úgyis ott van a reload megint ?

De akkor tehát csak van valami "lekövetés", ha más nem a kép kezdésére, mert különben sosem találnának már egymásra, ha egyszer elcsúsztak, nem ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #250 on: 2013.October.27. 00:02:09 »
De akkor meg hogy jönnének létre ezek a futások, a kép tetejéhez húzott képhez képest ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #251 on: 2013.October.27. 00:04:26 »
Quote
A detektálásra az a módszer, hogy a VINT is ott van RELOAD mellett az LPT végén, így akkor van videó megszakítás, amikor újra kezdi az LPT-t, ha nem forcos-os új volt, akkor azt.
Hát ... ez inkább "egy" módszer, nem pedig "a" módszer ... mi van, ha én a videomegszakot nem oda akarom ? Mi van ha a leváltandó LPT -ben nem ott volt.
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14775
  • Country: hu
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #252 on: 2013.October.27. 00:16:21 »
Quote from: Z80System
Hát ... ez inkább "egy" módszer, nem pedig "a" módszer ... mi van, ha én a videomegszakot nem oda akarom ?
Hova máshova akarod? :-)
Amúgy a kép végének nem kötelező az LPT végén lenni. Lehetséges, hogy mondjuk az utolsó érdemi képtartalmat jelző sor legyen az utolsó ami reloadol meg megszakít, a kép (mondjuk játéktér) alatti üres keretet, meg szinkron részt az LPT eleje tartalmazza.

Lehet több megszakítás is, de akkor neked kell nyilvántartani, hogy éppen melyik jött.
Quote
Mi van ha a leváltandó LPT -ben nem ott volt.
Ha nem tudod mi volt az előző LPT-dben az baj :-) ha meg tudod, akkor ahhoz képest kell gondolkodni.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: Grafikai trükkök
« Reply #253 on: 2013.October.27. 00:25:04 »
Quote
Amúgy a kép végének nem kötelező az LPT végén lenni.
Na ez tök érdekes ... tehát az LPT egy "kört" képez, és nincs eleje meg vége ... ami azért érdekes mert úgy "tanítják" hogy

1 kezdő szinkron lpb
értelemes sorok lpb -i
5 vég szinkron lpb

de akkor eszerint ez is jó:

5 vég lpb
1 kezdő lpb
értelmes sorok lpb -i

vagy:

értelmes sorok lpb -i
5 vég lpb
1 kezdő lpb

És lássuk be ez tök röhej ...



És akkor mitől talál egymásra a videojel és a monitor ?
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14775
  • Country: hu
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #254 on: 2013.October.27. 00:27:46 »
Quote from: Z80System
És akkor egy már szétcsúszott videójel kimenet/TV bemenet hogy talál össze ? Mitől lesznek újra szinkronban ?
A szinkronáramköröktől. De azt passzolom, hogy ezek pontosan hogyan is működnek.
De a lényege az, hogy a szabvány szerinti (pluszminusz némi tűrés) ütemben érkező szinkronjeleket felismeri, és belövi a képet a helyére.
A kezdetek kezdetén a hálózati áram adta a szinkront, ezért 50 félképes a PAL, míg 60 az NTSC, mert az amcsiknál 60Hz-es áram van (ott 60FPS-es játékot akarnál látni :-D )