Welcome, Guest. Please login or register.


Author Topic: Web emu (Read 156135 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9888
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #195 on: 2013.August.17. 14:08:27 »
Quote from: lgb
Az mas kerdes, hogy van-e ertelme, ui foleg a jelenlegi fazisban kb naponta valtozik ...
Én arra gondoltam, hogy ha majd kész lesz nagyjából, akkor tenni fel. És, igazi honlaptulajdonos frissíti is a honlapján a cuccokat, vagy mindenesetre a verziószám fel lenne ott tüntetve.
Nyilván, ha olyan változtatás történik (majd) az emulátorban, ami jelentősen érinti az adott honlapon futtatott programot, akkor kéne elsősorban frissíteni.
De ez még csak felvetés. Endinek jobban tetszene, mint látom, ha linkből nyílna meg az oldaláról, én meg még csak "hangosan gondolkozom", de a jövőben majd jó lenne ilyet megcsinálni.
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 #196 on: 2013.August.17. 14:08:50 »
Quote from: endi
ilyen nem lesz támogatva, azaz hogy más címről töltse a snapshotot?
http://ep.lgb.hu/jsep/demo/?snapshot=http://etyekfilm.hu/miner2013_final_zzzip.ep128s


Ez most is tamogatva van. Nyiss egy javascript console-t, ha az URL OK, akkor valoszinu hogy ilyet latsz benne:

XMLHttpRequest cannot load http://etyekfilm.hu/miner2013_final_zzzip.ep128s. Origin http://ep.lgb.hu is not allowed by Access-Control-Allow-Origin. ?snapshot=http://etyekfilm.hu/miner2013_final_zzzip.ep128s:1

Errol irtam minap amikor kicsit hosszasan taglaltam, hogy megy a betoltes: alapvetoen itt az a gond, hogy ezt bar az emulator tamogatja, itt altalaban a browserek security vedelme lep elepetbe. Arrol van szo, hogy biztonsagi okokbol nem engedi az "cross site" kereseket, tehat ha pl az ep.lgb.hu oldalon futo JavaScript egy masik site (itt: egyekfilm.hu) site-hoz akar hozzaferni, mert ez ugye lehet - sot sajna gyakori - "gonosz" celokra valo kihasznalasa. Irtam is errol, hogy ez kikerulheto, ha a kerdeses site-on (ahonnan a betoltendo file szarmazik) garantalt a kovetkezo HTTP header a valaszban:

Access-Control-Allow-Origin:

Itt utana vagy az ep.lgb.hu adando meg logikusan, vagy ha semmilyen korlatozas nem kell, akkor egy csillag peldaul.

Amugy van ennek egyszerubb "ellenszere" is, lehet majd implementalom: a betoltendo file-oknal mindenkeppen az en site-omra megy vissza a keres, ami kvazi "proxy" modban letolti server oldalon, es le-stream-eli az JSep-nek, igy a forras site-on (ahol a betoltendo file van) nem szukseges semmifele header preparacio. Ez viszont kisse veszelyes, mert kikeruli ezt a security mechanizmust, amit csunyan ki lehet hasznalni mas site-ok tamadasara, es ott ez ugy fog jeletkezni h az lgb.hu webserver "tamadja" oket, ezert nem szokas ilyesfajta "open proxy" megoldast krealni nyilt internetes kornyezetben ...

Ha a webservereden apache van, es .htaccess megy, akkor tedd az JSep-nek szant dolgokat kulon konyvtarba, majd ott probalj vmi hasonlot irni egy .htaccess nevu file-ba:

Header add  Access-Control-Allow-Origin "ep.lgb.hu"

Vagy ha nem megy (lehet kell az ep.lgb.hu ele a http:// is), akkor idezojelek koze egy csillagot az ep.lgb.hu helyett.

Elvileg ez pont azt csinalja, amit mondtam, minden http keres valaszahoz hozzadja a kerdeses http header-t. Azert irtam, hogy kulon konyvtarba tedd, mert ha a docroot szintjen beallitod akkor a site minden cuccara igaz lesz, ami problema lehet :D
« Last Edit: 2013.August.17. 14:52:36 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #197 on: 2013.August.17. 14:13:42 »
Quote from: szipucsu
Én arra gondoltam, hogy ha majd kész lesz nagyjából, akkor tenni fel. És, igazi honlaptulajdonos frissíti is a honlapján a cuccokat, vagy mindenesetre a verziószám fel lenne ott tüntetve.
Nyilván, ha olyan változtatás történik (majd) az emulátorban, ami jelentősen érinti az adott honlapon futtatott programot, akkor kéne elsősorban frissíteni.
De ez még csak felvetés. Endinek jobban tetszene, mint látom, ha linkből nyílna meg az oldaláról, én meg még csak "hangosan gondolkozom", de a jövőben majd jó lenne ilyet megcsinálni.

Jah, hat ha a "majd kb kesz" allapotot nezzuk, akkor eleve a celom az lesz, hogy "beultetheto" legyen egyszeruen mas oldalaba. Jelenleg ez nem igaz, mert a demo oldal felepitese fontos, ott kell lennie extra UI elemeknek mint a debug ablak, a gombok stb, ami nelkul nem fog menni. A kesz verzioban az lenne, hogy lenne egy merge-olt javascript, azt az egyet eleg berakni barkinek a sajat oldalaba, es par soros javascript kodban "meghivja" hogy adott helyre tegye be az oldalan belul az emulatort, ahova o szeretne, az oldalon lehet sok mas minden is kozben, az nem fog zavart okozni. Megszunnek majd az extra gombok, UI elemek stb minden, az emulatorra pl a context menuben (jobb klikk) lesznek a funkciok, ha valakinek szuksege van ra, illetve pl FPS stb ki/be kapcsolhato lenne, es amolyan OSD modjara az emu sarkaban latszana, ha be van kapcsolva (nyilvan defaulte nem lesz, ha mar a "kb kesz" kategoriat nezzuk). Igy mindenki sajat EP programjat leiro web oldalara beteheti online az emulatort, ahol mondjuk bemutatja a programot, stb. Remelem kb ertheto volt, mit terveznek ...

Masreszt: ha ez a terv megvalosul, akkor maga az JS lehet az ep.lgb.hu-n, es az szerepel annak az embernek a html oldalan aki hasznalni akarja, igy csak az JS jon onnan, maga az emulator javascript kodja, de az emulator "ablak" az a sajat weboldalan, sajat site-jan, stb jelenik meg! Igy meg frissitenie sem kell, ha az JS az ep.lgb.hu-rol szarmazik, mindig a legfrissebb lesz. Ha valaki ezt nem erti, akkor jo pelda erre az, amikor a site-odon egy olyan kep van, ami masik web serveren van, viszont nalad jelenik meg, mert az img html tag src-jeben a valami "tavoli" url van.
« Last Edit: 2013.August.17. 14:27:21 by lgb »

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9888
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #198 on: 2013.August.17. 14:25:30 »
Quote from: lgb
Igy mindenki sajat EP programjat leiro web oldalara beteheti online az emulatort, ahol mondjuk bemutatja a programot, stb. Remelem kb ertheto volt, mit terveznek ...
Igen, én is ilyesmire gondoltam! :)

Más. Ha olyan programba botlunk az image fájlokban, ami nem működik, elakad, vagy ilyesmi, azt jelezzük?
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 #199 on: 2013.August.17. 14:38:13 »
Quote from: szipucsu
Igen, én is ilyesmire gondoltam! :)

Más. Ha olyan programba botlunk az image fájlokban, ami nem működik, elakad, vagy ilyesmi, azt jelezzük?

Hat ez jo kerdes ... Az a baj, hogy sok esetben otletem sem lesz, hogy lehetne javitani, foleg ha egy program "fagy" es nincs semmi uzenet pl debug ablakban ami segitene, az JSep-ben meg ugye semmi debugger nincs :( Szerintem az lenne a jo, ha olyan esetben szolnatok, ahol legalabb valakinek van otlete (pl valodi ep-n vagy ep128emu-n), hogy mi okozhat gondot, kulonben sokat nem biztos, hogy tenni tudok :( Az biztos, hogy jelenleg ismert bug-ok, amiert tenyleg felesleges szolni:

* lassu az emulator
* NAGYON lassu az emulator, kozben debug ablakban viszont a normalisnal tobb uzenet latszik a READY utan
* nincs hang :)
* TG/stb hibauzenet egy alert ablakban es rebootol az emulator (nincs megirva a TG int kezeles ...)
* snapshot loader barmi problema, mivel meg nincs kesz, ezert az esetek nagy szazalekaban nem is fog menni (altalaban kep van, csak utana semmit nem lehet csinalni) ...

Illetve, erdemes lehet egy javascript konzolt nyitni (chrome-on ctrl-shift-j) , ha ott vmi hibauzenet van, az nem art, ha tudom :)

Jo pelda az "otletem sincs mi a baj" temara, amit irtatok nemreg, hogy lassu az emu, kiveve ha egy gomb nyomva van tartva. Ettol fuggetlenul tudni hasznos, hatha rajovok egyszer csak, szoval vegulis ...

Vagy jo pelda a mar emlitett Boulder Dash, amit a tobbszinu karakteres mod miatt teszteltem volna, de valahol elhasal. A nem dokumentalt Z80 opcode-okra gyanakszom, de Zozo teszt programja alapjan nem igazan talaltam hibat az emulacioban ...
« Last Edit: 2013.August.17. 15:03:03 by lgb »

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9888
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #200 on: 2013.August.17. 15:01:30 »
Quote from: lgb
Szerintem az lenne a jo, ha olyan esetben szolnatok, ahol legalabb valakinek van otlete (pl valodi ep-n vagy ep128emu-n), hogy mi okozhat gondot, kulonben sokat nem biztos, hogy tenni tudok
Akkor én semmiért se szólnék, mert nem értek a témához, fogalmam sincs, ha gond van, miért van. :D Esetleg ha mégis írok valami hibát, a szakavatottabbak (pl. Zozo, István) is tudnak talán segíteni.
Nekem a Race Ace program maga elindult, csak a menüben az utolsó opció után maga a játék nem akart elindulni. Azt hiszem, másik játékkal is volt hasonló. Nem tudom, ez beletartozik-e valamelyik kategóriába, amit írtál, szerintem nem a lassúság okozhatta. Vagy ki tudja.

Tényleg nem lehet, hogy valamelyik egyszerűbb ROM konfiggal gyorsabb lenne? Nekem Firefoxon a ZT órája 3-4 másodpercenként vált, Chrome-on is kb. 2 másodpercenként. Tehát erre sincs elég energiája szerintem az emunak. Na, de most már nem kontárkodom tovább. :D
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 #201 on: 2013.August.17. 15:11:45 »
Quote from: szipucsu
Akkor én semmiért se szólnék, mert nem értek a témához, fogalmam sincs, ha gond van, miért van. :D Esetleg ha mégis írok valami hibát, a szakavatottabbak (pl. Zozo, István) is tudnak talán segíteni.

Na jo, ebben igazad van :) Honnan tudhatnad, hogy en mire gondolok, milyen problemak erdekelnek pontosan ...

Quote
Nekem a Race Ace program maga elindult, csak a menüben az utolsó opció után maga a játék nem akart elindulni. Azt hiszem, másik játékkal is volt hasonló. Nem tudom, ez beletartozik-e valamelyik kategóriába, amit írtál, szerintem nem a lassúság okozhatta. Vagy ki tudja.

Egy dolog: en "erdendoen" nem voltam soha EP-s, ezert igen limitalt az EP-s programok (kulonosen a jatekok) ismerete nalam ... Ezert azt megtehetnetek, hogy ilyenkor elmondjatok, hogy melyik disk image-rol van szo, es azon belul mi volt a file neve, lehet nevrol sem ismerem, pl semmilyen gepen ("kedvencemen" a C64-en se) nem igazan jatszottam jatekokkal soha ... Nekem valahogy a programozas a jatek, es ezzel mar gyerekkoromban is igy voltam :)

Quote
Tényleg nem lehet, hogy valamelyik egyszerűbb ROM konfiggal gyorsabb lenne? Nekem Firefoxon a ZT órája 3-4 másodpercenként vált, Chrome-on is kb. 2 másodpercenként. Tehát erre sincs elég energiája szerintem az emunak. Na, de most már nem kontárkodom tovább. :D

Azert valt lassabban, mert az egesz emulator lassabb (tehat nem az van h nincs energiaja az emunak a ZT-re hanem az hogy nincs energiaja az emunak ugy az egesz emulaciora mindennel egyutt, ebbol a ZT max nehany tizezred szazalek lehet igy saccra, de csak mondtam valamit) ... Az sok idot nem vesz el, de mar irtam, hogy kikapcsolhatod, ha zavar, az URL-be kell a zt=no reszlet. A games-es URL-en most atirtam, hogy ha ott klikkelsz az image nevekre akkor a zt ki lesz kapcsolva. Ha meg mindig lenne, akkor toltsd ujra a games-es oldalt, hatha be-cache-elte a browsered ... Oszt' ki tudja, lattunk mar fura dolgokat, ha csak a ZT letiltasa miatt gyorsabb jelentosen az valami fura bug lehet, aminek nem kene lennie :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #202 on: 2013.August.17. 15:24:49 »
Ok, a Race Ace-t nezve latszik pl a debug ablakban lent, hogy teleirja ilyesmivel:

Reading undecoded port 0xb6

Ha barmi gond van, erdemes megnezni a debug ablakot, gyanus ha a READY kezdetu sor utan sok minden van, foleg ha ugyanaz, de jo sok peldanyban! Jelen esetben pl jo lenne tudni, hogy a B6 port olvasasaval mit akarhat a program ...
« Last Edit: 2013.August.17. 15:32:13 by lgb »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Web emu
« Reply #203 on: 2013.August.17. 15:36:29 »
Quote from: lgb
Jelen esetben pl jo lenne tudni, hogy a B6 port olvasasaval mit akarhat a program ...
Valószínűleg external joystick kezelése.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #204 on: 2013.August.17. 15:44:09 »
Quote from: IstvanV
Valószínűleg external joystick kezelése.

Ez volt nekem is a tippem, noha mindig is zavart, hogy valahogy soha nem talalok egy teljes, szep I/O port listat, es ugy kell keresgelni/kerdezgetni, ha vmi nem megy "fejbol" :) Itt a forumokon volt mar szo tobbszor is ezekrol, egyszer tenyleg veszem a faradtsagot, es osszegyujtom, hogy meglegyen egyben. Itt egyszer mar elkezdtem, csak hat ez nem teljes, es nem is tul reszletes.

Azt veletlenul nem tudod, mit csinalna ez a jatek egy valodi gepen? Ugyanis en 0xFF erteket adok vissza, ha olyan portrol olvasna a program, amit nem kezelek le. Ezek szerint ez a jatek vagy valodi gepen is elakadna (ha nincs kulso joy) vagy pedig nem 0xFF-t kene visszaadni ...

EHHHHHH ... :) Most nezem, ha nyomok egy space-t akkor elindul a jatek :) Azaz lehet, nezi a kulso joy-t de billencsre tovabb lehet menni, ha az nincs. Ha jol ertelmezem. Tehat, akkor gondolom, ez igy normalis!

Sajna itt azert elojon a gond, hogy vmi mas debug-os modszer kene ... mert mikozben olvassa szepen a B6-os portot allandoan, mindegyik egy debug uzenet, amde mivel a debug "ablak" maga egy html entitas, amiben minden uzenetel beletolom az uj sort is, ez iszonyat modon lassitja a browser mukodeset, ha sok uzenet menne oda ... Ezert is irtam, hogy az - jelenleg meg - sajna normalis, hogy nagyfoku lassulat (akar 0 FPS-ig!) okoz, ha sok debug uzenettel kell vacakolnia a browsernek az emulacio soran.

FONTOS: modositottam az emulatort, debug uzenet futas kozben nem jelenik meg, csak tarolja! Debug uzenet akkor jelenik meg (a futas alatt tarolt osszes), ha stop-al leallitasra kerult az emulator (persze utana run-al folytathato a futas). Igy remelhetoleg a debug uzenetek altal okozott lassulas nem fog problemat okozni. Annyi plusz van, hogy futasidoben a debug uzenetek "ablaka" pirosas hatteruve valik, ha egy vagy tobb uj uzenet van, amde latni az uzenetet - fentiek ertelmeben - csak akkor lehet, ha stop-oljuk a futasat az emulatornak.
« Last Edit: 2013.August.17. 16:20:32 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #205 on: 2013.August.17. 16:34:56 »
Quote from: szipucsu
Tehát erre sincs elég energiája szerintem az emunak.
Igazából az 1700 Mhz-es procidnak nincs energiája már ilyen flancos modern technikákra mint Java Flash és társai... :-(
Én már azon is meglepődtem, hogy mai gépen sikerült értékelhető sebességet elérni!

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #206 on: 2013.August.17. 16:37:59 »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #207 on: 2013.August.17. 17:18:14 »
Quote from: Zozosoft
Igazából az 1700 Mhz-es procidnak nincs energiája már ilyen flancos modern technikákra mint Java Flash és társai... :-(
Én már azon is meglepődtem, hogy mai gépen sikerült értékelhető sebességet elérni!

Mondjuk ez JavaScript, nem Java es nem is flash :) A Java != JavaScript nagyon fontos kitetel, mert a nevhasonlosag alapjan sokan azt hiszik, hogy kozelebbi rokonok (egymas valtozatai stb), holott hivatalos neven ECMAscript-nek hivjak ma mar, es anno is vmi mas neve volt ... az meg kb marketing fogas volt csak - ha jol tudom mindezt - hogy legyen ennek a neveben is benne, hogy "java", a ket nyelv alapvetoen mas filozofian alapul, bar az alapszintakszis hasonlit (de ez fokepp azert van mert a Java es a JavaScript is C-szeru szintaxison alapul, ami az alapjat illeti legalabbis).

Amugy igazad van, en is meglepodtem, hogy egy "atlag" (na jo, nem 1700-as proci...) kepes elerni realtime sebesseget egy ilyen emulator, ez azert eleg durva. Eleve nemreg meg optimalizalt, asm betetekkel tuzdelt C-ben is kihivas volt az akkori gepeken egy jo emulatort irni (vagy en vagyok oreg, nekem tizen-iksz ev meg a "nem regen" szinonimaja).

Btw, a fullscreen-t nezte valaki, megy valakinek?
« Last Edit: 2013.August.17. 18:13:58 by lgb »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Web emu
« Reply #208 on: 2013.August.17. 18:28:15 »
Quote from: lgb
Btw, a fullscreen-t nezte valaki, megy valakinek?
Nekem megy.

Megtaláltam a Boulder Dash hibát: az IM2 megszakítás emulációja nem működött megfelelően. A z80_interrupt() függvényben (z80_full.js) inttemp &= 0xfff; helyett inttemp &= 0xffff; kell. Ez valószínűleg egyszerű gépelési hiba volt, talán már az eredeti Spectrum emulátorban.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #209 on: 2013.August.17. 19:04:58 »
Quote from: IstvanV
Nekem megy.

Megtaláltam a Boulder Dash hibát: az IM2 megszakítás emulációja nem működött megfelelően. A z80_interrupt() függvényben (z80_full.js) inttemp &= 0xfff; helyett inttemp &= 0xffff; kell. Ez valószínűleg egyszerű gépelési hiba volt, talán már az eredeti Spectrum emulátorban.

Hahahahaaaa, na neee, pont az JSspeccy blogjan olvastam ezt a hibat 1-2 napja (persze mar regebbi dolog ez, csak most olvastam marmint), de h oszinte legyek nem neztem utana (elfelejtettem), hogy ez tenyleg benne volt-e mar ebben a verzioban is (mivel ez a Z80 js core meg egy regebbi verzio). Itt irtak rola. Oszinten szolva, nem gondoltam, hogy IM2-ot hasznalnak EP-n is valamire ... Ezt amugy hogy talaltad meg, erdekelne :) Koszi szepen!

Akkor megse undoc opcode okozta a hibat a boulder dash eseten, amire tippeltem. Kerdeses, hogy az EXOS2.4 miert nem megy (a nem Z180 compatible azaz erdeti verzio marmint - nem ahol mar mentesitve lett az undoc opcode-oktol a kod a Z180 miatt by Zozo), azt hittem kozos a gond a Boulder Dash-al.

Na mind1, lehet bdash-t tesztelni akkor :) A default disk image-en (minden parameter nelkul inditva az emut) is ott van a bdash.cpc konyvtarban.
« Last Edit: 2013.August.17. 19:13:38 by lgb »