OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 21:28

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ] 
Autor Zpráva
 Předmět příspěvku: Unlimited bobs
PříspěvekNapsal: 05.09.2013, 10:49 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 19:27
Příspěvky: 1011
Has thanked: 231 times
Been thanked: 221 times
Me by zajimalo, jak se principialne udelany efekt unlimited bobs. Kdysi mi to nekdo vysvetloval ale nepochopil jsem to. Jak to probiha, co se kresli na obrazovku nejdriv a co potom, ze to vypada jakoby ty boby jezdily? S cim se na obrazovce hybe? (zajima me pochopitelne reseni na ZX).

_________________
Have you played ATARI today?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 05.09.2013, 17:59 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Noby píše:
Busy mě určitě opraví, ale princip je animace, minimálně o 3 snímkách. Prostě máš paměti 3 prázné obrázky, které postupně za sebou zobrazuješ, aby vznikla animace. A do nich přikresluješ "bob", cyklicky vždy do jednoho toho obrázku, vždy o kousek posunutý. Hýbe se vlastně jen ten co právě kreslíš a v obrázku ti zůstavají kopie předchozího kroku, které pak vytvářejí dojem nekonečného pohybujícího se řetězu.

Busy ta opravovat nemusi, napisal si to uplne spravne :)
Len upresnim. Ulimited boby co su napr. v NMI3 deme, pouzivaju 4 obrazovky. Mne sa to zdalo malo, tak vo svojich unlimited boboch (DMA demo Level 2, Echologia, foreveracke intro) pouzivam 8 obrazoviek - kvoli vecsej plynulosti pohybu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 10.09.2013, 15:05 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Factor6 píše:
A ty obrazovky ale nejsou prázdné, ale jakoby se ORujou nebo XORujou (nevím teď jaký je v tom rozdíl).. jinak by ty boby na obrazovce nepřibývaly, je to tak?
Na zaciatku su prazdne. NeORuju sa ani neXORuju, ani ziadne ine matematicko-logicke operacie sa s nimi nerobia, len sa periodicky dokola prepinaju (na ZX spektre kopiruju do pevnej videoramky a na inych platformach sa len prepina ich aktualne zobrazovanie).
Factor6 píše:
Kdybych tenhle efekt chtěl udělat, stačilo by mít v paměti obrázek jednoho bobu, řekněme 16x16 pixelu a pomoci nejake predpocitane sinusove drahy ho jen vkladat na ty jednotlive 3 (at je to jednodussi) screeny a tyto screeny cyklicky opakovat?
Ano, ten bob nakreslis do jednej z obrazoviek a tuto obrazovku nechas nasledujuci frejm zobrazovat (na obrazovke vidis 1 bob). Potom bob nakreslis do druhej obrazovky ktoru nechas dalsi frejm zobrazovat (bob sa kusok posunul). Takto to urobis so vsetkymi (tromi ci osmimi obrazovkami, cim viac tym lepsie) - bob sa posuva dalej a dalej. A teraz pozor. Ked vsetky obrazovky prejdes, bob (dalej posunuty po tej predpocitanej sinusovej drahe) nakreslis do obrazovky, kde si ho nakreslil najprv. Stary bob nemazes ! Obrazovku nechas zobrazit - a hla, uz vidis boby dva ! A takto cyklicky pokracujes donekonecna. Po kazdom vystriedani vsetkych obrazoviek ti na kazdej z obrazoviek pribudne jeden novy bob, posunuty voci predchadzajucim.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 05.11.2013, 11:39 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
zx3 píše:
Jenom si ještě dovolím doplnit, že pro zvýšení efeknosti bývá v nějakém místě přes tyto boby nakreslen nějaký statický objekt, ten je nutné vykreslovat vždy po vykreslení nového bobu do aktuální obrazovky (nebo alespoň v případě, když nový bob ten statický objekt překreslí - ale já bych ho asi kvůli shodnému časování všech snímků bez nutnosti zjišťovat, zda ho vykreslit či nikoliv, vykresloval pořád). Místo statického objektu objektu může být i počítadlo, pak je nutné to počítadlo udržovat zvlášť a kreslit ho přímo do obrazovky, nikoliv do pracovních prostorů.

Ano, staticky objekt uplne staci vykreslovat na realnu obrazovku, len treba dat pozor na koliziu so zobrazovanim. Na systemoch ktore len prepinaju adresu obrazovky sa samozrejme musi kreslit do tych "virtualnych". Ale tie systemy maju obvykle sprajty takze toto riesit nemusia.

Btw. v mojom intre Uns1k http://www.youtube.com/watch?v=-YCyjPyBCUY ako staticky objekt vykreslujem pocitadlo :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 05.11.2013, 21:15 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2192 times
Been thanked: 894 times
Nize uvedeni bobici by snad bezeli v BetaBasicu nebo s pomoci kompileru s rutinami prepinajicimi obrazovky.
Takto je to nazorne podano v (sam) basicu:
http://sam.speccy.cz/bobs/bobs_comments.txt
http://sam.speccy.cz/bobs/bobs_listing.txt

Obrázek

