↑↑ zpátky na konec ↑↑
zobrazit novější příspěvky

Laaca     25. 6. 2012 (x)
Aha! Já jsem špatně pochopil, co vlastně dělá ro PuTTimage. Tak to  jo, výkonostní nárůst tam v tom případě je. Optimalizacc by ale hodně prospěla. Já RLE sprajty vykresluju jako jeden blok (podobně jako klasický PutSprite) a clipping a hlídání přelomů banků mi dalo dost zabrat.

Mircosoft     22. 6. 2012 (x)
Moment - pomalejší než neprůhledný obrázek samozřejmě jo, ale ne než průhledný obrázek kreslený pixel po pixelu. A o to šlo.

Ale jak říkám, ve Vese je to zatím jenom předběžná verze bez jakékoli optimalizace.

Laaca     22. 6. 2012 (x)
Jo, něco takového jsem čekal. Ve VESA je PutSprite při všech eventualitách pomalejší. I když v případě 3 bych přece jenom čekal srovnatelný výsledek.
Zatím tedy PutSprite doporučit pro běžné použití nelze (anebo jen z důvodu úspory paměti při ukládání spritů).
Na VGA verzi procedury PutSprite jsem se nedíval. Tam už to vypadá zajímavěji.

Mircosoft     19. 6. 2012 (x)
Tak jsem to proměřil, tady jsou výstupy:

Obrazky: 1 - jednolity nepruhledny ctverec
         2 - vic nepruhledne nez pruhledne
         3 - vic pruhledne nez nepruhledne
         4 - nahodne rozsypane pixely, cca 50/50 (nepoužitelný extrém vytvořený speciálně pro testování)
Vsechny jsou ctverce 200x200 px, jako klasicka bitmapa maji 40000 B.

Vysledky - VGA:
obrazek   putimage  puttimage  putsprite _putsprite   velikost spritu v B
      1       2330       5245       2245       2605          41202
      2       2305       5025       1845       4145          33601
      3       2305       4995       1170       3240          20623
      4       2305       5610       4515      19670          61506

Cisla v tabulce jsou casy v ms po 2000 vykreslenich, presnost mereni 5 ms.

VgaPutimage je 32bitový s ořezáváním podle okna. VgaPuttimage kreslí pixel po pixelu a taky s ořezáváním. VgaPutsprite kreslí sprity 32bitově bez ořezávání, _VgaPutsprite s ořezáváním (to počítá pro každý úsek samostatně).
Měřeno při kreslení do virtuální obrazovky v normální paměti, u VRAM by víc záleželo na celkovém počtu vykreslených pixelů.

Ty měřené obrázky byly dost extrémní případy, v praxi se pohybuji někde okolo obrázku 3, většinou s ještě menším podílem neprůhledné plochy. V takových případech klesá časová náročnost zhruba o 30..80%.

Vysledky - VESA:
obrazek   putimage  puttimage  putsprite _putsprite   velikost spritu v B
      1       3735       8580          0       3755          41202
      2       3615       6370          0       5380          33601
      3       3615       5385          0       4225          20623
      4       3610       5615          0      25810          61506

_Putimage je 64bitový (FPU) s ořezáváním podle okna. _Puttimage kreslí pixel po pixelu a taky ořezává. Putsprite bez ořezávání nemám, proto tam jsou nuly. _Putsprite je tady jenom do počtu, kreslení jednotlivých řádků řeší voláním _Putimage, takže rychlost zatím nic moc.
Měřeno při kreslení přímo na obrazovku.

Laaca     11. 6. 2012 (x)
Koukal jsem se na tvůj kód. Určitě je funkční, ale zajímal by mě ten nárůst rychlosti. Přece jenom tam máš spoustu vedlejší režie, která asi dost uspořeného času zpátky sežere.
Samozřejmě, výhoda tvého přístupu oproti mému je úspora paměti, protože vůbec neukládáš průhledné úseky.

Mircosoft     6. 6. 2012 (x)
Něco na ten způsob už používám, akorát že nemám mapu uloženou odděleně. Sprite tvoří seznam souvislých řádků, každý začíná šestibytovou hlavičkou (x, y, délka) a průhledné části jsou úplně vynechané. Rychlost jsem zatím neměřil, zkusím to.

Laaca     6. 6. 2012 (x)
Nechceš Mircosofte dát do svých jednotek podporu RLE map pro sprajty?
Takhle se dá hodně urychlit procedura pro zobrazování sprajtů s průhlednou barvou. Není potřeba testovat každý pixel, ale to, co je průhledné, a co ne, řídí RLE záznam. Já jsem to naprogramoval do VenomGFX a naměřil jsem asi trojnásobné zvýšení rychlosti.

Brod     2. 6. 2012 (x)
Slušný php návod.

Brod     16. 4. 2012 (x)
Pascal je lepší. Začal som programovať operačný systém. Iba ako koníček. Nešiel by pascal niako portnúť pre moj os? Zbytok na mojej stránke. Ked bude čas pošlem wam adresu. PS pisem este private mail.

Brod     11. 2. 2012 (x)
V Borland C++. Odkazy nemusia byt.

Mircosoft     10. 2. 2012 (x)
Díky :-).

Otáčení už zůstane takhle po 90° bez mezikroků. Veškeré souřadnice jsou pevně dané a textury předpočítané v přesně daných tvarech a polohách; jakékoli vylepšování by bylo tak komplikované, že by bylo lepší rovnou napsat plnohodnotný wolfensteinovský engine.
Ale už aspoň pracuju na tom, aby podlaha a strop při otáčení a chůzi nezůstávaly pořád na jednom místě.

Zvuk v tomhle demu ještě nebyl, takže jsi o nic nepřišel :-).

Ovládání už je právě úplně jiné než původně. Místo bufferovaného čtení (Readkey) přímo zjišťuje, kterou klávesu uživatel drží a kterou ne, takže se dá třeba bojovat při chůzi (a máš pravdu, je to dělané přes int 9). Některé klávesy se zkrátka musí držet déle, ale to je schválně - třeba zbraně se nejdřív napřáhnou a pak praští, při pohybu se po každém kroku chvilku čeká a tak. Všechno jsem to popsal v doprovodném texťáku, ve finální verzi bude i možnost předefinování kláves.

Tu poslední větu jsem nějak nepochopil - jaké možnosti v menu jakého programu? A odkazy na co?

Broda     10. 2. 2012 (x)
Demo dungeonu je skvele. Textury su na ten mod vyborne. 2,4D je tiez dobre len by som pridal dva alebo tri snimky otacania sa. Zvuk som nemal nastaveny na linux stroji takze neviem. Ovladanie ma este stale ten nedostatok z verzie z Soul draco,, nezaregistruje kazdy stisk a sprava sa ako dosove int9. Presedlal som na C hlavne pre tie moznosti v OPTIONS menu tak poprosim o niake odkazy lebo je dost zmatkove.

Mircosoft     1. 11. 2011 (x)
Omlouvám se za krátký výpadek. Měl jsem tu menší invazi spambotů, kvůli které jsem musel knihu na chvíli odstřihnout. Teď už by tu mělo být bezpečno, snad vás nové protirobotí opatření neodradí.

Laaca     19. 9. 2011 (x)
Podpora TTY operací...  ...myslím tím "Ve VESA režimech je podpora TTY operací..."

Laaca     19. 9. 2011 (x)
Nechávat zapnutý grafický režim při odchodu do DOSu bych určitě nedělal. Už jenom proto, že bys mohl hodně poplést správce souborů typu Norton commander.
Textový výstup by měl fungovat v klasických VGA grafických režimech, tedy maximálně do 640x480 16 barev nebo 320x256 256 barev.
Podpora TTY operací (tzn. grafický znakový výstup přes BIOS) je nepovinná a záleží na implementaci VESA BIOSu. Co jsem testoval, tak funguje s Cirrus Logic GL5428, nVidia riva  TNT, GeForce 2 a Geforce 4. Nefunguje s ATI Mach 32 a ATI Mach 64 a s nějakou integrovanou grafikou od Intelu. U novějších grafických karet velmi pravděpodobně fungovat nebude.

Mircosoft     16. 9. 2011 (x)
Omlouvám se, chyba byla na mojí straně - zpáteční adresa zadaná byla, ale ke zprávě se nepřipojila. Opraveno.

Snad tu dotyčný odpověď najde.

Mircosoft     15. 9. 2011 (x)
(tohle je odpověď na mail poslaný bez zpáteční adresy, podepsaný "czp")

Když v čistém DOSu program zapne nějaký grafický režim a ukončí se, grafika zůstane zapnutá. S použitím mojí jednotky VESA by příslušný prográmek vypadal takhle:

uses vesa;
BEGIN
_setmode(_1024x768);
END.

Otázkou je, jak se potom bude konzole chovat. Určitě nebude vidět blikající kurzor a nejsem si jistý scrollováním. Programy, co kreslí přímým zápisem do textové VRAM (segment $B800), asi nebudou fungovat. Ale standardní textový výstup bude v pohodě.

