Welcome, Guest. Please login or register.


Author Topic: Web emu (Read 156642 times)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #255 on: 2013.August.23. 12:12:24 »
Quote from: lgb
Es akkor ugy kene megoldani hogy a jatekok a hiscore mentesnel a fileio-szerusegre akarjanak menteni, programokat tolteni viszont "normal" exdos-on at (legyen az disk vagy hdd/ide image, ez mas kerdes ...).
Ez a rész a legkönnyebb, mert csak bele kell írni az eszköznevet a hiscore filenévbe.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #256 on: 2013.August.23. 12:30:58 »
Quote from: Zozosoft
Ez a rész a legkönnyebb, mert csak bele kell írni az eszköznevet a hiscore filenévbe.

:) Ja. Meg ugye akkor minden jateknal vigyazni kell h eleve eleg egyedi legyen a filenev, ne egymas hiscore file-jait irogassak felul csunyan :) Innentol kezdve, meg akar olyan rettenet is elkepzelheto h pl server oldalon akar SQL adatbazisban van, amit olvas/frissit az emu altal adott olvasas/iras alapjan, viszont igy a hiscore lista felhasznalhato akar arra is, hogy egy adott web oldalon ki legyen teve olvashato formaban is, az emun kivul is. Mar ha ez barki szerint ertelmes ...

Igazabol ebben a projectben tenyleg "csak" az a gaz, hogy ertelmezni/tudni kell az adott jatekoknal egyenkent h hogyan epul fel a hiscore file-jai ... Meg ugye azt az esetet kezelni kene (nem tudom ilyen van-e) hogy a jatek nagy naivan beoltti a file-t, az ember jatszik vele, eler X pontot, o lesz az elso, amit o ugyan kiir, de nem olvassa vissza, igy az altala adott listaban nincs benne hogy kozben egy masik ember megelozte, ami a szerveren amugy mar ott lenne. Vagy ennyire kar szetszofisztikalni a problemat? :)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #257 on: 2013.August.23. 12:55:47 »
Quote from: lgb
viszont igy a hiscore lista felhasznalhato akar arra is, hogy egy adott web oldalon ki legyen teve olvashato formaban is, az emun kivul is. Mar ha ez barki szerint ertelmes ...
Igen, ez jó lenne, ha a játékok mellett látszódnának egyből a rekordok is.
Ki lehet találni egy egységes formátumot (pl soronként x karakter a név, y bájt a pontszám), és a versenyzésre kiszemelt programokba ezt beépíteni.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #258 on: 2013.August.23. 13:39:47 »
Quote from: Zozosoft
Igen, ez jó lenne, ha a játékok mellett látszódnának egyből a rekordok is.
Ki lehet találni egy egységes formátumot (pl soronként x karakter a név, y bájt a pontszám), és a versenyzésre kiszemelt programokba ezt beépíteni.

Egy vicces dolog lenne: mivel webes cucc az egesz emu, barki "belenezhet" a javascriptbe stb. Ha ert hozza, azt is latja, hogy hol tortenik a tarolas a server fele, es ilyet o maga is emulalhat, onnantol kezdve meg barmi hazug pontszamot beallithat maganak, amit el sem ert. Bar ez legyen mar becsuletbeli kerdes, de nem mindenki gondolna igy, lehet ... Mar mint nem az itt - a forumon - levo emberekre gondolok, hanem arra, ha esetleg tobb embert is vonzana.

Amugy Zozo, te pl valalnad hogy irsz egy ROM-ot? :) Az kene, hogy mondjuk megadok par - valodi EP-n nem letezo, "fiktiv" - I/O portot, aztan oda pl ki kene irni memoriacimet (plusz szegmens), ez mondjuk 3db I/O port, 4.-be meg vmi funkciokod szeruseg, es akkor ez alapjan lehtne "file-t" irni/olvasni (kene meg h pl adott offsettol file-on belul). Igazabol nem state-full implementacio kene (azaz minden muvelethez kene a file nev, nem ugy hogy meg lehet nyitni aztan hivatkozni ra, mert ugye szerver oldalon kisse nehezkes, hiszen tobb dolog is johet, akkor max szerver oldalon kene allapot infot tarolni, es vmi "file descriptor" azonositot visszaadni). Igazabol ez erdekes kerdes, hogy lehetne szepen ... Aztan az mar csak egy "kisebb" kerdes, hogy adott spec filenev eseten az pl adott jatek high score listaja, masik filenev eseten fix server oldali file-ok (ha kell ilyen) vagy akar egy iRC gateway, igy lehet chatelni neten at "EP-bol" legalabbis JSep-bol. Anno "netlink" neven kezdtem volna ilyet irni az JSep-be, csak rajottem h nem feltetlen tudom megirni az "EP oldali" dolgot, ami ezt lekezelne. Nemileg hasonlitani az ep128emu fileio ROM-jahoz, de azert nem teljesen. Annak a forrasat neztem, de nem feltetlen mondom, hogy ertem ...
« Last Edit: 2013.August.23. 13:46:46 by lgb »

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Web emu
« Reply #259 on: 2013.August.23. 13:55:48 »
hazug pontszámok a legnagyobb rendszerekben is vannak. pl ios-en van a gamecenter, ami az apple hivatalos szolgáltatása ilyen pontszám meg egyéb célokra. teli van akkora csalásokkal, mint a ház. egy játék toplistáinak tetején rendszeresen elérhetetlen (sőt, kiolvashatatlan) nagy számok vannak :)
Vigyázat! Szektás vagyok! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #260 on: 2013.August.23. 14:18:02 »
Amugy lehet egy egyszerubb, bar kevesbe szep megoldas is: maga a weboldal (nem az EP program!) megkerdezne a jatekos nevet, es/vagy cookie-bol kiolvassa (es tarolja is, legkozelebb ha visszater a gamer, nem kell ujra megadnia, de felajanlhatja modositasra stb). A jatekot csak annyira kene modositani hogy a pontszamot kuldje el a szerverre, semmi mast. A cookie-ban megvan a jatekos neve, ezzel taroltuk is. Elony: nem kell bonyolult "hi-score formatum visszafejtese" jatekot jatszani a szerveren, a jatek modositasa is egyszerubb lehet, stb. Hatrany: a jatekon _belul_ mutatott hi-score lista nincs szinkronban azzal, amit a weboldal tobbi resze mutatna, ott lenne ugye az "igazi" lista, a jatekon belul mindig csak az aktualis latszana, amit eppen jatszott (mivel nem azt tarolna el ilyen formatumban). Max annyi modositast lehetne az adott jatek(ok)ba, hogy ki is szedni az egesz top lista megjeleniteset, mert a weboldalon pl mellette/alatta megjelenne, az emun kivul mar. Vagy szerintetek ez gaz?

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #261 on: 2013.August.23. 21:18:06 »
Quote from: lgb
Max annyi modositast lehetne az adott jatek(ok)ba, hogy ki is szedni az egesz top lista megjeleniteset, mert a weboldalon pl mellette/alatta megjelenne, az emun kivul mar. Vagy szerintetek ez gaz?
Szerintem maradhatna a játékban is a toplista. Ez főleg az Eggs of Death-hoz hasonló játékoknál "fontos", ahol a csodálatos "Sotripák" fedőnevű képzeletbeli játékos nevétől fosztanánk meg az oldalra látogató nagyérdeműt. Hogy ne említsem Attus Gombócfalóját, amiben pl. Horn Gyuszi és hasonló nevű "játékosok" neve díszeleg. A Hungry Creature-ben is dallamos nevű (Sucega, Fafula, Muszuki, Mukucsu, Bucetlon) játékosok "próbálkoztak", elsöprő eredményekkel.
Már nem tudom, melyik játékban vannak a "kecskenyáj", "birkabocs" és hasonló nevű játékosok...

OFF: Olyan verseny nem volt még, hogy ki tud "ütősebb" játékosnevet kitalálni a toplistába?
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #262 on: 2013.August.30. 15:11:10 »
Elkezdtem atirni a dave idozitessel kapcsolatos dolgait, szoval lehet most meg rosszabbnak tunik a hang mint annak elotte volt, remelhetoleg ez javulni fog. Viszont egy masik erdekesseg, amivel elkezdtem jatszani: na nem is mondom, keretik bepotyogni ezeket az emulatorba (text 80 ajanlott, illetve persze exdos-bol pl nem kell a kettospont nyilvan az elejen) szepen egymas utan:

:help
:help nl
:help jsep
:jsep
:help wdemo
:wdemo ep.lgb.hu
:wdemo index.hu

stb, lehet mas domain nev is persze. A kevesbe gepelosoknek eleg az :jsep es a :wdemo kezdetu is :) Fontos, hogy csak az elso 512 byte jon vissza jelenleg, ez csak "demo" azert wdemo.

Ennek igy nyilvan sok ertelme nincs, ha majd mint device driver erheto el, es pl akar load "nl:filenev/url/miegymas" stb is lehet, akkor lesz jo valamire komolyan. Illetve jelenleg emu szintjen van minden muvelet, igy "megfagy" addig az emulator amig a http muvelet zajlik a wdemo-nal. Ezt majd async http handler-rel orvosolom, de ahhoz a lekezelo rom-ot is szofisztikalni kell, ami jelenleg igen primitiv ...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #263 on: 2013.August.30. 15:31:12 »
:-)  :smt038

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #264 on: 2013.August.30. 15:47:26 »
Quote from: Zozosoft
:-)  :smt038

Ez a ROM konkretan forraskodkent. Nem egy szep munka, es a fele nincs is hasznalatban, csak elkezdtem a device driver reszt kitalalni doksik alapjan, hogy azt hogy is kell. Azt majd kesobb. Igazabol ez utobbi lenne jo majd arra, hogy ne kelljen disk image-ekkel trukkozni, ha csak egy programot tolt be az ember valahonnan, vagy ezzel irni is lehetne majd, ami server oldalon pl a mar targyalt high score listat tarolja, ha a jatekokat modositja vki, hogy az NL device-ra irja ki a highscore erteket.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Web emu
« Reply #265 on: 2013.August.30. 16:31:04 »
Nem tudom, hasznos-e ez még, de itt egy rövid leírás az ep128emu file I/O funkciójának a működéséről:

A ROM az EDh FEh FEh n "utasítással" tudja hívni az emulátort, ahol n az elvégzendő művelet kódja. Ez többnyire az EXOS csatorna műveletekkel azonos, a teljes lista a következő:

00h: megszakítás (ez csak A=0-t állít be, egyébként nem történik semmi)
01h: csatorna megnyitása olvasásra
02h: csatorna megnyitása írásra
03h, 04h: csatorna bezárása
05h: karakter olvasása
06h: blokk olvasása (ezt az epfileio.rom valójában nem használja)
07h: karakter írása
08h: blokk írása (ezt az epfileio.rom valójában nem használja)
09h: csatorna állapot olvasása (C=0: nem EOF, C=FFh: EOF)
0Ah: csatorna állapot beállítása (nem támogatott, C=0, A=E7h a visszatérési érték)
0Bh: speciális funkció (nem támogatott, A=E7h a visszatérési érték)
0Ch: inicializálás (= összes csatorna bezárása, A=0)
0Dh: puffer mozgatás (figyelmen kívül hagyható, A=0)
0Eh: alapértelmezett eszköz tesztelése (visszatérési érték: A=0: nem FILE:, A=1: FILE: )
0Fh: alapértelmezett eszköz beállítása (FILE: ha A nem 0)

A paraméterek általában ugyanazok, mint az EXOS funkcióinál (tehát érdemes azoknak a leírását megnézni a részletekért), és a hibakódot is az A regiszterben kell visszaadni. Az epfileio.rom hibaüzenetei:

00h: nincs hiba

FBh: csatorna nem létezik
F9h: a csatorna már létezik (megnyitásnál)
E7h: nem támogatott funkció
E4h: file vége / írási vagy olvasási hiba

CFh: File not found
BAh: Not ready (egyéb hiba)
B8h: Data error (nem használt)
ACh: Disk full (nem használt)
AAh: Directory not found (ha a munkakönyvtár nem létezik)
A7h: Read only file
A6h: Invalid file name (pl. üres file név, vagy érvénytelen karaktert tartalmaz)
A1h: Invalid file attributes (pl. könyvtár megnyitása file-ként)
97h: File exists (nem használt)

A blokk műveleteknél (amelyeknek a megvalósítása azonban nem lényeges, mert a ROM nem használja ezeket) figyelni kell a lapozásra az FFh:3FFCh-3FFFh területen tárolt szegmensszámoknak megfelelően.
« Last Edit: 2013.August.30. 16:34:57 by IstvanV »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #266 on: 2013.August.30. 17:13:58 »
Quote from: IstvanV
Nem tudom, hasznos-e ez még, de itt egy rövid leírás az ep128emu file I/O funkciójának a működéséről:

A ROM az EDh FEh FEh n "utasítással" tudja hívni az emulátort, ahol n az elvégzendő művelet kódja. Ez többnyire az EXOS csatorna műveletekkel azonos, a teljes lista a következő:

Koszi.

Ja, olvasgattam a forraskodot, de aztan nekem "nem jott be" ez a modszer. Ennek csupan az az oka, hogy az JSep Z80 emulacioja meg mindig az JSspeccy v1-e valojaban, es majd tervezek atallni valamikor. Mindenesetre emiatt (is) azt gondolom, hogy en _semmit_ nem szeretnek a Z80 emulacioba tenni ami platform specifikus (legalabbis jelenleg tuti nem), az legyen szepen generic Z80 emulacio, es kesz. Ezert en - jelenleg - a 0x90 - 0x9F portokat hasznalom (0x90 most csak), az a "trigger", de nem is feltetlen csak IN/OUT, hanem hatasara az emulatorban mas regiszterek is modosulnak, mint amit amugy csinalna az adott utasitas. Raadasul csak akkor mux, ha a megfelelo (netlinkfs.rom) szegmensbol probaltak, igy nem gond, ha pl egy program veletlenul bizeralja ezeket a portokat, nem tortenik semmi. Azon persze lehetne vitatkozni, hogy ez mennyire szep megoldas :) Hasonloan ronda, hogy az emulator modositja a ROM-ot :) Egy reszet puffernek hasznalja (maga az emulalt enterprise viszont nem tud irni bele, mivel megiscsak ROM-rol van szo).

Illetve jelen allapotban az en ROM-om az kvazi szinte csak par byte, minden mas (pl rom entry funkciokod vizsgalata stb) az az emulatorban van. Mivel ez az egesz javascript/ajax/net/jsep osszefonodas ugyis tul szoros, hogy ez egy generic es/vagy "szep" megoldas legyen, ezt nem tartom problemanak, meg gyorsabb is :)

Azon gondolkoztam anno, hogy milyen szep is lenne egy meghajtonak latni egy webes tarhelyet. Viszont amennyire tudom az EXDOS ugye erosen FAT orientalt, azt nem tudod "kiirtani" belole, neki block szinten kell iras/olvasas, stb. Pedig szep is lenne, ha std exdos-os cuccokkal lehetne hasznalni, konyvtarastul mindenestul. Nezegetve az EXDOS leirasat, modularisnak tunik es az FISH nevu resze talan az ami a FAT-et implementalja, de gondolom nem olyan egyszeru azt "kivenni" onnan vagy boviteni. Pl arra gondolok, hogy mondjuk a :DIR a netlink eseten ne FAT-el kinlodjon, hanem en implementalom. Vagy nem tudom, megoldhato-e, hogy pl az egyik meghajto betujelet valahogy "felulbiralom" es az EXDOS disk image-ekkel megy tovabbra is, csak arra a meghajtora van spec case, ami valojaban total nem FAT, disk image, meg semmi. Igazabol otletem sincs, hogy ez mennyire egyszeru/nem egyszeru, vagy nem is erdemes vele foglalkozni, es max csinalok egy NDIR/NCD/stb commandokat-ot, ami a netlink-es dolgokra csinal hasonlot, mint ami EXDOS-ban is van. Csak igy pl EPDOS-bol stb nem lehet kezelgetni persze, mert specialis parancsokkal megy, miegymas. Pedig vicces lenne ...

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Web emu
« Reply #267 on: 2013.August.30. 17:21:41 »
Quote from: lgb
Ja, olvasgattam a forraskodot, de aztan nekem "nem jott be" ez a modszer. Ennek csupan az az oka, hogy az JSep Z80 emulacioja meg mindig az JSspeccy v1-e valojaban, es majd tervezek atallni valamikor. Mindenesetre emiatt (is) azt gondolom, hogy en _semmit_ nem szeretnek a Z80 emulacioba tenni ami platform specifikus (legalabbis jelenleg tuti nem), az legyen szepen generic Z80 emulacio, es kesz.
Az ep128emu csak ROM-ban ismeri fel a "bővített" utasítást, tehát az EP-s programokra nincs hatása, még akkor sem, ha valamelyikben véletlenül előfordulna. De le is lehet tiltani.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #268 on: 2013.August.30. 17:28:04 »
Quote from: IstvanV
Az ep128emu csak ROM-ban ismeri fel a "bővített" utasítást, tehát az EP-s programokra nincs hatása, még akkor sem, ha valamelyikben véletlenül előfordulna. De le is lehet tiltani.