_________________
// na co myslím, když sedím u oldkompů: Blood Products from Genetic Vaccine Recipients


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 05.11.2013, 21:47 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
No jo no, pokial sa daju hadwerovo prepinat screeny, tak procak si 99% casu moze sunky valat a potom to realne stiha aj v basicu :)
Btw. skoda ze ZX spektrum 128 nema osem videoramiek. V kazdej spomalenej banke by mohli byt dve (od #C000 a #E000), a vyzadovalo by si to v podstate dost trivialnu zmenu v ule (a o dva bity sirsi port #7FFD). To by sa tam potom krasne robili nekonecne sprajty ... :joint:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 05.11.2013, 22:12 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
SCjoe píše:
Kdy se tenhle efekt objevil poprve na Speccy?
Na SAMikovi byl hned v r. 90 - a prinesli jej Polaci - ESI - ze Spectra.


Pokial si dobre pametam, aj na ZX Spektre sa objavil tiez tak nejak v tych rokoch v deme od ESI. Oni to spravili na polovicnu plochu obrazovky, so styrmi virtualnymi obrazovkami a so sprajtami 16x16 pixelov. Tak ja som si ho aj ja skusil naprogramovat, ale na celu plochu obrazovky, s osmimi virtualnymi obrazovkami (vizualne je to lepsie), a so sprajtami velkymi 32x32 pixelov :neener:
Obrázek
Btw. tento efekt som uz dlhsie predtym poznal (z dem na Amigu a PeC), chcel som ho spravit ale ESI ma predbehli :shrug:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 06.11.2013, 01:06 
Offline
Radil
Uživatelský avatar

Registrován: 19.07.2013, 14:21
Příspěvky: 258
Bydliště: Košice
Has thanked: 143 times
Been thanked: 380 times
S istotou mozem potvrdit, ze Unlimited bobs sa na PMD 85 objavilo v roku 2012... :heilpmd: (mozno preto, ze som to sam programoval :lol:)
http://pmd85.borik.net/_work/unlimited.ptp (cca 2kB, zaviest pomocou MGLD 00; JUMP 0000) - okrem ineho to demonstruje, aky je rozdiel medzi i8080 vs. Z80, tj. 2MHz a 3.5MHz, problem obmedzenej instrukcnej sady, hlavne ziadne prenosove instrukcie a v neposlednom rade, pre demomakera nevyhodne navrhnutu VideoRAM, bez akejkolvek synchronizacie paprsku... :shrug: ...ale zas, prave o tom to 8bitovanie je, zejo?
Prekonavat zdanlivo neprekonatelne :dwi:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 06.11.2013, 10:48 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
mborik128 píše:
S istotou mozem potvrdit, ze Unlimited bobs sa na PMD 85 objavilo v roku 2012... :heilpmd: (mozno preto, ze som to sam programoval :lol:)
Ano, na PMD85 si ma zase predbehol ty :thumbup:
mborik128 píše:
okrem ineho to demonstruje, aky je rozdiel medzi i8080 vs. Z80, tj. 2MHz a 3.5MHz, problem obmedzenej instrukcnej sady, hlavne ziadne prenosove instrukcie
Bude to mozno prekvapujuce, ale hlavny engine, ktory sa stara o lopatovanie dat do videoramky, pouziva iba instrukcie ktore ma aj 8080 :joint:
Z80 sice ma prenosove instrukcie ale tie su hrozne pomale (no proste CISC architektura) a tam kde ide o rychlost, je castokrat vyhodnejsie pouzit klasicke jednoduche (a "menejtaktove") instrukcie - tvarime sa ze je to RISC ;)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 06.11.2013, 10:57 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Busy píše:
Tak ja som si ho aj ja skusil naprogramovat, ale na celu plochu obrazovky
Aby som bol presny, tato verzia efektu na celu plochu obrazovky na prenos dat vyuziva DMA pretoze samotny Z80 by to uz nestihal (*). Cisto softwerovo, bez podpory DMA sa mi to podarilo stihat na cca dve tretiny obrazovky:
Obrázek
[youtube]http://www.youtube.com/watch?v=GJEqjJx62y4[/youtube]
Samotny presun dat do videoramky je realizovany cez zasobnik (PUSH).


(*) plati dovtedy pokym niekto nepreukaze opak :neener:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Unlimited bobs
PříspěvekNapsal: 08.11.2013, 00:04 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Factor6 píše:
Busy píše:
Factor6 píše:
Zajimalo by me, jak by to slo aplikovat v sinclair basicu, kdyz neumoznuje prepinani 4 obrazovek.
Prave to prepinanie (alebo kopirovanie obsahu) aspon styroch obrazoviek je zaklad toho efektu.
Ale z principu by aspon bylo videt, co se presne deje.
Ty si ma normalne nastval :poke: ;) az tak ze som to napokon specialne pre teba zbuchal v tom sinclair basicu :neener:

Takze, tu je to:
http://busy.speccy.cz/tmp/unlimited-bobs-in-basic.rar

Pre svoj beh potrebuje BSrom140 http://busy.speccy.cz/download/bsrom140.rar
ale je mozne ho spustit aj na MB02 (BSrom118+BSdos308) ale kedze romka 118 este nevie CHR$ -1 tak je treba to nahradit tymto: FN (c) kde (c) je znak cecko v kruzku (ascii kod 127). To je funkcia bsdosu a robi presne to iste co CHR$ -1 v romke 140 (vrati celu pamet ako jeden 65535 znakovy retazec).

PS: Na memory led mape krasne vidno ako sa kopiruju jednotlive screeny do obrazovky :whist:


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz