Welcome, Guest. Please login or register.


Author Topic: Web emu (Read 188085 times)

Offline DrPrery

  • EP user
  • *
  • Posts: 264
  • Country: hu
Re: Web emu
« Reply #435 on: 2014.July.28. 21:39:07 »
Az emu képét jobban megnézve, olyan mint az ep128emu-ban a 2-es image quality, kissé "elmosódott". Ott leveszem 0-ra a jobb teljesítményért, akkor pengeélesek lesznek a pixelek.
A JSEP esetében nem történik valami subpixel rendering? Mert olyasmit emlegettek némelyek, hogy akkor lassabb lesz a megjelenítés a canvas-on, vagy mi...

(Lehet, hogy megint sikerült egy ökörséget kérdeznem... :mrgreen: )
« Last Edit: 2014.July.28. 21:49:56 by DrPrery »

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #436 on: 2014.July.28. 21:51:09 »
Quote from: DrPrery
Az emu képét jobban megnézve, olyan mint az ep128emu-ban a 2-es image quality, kissé "elmosódott". Ott leveszem 0-ra a jobb teljesítményért, akkor pengeélesek lesznek a pixelek.
A JSEP esetében nem történik valami subpixel rendering? Mert olyasmit emlegettek némelyek, hogy akkor lassabb lesz a megjelenítés a canvas-on, vagy mi...

Okos megfigyeles, 5 pont. Konkretan megint kiseloadas jon, hogy mirol is van itt szo :) Mint par epizoddal ezelott a folytatasos kisregenyemben kifejtettem :) tobb okbol sem tud interlaced-et az JSEP. Ennek egyik oka, hogy nem ertem annyira pontosan en se feltetlen :) a masik viszont duplan is performancia szempontjabol: feltetelezem, hogy a ket half frame ugyanaz, tehat eleg 25Hz-enkent frissiteni (innen jon a kijelzesben az xx/40 a timeoutnal, msec-ben, ami altalaban 39, de ez kerekitesi dolog, most ne menjunk bele). Igy, nem eleg, hogy fele olyan surrun, de fele annyi adatot is kell frissiteni, gondolom ebbol erezheto, hogy azert lassabb lenne egy preciz emulacio. Ha megnezed az jsep debug ablakat (ami pirosas szinre valt futas kozben, ha van meg uj debug uzenet kozben):

Canvas native size is 736x256, display size is 736x512

Na itt van a kutya elasva. Az emulator szempontjabol az emulalt frame buffer fele akkora, mint ahogy kijelzo a browser. Ezt egyszeruen meg lehet oldani, ui a browsernek meg lehet mondani, hogy mas dimenzioban jelenitse meg, mint amekkora a valodi merete. Ennek ertelmet mar fentebb boncolgattam: jolval gyorsabb, mintha JS-bol kene csinalni. Ilyen esetben a browser szepen scale-eli a dolgot, viszont van egy mellehatasa: o mindenkeppen ilyen smoothing/miegymas algoritmussal meretezi at. Hozzateszem, meg igy is gyorsabb (!), mintha JS-bol mindenfele simitas, csicsa, subpixel izebize antialis nelkul duplan raknam ki, mert browserben ez jol van optimakolva, es/vagy akar GPU-t hardware-esen is hasznalja a sajat muveleteihez.

Szoval igen, valoban el van kenve kisse, de ezt nem az JSEP hanem a browser csinalja. Ez persze felfoghato pozitivnak is (a tul eles pixelek kevesbe retro feelinget keltoek), attol fugg, honnan nezzuk. Amugy a debug dolgokat tovabb nezve, lathatsz vmi hasonlot is:

Canvas smoothing parameter with imageSmoothingEnabled is not supported
Canvas smoothing parameter with mozImageSmoothingEnabled is tried to be altered from true to false
Canvas smoothing parameter with mozImageSmoothingEnabled has been tried to be altered to false
Canvas smoothing parameter with webkitImageSmoothingEnabled is not supported
Canvas smoothing parameter with msImageSmoothingEnabled is not supported
Canvas smoothing parameter with oImageSmoothingEnabled is not supported

