OldComp.cz

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


Právě je 28.03.2024, 23:30

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: BASIC sprite Editor pro PMD 85 & PP-01
PříspěvekNapsal: 24.05.2020, 21:56 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Již delší dobu se opakovaně trápím s výrobou spritů pro basicové hry na PMD 85 a teď mi do toho ještě padlo PP-01. Pro assembler jsou ohledně spritů minimálně pro PMD dostupné dobré nástroje, ale pro Basic neexistuje asi žádný. Přitom pro tvorbu jednoduché hry nebo programu v Basicu je assembler dost overkill když stačí udělat pár políček do stringů a je hotovo. Není to principiálně těžké ale je to časově náročné a na debugování zákeřné. Každý kdo to někdy dělal ručně na kostičkovaný papír pro víc než pár spritů mi jistě dá za pravdu. Ovšem zase nemusíte řešit lahůdky typu umístění v paměti tak aby vám to Basic ihned nepřepsal nebo naopak sám nezhavaroval (což se zjišťuje dopředu kdy nevíte jak ten program bude velký poměrně ztuha) nebo jak ty data vůbec do reálného PMD dostat vzhledem k tomu co Basic umí.

Tak jsem přemýšlel jak to provést aby se dal sprit lehce naklikat a a vyšlo z toho napoprvé co chcete pro Basic. A zároveň jsem chtěl aby to bylo v podobě jak by takový nástroj mohl teoreticky vypadat na konci 80. let. A výsledkem úvahy je (tedy zatím vzniká) utilitka BASIC Sprite Editor - program co umožní v uživatelsky přívětivé podobě vytvořit sprit v Basicu pro PMD 85. A protože chci to samé v dohledné době dělat i s PP-01, kde je naštěstí tvorba jednobarevného spritu o hodně jednodušší než na PMD, zkusím to rozjet v omezeném rozsahu ještě i pro PP-01. Cílem aplikace je naklikat si jednorázově a rychle sprit a pak ho suše zadat do vašeho programu s tím, že bude hned vypadat přesně tak jak má.

Dovolím si do toho přidat i hypermodernu zvanou Colorace, takže bude mnohem snadnější pro PMD vytvořit Basicové sprity i v 7 barvách. Assemblerová verze umí vytvořit sprit 96*96pixelů, kteréhožto rozměru jsem se držel taky. Pro PMD to je 16x12 znaků, pro PP-01 12x12 znaků. Toto rozlišení by mělo uspokojit všechny realistické potřeby co PMD i PP-01 v Basicu rozumně zvládne rozhýbat.

Program by sice na reálném PMD byl dost pomalý, ale protože pracujeme v emulátoru, výsledná rychlost tvorby je zcela v našich rukách a úspora času pro tvorbu basicovské hry, kde bude použito víc složitějších spritů než jeden bude značná. Ručně to psát a zkoušet je děsný opruz a jedna chyba dovede totálně rozházet celý sprit.


Přílohy:
Sprite Editor 2.png
Sprite Editor 2.png [ 10.11 KiB | Zobrazeno 11531 krát ]
Sprite Editor.png
Sprite Editor.png [ 9.01 KiB | Zobrazeno 11531 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 29.05.2020, 18:04 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Opět jsem o něco postoupil s implementací a už mi běhá editace políčka pro PMD 85, jeho uložení v rámci pole, barevné atributy, funguje už uložení i načtení celého pole se jménem, rozměry i typem pro jaký mikropočítač je co se automaticky nastaví na pásku. Je to docela povznášející pocit, když se dá sprit tvořit takhle snadno :-).

Nyní dodělám už jen tvorbu reálného stringu a vhodný způsob jak uživatelsky přívětivě vypsat hodnoty a PMD část bude hotová. Pošilhávám po ovladači na BT-100, se kterým se dá "tisknout" nebo výpisy na obrazovku. Byl by nějaký nápad jak z PMD emulátoru ty data nějak rozumně a automatizovaně dostat (třeba je nakopírovat do definované části RAM a pak vytípnout z emulátoru a v hex editoru přetvořit na ASCII, případně jinak...)? Ještě uvažuju o automatizované Coloraci vždy celého řádku spritu ale u těchto malých to není zase takový problém a zestrakatět je se stejně musí ručně.

Pak už se budu moct vrhnout na editační část pro PP-01, kde bude trochu výzva graficky zvládnout rozdílné rozlišení 1 políčka ale nic co by se nedalo vyřešit.

