OldComp.cz

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


Právě je 23.04.2024, 20:59

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 
Autor Zpráva
PříspěvekNapsal: 15.01.2014, 02:06 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
K 8bitum se vetsinou pripojuje joystick bezneho zapojeni Atari/Amiga. Tento standard byl dodrzovan i u kempstonu na ZX. Na joysticku mame vetsinou jen 4 smery a jedno tlacitko fire. Pred lety jsem na Ebay zakoupil ultralevne cinske joypady ke konzolim SEGA MASTER SYSTEM. Tento joypad stoji kolem 70 korun, je trochu mensi nez byva zvykem, ale da se to... A tak me napadlo, ze bych si to zkusil pripojit k ZX/SAM COUPE a vyuzit i pridavna tlacitka. Joypad ma celkem 4 smery + 8 tlacitek. Noo... a zda se, ze to funguje. Bude treba napsat vycasovanou rutinu pro cteni stavu vsech tlacitek, ale uz ted to reaguje. Funguje to i jako dvoutlacitkovy kempston joystick a dalsi pridavna tlacitka to ma na dalsim portu. Navic to je multiplexovane, no moc elegantni mi to nepripada. Ale s tim si musi poradit software. Takze pripojeni by teoreticky zvladnute bylo, ale k cemu to vsechno, kdyz na ostatni tlacitka je nutny specialni casovana rutina ? Jeste jsem premyslel, ze by se to dalo pripojit pres male CPLD, ktere si bude stav vsech tlacitek a smeru neustale vycitat a vracet rovnou v nejake srozumitelnejsi podobe pro ZX. Treba jako klasicky kempston se trema fire a ostatnich pet tlacitek by se tvarilo jako klavesnice. Co myslite, mam podporu SMS TOUCHPADu pridat do SAMackeho multiinterface ? Nebo nejaky jiny touchpad, treba podle AMIGA CD32 ?(ten to ma podobne, jen vraci tlacitka mepne seriove jedno po druhem na jednom pinu).

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JOYSTICK / JOYPAD
PříspěvekNapsal: 15.01.2014, 18:49 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
misticjoe píše:
Já bych byl pro DualShock. Playstation máme doma snad všici (já vím, že konektor je jiný, ale redukce jsou).


Playstationove joypady maji urcite nejaky vlastni neprilis jednoduchy protokol. Pripojeni k 8bitu by vyzadovalo na tohle extra procak (PIC) a to uz neni tak hezke. Za chvilku by byl procak na klavesnici, procak na mys, procak na joypad... Me se zamlouva spis jednoduche reseni bez jakychkoli extra protokolu. A joypady pro Sega Master System maji komunikaci v poho. Jde vlastne o bezny joystick, akorat umi vracet (pokud mu uzemnime jeden pin) i stavy dalsich tlacitek. A zda se, ze je dostupny.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JOYSTICK / JOYPAD
PříspěvekNapsal: 15.01.2014, 19:58 
Offline
Kecálek

Registrován: 12.05.2013, 20:01
Příspěvky: 157
Has thanked: 332 times
Been thanked: 21 times
Matej píše:
Ja som aj za nap. SEGA MEGADRIVE joypad. Sa dajú kúpiť na ebay, aukro celkom lacno...
Alebo PL firma robi Megadrive, Mastersystem gamepady celkom lacno po 4 Eura.

Takže je tu blízko firma ktorá robí SMS, MD gamepady. Možno by vedeli aj krabičku na SAM urobiť...

Mastersystem
http://www.matt.com.pl/oferta.php?nkate ... n&waluta=3
Megadrive
http://www.matt.com.pl/oferta.php?nkate ... n&waluta=3


Ver mi, strasnejsi gamepad si v ruke v zivote nedrzal. Gamepady pre SMD alebo CD32 su luxus proti tym polskym smejdom. A gamepad z PSX je uplne z inej galaxie...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JOYSTICK / JOYPAD
PříspěvekNapsal: 15.01.2014, 20:19 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Ja mam tento joypad:
http://www.ebay.com/itm/Exciting-Funny-2x-6-Button-for-SEGA-Genesis-Black-Classic-Game-Controller-Joypad-/321217534199?pt=AU_Video_Game_Accessories&hash=item4aca0e98f7

Funguje... a to je asi tak vse. Provedeni zadny zazrak, taky za ty prachy :-) Je to male do ruky.

Jediny problem: pri stisku tri a vice smeru soucasne joypad vrati natvrdo stav VPRAVO+NAHORU. A jako ze pri hrani se to stava, ze pri zmene smeru prejedete z DOWN+LEFT po krizi prstem na opacnou stranu (DOWN+RIGHT) a docasne se muze sepnout DOWN+LEFT+RIGHT, ale joypad v tento moment vraci uplne nesmyslne RIGHT+UP. Tento joypad nema kriz umisteny na stredove kolebce, takze to je peklo. Pri zmene smeru je pak lepsi prst z krize uplne zvedat. Doufam, ze ty ostatni cinske smejdy nemaji uvnitr stejny cip. :-(

Tu editaci bych klidne nechal nastavenou na 3 dny. Obcas se hodi k prispevku doplnit par informaci, obzvlast v prvnim prispevku vlakna.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JOYSTICK / JOYPAD
PříspěvekNapsal: 16.01.2014, 00:45 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Tak to mam konecne hotove. Radeji sem posilam snapshot se zdrojakem v Prometheu (po spusteni snapshotu staci stisknout "T" a sledovat stav registru B a C, ktere vraci jednotlive bity smeru a osmi tlacitek. Break prerusi trasovani a klavesou "Q" se dostanete do zdrojaku.

A ted si rekneme jak takovy 6ti tlacitkovy(ono jich je vlastne 8) joypad funguje. Jednak ma nepatrne jiny pinout. Je napajeny z pinu 5 konektoru canon, kde vyzaduje +5V. A naopak na pinu 7, kde ma kemspton bezne +5V, tak joypad zde ma select pro prepinani multiplexeru. Hodnoty, ktere joypad vraci se meni podle toho, jakou logickou uroven na pinu 7 nastavite. A nevic to zavisi take na poctu zmen tohoto signalu z logicke 1 do log.0 a dale zalezi na rychlosti prepinani tohoto signalu (pokud delsi dobu nebudete signal prepinat, joypad se vrati do vychoziho stav.

Nejak jsem musel vyresit zpusob prepinani stavu pinu 7 (tento signal se jmenuje "TH"). Nakonec jsem zvolil nejrychlejsi a nejjednodussi cestu, a tou je pridani samostatneho portu s adresou 95, ktery je stejne jako port 31 take ke cteni. Pri kazdem nacteni portu 31 se nastavi pin TH do log.1 a nactete jina data, nez pri cteni z portu 95, kdy se TH naopak nastavi do log.0.

Pokud software nebude z portu 95 vubec cist, bude se joypad tvarit jako dvoutlacitkovy kempston joystick. S vyuzitim driveru lze jednak pritomnost joypadu detekovat a pri uspecne detekci vrati v registru BC potrebna data vsech smeru i tlacitek. A ted rozeberu jak driver pracuje:

Jako prvni je nutne vedet, ze driver je zavisly na dobrem casovani a vyzaduje jen to, aby byl volan idealne jen jednou za preruseni, nebo aby mezi vicenasobnym volani driveru byla proste nejaka rozumna pauza, jinak se joypad bude blbe resetovat. A ted postup komunikace s joypadem:

1) IN 31 = vrati beznou hodnotu ala kempston data
2) IN 95 = vraci BIN 11xxxx11 (xxxx jsou ruzne stavy smeru a tlacitek, to ted ale nebudu rozvadet, vice v driveru)
3) IN 31 = vraci BIN 00xxxxxx
4) IN 95 = vraci BIN 11xx1111
5) IN 31 = vraci BIN 00xxxxxx (tady ten bajt vraci stav sesti tlacitek najednou)
6) IN 95 = vraci BIN 11xx0000

Jak je videt, porty se musi stridat, cimz se zaroven generuje jakysi clock signal pro komunikaci. Driver nemusi byt nijak dokonale presne casovan, ale nesmi mit extremne dlouhe prodlevy mezi ctenim obou portu. Driver v prubeho cteni testuje, jestli souhlasi bity, ktere joypad vzdy vraci v log.1 ci v log.0, a tim vlastne probehne detekce pritomnosti joypadu. Pokud je nactena jina hodnota, driver se ukonci a vraci v BC hodnotu 255 (to jsem delal kvuli moznosti volani z basicu).

K odzkouseni poslouzil interface DIVMMC na ZX, kde jsem puvodni GAL pro obsluhu kempstonu preprogramoval.


Přílohy:
SNAP0005.SNA [128.03 KiB]
496 krát

_________________
http://velesoft.speccy.cz/
Nahoru
 Profil  
 
 Předmět příspěvku: Re: JOYSTICK / JOYPAD
PříspěvekNapsal: 16.01.2014, 19:57 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Matej píše:
Inak aj Sega Megadrive gamepady idú ale tie 3 gombíkové. 6 gombíkové používajú už čip...


Jsem koukal na pinouty a Megadrive i Master System/Genesis a maji stejne zapojeni joypadu. Ty 6ti tlacitkove ovladace se chovaji stejne jako ty tritlacitkove, pokud je zapojis do normalniho kempston konektoru. Akorat fungujou jen dve tlacitka B a C + 4 smery. Lisi se az pri cteni stavu dalsich tlacitek.

_________________
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ů: 6 ] 

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