Laaca     10. 9. 2011 (x)
Přesun z XMS do VideoRAM je vcelku pomalý. Pro normální práci je to sice přijatelné, ale pro hry nejspíše ne. Problém s nutností přenášení sudých délek dat by odpadl, pokud bys pracoval ve režimu highcolor.

Mircosoft     29. 8. 2011 (x)
Díky :-).
S tou pomalostí nevím, nezkoušel jsem - hlavně z praktických důvodů: takový putimage přímo z XMS do $A000 by zaprvé musel tahat z XMS každý řádek obrázku zvlášť (spousta přístupů) a zadruhé by se kvůli bankování nedala ohlídat sudá délka dat. Takže všechno řeším mezikrokem přes buffer v normální paměti.

Brod     28. 8. 2011 (x)
Ďakujem New Frontier ma neoslovil to je už lepší FPC. Vektorovú grafiku využijem a xms tiež. Jednotky máš super a stránku geniálne jednoduchú len škoda že vyhľadávače nemajú radi rámy. Nieje to moja prvá hra ale prvá v pascale. Programujem na 486 s Pentium[133MHz] 32M XMS a 800k VRAM VESA. HDD je neskutočne pomalý tak radšej všetko načítavam. Je pravda že presun z xms do $A000 je extrémne pomalý?

Mircosoft     1. 8. 2011 (x)
Technická poznámka: probíhá stěhování stránek, návštěvní kniha byla právě překopírována do nové databáze. Funkce se nemění (snad kromě toho, že už na vás nebude vyskakovat stránka s opisováním textu z obrázku), jenom by se měla zlepšit spolehlivost.

Tož tedy vítejte na nové adrese ;-).

Mircosoft     29. 7. 2011 (x)
Hups - tady to je: http://www.monstersoft.com/mainpage.html (trochu divná úvodní stránka, pravda). Možná by stálo za to rovnou mrknout na jednotku New Frontier, kterou mají v downloadech. Je pro protected mode a funguje v BP 7 (ne TP, ten je jenom pro real mode).

Je otázka, jestli je v realu pohodlnější XMS nebo EMS. XMS se nedá adresovat přímo, ale v EMS se zase musí stránkovat a navíc se program pere s rozhraním TP, které ji používá taky. Tak nevím.

Ale asi nejdůležitější je, co má dělat ten program. Ono 640 kB je docela dost, obzvlášť pro úplně první hru, kterou člověk píše - tam je lepší vykašlat se na zvuky a super grafiku a snažit se spíš o zvládnutí základní funkce, zbytek se dá časem přidat. I s vektorovou grafikou jdou divy, a ta zabere sotva pár kB (viz Kosmostřelce - tam je vektorové všechno kromě intra, pozadí při hře a tří čudlíků v editoru). Já jsem zatím XMS opravdu nutně potřeboval jenom na uložení pozadí v Kosmostřelcích a teď na sprity a zvuky v Dungeonu. Jinak mám všechno v normální paměti a když je to potřeba a nejde o rychlost, sáhnu na disk.

Jo, (x) opravdu maže. Ale po kliknutí je ještě potřeba zadat heslo.

Brod     29. 7. 2011 (x)
Ďakujem.
Pascal ma chytil asi pred rokom a obvtedy som napísal niekolko malých programov pre .BAT. T teraz začínam programovať svoju prvú hru hľadám nejaký spôsob prekonania 640kB. Pozeral som jednotku XMS ale zdá sa mi neohrabané stále niečo presúvať. A na stránke monstersoft na mňa stále nrká jej logo a stranka sa neukáže.
Ozaj ten (x) odkaz vedla správy ju naozaj vymaže?

Mircosoft     28. 7. 2011 (x)
Dobrý den,
omlouvám se za zpožděnou odpověď, nějak mi nepřišlo obvyklé upozornění - zřejmě zasáhl nový centrácký antispam :-(.
1. Ne, DPMI jsem nikdy nezkoušel. Ale můžu doporučit třeba www.monstersoft.com, tam v něm dělají (v BP 7).
2. EMS je popsaná v AThelpu, stačí se nějak proklikat k odkazu "EMS" (dá se najít třeba v Mapě paměti).
Slovenština nevadí, rozumím a mám ji rád :-).

Brod     21. 7. 2011 (x)
Dobrý deň, chcel by som som sa opýtať na dve vecí:
1.Programujete aj pre DPMI?
2.Kde by som sa mohol dozvedieť niečo o EMS pretože to neviem nikde nájsť.
Prepáčte ze píšem slovensky.

Mircosoft     3. 3. 2011 (x)
Díky za zprávu, určitě se přidám :-).

sdraco     26. 2. 2011 (x)
Ahoj, tak práce na programátorském portálu dospěly do zdárného konce, projekt je na původní adrese: http://www.islandsoft.cz/

Budeme rádi, když k nám něčím přispěješ :)

Laaca     14. 12. 2010 (x)
Jediné, co si nejsem jistý, jak bude v DOSboxu fungovat, je čtení VESA DDC. Jinak bude běhat všechno.
Větší projekty, třeba Dungeon, bys dokonce mohl distribuovat s "embedded dosboxem".
Lidi s Vistama by ho mohli spouštět přes něco jako Dungeon.BAT, kde by bylo něco jako:
".\DOSBOX\DOSBOX.EXE -i .\DOSBOX\STARTUP.BAT"

A v .\DOSBOX\STARTUP.BAT:
mount d .
dungeon.exe

Mircosoft     13. 12. 2010 (x)
Ahoj, díky za dopis.

Hicolor je dobrá věc, ale zase v něm nejdou moje oblíbené triky s paletou :-).

Jo, v Dosboxu by mělo fungovat všechno, co píšu. Jednou jsem to zkusil, prográmek používající časování a Vesu běžel bez problémů. Jestli půjdou i všechna ostatní přerušení, porty, zvuk atd. zatím nevím. Jen co dopíšu Dungeon, nechám ho důkladně otestovat v Dosboxu na notebooku s Vistami :-).

Ať se daří!

BENN     9. 12. 2010 (x)
Zdravím tě Mircosofte, škoda, že na web stránky nemám moc čas (někdy i náladu).

Vidím, že jsi Pascal ještě neopustil. Já jsem jako poslední hojně používal TMT Pascal, kterej byl super, ale často jsem náražel na to, že občas pod Widlama nebyla dostupná VESA grafika. A taky audio byl problém.

Snažil jsem se mít grafickou knihovnu s 32k (popř. 64k) barvami. Už kvůli různým bitmapovým obrázkům a zajimavým efektům, jako třeba menu ve stylu kouřového skla atd. BMP obrázky a WAVy jsem úspěšně brakoval ze hry Dark Colony, kde jsou k dispozici super efekty. Ta hra byla pro mě zlatá truhla, takže mě dělání vlastních obrázků moc netížilo, ale jak říkám chtělo to víc jak 256 barev.

Ještě jsem si rozpohyboval "Hydrališku" ze Starcraftu (BMP obrazky jsem vyexportoval programem MPQview). Ale to už jsem cítil, že Psacalu dám sbohem. Ještě mě v hlavně rejdila myšlěnka udělat program, kde by byli všechny jednotky z různých strategii jako Duna2, Earth2140, RedAlert, Starcraft atd. Něco jako prvomájový průvod těch jednotek. Něco jako taková oslava.

Bohužel Pascalu už moc nevládnu, že bych byl nápomocen (nedávno jsem těžce přemýšlel jak se dělá cyklus "for" pod Delphi). Tak Vám aspoň budu fandit a přát motivaci k programování.

Hodně zdaru L.BENN

PS: lze pak používat DOSBOX pro vaše programy?

Mircosoft     12. 7. 2010 (x)
Zdar Draco. Jasně, Dungeon dodělám (tu novou obsluhu kláves jsem psal především kvůli němu), jenom se to kvůli kupě jiných projektů hrozně vleče. Jestli chceš využít grafiku jinde, tak ji samozřejmě využij, nejsem proti. A že budou dvě stejně nakreslené hry? Proč ne.

Ohledně Mrtvého slunce není za co se omlouvat, jenom mi pak řekni, až budeš potřebovat zbytek těch obrázků, a jaký má být finální poměr stran ;-).

Robotris zkusím omrknout (jen co se dostanu k počítači s W XP SP3, kde není zakázáno instalovat programy).

M.

sdraco     10. 7. 2010 (x)
Ahoj Mircosofte, chtěl jsem se zeptat, jak to vypadá s tím Dungeonem, jestli ho plánuješ dokončit. Vypadá to totiž, že se bude dělat remake Nightwalkera pro Windows a napadlo mě, že bych tak mohl dát smysl zapomenuté existenci postavičkám a itemům z Dungeonu a využít je pro další expanzi hry.

Jinak mám novou gamesu, můžeš mrknout: http://www.sdraco.cz/index.php?art=hra-robotris-remake-tetris

Ohledně Mrtvého slunce se omlouvám, ale nějak na to vůbec není čas. Jsem si téměř jistý, že to jednou vyjde, ale asi to bude ještě dlouho trvat. S největší pravděpodobností by to mohla být webová adventura ve Flashi.

S pozdravem sdraco

Mircosoft     30. 4. 2010 (x)
Tak... ovladač klávesnice mám víceméně hotový, ještě zbývá napsat něco, v čem by se daly nějak rozumně tvořit soubory s rozložením kláves - přes const se mi těch 1000+ kódů datlit opravdu nechce :-).

Laaca     23. 4. 2010 (x)
Hotovo. Článek napsán a nahrán:
http://www.int21h.ic.cz/?id=104

Stejně se mi ale fungování serceru IC nelíbí a pokusím svoje články z INT21h zazálohovat na svoje stránky.

Mircosoft     22. 4. 2010 (x)
Vypadá to na další z mnoha dočasných výpadků na serveru IC a Int21h není jediná stránka, kterou postihl, viz támhle: http://phorum.ic.cz/viewtopic.php?t=17357 .
Boby by měl být k zastižení na int21h zavináč ic.cz, ale s tímhle asi těžko něco pořídí... nejlepší bude počkat, až to správci zase rozchodí.

Divné je, že se to oběma mým stránkám vyhnulo a veškeré PHP mi běhá bez problémů. Můžu říct, co používám (Array, Array,  a MySQL), ale netuším, jak to vypadá u ostatních.

Laaca     21. 4. 2010 (x)
Nevíš, co se to děje s INT21h ?
Do spousty podstránek (hlavně výčtových, rozcestníkových) se nedostanu. Hlásí to "502 proxy error")
Vím, že jsi snad programoval části redakčního systému. (nebo ne?). Tobě funguje všechno jak  má?
Po dlouhé době dokončuju jeden článek, který bych rád přidal, ale když to tak vidím, tak nevím, nevím.
Nemám ani mail na Bobyho.

Mircosoft     15. 4. 2010 (x)
Definitivně mě přestalo bavit ošetřování výjimek, nepravidelností, nepodporovaných klávesových kombinací a nejistoty ohledně češtiny ve standardní biosovské obsluze klávesnice, tak si píšu vlastní. Bude o něco rychlejší (bez volání int $21 nebo int $16), tabulky ASCII kódů (včetně podpory mrtvých znaků) si bude načítat ze souborů, bude mít delší buffer, víc možností a z větší části bude zpětně kompatibilní se standardní obsluhou (aspoň co se týče těch ASCII kódů a způsobu jejich bufferování).
ETA řekněme do konce dubna, jestli se nestane nějaká katastrofa :-).

coosor     2. 1. 2010 (x)
ok, ok. / OT /já jsem dělal celkem hafo věcí pro win32, ale vracim se stále k DOSu, jiný způsob jak se pořádně rozdýchat neznám :-), to je dnes samej novej OS, silverlighttechnologie, android mobil, já to už dávno chtěl zakonzervovat...pokračuji v konání-kování podkov

Laaca     1. 1. 2010 (x)
Já jsem dřív v protected módu BP dělal hodně, ale později jsem začal používat Freepascal.
Tedy: to, co jsem dřív dělal v borlandím protectu teď píšu ve freepascalu a věci pro reál jsem dříve i teď psal v TP.
EMS používám.

coosor     28. 12. 2009 (x)
A je to tu docílil jsem dalšího snížení rychlosti o čtyřnásobek :-)
Když si vzpomenu na Alone in the dark, Tomb Raider a Quake co pro některý CPU-100MHz byl
přebytek.. Protected mode, možná optimalizace vnitř Céčkem, popřemýšlim, na 10fps(při100MHz)se nedostanu ani s vyplim osvětlenim a texturovánim. Asm můžu přidávat neustále, ale dokud to nebude
v tom celý.. výpočty mám následovně: 1x za frame v pascalu, na každý polygon optimalizované
shr,shl, celočíselně, grafiku dost zpomalují banky(11->9fps).
Doufám že neemulujete dosboxem. Se SolVBE, plus aktivnim VDMSound jdou DOS věci zprovoznit i na novém HW pod WinXP tak co.
Děláte nebo dělal někdo z vás něco seriózně v protected modu BP nebo jste jen obhlídli situaci
a používáte EMS jak já? 
Mailem nebo nevim,uvidim kam bych mohl poslat něco pascalovitého předchozího.
Budu 3dengine dál popisovat, ty co zajímá pokrok:  coosor.livejournal.com

zobrazit starší příspěvky
Reklamy: