.[ ČeskéHry.cz ].
specialni kopirovani pameti
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 7. leden 2024, 09:56:16    Předmět: Odpovědět s citátem

K mem*_fast:

S memcpy_fast to bylo trochu pomalejší. S memset_fast jsem nezaznamenal rozdíl.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 7. leden 2024, 10:16:21    Předmět: Odpovědět s citátem

frca napsal:
Místo pro výměnu palety je těsně po novém framebuf_flip s vsync?

to si nejsem úplně jistý, nevím přesně který bit v 0x3da to je a co přesně znamená, ale hádám, že ano

citace:

Dále, hry časuji typicky s timerem konfigurovaným na 60 Hz, takže teď by to bylo 120 Hz - to by ještě s třístránkovou metodou fungovalo? Pak by byl limiter triviální:

timer_interrupt()
{
++timer_count;
}

...
// game loop
{
while (timer_count == prev_timer_count); // wait for timer
... // game step, rendering
framebuf_flip(VGA, 0);
}

Edit: Vlastně timer/limiter na 60 Hz bude podle mě stačit. Na rychlém HW se využijí všechny frejmy módu X bez artefaktů a na pomalém VSYNC nebude nic brzdit.

Tyhle dotazy píšu pro ujištění, protože to budu i nějak dokumentovat.

Edit2: 3stránkový page flip funguje na 486 bezvadně. Je to stejně rychlé jako ten původní, ale bez artefaktů.


ano, se třemi stránkami to je safe dokud jsi pod 120Hz (resp. o něco míň, jinak si budeš koledovat o artefakty), proto jsem doporučoval 100Hz, ale může to být reálně cokoliv (ideál 90Hz, to je přesně mezi) - to je proto, že když poběžíš moc rychle, tak to předběhneš a začneš kopírovat do paměti stránky, která je aktivní. proto je ale taky 3-page flip super - s limiterem se toto nestane a můžeš svištět bez vsyncu

ad mem: díky za změření, tak pak zahodit. takže jsem to dělal zbytečně Smile proč ale není memset_fast rychlejší nechápu, pokud to vygeneruje rep stosb a ten 486 manuál s cykly nelže. takže
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 7. leden 2024, 10:36:00    Předmět: Odpovědět s citátem

V praxi podle mě "fyzika" (a tedy i limiter) může běžet na 60 Hz, aby to odpovídalo reálnému framerate. Já jsem používal 60 Hz na fyziku i u klasického 70Hz módu 13h, protože je to takový zaužívaný standard Very Happy

Respektive nejsem si jistý, k čemu by byl vyšší limiter (90 Hz, 100 Hz, ...) dobrý...

Testy s paletou plánuji výhledově udělat.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 7. leden 2024, 10:44:10    Předmět: Odpovědět s citátem

frca napsal:
V praxi podle mě "fyzika" (a tedy i limiter) může běžet na 60 Hz, aby to odpovídalo reálnému framerate. Já jsem používal 60 Hz na fyziku i u klasického 70Hz módu 13h, protože je to takový zaužívaný standard Very Happy

Respektive nejsem si jistý, k čemu by byl vyšší limiter (90 Hz, 100 Hz, ...) dobrý...

Testy s paletou plánuji výhledově udělat.


jasně, to je v pohodě. trochu jsem se obával, že to nemusí přesně sedět a že by ti jednou za čas mohl vypadnout frame, pokud se blbě trefíš zrovna.

vyšší FPS je dobré třeba v dosboxu na 144Hz monitoru Very Happy
ale to bys i vstup musel zpracovávat per frame a mít dyn. timestep
zároveň s fixním (min. pro interpolaci stavu, aby to bylo plynulé),
na 486ce myslím, že 60 možná tak v menu, takže to není až tak důležité Smile)

dokonce i na desktopu některé hry to mají fixnuté na 60Hz, ale já jsem už tak zvyklý (=zmlsaný) na vyšší refresh, že mi to něpřijde plynulé

EDIT: pravda, ale dosbox bude stejně fixnutý na 60Hz, protože to tak bude mít i VGA v tom režimu, tak dobrá - mimo dosbox, pokud bude i native binárka
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 7. leden 2024, 11:55:13    Předmět: Odpovědět s citátem

Teď mám chuť vyoptimalizovat pinball pro mode X. Žádný brzdící VSYNC a plany se dají s výhodou využít pro pixel doubling ze základního CGA módu. A kolečka budou kulatá!
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 7. leden 2024, 15:26:41    Předmět: Odpovědět s citátem

ano, motivace mít 1:1 pixely (a 60Hz) je pro 320x240 velká

