Light

Programátora ub880d zaujalo na youtube video The Lightning Algorithm – Numberphile.

Hned ho nakódoval pro počítač ZX Spectrum a vyzval komunitu k implementaci na další retropočítačové platformy. A jelikož se nikdo neměl k imlementaci pro počítač Ondra, tak to spáchal sám. Oproti ZX verzi zmenšil plochu, protože je to pomalejší počítač než ZX Spectrum a také nemá atributy, které využil na vizualizaci přehrávání na ZX Spectru. Na obarvení jedneho 8×8 čtverce na ZX stačí zapsat do VRAM jeden bajt, na Ondrovi je jich třeba zapsat 8. Toto demo bylo publikováno na podzim roku 2021.

Stažení pro ViLi ROM: Light.zip

ub880d a Solaris104

Rubriky: Software | Napsat komentář

Falling Blocks v2

Za vydáním nové verze této hry stojí především skutečnost, že jsem se věnoval vývoji nového zvukového modulu ondraMELODIK a snahou bylo jej co nejrychleji a smysluplně někde reálně využít. Volba tedy padla na implementaci do již hotové hry. V souvislosti s tím jsem ještě změnil několik věcí v této hře i na základě zpětné vazby od uživatelů.

První a zásadní změnou je tedy podpora hudebního modulu ondraMELODIK. Pro mne to byla zcela nová disciplína. Nejvíc práce bylo asi (a to hned od začátku) vymyslet správný postup, jak to budu do budoucna celé dělat – tzn. kde začít, odkud hudbu vzít, v jakém formátu nebo i složit vlastní, a výstupem data pro hudební rutinu v Ondrovi v assembleru. Co jsem tak zjistil, každý umělec/programátor si to dělá po svém a ono je to asi tak nejlepší. Velmi se mi líbí zápis od Františka Fuky, dost možná časem dospěji k něčemu podobnému. Nicméně v tuto chvíli a vzhledem k HW možnostem Ondry s Melodikem jsem zvolil cestu takovou, že vstupem je 3 kanálový MIDI soubor (který dokážu předzpracovat), ten převedu pomocí dostupného konvertoru na VGM a v Ondrovi mám rutinu, co používá VGM formát, avšak obálku tónu si tvořím sám. Je to z toho důvodu, že VGM je jinak moc veliký a sotva by se vešel do paměti. Můj VGM má třeba 1.5kB, protože obsahuje informaci jen o změně noty. Časem chci rutinu rozšířit o arpeggio, takže je na čem pracovat. Nutno podotknout, že Ondra má velmi omezené možnosti, kdy 80% času procesor spí a všechno skloubit dohromady je veliká výzva a také je to důvod, proč mě to baví.

V této verzi hry tedy uslyšíte dvě hlavní melodie, které se střídají a jsou výsledkem výše uvedeného postupu. Hra dokáže detekovat přítomnost Melodiku a hned na úvodní obrazovce je rozdíl. Pokud je Melodik přítomen, objeví se text „ONDRA+MELODIK“ a dole uvidíte copyright k použité hudbě. Hudba lze během hraní ztišit pomocí klávesy M.

V souvislosti s implementací hudby bylo třeba přepracovat jádro hry, zejména časování s použitím přerušení – ano, v předchozí verzi jsem měl delay a nebylo to úplně ono. Nyní kostky padají vždy stejně rychle, předtím tam byly drobné rozdíly co asi nikdo nepoznal.

Hratelnost jsem ztížil, ale udělal férovější. Nyní už nelze s kostkou pohybovat, jakmile dorazí na dno. Ale můžete se rozhodnout, jak ji pustíte dolů. Krátkým stiskem SPACE (nebo joysticku), se kostka hodí na dno bez možnosti korekce. Stiskem a držením SPACE kostka jede rychle dolů, ale puštěním jde korigovat. Je tam rozdíl v počítání score, rychlé puštění na dno dává více bodů. Zrychlování padání kostek je úměrné počtu linek zbývajících ke splnění levelu. Na druhou stranu, velkou novinkou je, že jsem přidal možnost opakování levelu. Po skončení levelu se můžete rozhodnout, zda jej opakovat nebo se vrátit do hlavního menu. Všichni se kterými jsem si na Bytefestu povídal to velmi pochvalovali.

Na hlavní obrazovce hry jsem přidal shlédnutí instrukcí, kde jsou popsány klávesy pro ovládání a cíl hry.

Velkou změnou je výchozí ovládání, protože každý člověk co přišel začal ihned ovládat šipkami a mezerníkem, tudíž nyní je toto ovládání výchozí. Samozřejmě je možno nadále ovládat pomocí joysticku a vše se dá předefinovat dle libosti.

Touto verzí byl vývoj této hry završen a kromě oprav už asi nic nového nebude. Především proto, že pod pokličkou se již vaří něco nového :-).

Update: Vydal jsem Falling Blocks v2.0b. Jedná se o opravu chyb: Cvakání relé v Ondrovi při hraní – ano, můj Ondra relé neměl a tak jsem to netušil, nyní jsem mu relé dopájel a nestačil jsem se divit 😃. Hra nešla spustit bez Melodiku – to bylo zcela zásadní.

Stažení pro ViLi ROM: FallingBlocks_2.0b.zip
Oficiální web: https://github.com/72ka/Tesla_Ondra/tree/main/Falling%20Blocks

Jan Heřman

Rubriky: Software | Napsat komentář

Emulátor JOndra

I počítač Ondra se dočkal dalšího emulátoru. Jak už název připomíná, je napsaný v Javě. Původní verzi JOndra emulátoru napsal Omikron a k dokonalosti ho doladil Stamil. Emulátor obsahuje roletové menu a nejpoužívanější funkce jsou obsaženy v liště ikon. Můžeme si nastavit v emulátoru typ ROM nebo si nahrát vlastní. Emulátor podporuje všechny běžné formáty Ondry. Jedná se o kazetový soubor wav, komprimovaný csw, binární kazetový soubor tap i binární soubor bin. Navíc umí pracovat se snapshoty typu osn. To ocení hlavně hráči. Emulátor umí ukládat i screenshoty ve formátu png.

Pro programátory je je neocenitelnou pomůckou zabudovaný debugger procesoru Z80. Program můžete krokovat, nastavovat breakpointy, editovat obsah paměti atd.

Další výborná věc je zobrazení klávesnice, která nám signalizuje stisk přeřazovacích kláves Shift, Alt, Čs, 0-9 a Ctrl. S touto pomůckou již není problém něco napsat v emulátoru. JOndra umí emulovat joystick pomocí šipek a 0 na numerické klávesnici.

Emulátor JOndra věrně zobrazuje grafiku. Nemá problém zobrazit třeba efekt poskakující obrazovky ve hře Snake Escape. Také emulace zvukových možností Ondry je výborná. Zkuste se třeba zaposlouchat do znělky ve hře Pacman. Autoři emulátoru odvedli skvělou práci a díky Javě je tento emulátor multiplatformní.

Na githubu si můžete stáhnout poslední verzi emulátoru počítače Tesla Ondra SPO 186, ale také dalších československých počítačů jako je IQ151.

Oficiální web: https://github.com/omikron88/

Solaris104

Rubriky: Emulátory a utility | Komentáře nejsou povolené u textu s názvem Emulátor JOndra

Wurmi

Hru Wurmi kdysi naprogramoval František Fuka pro slovenský počítač PMD 85 v BASICu jako ukázkovou hru. Známý programátor ub880d se touto hrou inspiroval a v roce 2021 ji vytvořil i pro počítač Ondra. Wurmi je vlastně klon populárních her typu had nebo housenka. Ty vznikly na všechny možné platformy včetně starých tlačítkových mobilů Nokia.

Ve hře Wurmi ovládáme housenku, která požírá listy. Když nějaký sní, housenka naroste o jeden dílek. Hra ale skončí, pokud sníme jed ve formě křížku. Taky můžeme narazit do zdi nebo sami do sebe. Ze začátku je hra jednoduchá. Ale jakmile dosáhnete 50 bodů, pohyb housenky se zrychlí. Když se zabijete a uhrajete rekordní počet bodů, tak se rekord zobrazí ve spodní části. Hra je naprogramovaná v assembleru a samozřejmostí je i podpora joysticku. Nechybí ani zvukové efekty při požíraní listí nebo při nárazu.

Stažení pro ViLi ROM: Wurmi.zip

Solaris104

Rubriky: Software | Komentáře nejsou povolené u textu s názvem Wurmi

Falling Blocks

Jan Heřman vytvořil v roce 2021 konverzi hry Falling Blocks. Zde se dozvíte, proč to autor naprogramoval a také různé informace o hře. Autor hru prezentoval na akci Bytest 2021.

Jedná se o konverzi hry pro ZX Spectrum. Je to moje první hra/program napsaný v asm vůbec. Cílem bylo se naučit programovat pro Ondru, který je z programátorského hlediska velmi zajímavý ze dvou důvodů
a) Velmi omezený počet programů na tento počítač
b) Velmi pomalý hardware (cca 11% rychlost vůči ZX Spectrum při plném zobrazení), což přináší mnohé výzvy

Hra vychází z Tetrisu, avšak je zcela jinak koncipována. Cílem není vydržet co nejdéle, ale splnit jednotlivé levely. Každý level je jiný, setkáte se s novými tvary, obrácením gravitace, náhodnými překážkami, zátarasy a šoupáním již uložených řádků. V každém levelu je třeba splnit individuální cíl – počet kompletních řádků. Oproti originálu jsem zvýšil obtížnost a navíc přidal zcela nově proporcionální zrychlování padání kostek v závislosti na počtu splněných řad. Pomocníkem je možnost zobrazení ducha pomocí klávesy G nebo možnost si ukládat aktuální obrazec na příště pomocí klávesy S. Hra se ovládá klávesnicí QWOP nebo joystickem, ovládání lze předefinovat (DEFINE Keys). Rovněž lze nastavit chování hry (SETTINGS). Skóre se počítá podle toho, jak rychle se kostky začleňují, tzn. drop má nejvíc bodů. Nejvyšší skóre se oproti originálu zobrazuje na úvodní obrazovce. Pokud si budete chtít zahrát diskrétně, lze vypnout zvukové efekty (jestli se tomu dá říkat) pomocí M.


Původní hra je na Spectrum koncipována tak, že celé hrací pole se vykreslí bloky 8×8 a algoritmus pak pouze bleskurychle přepíná atribut barvy pro blok (černá = nic). Ondra nic takového nemá, bylo tedy nutné od základu předělat jádro hry. Ondra musí bloky vykreslit a při posunu původní smazat a nové opět vykreslit. Chudák slabý Ondra musí tedy vynaložit většinu svého výpočetního výkonu na provoz hry.

Stažení pro ViLi ROM: FallingBlocks_1.0.zip

Jan Heřman

Rubriky: Software | Komentáře nejsou povolené u textu s názvem Falling Blocks