No, itt en konkretan azt probalom, hogy kikapcsolni ezt a feature-t, erre minden browsernek van valami sajat modszere (mivel ez nem teljesen szabvany dolog, elvileg ez a browser maganugye, kevesbe lehet kapcsolgatni), ami vagy mukodik vagy nem :D Kikapcsolni azert akarom, mert erzesem szerint az gyorsit valamennyit, hogy a browsernek nem kell antialiasolni meg izelgetnie csak siman x2 vertikalis zoom-al kirakni a kepet.

Vallalkozo szellemueknek kiserlet! Allitsuk meg az emut (vagy meg el se legyen inditva run-nal) es kerjunk egy javascript console-ot (firefoxon: ctrl shift k), majd a leges legalso sorba ahova lehet gepelni irjuk be ezt, enterezve persze a vegen:

canvas.style.height = canvas.height.toString() + "px";

Ekkor az fog tortenni, hogy a canvas kijelzett es fizikai merete ugyanaz lesz. Poenbol most lehet a run gombbal inditani az emut. Valojaban az JSEP emulacios szinten pont igy latja, az csak egy trukk, hogy dupla fuggoleges meretben rakom ki :) Igy viszont talan nincs is semmi rendereles, es talan gyorsabb is az emu emiatt is, meg persze amiatt is hogy a videokari fele kevesebb adatot kell browsernek atvinnie.
« Last Edit: 2014.July.28. 21:58:07 by lgb »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14776
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #437 on: 2014.July.28. 22:04:56 »
Quote from: lgb
Ez persze felfoghato pozitivnak is (a tul eles pixelek kevesbe retro feelinget keltoek), attol fugg, honnan nezzuk.
Elmosott pixeles retrót szerintem azon gépek rajongói találták ki, akik leginkább RF kábeles tévét használtak, max kompozit videót :twisted:

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #438 on: 2014.July.28. 22:12:43 »
Quote from: Zozosoft
Elmosott pixeles retrót szerintem azon gépek rajongói találták ki, akik leginkább RF kábeles tévét használtak, max kompozit videót :twisted:

:) Ez igaz, de legtobb ember szamara ez volt a realitas. Es azert pl egy composite jol mar egesz jo egy RF mod/demodos orulethez kepest, azert meg mindig nem egy modern LCD monitor pixel pontossag egy akkori TV-n, szoval nem feltetlen ugyanaz a feeling. Ez akkor erdekes amugy, amikor olyan grafikai trukkok/hatasok voltak, ami szamitott arra, ahogy egy atlag TV akkor viselkedett. ENnek persze elenyeszo resze a fenti elmosodas, van mas fontos jellemzo is, pl a VICE emulatorban (ep128emu-ban mondjuk sose neztem ejj-ejj) teljes PAL emulaciot probalnak, hogy emulalni lehessen a kijelzes "tokeletlenseget" ugymond.

Offline DrPrery

  • EP user
  • *
  • Posts: 264
  • Country: hu
Re: Web emu
« Reply #439 on: 2014.July.28. 22:16:58 »
Feladom... :smt009
Egy fikarcnyival se lett gyorsabb... akkor hát itt tényleg nem a megjelenítés a szűk keresztmetszet :smt102
Az 5 pontomat meg guríthatom hazáig... :mrgreen:

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #440 on: 2014.July.28. 22:38:30 »
Na nemi css adalekota hozzavagva szegeny canvas-hoz probaltam lebeszelni a sok simitasrol. Nalam ff31 alatt most mar "darabosabbnak" tunik az eredmeny, azaz kevesbe probalja a browser utosimitiani ... A szokasos demo.new -s url-en megnezheti, aki akarja. Mondjuk, nekem nem venni eszre sebessegkulonbseget, az meg megint mas kerdes, hogy a masik szempont (kinezet) melyik az elonyosebb :-P

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14776
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #441 on: 2014.July.28. 22:39:35 »
Quote from: lgb
:) Ez igaz, de legtobb ember szamara ez volt a realitas. Es azert pl egy composite jol mar egesz jo egy RF mod/demodos orulethez kepest
Pont arra próbáltam célozni, hogy egy composite se egy olyan hűha :oops:
Autós hasonlattal, az RF Trabant, a composite az Lada, az RGB Scart meg Mercedes :-)
Akinek meg nem futotta Scartos monitorra, az rakott videó bemenetet a Junosztyra, az EP gyári monochrom videójelével tűéles kép lett.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14776
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #442 on: 2014.July.28. 22:42:51 »
Quote from: lgb
Na nemi css adalekota hozzavagva szegeny canvas-hoz probaltam lebeszelni a sok simitasrol.
Ilyesmiről egyszer már volt szó, amikor weblapon lévő GIF képekről imádkoztuk le a homályt.