v robodovi jsem používal ještě takový trik: paleta byla udělaná tak, že index*16 mirroroval klasických 16 barev, tzn. paleta na indexu 0x1 měla stejnou hodnotu jako 0x10 a 0xf stejnou jako 0xf0 (protože 16 barev)
pak jak píšeš stačilo nastavit v bitplane 2 bity a jelo se
kopírovalo se přímo z bufferu do vram a to tak, že se vzaly 4 sousední bajty v pakované paměti (měl jsem to zabalené po nibblech, takže 1 bajt měl 2 pixely v sobě), vymaskovat 0xf0f0f0f0 a nahrnout to tam (plus ještě se samozřejmě v dalším movu kopírovalo ukládáním na další řádek protože doubling).
pak se bitplane maska zinvertovala a zkopírovalo se po 4ech bajtech s invertovanou and maskou (tj. 0x0f0f0f0f)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1533
Bydliště: u Prahy

PříspěvekZaslal: 7. leden 2024, 15:43:57    Předmět: Odpovědět s citátem

mar napsal:
vyšší FPS je dobré třeba v dosboxu na 144Hz monitoru Very Happy

Brácha hraje DOSovské hry na běžném CRT 17" monitoru v 640x400 120 Hz. Hry jako Blood nebo Hexen. Např. na S3 Virge je skvělá podpora DOSu a vlastních Hz.
EDIT: 640x400 místo na 480, protože UI hry je přesně 2x2 pixely - podobně jako Retina na Macách.

frca napsal:
A kolečka budou kulatá!

Grafika do těch her se kreslila se započítáním nečtvercových pixelů, takže kulaté věci byly kulaté. Problém by byl, až když bys chtěl bitmapou otáčet (prot se použila jiná bitmapa).

mar napsal:
ano, motivace mít 1:1 pixely (a 60Hz) je pro 320x240 velká

Někteří lidé jsou na 60 Hz citliví, proto vyžadují ergonomických 70 Hz. Takže profesionální textové editory (např. MS Word) byly v textovém režimu 70 Hz a ne v grafickém. Grafický byl nutnost pro ne-anglické jazyky (např. u nás T602).
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 7. leden 2024, 16:19:53    Předmět: Odpovědět s citátem

Ladis napsal:
mar napsal:
ano, motivace mít 1:1 pixely (a 60Hz) je pro 320x240 velká

Někteří lidé jsou na 60 Hz citliví, proto vyžadují ergonomických 70 Hz. Takže profesionální textové editory (např. MS Word) byly v textovém režimu 70 Hz a ne v grafickém. Grafický byl nutnost pro ne-anglické jazyky (např. u nás T602).

1:1 je dobré v tom, že pak můžeš rovnou tu svoji věc vydat i pro moderní PC/jiné stroje a nemusíš nic řešit (proto třeba v defaultním nastavení Wolf3D vypadá v DosBoxu splácnutě, i když i to se dá nastavit)
60Hz je de facto standard, že by to někomu vadilo slyším poprvé, ale je to možné.
70Hz implikovalo "nečtveraté" pixely pokud vím

co jsem ochutnal 144Hz monitor na FPS hry (dokonce i tahání oken na desktopu je mnohem plynulejší), tak už bych na 60Hz zpátky nikdy nešel, radši 144 fullHD než 60 4k
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 7. leden 2024, 23:18:51    Předmět: Odpovědět s citátem

60 Hz vadilo u CRT, to blikání bylo docela vidět a unavovalo oči. To už ale dnes málokdo pamatuje Wink
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 8. leden 2024, 02:08:20    Předmět: Odpovědět s citátem

pcha, já jsem začínal v 91ém na 8-bitovém atari s kazeťákem a pidi televizí (50Hz PAL) a nic mi nevadilo Smile to byl úplně jiný hardcore
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1533
Bydliště: u Prahy

PříspěvekZaslal: 9. leden 2024, 00:23:58    Předmět: Odpovědět s citátem

mar napsal:
pcha, já jsem začínal v 91ém na 8-bitovém atari s kazeťákem a pidi televizí (50Hz PAL) a nic mi nevadilo Smile to byl úplně jiný hardcore

Ta TV ale měla velký dosvit.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 14. leden 2024, 10:59:05    Předmět: Odpovědět s citátem

Když se pomocí
outp(SC_INDEX, MAP_MASK);
outp(SC_DATA, 1+2+4+8 );
vybere více planes, tak se můžou přepsat všechny najednou, případně jakákoliv kombinace. Výrazně to zrychlí pixel doubling / tripling / quadrupling.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 16. leden 2024, 23:51:32    Předmět: Odpovědět s citátem

Zaimplementoval jsem to do CGPinballu. Hodně to pomohlo výkonu na 486 a kolečka jsou kulatá. Udělám pak nový release na svém webu. Díky za spolupráci Wink
Tento náš-váš framework budu používat, kde jen to půjde.

Napadá mě například low detail mód ve stylu Dooma ve hře RCross.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata 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 hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna