ENTERPRISE KLUB
2019. május 25., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Részletek
Welcome, Guest. Please login or register.


Author Topic: Web emu (Read 74193 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #150 on: 2013.August.13. 15:49:57 »
Quote from: szipucsu
Szerintem BASIC programokkal kéne az emut kipróbálni. Csak nem tudom, hogyan kell betölteni bármit is.
Snapshotból indított BASIC programokkal én lehet, hogy tényleg használnám is, kitenném oldalakra!

Ha snapshot alatt az ep128emu snapshot-at erted, az azert nem annyira trivialis, mivel erosen a sajat  belso allapotat menti el bele sajat logikaja szerint, igy nem olyan egyszeru egy masik emulatorba betolteni. Bar nem is lehetetlen, ezzel viszont nem igazan foglalkoztam meg.

Ami a kirpobalast illeti: ahogy az oldalon le is van irva, alapvetoen a kovetkezo modon mukodik. Mivel ez egy webes emulator nem olyan egyszeru, hogy megnyitsz egy file-t a gepedrol, ezt nem is lehet megtenni, hiszen ez egy webre epult cucc, ami nem lathatja a sajat dolgaidat (ennek security okai vannak, szep is lenne ha egy atlag javascript a weben a geped merevlemezen turkalhatna szabadon ...), ezt direkt ki akartak vedeni webes technikakkal, hogy ilyet ne is lehessen csinalni. Az emulator webrol (konkretan pl http-vel) tud barmit betolteni. Ez jelenleg lehet egy disk image, akkor azt emulatorban sima disk-kent latod EXDOS-al. A masik lehetoseg a "fake disk" mod, ebben az esetben webrol egy szem file-t (pl egy .BAS file) tolt be, majd futasi idoben o maga az emulatoron belul kreal ebbol egy disk image-et, es opcionalisan olyan EXDOS.INI-t, hogy magatol inditsa is el, ne kelljen kezzel betolteni (ennel elegansabb es egyszerubb lenne az ep128emu-hoz hasonlo FILEIO extension amivel tenyleg direkt per file-t lehet beolteni, az teny). Amugy a ROM-okkal is ez a helyzet, azt is "weben at" tolti be, es lehetoseg is van megadni neki mas ROM-okat, nincs "beepitve" az emulatorban semmifele ROM.

Namost, ez az "alap" emunal ugy megy (ha nem parameterezed fel kulon), hogy az ep.lgb.hu/jsep/data helyen vannak a cuccok amit letolt. Megfelelo URL parameterezessel barhonnan mashonnan is tud tolteni barmit, ha az az adott valami http, https vagy public ftp protokollal elerheto (bar en csak http-re teszteltem) szabadon. Egyetlen apro problema az, hogy legalabbis a chrome (firefox nem tudom, erre nem probaltam) security mechanizmusa kepes limitalni, hogy ilyen AJAX keresek csak ugyanoda mehetnek ahonnan az oldal is szarmazik ... Erre az ep.lgb.hu/jsep/data "default load" teruleten olyan trukk van, hogy egy custom http header-t ad hozza a keres valaszahoz:

Access-Control-Allow-Origin: *

En belatom, hogy ez eleg zavarosan hangozhat barkinek, aki nincs benne az ilyen webes szutykokban aktivan ugy altalaban :)

Tehat lehet celszerubb lenne, ha krealnatok egy disk image-et, rajta mindenfele programokkal amit tesztelni kellhet, es odaadjatok nekem, amit en kipakolok, es leirom az URL-t ahol aztan lehet ezzel nyomulni. Disk image-ek kozul a kovetkezok vannak tamogatva: csak ketoldalas, sav/szektor felosztas: 40/8, 40/9, 80/8, 80/9, 80/15, 80/18, 80/21, 82/21, 80/36.

Amire meg gondoltam: az "ihletet" ado (es a Z80 emulaciot ...) project az JSspeccy hasonlo "webes" Spectrum emulator eseten beepitett feature h a world of spectrum altal gyujtott programokat lehet hasznalni vele egyszeruen. Arrol filoztam en is, ha nekunk lenne ilyen gyujtemenyunk, akkor az JSep-t is hasonloan meg lehetne csinalni. Az enterprise specifikus weboldalakon levo programok sajnos kevesbe alkalmassak ehhez: ami weben, ftp-n fenn van (itt is az enterpriseforever.com-on) azok mind arj/zip/rar/stb cuccok, ami az emulator altal nem emeszthetoek, tehat igy sajnos ki van zarva az a lehetoseg, hogy ilyen automatikus funkcio legyen :( Ehhez specifikusan kene epiteni egy olyan "tarhelyet" ahol a programok kozvetlenul elerhetoek (nincsenek tomorotive), lehetoleg valami up-to-date lista van roluk, ami automatmizalt (nem html stb), igy az emulatorban olyan funkcio is lehetne, hogy o maga jelenit meg az alapjan listat, amibol lehet valasztani. Stb-stb.

Offline szipucsu

  • EP addict
  • *
  • Posts: 7647
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 22.0 Firefox 22.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #151 on: 2013.August.13. 19:32:08 »
Ez nem rossz! Szerintem akár az ep128.hu oldalon, akár itt is létre lehet hozni valami file adatbázist, de majd az illetékesek megmondják.
Akkor rakjunk ide kipróbálásra szánt programokat? Az egyszerűség kedvéért a játékból elsőre a Dot Collectort javasolnám, és az egyszerűség kedvéért az Opening Strategies nyelvoktató programot, meg a Verbentrainer-t (ez utóbbi basic).
Meg mondjuk a Lands of Havoc és a Traffic is mehetne a játékok közül, megnézni, működnek-e.
Persze ha nincs más javaslat. Nem tudom, mik azok, amik kevés olyan dolgot használnak, amit az emu még nem tudhat, nem értek ehhez a részéhez.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline szipucsu

  • EP addict
  • *
  • Posts: 7647
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 22.0 Firefox 22.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #152 on: 2013.August.13. 19:37:45 »
Snapshotot úgy értettem, akár maga a webes emu is menthetne el ilyet, és ezt töltené vissza. Nem kéne akkor a LOAD, START, stb. parancsokkal szöszmötölni, főleg, ha nem EP-s szakavatott használja a programot. Így pl. rögtön az indulás utáni állapot töltődne be.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #153 on: 2013.August.13. 21:22:06 »
Quote from: szipucsu
Snapshotot úgy értettem, akár maga a webes emu is menthetne el ilyet, és ezt töltené vissza. Nem kéne akkor a LOAD, START, stb. parancsokkal szöszmötölni, főleg, ha nem EP-s szakavatott használja a programot. Így pl. rögtön az indulás utáni állapot töltődne be.

A gond a mentessel van kisse, mivel - mint hosszu hozzaszolasomban kifejtettem - ez webes javascript-es dolognal nem ugy van, hogy csak ugy betolt vagy lement file-okat a hattertarra mint egy "nativ" program (pl ep128emu), hiszen attol web technika, hogy a weben at tud dolgozni, kvazi csak ott. Bar nyilvan ezt se lehetetlen megoldani (vegulis a vilagon barmi csak ido es/vagy penz kerdese). Az ep128emu snapshot _betoltes_ szerintem realisabb, es talan hasznos is. Az, hogy az JSep snapshot-ot irjon ki maga, az kicsit nehezebb kerdes.

Megjegyzem, hogy jelenleg is lehetseges a user interakcio nelkuli betoltes, csak ez - ahogy irtam - kisse trukkos (es talan lassu is), azon alapul, hogy egy EXDOS.INI file-ban benne van a LOAD. Csak ugye igy idoveszteseg igy is, amig bootol a gep (bar EXOS2.4-nel nem tart soka pl 128K rammal), stb stb.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #154 on: 2013.August.13. 21:35:26 »
Quote from: szipucsu
Ez nem rossz! Szerintem akár az ep128.hu oldalon, akár itt is létre lehet hozni valami file adatbázist, de majd az illetékesek megmondják.

Ezt jol meg kene "tervezni" azert, ahhoz, hogy normalisan hasznalhato legyen. Ha jol meg van csinalva, abbol sok minden dolgozhatna, akar ep128emu-ba is epitheto lenne valami, amivel programok onnan tolthetoek, stb stb. Pl alap kerdes, hogy milyen legyen a szerkezete: egyes programoknal disk image vagy maguk a file-ok. Ez azert is erdekes, mert ugye ha tobb file-bol all egy program, akkor nem mindegy, bar nem tudom igy van-e, de el tudom kepzelni hogy pl ep128emu-nal sem feltetlen megy minden program FILEIO-val ... Az JSep meg jelenleg vagy disk image-et igenyel, vagy pedig olyan programot, ahol egyetlen file van, es semmi tobb, ami kell hozza. Aztan meg kene oldani vmi "katalogus" letrehozasat, ami vmi strukturalt adat, amit nem human felhasznalasra optimalizalt az ember, pl emulatorok vagy emulator frontendek abbol dolgozhatnak. Oszinten szolva nem tudom pontosan hogy megy ez a World of Spectrumos dolog az JSspeccy-val egesz pontosan, mivel Spectrumos dolgokban nem vagyok otthon ...

Offline varrogy

  • User
  • *
  • Posts: 76
  • OS:
  • Mac OS X 10.9 Mac OS X 10.9
  • Browser:
  • Safari 7.0 Safari 7.0
    • View Profile
Re: Web emu
« Reply #155 on: 2013.August.14. 10:14:38 »
Quote from: lgb
Ezt jol meg kene "tervezni" azert, ahhoz, hogy normalisan hasznalhato legyen. Ha jol meg van csinalva, abbol sok minden dolgozhatna, akar ep128emu-ba is epitheto lenne valami, amivel programok onnan tolthetoek, stb stb. Pl alap kerdes, hogy milyen legyen a szerkezete: egyes programoknal disk image vagy maguk a file-ok. Ez azert is erdekes, mert ugye ha tobb file-bol all egy program, akkor nem mindegy, bar nem tudom igy van-e, de el tudom kepzelni hogy pl ep128emu-nal sem feltetlen megy minden program FILEIO-val ... Az JSep meg jelenleg vagy disk image-et igenyel, vagy pedig olyan programot, ahol egyetlen file van, es semmi tobb, ami kell hozza. Aztan meg kene oldani vmi "katalogus" letrehozasat, ami vmi strukturalt adat, amit nem human felhasznalasra optimalizalt az ember, pl emulatorok vagy emulator frontendek abbol dolgozhatnak. Oszinten szolva nem tudom pontosan hogy megy ez a World of Spectrumos dolog az JSspeccy-val egesz pontosan, mivel Spectrumos dolgokban nem vagyok otthon ...
Én egy hasonló elgondolást valósítottam meg az ep128emu iOSre portolása közben.
Az ep128.hu lévő rar fájlok eléggé jó alapanyag, mert minden programot ki lehet tömöríteni egy mappába amit meg lehet adni a FILEIO-nak.
Én úgy tudnám ezt elképzelni, hogy amikor valaki elindítja az emut akkor létrejöjjön egy session a szerver oldalon ami létrehoz egy "workspace" mappát (ez addig él amíg be nem zárja a böngészőjét a user) 
csinálni kellene egy webservicet amit a sessionnel és a rar file urljével paraméterezve kicsomagolná a "workspace"-be a programot (szerver oldalon) és ezt már talán tudná használni a webEmu. (ehhez esetleg fel lehet parsolni az ep128.hu-n lévő játék oldalakat is)

Illetve Chrome 9 től pedig elérhetőek már sandbox mappában végezhető fájl műveletek is. Ami viszont már direkt fájl elérést tesz lehetővé.

Én iOS alatt annyit csináltam (természetesen azért lehetett mert nativ alkalmazásról van szó), hogy egy böngésző ablakban induláskor megnyitom az első játék oldalt az ep128.hu-n és figyelem az érkező eseményeket és amikor a request során a megfelelő mime type érkezik, akkor letöltöm a háttérben és kitömörítem a filet egy mappába amit megadok a FILEIO-nak az emun belül. 
Ami viszont igéynként felmerült, hogy a betöltést ne kelljen begépelni, most ezen dolgozom. így sokkal kényelmesebben lenne és ki lehetne kerülni, hogy az iOS eszközön mivel nincs hardweres bill, ne kelljen szívni hogy még az ember a virtualis billentyuzeten gépeljen. Ráadásul nem is biztos hogy tudja az adott betöltendő file nevét, hiszen a rendszer ezt elrejti a user elöl.

Gy

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 18.0 Firefox 18.0
    • View Profile
Re: Web emu
« Reply #156 on: 2013.August.14. 10:26:47 »
Talán hasznos információ az ep128emu snapshot file formátumának a leírása:

- minden ep128emu2/plus4emu bináris file egy 16 byte-os azonosítóval kezdődik:
Code: [Select]
{
  0x5D, 0x12, 0xE4, 0xF4, 0xC9, 0xDA, 0xB6, 0x42,
  0x01, 0x33, 0xDE, 0x07, 0xD2, 0x34, 0xF2, 0x22
};
- ezt tetszőleges számú adatblokk követi a következő formátumban:
Code: [Select]
- blokk típus (4 byte)
- blokk adat méret (4 byte)
- blokk adat (blokk_adat_méret byte)
- blokk ellenőrző összeg (a gyakorlatban az egyszerűség kedvéért figyelmen kívül hagyható)
- a több byte-os egész értékek mindig MSB..LSB ("big-endian") formátumúak
- az utolsó, "file vége" blokk 0x00000000 típusú és 0 adat méretű

A snapshot betöltéshez hasznos blokk típusok (egyelőre nem teljes lista :oops:):

0x45508002 (memória állapot)
- verzió (4 byte, jelenleg mindig 0x10000000)
- lapregiszterek (B0h..B3h) állapota (4 byte)
- szegmens adatok a blokk végéig, egy szegmens formátuma:
Code: [Select]
- szegmensszám (1 byte)
- szegmens típus (1 byte, 0 = RAM, 1 = ROM)
- szegmens adat (16384 byte)

0x45508003 (I/O állapot, gyakorlatilag a portokra utoljára kiírt értékek)
- verzió (4 byte, jelenleg mindig 0x10000000)
- I/O port állapot (256 byte)

0x45508001 (Z80 állapot)
- verzió (4 byte, jelenleg 0x10000002, régi emulátor verzióknál kisebb érték is előfordulhat, de a gyakorlatban valószínűleg elég ezt támogatni)
- regiszterpárok állapota PC, AF, BC, DE, HL, SP, IX, IY, AF', BC', DE', HL' sorrendben (mind 2 byte)
- I regiszter (1 byte)
- R regiszter (1 byte, a 7. bitet figyelmen kívül kell hagyni)
- belső regiszter, figyelmen kívül hagyható (4 byte)
- IFF1 regiszter (1 byte, 0 vagy 1)
- IFF2 regiszter (1 byte, 0 vagy 1)
- R regiszter 7. bitje (1 byte, 0 vagy 0x80)
- IM regiszter (1 byte, 0, 1, vagy 2)
- az IM2 mód cím táblázat címzéséhez az alsó 8 bit (1 byte)
- jelzőbitek (4 byte):
Code: [Select]
- bit 0: az aktuális utasítás végén lehetséges megszakítás (1 = igen, a DI és EI letiltja ezt)
- bit 1: a Z80 megszakítás bemenete aktív (1 = igen)
- bit 2: az aktuális utasítás HALT (1 = igen)
- bit 3: a Z80 megszakítás bemenete aktív (1 = igen)
- bit 4: NMI az aktuális utasítás végén (EP-n nem fordul elő)
- bit 5: új PC beállítása az aktuális utasítás végén (ez csak a debuggerben lehetséges)

A gyakorlatban az 1. bit a fontos, a többi valószínűleg figyelmen kívül hagyható játékok
betöltésénél, mivel snapshot normál esetben nem készül utasítás közben, és a debugger funkciók
támogatása sem lényeges.
- új PC cím az aktuális utasítás után (4 byte, előjeles, -1: nincs ugrás); ezt a debugger használja, és figyelmen kívül hagyható

0x45508004 (DAVE állapot)
- verzió (4 byte, jelenleg mindig 0x01000000)
- órajel osztó (1 byte, 2 vagy 3, = (port(BFh) & 2) / 2 + 2)
- órajel osztó számláló (1 byte, visszafelé számol 0-ig)
- változtatható hosszúságú polinom számláló hossza (1 byte, 9, 11, 15, vagy 17)
- 4 bites polinom számláló fázis (4 byte, 0..14, visszafelé számol)
- 5 bites polinom számláló fázis (4 byte, 0..30, visszafelé számol)
- 7 bites polinom számláló fázis (4 byte, 0..126, visszafelé számol)
- változtatható hosszúságú polinom számláló fázis (4 byte, visszafelé számol)
- változtatható hosszúságú polinom számláló fázis kezdőérték (4 byte, 510, 2046, 32766, vagy 131070)
- 4 bites polinom számláló kimenet (1 byte, 0 vagy 1)
- 5 bites polinom számláló kimenet (1 byte, 0 vagy 1)
- 7 bites polinom számláló kimenet (1 byte, 0 vagy 1)
- változtatható hosszúságú polinom számláló kimenet (1 byte, 0 vagy 1)
- 62500 Hz számláló (4 byte, 0..3, visszafelé számol)
- 1000 Hz számláló (4 byte, 0..249, visszafelé számol)
- 50 Hz számláló (4 byte, 0..4999, visszafelé számol)
- 1 Hz számláló (4 byte, 0..249999, visszafelé számol)
- 31250 Hz (62500 / 2) órajel állapot (1 byte, 0 vagy 1)
- 0., 1., és 2. hang csatorna állapota a következő formátumban:
Code: [Select]
- kimenet (1 byte, 0 vagy 1)
- előző kimenet (1 byte, 0 vagy 1)
- flip-flop állapot (1 byte, 0 vagy 1)
- számláló fázis (4 byte, visszafelé számol 0-ig)
- számláló kezdőérték (= frekvencia kód, 4 byte, 0..4095)
- polinom számláló mód (1 byte, 0, 4, 5, 7, vagy 17)
- felüláteresztő szűrő engedélyezett a következő csatorna kimenetével (1 byte, 0 vagy 1)
- gyűrűmoduláció engedélyezett a 2. következő csatorna kimenetével (1 byte, 0 vagy 1)
- számláló engedélyezett (1 byte, 0 vagy 1, 1 = számláló fut)
- bal hangerő (1 byte, 0..63)
- jobb hangerő (1 byte, 0..63)
- 3. hang csatorna állapota a következő formátumban:
Code: [Select]
- kimenet (1 byte, 0 vagy 1)
- előző kimenet (1 byte, 0 vagy 1)
- polinom számláló kimenet (1 byte, 0 vagy 1)
- szűrő kimenet (1 byte, 0 vagy 1)
- órajel forrás (1 byte, 0..2 = másik hang csatorna kimenetének lefutó éle, 3 = 31250 Hz órajel
                 lefutó éle)
- órajel forrás előző kimenete (1 byte, 0 vagy 1)
- 7 bites és változtatható hosszúságú polinom számlálók felcserélése (1 byte, 0 vagy 1, 1 = igen)
- zaj csatorna polinom számláló (1 byte, 7 vagy 17)
- aluláteresztő szűrő a 2. csatorna kimenetével (1 byte, 0 vagy 1)
- felüláteresztő szűrő a 0. csatorna kimenetével (1 byte, 0 vagy 1)
- gyűrűmoduláció az 1. csatorna kimenetével (1 byte, 0 vagy 1)
- bal hangerő (1 byte, 0..63)
- jobb hangerő (1 byte, 0..63)
- hang megszakítás forrása (1 byte, 0 = 0. csatorna, 1 = 1. csatorna, 2 = 50 Hz, 3 = 1 kHz)
- hang megszakítás engedélyezett (1 byte, 0 = nem, 1 = igen)
- 1 Hz megszakítás engedélyezett (1 byte, 0 = nem, 1 = igen)
- video megszakítás engedélyezett (1 byte, 0 = nem, 1 = igen)
- INT 2 megszakítás engedélyezett (1 byte, 0 = nem, 1 = igen)
- hang megszakítás bemenet állapot (1 byte, 0 vagy 1)
- 1 Hz megszakítás bemenet állapot (1 byte, 0 vagy 1)
- video megszakítás bemenet állapot (1 byte, 0 vagy 1)
- INT 2 megszakítás bemenet állapot (1 byte, 0 vagy 1)
- hang megszakítás tároló (1 byte, 0 vagy 1, 1 = aktív)
- 1 Hz megszakítás tároló (1 byte, 0 vagy 1, 1 = aktív)
- video megszakítás tároló (1 byte, 0 vagy 1, 1 = aktív)
- INT 2 megszakítás tároló (1 byte, 0 vagy 1, 1 = aktív)
- aktuális audio kimenet (4 byte, bal + jobb * 65536, egy csatorna kimenete 16 bites előjel nélküli egész érték)
- memória lapregiszterek állapota (4 byte)
- magnó hang visszacsatolás engedélyezett (1 byte, 0 vagy 1)
- aktuális magnó bemenet (1 byte, 0 vagy 1, 0 = B6h port 7. bit = 1)
- aktuális magnó szint (1 byte, 0 vagy 1, 0 = B6h port 6. bit = 1)
- billentyűzet mátrix sor (1 byte, 0..15)
- billenyűzet mátrix állapot (16 byte)

Ezek közül a gyakorlatban elsősorban a megszakítással kapcsolatos regiszterek fontosak, a sok belső hang regiszter különösebb probléma nélkül figyelmen kívül hagyható.

0x45508005 (NICK állapot)

- verzió (jelenleg 0x04000000)
- az aktuális LPB paraméterei:
Code: [Select]
- sorok száma (4 byte, 1..256)
- VINT flag (1 byte, 0/1 = VINT alacsony/magas)
- VRES bit (1 byte, 0 vagy 1)
- reload bit (1 byte, 0 vagy 1)
- szín mód (1 byte, 0..3)
- video mód (1 byte, 0..7)
- altInd0 bit (1 byte, 0 vagy 1, = jobb margó 7. bitje)
- altInd1 bit (1 byte, 0 vagy 1, = jobb margó 6. bitje)
- lsbAlt bit (1 byte, 0 vagy 1, = bal margó 6. bitje)
- msbAlt bit (1 byte, 0 vagy 1, = bal margó 7. bitje)
- bal margó (1 byte, 0..63)
- jobb margó (1 byte, 0..63)
- paletta (16 byte, a 8..15 színeket a 80h port írása állítja)
- aktuális LD1 cím (4 byte; minden cím video cím 0 és 0xFFFF között)
- aktuális LD2 cím (4 byte, karakteres módban a tényleges cím)
- LPT kezdőcím (4 byte)
- aktuális LPB kezdőcíme (4 byte)
- aktuális LPB sorszámláló (visszafelé számol 0-ig) (4 byte)
- video megjelenítés aktív (nem keret) (1 byte, 0 vagy 1)
- aktuális slot (1 byte, 0..56)
- keret színe (1 byte)
- adatbusz állapota (1 byte, figyelmen kívül hagyható)
- LPT jelzőbitek (1 byte, belső regiszter az LPT újratöltésének vezérléséhez)
- 80h port mentett értéke (1 byte)
- 83h port mentett értéke (1 byte)

0x45508009 (gép állapot, leírás később)

Az egyéb blokk típusok figyelmen kívül hagyhatók, de az alábbiakra érdemes hibaüzenetet adni, mert EP snapshotban nem fordulhatnak elő:
- 0x45508007 (emulátor konfiguráció)
- 0x4550800A (demo adat, azaz billentyűzet események időzítéssel)
- minden, ami 0x4550800B, vagy nagyobb (ezek csak Plus/4, Spectrum, vagy CPC emulációnál lehetségesek)
« Last Edit: 2013.August.14. 12:17:10 by IstvanV »

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #157 on: 2013.August.14. 14:19:48 »
Quote from: varrogy
Én egy hasonló elgondolást valósítottam meg az ep128emu iOSre portolása közben.
Az ep128.hu lévő rar fájlok eléggé jó alapanyag, mert minden programot ki lehet tömöríteni egy mappába amit meg lehet adni a FILEIO-nak.
Én úgy tudnám ezt elképzelni, hogy amikor valaki elindítja az emut akkor létrejöjjön egy session a szerver oldalon ami létrehoz egy "workspace" mappát (ez addig él amíg be nem zárja a böngészőjét a user)
csinálni kellene egy webservicet amit a sessionnel és a rar file urljével paraméterezve kicsomagolná a "workspace"-be a programot (szerver oldalon) és ezt már talán tudná használni a webEmu. (ehhez esetleg fel lehet parsolni az ep128.hu-n lévő játék oldalakat is)
Igen, erre gondoltam en is, bar nekem annyira nem tetszik, hogy oszinte legyek, jobban orulnek annak, ha olyan "normalis" program adatbazis lenne ugymond, ami azonnal felhasznalhato kozvetlenul, minden ilyen trukk nelkul. Bar lehet, az nagyobb melo lenne, mint megcsinalni igy, az is igaz. Egyeduli problema, a FILEIO nincs JSep-ben implementalva, vagy valtozatlanul meg kene azt csinalni (es akkor az ep128emu-ban is hasznalt ROM jo hozza) vagy irni kell egy hasonlot.
Quote
Illetve Chrome 9 től pedig elérhetőek már sandbox mappában végezhető fájl műveletek is. Ami viszont már direkt fájl elérést tesz lehetővé.
Nem tudom itt mire gondolsz, de pl local storage neven van valami w3c tervezet is, bar lehet masra utaltal itt.
Quote
Én iOS alatt annyit csináltam (természetesen azért lehetett mert nativ alkalmazásról van szó), hogy egy böngésző ablakban induláskor megnyitom az első játék oldalt az ep128.hu-n és figyelem az érkező eseményeket és amikor a request során a megfelelő mime type érkezik, akkor letöltöm a háttérben és kitömörítem a filet egy mappába amit megadok a FILEIO-nak az emun belül.
Ami viszont igéynként felmerült, hogy a betöltést ne kelljen begépelni, most ezen dolgozom. így sokkal kényelmesebben lenne és ki lehetne kerülni, hogy az iOS eszközön mivel nincs hardweres bill, ne kelljen szívni hogy még az ember a virtualis billentyuzeten gépeljen. Ráadásul nem is biztos hogy tudja az adott betöltendő file nevét, hiszen a rendszer ezt elrejti a user elöl.
Na igen. Most egy webes emu soran egyszeru mert kvazi lehet (akar generalni is) egy olyan html oldalt ahol a jatekok vannak sorban, akar screenshottal, roviden leirva, stb is, plusz egy link, ami az JSep-re mutatna, es ugy van felparameterezve, hogy egy klikkre bejon az emu oldal es el is indul benne a program. Nem kell semmit sem gepelni ehhez, ilyesmit most is tud, bar kicsit trukkosen (mar leirtam, az a "fake disk image" nevu krealmany). A masik amit elkepzeltem sokkal trukkosebb es nem is tudom van-e ertelme: kvazi letrehozni (vmi I/O porton pl) egy "fiktiv hardvert" amin at webes keresek intezhetoek. Ebben az a poen, hogy akkor az JSep-en _belul_ futhatna barmilyen puccos kivalaszto, ami kommunikal a "program DB-vel", illetve kesobb mas trukkoket is lehetne vele csinalni, ha valaki ilyen perverzitasokra vagyik (http keresek inditasa EP programokbol, es hasonlok).

Offline endi

  • EP addict
  • *
  • Posts: 7009
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Opera 9.80 Opera 9.80
    • View Profile
    • Honlapom
Re: Web emu
« Reply #158 on: 2013.August.14. 14:53:10 »
nem akarok megint ünneprontó lenni, de az EP játékok nagy része ügye specy átirat, amikkel bárhol tud  bárki játszani a neten is

azaz az ep128 adatbázisát elérhetővé tenni az emu számára szerintem felesleges

továbbá amit már többször írtam: sajnos a legtöbb ember nem fog szenvedni azzal hogy futásra bírjon egy játékot. az embereknek már nincs ideje erre, azoknak se akik amúgy nosztalgiázni akarnának. sőt ha el tud indítani egy játékot az emuban de elakad az irányítással pl, akkor se sokat fog szórakozni vele, otthagyja

ezért lenne jó a snapshot, amiben minden jól be van állítva, egyből lehet vele játszani, és alul html-el kiírunk még infókat, hogy tényleg mindent értsen az user...
A diplomás magyar programozó megcsinált egy pacmant egy év alatt, majd lefikázta a világ legjobb játékait. :D

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #159 on: 2013.August.14. 14:58:38 »
Quote from: endi
ezért lenne jó a snapshot, amiben minden jól be van állítva, egyből lehet vele játszani, és alul html-el kiírunk még infókat, hogy tényleg mindent értsen az user...

Az eredmeny ugyanaz, ha snapshot-ot tolt be az emulator webrol, vagy ha magat a programot, max az elozo javara irando, hogy gyorsabban bejon (meg akkor is ha az utobbinal sem kell gepelni stb, mert autostart). Tovabba, az JSep webes emulator minden "beallitas" az URL paramterezesevel tortenik, azaz a linket amit kiraksz az tartalmaz mindent, egy kattintas, semmit nem kell "kezzel" beallitani utolag. Vagy a "beallitast" ugy erted, hogy maga az EP programban kellhet beallitani dolgokat (mittomen' jatekosok szama stb) es azert tartanad jobbnak ha a snapshot akkor keszul amikor eppen tenyleg indul a jatek? Mert eddig en ugy ertettem, hogy azert tartod ezt jobb megoldasnak mert az emut nem kell allitgatni (pl kezzel betolteni stb) ...
« Last Edit: 2013.August.14. 15:04:23 by lgb »

Offline szipucsu

  • EP addict
  • *
  • Posts: 7647
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 22.0 Firefox 22.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #160 on: 2013.August.14. 16:53:19 »
Quote from: lgb
Vagy a "beallitast" ugy erted, hogy maga az EP programban kellhet beallitani dolgokat (mittomen' jatekosok szama stb) es azert tartanad jobbnak ha a snapshot akkor keszul amikor eppen tenyleg indul a jatek? Mert eddig en ugy ertettem, hogy azert tartod ezt jobb megoldasnak mert az emut nem kell allitgatni (pl kezzel betolteni stb) ...
Igen, erre gondolhatott Endi. Tehát ha betöltünk egy játékot, még be kell állítani pár dolgot, pl. billentyűzetet definiálni, vagy alapból nem az a joystick van beállítva induláskor, ami kompatibilis az emulátor irányítási lehetőségével. Az ebből adódó bonyodalmak elkerülése érdekében lenne jó a snapshot.
Mivel az EP-s programok kb. 80%-a Spectrum átirat, ami teljesen ugyanolyan Spectrumon is, azokat esetleg nem is kell felvenni az adatbázisba, hanem a többi programot - egyelőre.
De szerintem egyelőre a legjobb lenne valami egy fájlból álló programmal kipróbálni az emulátort, pl. Dot Collector, Lands of Havoc, meg néhány basic program. Lgb, ezeket be tudnád lőni az emulátorba, hogy kipróbáljuk? Vagy hova töltsük fel a fájlt és hogyan?
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #161 on: 2013.August.14. 18:59:23 »
Quote from: szipucsu
Igen, erre gondolhatott Endi. Tehát ha betöltünk egy játékot, még be kell állítani pár dolgot, pl. billentyűzetet definiálni, vagy alapból nem az a joystick van beállítva induláskor, ami kompatibilis az emulátor irányítási lehetőségével. Az ebből adódó bonyodalmak elkerülése érdekében lenne jó a snapshot.
Mivel az EP-s programok kb. 80%-a Spectrum átirat, ami teljesen ugyanolyan Spectrumon is, azokat esetleg nem is kell felvenni az adatbázisba, hanem a többi programot - egyelőre.
De szerintem egyelőre a legjobb lenne valami egy fájlból álló programmal kipróbálni az emulátort, pl. Dot Collector, Lands of Havoc, meg néhány basic program. Lgb, ezeket be tudnád lőni az emulátorba, hogy kipróbáljuk? Vagy hova töltsük fel a fájlt és hogyan?

Mar irtam a hosszu (hmm, OK: az atlagosnal hoszabb - hehe) hozzaszolasomban, hogy kene csinalni egy disk image-et, nem tudom van-e hozza energiatok, lehetseges mereteket irtam, hogy miket ismer az emu. Vegulis ami rafer, azt ra lehet zsufolni, aztan a disk image-et en majd szepen elhelyzem es szolok, hogy mivel hasznalhato (URL). Ez most igy tenyleg nehezkes, elvileg tudna mashonnan is weben at tolteni, de - mint szinten irtam - itt van par technikai finomsag. A snapshot toltest megprobalom majd implementalni! A mentest nem igerem ... Igy gondolom az elfogadhato kompromisszum, hogy ep128emu snapshot-jat megprobalom hasznalni, azaz ep128emu-val lehet jatszogatni, snapshot-ot eloallitani, aztan majd az menne a "webes emuval" (JSep, ha valakinek van jobb nev otlete, ne tartsa vissza, by the way!) amivel aztan webre is kipakolhato. Persze azt megigerni nem tudom, hogy mikorra tudom osszehozni ha sikerult egyaltalan :)

Kis mellekinformacio: HTML5-ben ugymond van W3C szabvanytervezet full screen modra ... Az JSep fejlesztoi (azaz csak nalam van meg ... nem amit ti is lathattok) verzioba megprobaltam beletenni, firefox 23-on latszolag muxik (viszont torzul a kep mert ugye legtobb mai monitor 16:9). Chrome-on full screen-be valt, de semmi kep nincs ...

Viszont btw firefox 23: ha valakinek az van, ranezne az emura a szokott helyen? Ugyanis nekem ugy tunik hogy lelassult durvan, holott 22-essel meg siman lenyomta a chrome-ot is. Erdekelne, hogy csak nalam gaz, vagy mas is lat ilyen effektet? Koszi.

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #162 on: 2013.August.14. 19:14:05 »
Quote from: IstvanV
Talán hasznos információ az ep128emu snapshot file formátumának a leírása:

Koszi szepen az infokat, biztos hasznosak lesznek majd :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7647
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 23.0 Firefox 23.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #163 on: 2013.August.14. 19:27:24 »
Itt vannak fent image fájlok, Ezek is jók? Ezekből ki tudsz próbálni néhányat?
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 29.0.1547.49 Chrome 29.0.1547.49
    • View Profile
    • http://lgb.hu/
Re: Web emu
« Reply #164 on: 2013.August.14. 19:59:55 »
Quote from: szipucsu
Itt vannak fent image fájlok, Ezek is jók? Ezekből ki tudsz próbálni néhányat?

Elvileg jok. Most a Disks_Games.rar -bol az osszes disk image-et feltoltam (a rar-ban amugy van egy List.txt nevu file, az alapjan elore kikeresheto, hogy melyiken mi van, nem kell "probalgatni" - felteve ha az a lista korrekt!). A hasznalat bar nem full komfort, azert megoldhato az URL parameterezessel: http://ep.lgb.hu/jsep/demo/?disk=GAMES_01.IMG

Ehhez hasonloan a disk= utani reszt kell lecserelni a megfelelo image hasznalatahoz. Kis es nagybetu _kulonbozo_ erre tessek vigyazni!

Egy kis minimalis segitseg, hogy ne kelljen URL-ekkel szorakozni (es van benne autostart/logo skipping mod is):

http://ep.lgb.hu/jsep/games/

Kvazi a List.txt-t alakitottam at gyorsan egy sor awk scripttel html-e, a megfelelo URL-ekkel, persze azert ez igy nem tul szep ...

Most neztem a GAMES_01.IMG-t, tok jo, van benne "program loader" is :D

Koszi a linket, itt van jo par remek dolog, nekem pont az volt a bajom eddig, hogy nem igazan talaltam EP programokat disk image formaban, csak file-onkent tomoritve stb, amihez nem volt turelmem disk image-eket gyartani, vagy vmi automatizmust hozza (lasd a topicban emlitett "web service" otletet pl). Igy viszont kvazi mar "keszen" van jo par disk image, tehat most lehet mar tesztelni is dolgokat. Talan ...
« Last Edit: 2013.August.14. 20:23:11 by lgb »