Nálam jó, tetszik!!!

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #443 on: 2014.July.28. 22:57:20 »
Quote from: Zozosoft
Pont arra próbáltam célozni, hogy egy composite se egy olyan hűha :oops:
Autós hasonlattal, az RF Trabant, a composite az Lada, az RGB Scart meg Mercedes :-)

Ertettem en, csak en meg azt mondtam, hogy sok embernek mar a composite is extra volt, nemhogy RGB ... :)

Quote
Akinek meg nem futotta Scartos monitorra, az rakott videó bemenetet a Junosztyra, az EP gyári monochrom videójelével tűéles kép lett.

Nekem is volt ugy C64 :) Akkor kellett, amikor a csalad tobbi tagja kikuldott a szobabol, hogy "ne gepezzel mar megint", mivel a csaladi szines-TV ugye foglalt volt altalaban. Ilyenkor maradt a szovjet csoda.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #444 on: 2014.August.01. 14:37:31 »
Jeleznem, hogy az off-topicolas kozben azert csinalok valami ertelmeset (oke, kisse ertelmesebbet ...) is a jelzett JSEP (aka "webemu" ahogy rajtaragadt a nev) temaban. A CPU emulacio ujraitasa azert kisse naiv otlet volt, foleg mint "gyors project" :) Ezert sajat CPU emulator irasa (nullarol ...) helyett ugy gondottem, azt csinalom amit az JSspeccy csinalt anno. Ugye ok vettek a FUSE (Free Unix Spectrum Emulator roviditese ha minden igaz, egy C-ben irt Spectrum emulator) Z80 emulaciojat, es szepen att lett irva JS-re (ebben segit, hogy a C es az JS syntaxis alapvetoen hasonlo, sot tobb ponton ugyanaz). A FUSE tartalmaz egy perl-ben irt script-et ami legeneralja a CPU emulator C forraskodjat. Ezt a perl scriptet en most modositgatom, a hozza valo makro-halmazt is, meg kore rakok egy "keretet" ahol mar "modernebb" JS dolgok vannak (pl TypedArray) amivel remelhetoleg gyorsabb is lesz. Igy tehat az JSspeccy lassan minden oroksege szamuzve lesz az JSEP-bol, amire epul egyedul az tehat a FUSE CPU emulacioja lesz, es ott se kozvetlen atvetel, hanem eros modositasokkal (licenc gond itt nincs amugy, GNU/GPL, szoval lehet ilyet tenni).

Viszont ennek kapcsan szoget utott valami a fejembe. A pontos Z80 emulacirol van szo. Nezzuk meg pl ezt az oldalt: http://www.z80.info/z80oplist.txt Ezen belul is a DD/FD prefixalt CB opcode-okat, pl konkretan a 0x40-tol kezdodoeket. Az erdekes ebben az, hogy az JSspeccy, de meg a FUSE jelenlegi verziojban is ez nagyon nem igy nez ki! Ott az ugy van, hogy a fenti opcode-ok pl 0x40-0x47 kozott mind tokgyanazt csinalja, azt, amit a 0x46-os a fenti link alatt, de nincs kulonbseg, hogy meg egy registerbe is berakja aztan (ez ha jol remlik amugy nem dokumentalt feature). Ugy tunik, ez a jelenlegi FUSE emulatorban magaban is igy van!

Kinek van igaza? Irjam at ezt is, hogy a fenti link szerint legyen minden? Vagy lehet az ottani tablazatban vannak hibak? Ami igazan fura, hogy pl a 0x40 alatti opcode-oknal megvan a FUSE-ban is csinalva, csak pl a BIT opcode-oknal nem!

