Sziasztok!
A fórumon már többször felmerült (jogosan), hogy miért nem létezik Android, iOS, stb... eszközökre Enterprise emulátor. De nézzük sorra miért is van ez, mi az oka ennek és merre fele lehetne tovább lépni, hogy közelebb kerüljünk a megoldáshoz.
A fórumon alapvetően két Enterprise emulátor találhatunk.
Az EP32 amely Windows desktop platformon fut és Visual C++ fejlesztő környezet használatával készült. A másik pedig az ep128emu ami “elvileg” platform független, mivel nagyrészt C++ ban készült.
Mind a két emulátort tanulmányoztam forráskód szinten is, legutóbb az ep128emu-t forgattam le OSX platformra. Annak idején pedig az EP32-bekerült egy két apróbb fejlesztésem, melyet EGZO kolléga is megemlít. Amelyet ezúton is köszönök neki!
De nézzük mik azok az akadályok ami miatt nem tud elkészülni az iOS vagy Android változat?
1. Függőségek
Nézzük először az EP32-őt. Az EP32 teljes egészében a Microsoft által készített keretrendszereire épül. A képernyő megjelenítéshez a DirectDraw-t, a hanghoz a WaveOut és DirectSound a billentyűzet kezeléshez pedig a DirectInput APIket használja a floppy és egyéb fájlműveletekhez pedig a Win32 SDK-t. Innentől kezdve gyakorlatilag ennek a szoftvernek egy iOS mutációjához újra kellene írni a forráskód ~80%-át.
De térjünk rá az ep128emu-ra amely alapvetően Linux alá/alatt készült, de könnyen leforgatható és tökéletesen működik Windows és OSX környezetekben is. Hogyan lehet ez és akkor miért nem lehet 10 perc alatt leforgatni iOS-re vagy Androidra?
A válasz a felhasznált könyvtárakban (SDK) keresendő! Egy alap funkciókkal rendelkező ep128emu-hoz szükség van a libsndfile, portaudio, fltk könyvtárakra, néhány esetben pl kellhet még LUA és SDL is. Ezek a könyvtárak széleskörben használatosak és elsősorban desktop számítógépekhez készültek ez utóbbi kettő (LUA és SDL) már létezik mobil eszközökre is, de sajnos az libsndfile, portaudio és az fltk egyelőre nem és a jelenlegi forrás ezekre támaszkodik.
2. Kezelőfelület
Itt a kérdés, mire is szeretnénk használni az emulátorunkat egy Android vagy iOS eszközön? Első ötletem a demók futtatása és a játékok lennének, de ez csak az én véleményem. A kezelőfelületet ennek fényében kell újra alkotni a kisebb telefon felbontásra illetve a táblagépek kijelzőjére. Ezzel el lehet lenni, de ha már megy az emuláció akkor kezelőfelületet lehet igazítgatni.
Mi lehet a megoldás?
A böngésző! (Javascript + HTML5)
Felmerül a kérdés, hogy mi ez a hülyeség, hogyan lehet ilyet egyáltalán mondani???
De mégis, nem kevés Webes alkalmazás fut már világszerte (pl. Angry Birdsnek is van ilyen változata) és akkor még nem is említettük a Chrome OS-t ahol minden program a böngészőben fut.
Előnyei:
Platformfüggetlen megoldás
Online lehetne játszani az EP-s játékokat
Nem kell leforgatni az a forráskódot
Hátrányai:
Nagyobb erőforrásigény
Régebbi böngészőkben nem biztos hogy fog futni
És amiért úgy gondoltam, hogy összefoglalom ezeket infókat az az volt, hogy találtam egy javascriptben írt ZX Spectrum emulátort az
http://ispeccy.com/ mely opensource és az ep128emu Z80 emulációjának alapjául szolgáló C++ library-t használták fel. Talán ezt a projektet alapul véve és az ep128emu forrását felhasználva el lehet kezdeni egy böngésző alapú emulátor projektet. Mit gondoltok?
![ds_icon_redface :oops:](/Smileys/phpbb/ds_icon_redface.gif)
bocs ha már erről volt itt szó és azért is ha egy kicsit hosszú lett!
Üdv,
Gyuri