Ideální rychlost pro práci je v emulátoru cca 3x ale v 80.letech by se nechalo pracovat i s originální rychlostí, je to totiž stále mnohem spolehlivější i rychlejší než to počítat čistě ručně, když bude "tisknout" ta BT100... Hřebík chci přidělat protože bych někdy program rád vyzkoušel i na reálném železe, vzhledem k velikosti se totiž lehce vejde do ROM modulu a výstup Gamacentrum 01 není součástí emulátoru :-).

Edit: Tak ještě střední fáze rozcházení tvorby spritu :-). Sprit je složený ze 4 pixelů různé barvy.


Přílohy:
Sprite Editor 3.png
Sprite Editor 3.png [ 11.75 KiB | Zobrazeno 11374 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 29.05.2020, 22:17 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
A ColorAce verze též není nic těžkého ;) Největší výzva bude bezpochyby jak data zase dostat do jiného programu, na takovéhle vyfikundace se tehdy moc nemyslelo.


Přílohy:
Sprite Editor 4.png
Sprite Editor 4.png [ 10.56 KiB | Zobrazeno 11373 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 30.05.2020, 22:35 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Trošku jsem si pohrál s možnostmi a vytvořil jsem Colorace testovací sprit. Políčka se dají lehce kopírovat takže u shodných částí obrázku je tvorba skutečně jen o přesunutí se na další znak a uložení stejné nebo lehce obměněné bitmapy, což je u ruční práce opruz skutečně galaktický :-). No a uložit si pár mírně odlišných spritů třeba na testy je taky snadné Teď bude další výzvou sprit pro PP-01 a hlavně nějaký rozumný výstup dat z emulátoru ve stylu 80. let... Chtělo by to ideálně nějakou podporu pro PMD-32 SD á la PP-01 SD-ROM manažera aby se to dalo provozovat na reálném hardwaru pohodlně.


Přílohy:
Sprite Editor 5.png
Sprite Editor 5.png [ 12.8 KiB | Zobrazeno 11291 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 01.06.2020, 22:19 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Tak další novinky :-). Přidal jsem dynamickou změnu jména aby se daly sprity lehce ukládat pod unikátním jménem a výpis obsahu spritu, zatím jen textový na obrazovku. Stejně tak i dynamická změna rozlišení je ještě vlastnost, kterou postrádám, protože se k tomu musí program znovu spustit což není problém v emulátoru ale muset nahrávat >6 kilo veliké pole z kazety je slušný časový opruz. Pokud by vás třeba něco napadlo bez čeho se takový editor neobejde tak sem s nápady :-).

Protože 1 řetězec co PMD umí v Basicu vytvořit má maximálně 256 hodnot, zvažuju pro sprity větší než 5x6 znaků jejich dynamické rozdělení na několik menších (maximum je 6 při rozlišení 16x12 tj. 1536 bajtů) což mi tuším přinese jistě mnoho zábavy. PP 01 je v tomto ohledu úspornější protože z bajtu používá všechny bity na pixely a zvládne tak stejné rozlišení už při velikosti 12x12 znaků tedy 1152 bajtů.


Nahoru
 Profil  
 
PříspěvekNapsal: 02.06.2020, 22:31 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Tak i sprity nad 32 bajtů velikosti (tedy větší než 5x6 políček) běhají a pole se vypisuje, sice to trvá ale nakonec se to poskládá a vypíše. Jen jsem narazil na obtíž že sice v příručce k PMD se píše že string může mít až 256 hodnot (0-255) ale při obsazování té poslední ve smyčce to spolehlivě padá na hlášce řetězec je příliš dlouhý... Tak holt mají jen po 128 bajtech, na druhou stranu se to dobře vejde na obrazovku. Ještě PP-01 specifickou část a bude hotovo :-).


Nahoru
 Profil  
 
PříspěvekNapsal: 03.06.2020, 15:09 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Tak už vzniklo první demíčko programu - PMD část je hotová a dá se už klidně používat. Ještě dodělám PP-01 a ideálně tisk a bude hotovo. Program je napsaný pro PMD 85-3.

Ovládání je tuto:
pohyb v editačním poli šipkami, výběr v poli spritu pomocí Q-A a O-P, Enter na zapínání/vypínání pixelů, Z změna jména, E - načíst z pole, W - zapsat do pole, R - ukončit program, 1,2,3,4 a K1-K4 výběr barev pro řádek/znak, K7 změna rozlišení spritu, K6 znovunačtení spritu, K8 - výpis hodnot spritu, K9 - vytvoření a zobrazení spritu, K10 - nahrání spritu, K11 - uložení spritu.

Na kazetě je program a jeden cvičný sprit v ColorAce, tak se nelekněte. Doporučuju použít emulátor a nastavit rychlost emulace cca 4x-5x ať nemusíte moc čekat.


Přílohy:
Sprite Editor 6.png
Sprite Editor 6.png [ 12.94 KiB | Zobrazeno 11100 krát ]
Basic Sprity.zip [4.62 KiB]
456 krát
Nahoru
 Profil  
 
PříspěvekNapsal: 05.06.2020, 22:57 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Díky romborovi, který opravil a překompiloval ovladač pro bt100 na rozsah RAM u PMD 85-3 je nyní možné používat splašený hřebík i na PMD 85-3 :god:. Což pro editor znamená jediné - pohodlně fungující tiskové výstupy. Nyní je už otázka tisku pole či spritu záležitostí jedné klávesy 8-).


Přílohy:
Tiskbt100 data.png
Tiskbt100 data.png [ 9.53 KiB | Zobrazeno 10995 krát ]
Tisk bt100.png
Tisk bt100.png [ 4.94 KiB | Zobrazeno 10995 krát ]
Nahoru
 Profil  
 
PříspěvekNapsal: 06.06.2020, 15:43 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Díky ovladači jsem mohl zatím ještě nehotový editor (vykreslovací PP-01 část není hotová byť se stringem se dá pracovat, PMD část je plně funkční) transformovat do ROM modulu, takže je jednoduché dostat do PMD aktualizovaný ovladač i program skrz ideálně megaROM modul ale rozsahem se to vejde i do originálního PMD ROM modulu. Automatizované nahrání ovladače v programu mi jednou funguje, jednou nefunguje. Ale lze to lehce obejít ručně pomocí příkazu ROM0 co nahraje ovladač první a následně ROM1, co nahraje program Sprity a spustit pomocí RUN, to funguje vždycky. V programu ještě musíte potvrdit že máte tiskárnu k dispozici aby s ní počítal a toť vše :-). Tisk (Hardcopy obrazovky) spustíte pomocí K5/F6. Kdopak první vyzkouší tisk na reálné bt100 s PMD 85-3?

Pro program jsem udělal i krátký návod aby zájemci měli usnadněnou práci a nemuseli zjišťovat jaká klávesa co dělá.


Přílohy:
SPRITY Uživatelská příručka.pdf [129.18 KiB]
472 krát
Sprity+bt100.zip [13.76 KiB]
447 krát
Nahoru
 Profil  
 
PříspěvekNapsal: 09.06.2020, 15:21 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Tak i poslední oříšek ve formě rozměrů spritu PP-01 jsem rozlouskl a editor je už hotový - můžete vytvořit, uložit, nahrát i editovat a zobrazit sprit pro PP-01 (jednobarevně ale barva se nastavuje v GBASICu separátně) i PMD85 (ten je plnobarevný). Stahovat můžete PTP verzi se dvěma demosprity i ROM modul verzi. Do PMD program stáhnete pomocí ROM1 a spustíte RUN, tiskárnu bt100 už si případně doinstaluje sám. ROM modul v sobě obsahuje bt100 ovladač, kazetová verze ho nemá tak si stáhněte ovladač separátně. Příručka je o příspěvek výše. Přeji příjemnou tvorbu spritů jak pro PMD 85 tak pro PP-01 ;).


Přílohy:
bt100-3.zip [798 bajtů]
459 krát
Sprite editor BasicFINAL+bt100.zip [14.17 KiB]
450 krát
Sprity Final.zip [5.26 KiB]
443 krát
Nahoru
 Profil  
 
PříspěvekNapsal: 10.06.2020, 17:08 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 07.07.2019, 22:14
Příspěvky: 3767
Has thanked: 269 times
Been thanked: 452 times
Jak to tak bývá, neštěstí nechodí po horách ale po lidech - jednak mě ještě napadlo jak 4x urychlit vykreslování prázdných políček (no neberte to, zadarmo...) a potom dvojité zrcadlení na PMD vytvářelo otočený sprit na PP-01, což je lehce opruz. Takže náš ústav se vám mými ústy co nejsrdečněji omlouvá za toto politování hodné nedopatření, ke kterému dochází maximálně jednou za deset let! (Arnošte, kde máme tu tarasnici...) :mrgreen:


Přílohy:
Sprite editor BasicFINAL02+bt100.zip [14.38 KiB]
450 krát
Sprity Final2.zip [5.58 KiB]
466 krát
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 2 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:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz