OldComp.cz

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


Právě je 28.03.2024, 15:05

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 10 ] 
Autor Zpráva
 Předmět příspěvku: Úprava ZX her pro SAM Coupé
PříspěvekNapsal: 03.11.2013, 19:46 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Ve skutecnosti neni potreba vlastne nic u ZX her upravovat, protoze SAM je se ZX48 kompatibilni. Ale SAM ma navic dalsi graficke mody a palety barev, tak me napada, ze by se toho dalo dobre vyuzit. Graficke rutiny v ZX hrach se daji presmerovat na nove rutiny, ktere budou pracovat v jinem grafickem modu a s jinou paletou barev. Upravit takovymto zpusobem hry s maskovanym sprajtem ala RENEGADE by nebylo vzdy az tak jednoduche, ale pro zacatek by stacilo patchnout neco ve stylu LASER SQUAD, LORD OF CHAOS a podobne hry s vesmes statickou grafikou. Z tech s maskovanymi sprajty bych typoval HERO QUEST 1,2. Nejake rychlejsi akcni hry se scrolovanim obrazovky bych videl rad, ale pri rychlosti procesoru 6MHz(realna rychlost 4.8MHz) a 3.5x vetsim objemu dat ve videoram (rezim 256x192 / barevne pixely bez atributoveho omezeni) by doslo k celkovemu zpomaleni hry. Podobne byla upravena na SAMa hra ESCAPE FROM THE PLANET OF THE ROBON MONSTERS:

http://www.worldofsam.org/node/34

Uvodni loading screen byva nejjednodussi, zde se muzeme vyblbnout i s prubezne menenou paletou barev.
Obrázek

Nektere intra ve hre si zachovaly ZX grafiku, snad jen ramecek dole je v jinem grafickem modu. Na SAM COUPE lze za predpokladu, ze je neustale povolene preruseni, prepinat na presne danych mikroradcich obrazu graficke mody a cele videoramky nebo barvy. Timto zpusobem dosahneme presne toho efektu, jaky vidite na nasledujicim obrazku. Po hlavnim preruseni se prepne hra do ZX grafickeho modu, a nastavi si, aby doslo k dalsimu preruseni presne v momentu, kdyz TV paprsek dosahne na spodni tretinu obrazovky. Rutina preruseni si umi zdetekovat ze jde o preruseni v obraze a prepne si na graficky mod 4 (bez pixelu a s jinou paletou barev).
Obrázek

Ve hre je kompletni grafika prekreslena do MODU4, kde ovsem hraci plocha zabira 3.5x vice pameti.
Obrázek

Pro porovnani original verze ze ZX Spectra:
Obrázek Obrázek

Na SAM COUPE je rychlost hry slusna, ale jen v pripade, ze v obrazovce nejsou ostatni animovane sprajty, pak dojde ke zpomaleni rekl bych na 50%.
Tento typ her proste neni az tak vhodny k prevodu na graficky MOD 4. Aby to ale nevypadalo, ze SAM COUPE chudak nestiha poradne obluhovat vlastni videoramku, tak zde mame jeste dalsi mody, jako treba HW multicolor. V tomto rezimu je 6144 bajtu pixelove casti jako na ZX, s tim rozdilem, ze mikroradky obrazu jsou adresovane pekne linearne odshora dolu. Pak nasleduje 2048 bajtu nevyuzite misto a pak dalsich 6144 bajtu atributu (kazdy atribut je siroky 8 pixelu jako na ZX, akorat ma vysku jeden pixel). Kazdemu pixelovemu bajtu odpovida jeden atributovy bajt, ktery lezi na stejne adrese + 8192. Pocitace TIMEX to maji podobne az na to, ze je graficka i atributova cast nelinearni. Sam ma tento multicolor rezim znaceny jako MOD 2. Zabira jen dvojnasobek dat oproti ZX rezimu(MOD 1) a pracuje se s min docela rychle. Ve vsech rezimech lze menit paletu barev. Poslednim rezimem je barevny hi-res 512x192, kde ma kazdy pixel jednu ze 4 barev (volitelne). Objem jedne videoram je pro hi-res 24kB, stejne jako v MOD4. Pro hry se tento mod prilis nehodi, ikdyz mozna by diky jemnemu rozliseni byla detailne prokreslena grafika sprajtu.

SAM COUPE ma procesor na 6MHz, ale realne mezi jen na 4.8MHz, protoze ho brzdi ULA pristupem do videoram. V dobe, kdy ULA na TV kresli oblast borderu, jede CPU na plny vykon 6.0MHz. A jeste ma v zaloze jednu vychytavku. Pokud hra bezi treba v MODu 4 a chceme kdykoli dosahnout plneho vykonu, lze ULE vypnout obraz (na TV se to objevi jako cerna plocha). Napriklad kdyby mela hra bezet jen v hornich dvou tretinach obrazu, klidne od spodni tretiny vypneme obraz a zapneme tak turbo, kdy CPU muzeme nechat frcet na plny vykon az do doby, nez se zacne kreslit obrazovka(prvni tretina). Dalsiho zrychleni se da dosahnout i bez vypnuti obrazu a to pripojenim externiho ramdisku. Ramdisk je externi pamet 1MB ram strankovatelna po 16kB blocich a klidne i jako u ZX128 v poslednich 16kB. Pripojeny ramdisk je viditelny jako rychla ramka od adresy 32768 do 65535. Kdyz CPU bezi v teto ramce, ULA ho nebrzdi. Pouze v pripade, ze CPU saha do spodnich 32kB adresoveho prostoru, pak ULA musi procesor brzdit. I tak je ale rychlost vyssi, protoze samotne nacteni instrukce z externi ram je na 6MHz a kdyz instukce pracuje s videoram, ula CPU jen trochu pribrzdi.

_________________
http://velesoft.speccy.cz/


Naposledy upravil VELESOFT dne 03.11.2013, 20:02, celkově upraveno 2

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 03.11.2013, 19:52 
Pecka.


Nahoru
  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 03.11.2013, 20:19 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Nektere ZX hry se daji upravit treba jen jednoduchou zmenou palety barev. Paleta 16ti ruznych barev se da nastavit bud jednorazove pred spustenim hry jeste v basicu, nebo vlastni kod umistit primo do hry. Jako ukazka co se da s paletou delat, poslouzi muj SNAPER (spoustec SNA souboru na SAM COUPE): http://www.oldcomp.cz/viewtopic.php?f=65&t=579

Zde je videt rozdil: ( original ZX paleta > nova paleta na SAM COUPE )
Obrázek Obrázek

Nektere ZX hry (nove i stare) maji podporu palety barev pro ULA+ ( kdo nezna, tak zde: https://sites.google.com/site/ulaplus/ ). No a naco bych se snazil znovu hledat vhodne barvy, kdyz to uz nekdo udelal za me. Tak jsem vybral vhodne barvy podle her s ULA+ paletou, aby vse odpovidalo co nejvic. Nektere ZX hry to uzivi, u jinych je to zbytecne. Kazdopadne zmena palety barev je tou nejjednodussi upravou (par OUTu v basic loaderu pred spustenim hry).

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 03.11.2013, 21:25 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Klavesnice SAMa je kompatibilni s klavesnici GUMAKA (zx48). Dalsi klavesy, ktere ma SAM navic, jsou citelne na jinych oddelenych portech. To se tyka i kurzorovych klaves. Pri spusteni ZX hry na SAMovi brzy zjistite, ze funguje jen zakladni ZX klavesnice. Kdo by chtel hry ovladat treba kurzorama nebo numerickou klavesnici, musi si napsat vlastni rutiny, ktere budou pomoci samackych klaves emulovat jine ZX klavesy, nebo kod hry modifikovat primo na podporu novych klaves/portu.

Nektere starsi hry vyuzivaji rutiny ZX rom ke cteni klavesnice. Zde dobre poslouzi treba modifikovana ZX 48rom s upravenym ctenim klaves tak, ze mapuje samacke klavesy jako spektracke. Tato metoda funguje jen u nekterych her a spolehliva je v basicu.

Shrneme li si to, neni u ZX her nutna zadna uprava ovladani. Jen pokud nekomu pujde o komfort, muze si rozsirenou klavesnici testovat novym kodem. Ovladani her SINCLAIR 1 a SINCLAIR 2 zajisti bud klavesnice, nebo pripojeny joystick ( pripadne s JOYSTICK DOUBLERem : http://www.oldcomp.cz/viewtopic.php?f=65&t=696 ). Kempston interface pro SAMa oficialne nikdy neexistoval ale pripojit se na sbernici da.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 04.11.2013, 19:05 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
SCjoe píše:
:help: Můžu poprosit o popis úpravy spectráckých her na samáckou myš?
(Tuším už alespoň jedna upravena je...)


Asi by stacil vseobecny popis upravy her pro mys. Ovladac mysi je samostatna rutina, ktera si sama pocita aktualni souradnice. Ve hre je nutne hlavne najit rutinu, ktera meni souradnice sprajtu, ktery chceme ovladat. Nejlepe se to najde protrasovanim rutiny pro test ovladacich klaves/joysticku. Sledujes kam skace CPU v pripade, ze detekuje stisk nejakeho smeru. Tam by melo byt neco ve stylu LD A,(#xxxx) + DEC A + LD (#xxxx),A. Mezi instrukcema nude navic jeste test maxima a minima v dane ose, atd... Mouse driver pak napojis na danou adresu #xxxx a on uz ti tam bude souradnice mysi podstrkovat. To byl jakovy zjednoduseny popis. Dale je tu moznost upravit hry, ktere jsem jiz upravil pro K-MOUSE. Staci kdyz si zjistis adresu meho driveru a misto nej podstrcis driver pro sam mouse (+ male modifikace).

U SAM klonu by mozna stalo za to nechat tam jen K-MOUSE, protoze SAM MOUSE je docela nevyuzita (neni software). A veskery stavajici SAMacky soft s podporou sam mouse upravit pro K-MOUSE.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 04.11.2013, 20:32 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
SCjoe píše:
> A veskery stavajici SAMacky soft s podporou sam mouse upravit pro K-MOUSE.

To by bylo určitě nejjednodušší.

Na druhou stranu: nešlo by konečně zprovoznit myší přerušení, s nímž samovský systém původně počítal?
Automatická reakce systému na myší kliknutí by byla možná více užitečná než dosažení určité řádky... viz zde:
http://sam.speccy.cz/coding/mc-fred/mc-fred_pt08.txt


No, nevim jestli nejjednodussi, ale realne by to bylo.

K tomu preruseni: puvodne se zamyslelo u samacke mysi, aby pri kazdem pohybu ci stisku tlacitka generovala preruseni. Konektor mysi s tim dokonce pocita, ale nakonec asi byl nejaky duvod, proc misto teto jednoduche mysi vznikla celkem slozita SAM MOUSE, ktera si sama pocita relativni souradnice. Puvodni koncept mysi mel fungovat podobne jako AMX mouse na ZX. Co to prinaselo za vyhody ? Mys si sama zavolala preruseni CPU, kdyz doslo k pohybu ci kliknuti. Pokud je mys v klidu, zadne preruseni negeneruje a ani ovladac mysi nemusi byt volan. Jako nevyhoda je fakt, ze cim rychleji s mysi pohybujete, tim casteji mys prerusuje CPU a tim i nerovnomerne zpomaluje jeho vykon. A pokazde pri preruseni se uklada adresa na zasobnik, ktery tedy nesmi byt pouzity k jinym ucelum. Pokud spustite libovolny program(napriklad ze ZX), ktery neobsahuje driver pro takovou mys, dojde pri pohybu mysi k mnohonasobnemu preruseni kratce za sebou a program se muze zhroutit (rozpadne se treba synchronizace obrazu pri presnem casovani her, multicolory, atd...). Nedej boze kdyz program v tu dobu zrovna pouziva zasobnik k jinym ucelum... mys mu znici data... Nastesti se tento smejd nedostal na svetlo a jeho misto zastoupila SAM MOUSE, ktera je technicky slozitejsi, ale lepe vyresena. SAM MOUSE zadne preruseni negeneruje a sama si pamatuje, o kolik kroku se od posledniho cteni portu mysi zmenila pozice. SAM MOUSE vraci relativni souradnice - velikost odchylky. Cist porty muzeme v dobe kdy zrovna ma CPU volny cas, nebo pod prerusenim automaticky. Stejne se to resi u K-MOUSE u ZX, ktera sice vraci absolutni souradnice, ale je stejne samostatna jako SAM MOUSE. Jakakoli periferie , ktera si necekane muze generovat preruseni, by nemela byt vubec pripojena k pocitace, na kterem beha ZX software (ten s necekanym prerusenim vubec nepocita a pokud interval mezi prerusenim trva kratsi dobu, muze se program hroutit)

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 04.11.2013, 20:33 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
SCjoe píše:
> Kempston interface pro SAMa oficialne nikdy neexistoval

Yarek jej asi vyráběl: http://8bit.yarek.pl/upgrade/zx.z80joy/index.html

http://8bit.yarek.pl/upgrade/


Jo, tohle by slo. Je to vlastne KEMPSTON pro Z80CPU, nezalezi na typu pocitace. Ale ted koukam, ze to ma nejak blbe zapojene. Trochu kolize no.....

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 10.11.2013, 22:50 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Od uterka budu mit par dni volno (budu stejne cekat nez prijdou plosnaky MULTIINTERFACE z vyroby), tak pripravim nejake rutiny pro praci s grafikou na SAM COUPE. Ted jsem narychlo napsal rutinu, co vykresluje na SAM COUPE v plnobarevnem modu 4 na obrazovku sprajty 16x16 pixelu(rozmer sprajtu se da samozrejme libovolne zmenit). V pameti rutina predpoklada tabulku dvoubajtovych hodnot udavajicich adresu zacatku kazdeho sprajtu (16x16 pixelu = 128 bajtu). Data zabiraji 3.5x vic pameti nez v holem ZX modu, ale SAM ma velkou ramku, s tim se proste pocita. Data sprajtu jsou v ramce ulozena linearne radek za radkem zleva doprava. Adresa sprajtu muze ukazovat na jakokoli pozici v oblasti sprajtu, klidne muzete vertikanle sprajty vykreslovat s posunem o jeden pixelovy radek(pretekani do dalsiho sprajtu). Rutina by pak mohla slouzit k vykreslovani obrazovek u novych her, nebo posloužit jako pomocna rutina pri predelavani ZX her na SAMa. Konkretne pro hry typu LASER SQUAD, LORD OF CHAOS a dalsi co vykresluji grafiku jako sachovnici pomoci stejne velkych sprajtu. Paleta bude muset byt nastavena u ZX her vetsinou pevne, nebude mozne menit paletu v prubehu vykreslovani obrazu. Jako dalsi rutinu bych chtel napsat vykreslovani podobnou metodou, ale s maskou. Mohl by se tak vykreslit sprajt s omezenim na nejakou maximalni velikost 16x16 pixelu, ale mohl by obsahovat i pruhlednou barvu. Ve skutecnosti bude mit takovy sprajt samostatnou vykreslovaci rutinu, ktera bude vykreslovat predem urcene pixely a ty s pruhlednosti jen ignoruje. Práce s plnou samostatnou maskou by asi jen zpomalovala.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 11.11.2013, 23:49 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Rutinu pro zobrazovani grafiky mam tak nejak napsanou. Na zkousku jsem si obarvil grafiku ze hry LASER SQUAD. Zde ukazka, jak by mohla vypadat grafika pro uprave ze ZX do grafickeho modu 4 :
Obrázek
Co pixel to samostatna barva, jen statickych 16 barev na obrazovce, natvrdo vybrana paleta (klasicke zx barvy).

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Uprava ZX her pro SAM COUPE
PříspěvekNapsal: 12.11.2013, 20:48 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Castecne obarvena grafika v LASER SQUAD: (jde zatim jen o obarveny screenshot, nikoli o upravenou hru)
Obrázek

V hornim radku jsou puvodni a obarvene sprajty pro porovnani.

Pro pohodlnejsi prevadeni ZX grafiky do modu 4 budu muset napsat extra rutinu. Grafika tak zustane identicka, ale kdykoli ji pujde jednoduse obarvit.

_________________
http://velesoft.speccy.cz/


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ů: 10 ] 

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 6 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