Tovabbi kerdes: van valakinek vmi szep tablazata az opcode-ok pontos T-state igenyerol? Talaltam mindenfele kicsit nehol ellentmondo infot a neten, de eleve nem is szep tablazatos formaban, sorban az opcode byte-ok szerint, hanem ugy kell osszevadaszni, amiben nem bizok ... Ez azert kell, mert az eredeti JSspeccy kodban remalom hogy ez mennyire szet van szorva, abbol osszeszedni ezt nehez normalisan. Igaz, en amugy se pontosan csinalom sajna JSEP-ben :( Marmint egy opcode-on belul a muveletek pontos idozitese nincs igazan kezelve, csak az opcode ossz T-state-ek szama alapjan van idozitve. Mivel azonban JSEP-ben olyan sincs jelenleg, hogy a VRAM pl lassabb mert nick-en at megy az elerese, igazabol szerintem ez az info nem is hianyzik, az JSEP sajnos by-design nem egy nagyon pontos emulator (akkor joval lassabb is lenne).


Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14776
  • Country: hu
    • http://enterprise.iko.hu/
Re: Web emu
« Reply #445 on: 2014.August.01. 14:52:51 »
Quote from: lgb
Nezzuk meg pl ezt az oldalt: http://www.z80.info/z80oplist.txt Ezen belul is a DD/FD prefixalt CB opcode-okat, pl konkretan a 0x40-tol kezdodoeket. Az erdekes ebben az, hogy az JSspeccy, de meg a FUSE jelenlegi verziojban is ez nagyon nem igy nez ki! Ott az ugy van, hogy a fenti opcode-ok pl 0x40-0x47 kozott mind tokgyanazt csinalja, azt, amit a 0x46-os a fenti link alatt, de nincs kulonbseg, hogy meg egy registerbe is berakja aztan (ez ha jol remlik amugy nem dokumentalt feature). Ugy tunik, ez a jelenlegi FUSE emulatorban magaban is igy van!

Kinek van igaza?
A listának, kellenek az undocumented opcode-ok is, én pl. tuti használtam őket, pl ezt a "még egy regiszterbe is belerakja" dolgot is :-)

Quote
Tovabbi kerdes: van valakinek vmi szep tablazata az opcode-ok pontos T-state igenyerol?
Ez nem jó? Bonuszként a Z180 is benne van :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Web emu
« Reply #446 on: 2014.August.01. 15:05:53 »
Quote from: Zozosoft
A listának, kellenek az undocumented opcode-ok is, én pl. tuti használtam őket, pl ezt a "még egy regiszterbe is belerakja" dolgot is :-)

Ja, csak fura, mert FUSE-ot sokan dicserik, hogy "egesz jo" spectrum emulator, es meglepodtam, hogy nekem igy 1-2 ora nezegetes utan sikerult Z80 emulaciojaban felfedezni valamit, amit nem ertek, hogy miert igy csinaltak meg. Lehet, irok a szerzojenek, kivancsi vagyok mit mond :)

Quote
Ez nem jó? Bonuszként a Z180 is benne van :-)

Koszi! Tok jo, csak az a bajom ezzel, hogy lusta vagyok nekem opcode byte sorrendben kene, mert ugy kell beleirnom a megfelelo helyre. Pont ez volt a bajom a neten talaltakkal is. Jo, ez az en hibam, tudom, ne legyek lusta, szepen nezzem ki egyenkent :) [mondjuk azert annyira nem nehez mert pl minden LD reg8,reg8 uaz az ido stb, szoval van benne logika]

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10095
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #447 on: 2014.August.01. 15:52:03 »
Quote from: DrPrery
Puff neki, hát akkor így jártam... :ds_icon_cheesygrin:
Ez vicces! Kár, hogy hozzászólásokat nem lehet like-olni.
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 #448 on: 2014.August.01. 16:23:39 »
Quote from: szipucsu
Ez vicces! Kár, hogy hozzászólásokat nem lehet like-olni.

http://custom.simplemachines.org/mods/?mod=2322

Talan ezzel, bar nyilvan ehhez MrPrise kene, hogy beletegye, meg nem biztos, hogy annyira jo lenne facebook-al osszehuzalozni a forumot ;)
« Last Edit: 2014.August.01. 17:16:29 by lgb »

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 10095
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Web emu
« Reply #449 on: 2014.August.01. 20:13:49 »
Esetleg az innen elérhető BASIC programcsokorhoz nem lesz disk image itt?
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos