Welcome, Guest. Please login or register.


Author Topic: Web emu (Read 156167 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #120 on: 2013.July.16. 21:11:38 »
Quote from: Zozosoft
Semmi változást nem vettem észre :-(

Azt hiszem igy kerdezz-felelekkel sehova nem jutunk, vagy 1000 evig fog tartani ... Pontosan hogy hijjak' ezt a browsert azon a mobil cuccon, pontos verzioval? Esetleg megprobalok rakeresni neten, hogy mi a helyzet. Amugy ha valakit erdekel es akar szornyulkodni: nem en allitom eloszor, hogy a keyboard kezeles javascript-ben totalis agyhalal. Most nehez okosnak lenni, de megprobalom ....

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #121 on: 2013.July.16. 21:33:23 »
Írtam: Chrome, meg Firefox. Gondolom a legújabb, mert csak most töltöttem le.

Na az ilyen dolgoktól hányok a mai számítástechnikától! :smt078

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #122 on: 2013.July.16. 22:21:13 »
Quote from: Zozosoft
Írtam: Chrome, meg Firefox. Gondolom a legújabb, mert csak most töltöttem le.

Na az ilyen dolgoktól hányok a mai számítástechnikától! :smt078

Hat na ja. Nem veletlen jott elo belolem az igeny, hogy 8 bites rendszerekkel foglalkozzak, koztuk ugye Enterprise is pl, ami pedig soha nem is volt nekem anno, nem ugy mint nektek ... Mert akkor meg tudtak takarekoskodni az eroforrasokkal stb, megfarad az ember munkaja soran, ha latja, mi folyik manapsag a szamitastechnikaban. De hogy fair legyen: azert azt is lassuk be, hogy anno egyszerubb volt, akkor megjelent egy uj gep (pl az EP) es nem kellett semmivel kompatibilisnek lennie, kvazi szabad keze volt a tervezoknek OS/hw/stb megalkotasa teren. Manapsag egyszeruen ezt nem teheted meg, ugymond vmi kozos nevezot tartani, ez viszont szinte tuti, hogy 100%-ra soha nem jon ossze. Az eredmeny ambivalens: lehet mondani hogy hu de jo, vannak szabvanyok stb, masreszt viszont vannak a bizonyos kulonbsegek. De azert regen se lett volna egyszeru (sot meg ennyire se!) programot irni ami ugyanugy fut C64-en es EP-en is, ehhez kepest, hogy kbd kezelesben van "nemi" inkompabilitas OS/browser teren, az mar nem is olyan nagy cucc :) Nude, bocsanat a filozofiai jellegu ujabb grafoman alkotasom miatt.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #123 on: 2013.July.22. 16:30:14 »
Találtam egy hibát:
"Nick got reset"

Nick nem resetelődik! Csinálja tovább amit addig. (Bekapcsoláskor meg véletlenszerű adatokkal indul.)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #124 on: 2013.July.22. 20:06:16 »
Quote from: Zozosoft
Találtam egy hibát:
"Nick got reset"

Nick nem resetelődik! Csinálja tovább amit addig. (Bekapcsoláskor meg véletlenszerű adatokkal indul.)

Igen, azzal a buggal kuzdok mar par napja, mar amikor van idom ezzel foglalkozni :) Elvileg pedig reset-elodik, csak epp nem jovok ra, miert gaz megis ... A bekapcsolasi allapotnak nem tudom van-e jelentosege, hisz EXOS ugyis inicializalja, de amugy nem veletlenszeru (legalabbis elvileg nem az) hanem 0xFF adatokkal van feltoltve minden portnak megfelelo emu szamara lathato tomb, es abbol incializalja magat, ezert lesz 0xFFF0 (mivel ugye mindig 16-al oszthato cimen van, ezert van nulla a vegen persze), ahogy a debug ablakban is latszik (az indulas elott ott "NICK lpt is set to ..." az meg nem a CPU altal van odanyomva, hanem az emu incializalasnak a resze). Amugy amit lehet latni az elejen piros villanast, az sem veletlen: oszinten a VSYNC stb temakban meg mindig nem muvelodtem elegge, ezert most azt csinalja az emu, hogy ha a VSYNC tul koran van (meg a lathato keptartalomban az elozohoz kepest) akkor ezen "anomalia" jelzesere a maradek teruletet pirossal szinezi. Uzem kozben, "normalis" LPT-vel ez nem igazan szabadna, hogy eloforduljon, de az emu indulasanak pillanataban (gondolom mielott EXOS inicializalna) latszik.

Hmmm, jut eszembe, lehet ff-el incializalni nem jo otlet, atirom nullara, igy jobbnak tunik :D bar tovabbra se ertek valamit (lehet ronda bug valahol - raadasul az elejen ugye nem volt, nehany nagyobb modositas utan jott be!): tok mindegy, mivel inicializalom, reset utan exos ugyis beallitja, nem? Szoval itt valami rejtett korsag lapul a javascript kodomban. Lehet, hibas az elkepzelesem, ahogy a force reload meg a clock bit muxik a 0x83-as porton. Amugy csoda hogy ennyire megy/ment, ahhoz kepest, hogy mint azota tobbszor is kiderult, voltak teves nezeteim az EP lelkivilagat illetoen :)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #125 on: 2013.July.22. 20:31:21 »
ep128emu így indul:
Code: [Select]
  void Nick::randomizeRegisters()
  {
    uint32_t  tmp = Ep128Emu::Timer::getRandomSeedFromTime();
    writePort(0, uint8_t(tmp & 0xFF));
    writePort(1, uint8_t((tmp >> 8) & 0xFF));
    writePort(2, uint8_t((tmp >> 16) & 0xFF));
    writePort(3, uint8_t(((tmp >> 24) & 0xFF) | 0xF0));
  }

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #126 on: 2013.July.22. 20:39:36 »
Quote from: Zozosoft
ep128emu így indul:
Code: [Select]
 void Nick::randomizeRegisters()
  {
    uint32_t  tmp = Ep128Emu::Timer::getRandomSeedFromTime();
    writePort(0, uint8_t(tmp & 0xFF));
    writePort(1, uint8_t((tmp >> 8) & 0xFF));
    writePort(2, uint8_t((tmp >> 16) & 0xFF));
    writePort(3, uint8_t(((tmp >> 24) & 0xFF) | 0xF0));
  }

Ok, azert C++ nemismerete mellett ennyire C tudasommal magamtol is atlatom :) A kerdes inkabb az, hogy van-e ennek jelentosege. Marmint, hasonlo kerdes, mint a Z80 regiszterek kezdoerteke RESET utan (marmint nyilvan nem a PC, mert az logikus h mi): ha van egy OS-ed (EXOS) ami ugyis incializalja a hw-t, akkor mennyire erdekes, hogy probaljunk random "undefined" ertekekkel indulni, ahhoz kepest, ha mondjuk mindig fix az ertekek? Ez akkor lehet erdekes kerdes, ha kiderul, hogy egy sw arra dependal, miszerint hogyan inicializalodott a hw "magatol", es o maga nem allitja be (talan a nick border volt ilyesmi regebbi (?) nick verziokon, amirol szo volt itt a forumon is?). Viszont mivel - gondolom - EXOS ugyis beallit egy LPT-t, elvileg nem szabadna, hogy jelentosege legyen (max par tizedmasodpercig), hogy en milyen kiindulo adatokat adok neki. De ezen ne muljon, beallitom en random-ra :) Viszont az altalam emlitett bug-nal pont az van h csupa FF kezdoertekkel megvan, 00-val nincs, tehat inkabb fixen tartanam eloszor amig ra nem jovok, mi a hiba. Ha az megvan, johet  randomizalt inditas :)

Amugy a Dave topic-ban pont errol irtam, hogy a D603 kornyeken vegtelen ciklusba kerul reset utan, ott meg - ha jol nezem - az INT1 szint allapotat nezne amugy (tehat amire a nick VINT kapcsolodik).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #127 on: 2013.July.22. 20:57:33 »
A fő lényeg, hogy resetnél ne változzon meg.
Ez pl ott látszik, hogyha ESC-t nyomsz EXOS 2.3-nak resetnél, akkor amíg el nem engeded a gombot, addig az aktuális kép látszik. Ha az éppen olyan LPT emuláció, mint a Nasa&Guy demókban, akkor az természetesen animál tovább.

Randomság igazából a bordernél számít EXOS 2.0 esetén. Mivel ott még elfelejtették feketére állítani, így EP64 esetén bekapcsoláskor véletlen színű border van a RAM teszt alatt.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #128 on: 2013.July.22. 22:16:46 »
Ok, koszi. Probalkoztam, eredmeny a szokott helyen. Azert fontos megjegyezni, hogy ezen kozben mas fejlesztesek is voltak, tehat lehet, mashol meg elromlott, bar nekem mux ... Pl a Z80-as reszbe (JSspeccy orokseg) is belenyultam mar nagyon feluletesen, most meg csak JS performancia probalkozasok kapcsan, plusz az egesz un restricted javascript mode-ban fut, amihez nem biztos hogy minden browser optimalisan viszonyul, bar allitolag firefox/chrome eseten nem gond, nekem ment mindkettovel. Esetleg a http://ep.lgb.hu/jsep/ oldal vege fele ("Examples") linkeket ki lehet probalni, most nem remlik, hogy ez mar elozo "kitett" verzioban is benne volt-e, mivel en "fejlesztoi" :) valtozaton dolgozom, nem "elesben".

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: Web emu
« Reply #129 on: 2013.July.22. 22:20:52 »
Ezzel a web emuval már lenne értelme bizonyos bővítéseket fejleszteni EP-hez, pl. sprite rendszert. :)
Sok sprite lenne kezelhető, esetleg valami scroll dolog, és mindjárt lehetne kisebb játékokat fejleszteni webre, az EP  (akár Basic) programozásának ismeretével. :)
Szerintem állat lenne. :)
Vigyázat! Szektás vagyok! :)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14709
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #130 on: 2013.July.22. 22:51:39 »
Lett : meg ; Firefoxban! :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #131 on: 2013.July.22. 22:51:49 »
Quote from: endi
Ezzel a web emuval már lenne értelme bizonyos bővítéseket fejleszteni EP-hez, pl. sprite rendszert. :)
Sok sprite lenne kezelhető, esetleg valami scroll dolog, és mindjárt lehetne kisebb játékokat fejleszteni webre, az EP  (akár Basic) programozásának ismeretével. :)
Szerintem állat lenne. :)

Biztos, de azert vedd figyfelmbe, hogy igy se tul gyors (legalabbis intergalt videokartyas atlag PC-n mint nalam ...), ha meg jon majd a TG/1KHz/stb interrupt, teljes hang emulacio (ha meg tudom csinalni majd hmm), memoria eleres sebesseg keredeseinek pontos emulacioja,  stb stb akkor eleg hatareset lesz egy nem eromuvon, plusz feature nelkul is. Lehet ep128emu alkalasabb lenne ilyesmire ...

Amugy IS-BASIC-szeru (esetleg 100% compatible) cuccost emu nelkul kene csinalni, mert olyankor nem is feltetlen fontos a hw minden reszenek emulacioja, igy nagysagrenddel/nagysagrendekkel gyorsabb lehetne ...

Amugy en inkabb igazi hw-n tartanam nagy durranasnak kihasznalni a nick EC bemeneteit, keszult mar barmi bovito ami elt ezzel a lehetoseggel?

Bruce baratunkat ra kene birni, hogy szalljon be egy IS-BASIC implementacioba ami mondjuk C vagy JS nyelven irodott :) Elvegre biztos eleg jol ismeri, ha o irta :) Mondjuk szep lenne ha meglenne forraskod szinten neki az IS-BASIC amiben esetleg commentek stb is vannak, de amennyire remlik, mindehol azt irta, hogy nem sok minden maradt meg :(
« Last Edit: 2013.July.22. 23:03:38 by lgb »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #132 on: 2013.July.22. 22:58:30 »
Quote from: Zozosoft
Lett : meg ; Firefoxban! :-)

Cool, bar ugy remlett mintha mar regebb ota beletettem volna a firefox-inkompatibilitasi kbd cuccosba (firefox minden mas browsertol eltero kodot general par karakterhez ...).

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #133 on: 2013.July.23. 02:02:05 »
http://ep.lgb.hu/jsep/demo/?mem=64&exdos=no&exos=exos20.rom&basic=basic20.rom&autostart=yes

http://ep.lgb.hu/jsep/demo/?mem=64&exdos=no&exos=exos20.rom&basic=basic20.rom&autostart=yes&zt=no

Ez normalis viselkedes? Ep64-et probal emulalni a beallitasokkal, eloszor a ZT nincs letiltva, aztan igen. Igazi gepen is futna a kep, vagy hasonlo? Illetve, az EXOS2-ben igy nez ki akkor a veletlenszeru nick keretszin miatt a dolog, amirol beszeltunk?

Csak tippelek: az EXOS2.0 kisse mas LPT-t hasznal, ami nem kompatibilis a ZT azon modositasaval, hogy kiteszi az orat is (vagy mast is modosit?).
« Last Edit: 2013.July.23. 02:07:59 by lgb »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Web emu
« Reply #134 on: 2013.July.23. 10:00:13 »
Quote from: lgb
Amugy amit lehet latni az elejen piros villanast, az sem veletlen: oszinten a VSYNC stb temakban meg mindig nem muvelodtem elegge, ezert most azt csinalja az emu, hogy ha a VSYNC tul koran van (meg a lathato keptartalomban az elozohoz kepest) akkor ezen "anomalia" jelzesere a maradek teruletet pirossal szinezi. Uzem kozben, "normalis" LPT-vel ez nem igazan szabadna, hogy eloforduljon, de az emu indulasanak pillanataban (gondolom mielott EXOS inicializalna) latszik.
VSYNC emulációhoz én ezt az algoritmust használtam, ami "szabálytalan" LPT-nél a CRT TV-khez hasonló eredményt ad, azaz "fut" a kép, nem marad üres terület rövid LPT-nél, és korlátozza a függőleges frekvenciát:
- egy számlálót növel minden sornál (analóg áramkörben ez lehetne pl. egy kondenzátor feltöltődése)
- ha a számláló elér egy bizonyos határértéket, akkor törlődik, és függőleges visszafutás történik
- a visszafutás késleltetett (az újraindított számláló a késleltetés közben is fut), a késleltetést úgy állítottam be 288 soros megjelenítésnél és 312 soros LPT-nél, hogy az első VSYNC sor három sorral a látható területen kívülre kerüljön (ugyanis "szabványos" LPT-nél három VBLANK sor előzi meg), azaz az alsó keret pontosan a látható kép utolsó sorában ér véget
- a számláló határértéke a VSYNC állapotától függ: ha nem aktív, akkor 312-nél több, egyébként 312-nél kevesebb sort engedélyez (én 290-351 sor tartományt (44.5-53.8 Hz frekvencia) állítottam be, de ez természetesen változtatható)
- a VSYNC aktívnak tekinthető, ha az adott sor 0-s video módú, és nem teljesen keretszínű (helyesebb megoldás lenne az aktív állapotra minimális időtartamot beállítani, pl. 1/4 sor; az ep128emu-ban nincs ilyen, de pontosabb lenne az emuláció)
- a 0-s módú sorok teljesen feketék (a keret is)
- interlace emuláció: ha a visszafutást a VSYNC kezdete váltja ki, akkor ha a bal margó a sor közepéhez van közelebb, akkor a következő képet fél sorral el kell tolni felfelé (ep128emu bug :oops:: ha a VSYNC a sor végén kezdődik, akkor nincs eltolás, pedig ilyenkor egy egész sorral kellene elmozdítani a képet; a fent említett minimális VSYNC hosszúság teszt ezt javítaná)