Ez ok, a fo ok amiert en nem ezt a modszert hasznalom az az, amit irtam a Z80 emulaciorol az JSep-n belul. Azt mar az en implementaciomra irtam, hogy a 0x9X portok hasznalata nem okoz gondot, ha valahol elo is fordulna valamiert egy programban.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #269 on: 2013.September.06. 17:14:38 »
LGB-nek ismet elgurult a gyogyszere. Legujabb agymenes, chat (na jo, amugy a post ajax interface tesztelese cimszo alatt is hasznos, ha mar nincs tul sok ertelme amugy). Szokasos helyen emuval kiprobalhato, basic-bol kalapalva pl:

Code: [Select]
:ncnick LGB
Ezzel nick nevet valasztottunk, ertelemszeruen LGB helyett mas is megadhato :) Ezek utan peldaul johet egy uzenet kuldese:

Code: [Select]
:nchat Ez itt egy uzenet kerem szepen.
Ha csak arra kell a dolog, hogy megnezzuk, jott-e uj uzenet mastol, akkor csak (mellesleg az uzenet kuldesnel is van polling, ez a verzio arra kell ha nem akarunk uzenetet kuldeni de le kene kerdezni hogy jott-e uj):

Code: [Select]
:nchat
Az implementacio meglehetosen silany, szoval bugok lehetnek. Ha tobb ember probalja egyszerre, elvileg tudnak egymasnak irogatni. A meglepi az ott van, hogy ez nem csak ugy chat, hanem iRC-n zajlik! Azaz, ha valaki belep egy tetszoleges iRC klienssel, akkor latni fogja az uzenetvaltasokat, sot o is beleirhat, JSep/EP/8bit/Z80/stb nelkul is. Ehhez az irc.freenode.net serverre kell csatlakozni, es az #enterprise128.hu csatornara belepni. Sajnos, mivel az iRC gateway (ep.lgb-n fut) egy normal irc kliens amugy, igy minden jsep-bol erkezo uzenet az jsep irc usertol latszik jonni, amde a [] jelek kozott odairja a valasztott nick-et legalabb. Ez nem kikerulheto, mivel javascript nem fog tudni irc-zni kozvetlenul, mivel az http kerest tud csak (attol webes ...) igy kell hozza jelen esetben az lgb.hu serveren fut, primitiv taknyolt http-irc gateway, ami athidalja a problemat. Aztan a netlink ROM-ja es az JSep js-e egyutt lekezeli a dolgokat valahogy. Tenylegesen EP-n futo iRC klienset nem is lehetne irni, max igazi hw-n ha csinalunk pl ethernetet, vagy emun, ha emulal tcp/ip hozzaferest stb (az viszont javascriptben lehetetlen), a fentiek miatt. Amugy a :wdemo is hasonloan mux, ott is server oldalon "renderelodik" az oldal (mar amennyire karakteres verzioba valo rendereles renderelesnek szamit).

Elvileg lehetne (gondolom ...) primitiv basic programot irni (pl ext utasitas hasznalataval) ami automatizalja az nchat-es "pollingot" (nezegetes h jott-e uj uzenet), stb. Ha egyszer kesz lesz a netlinkfs akkor ez amugy normalisabban file megnyitassal es olvasas/irassal is mehet, most meg csak kulon exos parancsok.

Sajna az egyszeruseg miatt vannak korlatok, pl 1K van pufferelve max server oldalon, tehat ha nchat-et nem nyom vki es kozben 1K-nal tobb forgalom zajlott az iRC csatin, akkor el fog veszni az uzenetek egy resze annak szamara aki nezi.

Vagy esetleg vmi hasonlo (fejbol irom) basic programmal lehet probalkozni:

Code: [Select]
10 ! Az LGB helyere a nicked jon
20 ext "ncnick LGB"
30 input a$
40 ext "nchat " & a$
50 goto 30

Akkor lehet nyomkodni neha enter-t a frissiteshez, illetve nyilvan uzenet is beirhato, majd utana enter. Ez mar mini iRC kliens, bar meglehetosen esetlen, mindenesetre hasznalhato valamennyire ...
« Last Edit: 2013.September.06. 20:16:14 by lgb »