Welcome, Guest. Please login or register.


Author Topic: Plus4emu (Read 66763 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Plus4emu
« on: 2016.December.16. 11:28:54 »
Akkor viszont merge-olni kene a plus4 es az ep128emu project-et :D

Ilyen terveim már voltak korábban, illetve a Plus/4 emuláció valójában az ep128emu része volt a 2.0 kiadása előtt (itt még található olyan verzió amely tartalmazza, bár ez már meglehetősen elavult), csak később lett külön projekt. Azonban a beépítése több okból is nehéz lenne:
- a debugger már most sem igazán jól támogatja a különböző gépeket, egy 6502 alapú és több CPU-s rendszer (mivel a floppy meghajtók és a nyomtató gyakorlatilag külön számítógépek saját 6502 kompatibilis CPU-val) hozzáadása nem egyszerűsítené a helyzetet :)
- a GUI is meglehetősen rugalmatlan a több gépes emuláció tekintetében, nem EP módban sok része használhatatlan (pl. a ROM szegmensek hosszú listája, TVC-n nem létező IDE lemezek, billentyűzet konfiguráláskor mindig az EP billentyűzete látható, stb.), a Plus/4 emulátor pedig több "egzotikus" hardvert is támogat amik tovább bonyolítanák a gép specifikus felhasználói felületet
- a video kimenet kezelése teljesen más, a plus4emu lényegesen bonyolultabb és nagyobb CPU igényű TV emulációt tartalmaz

Az alapvető probléma az, hogy az ep128emu a többi gépet gyakorlatilag az EP lebutított változataként kezeli, ez viszont nem igazán jó megoldás a Plus/4 esetében, különösen mivel az a legbonyolultabb és legjobb minőségű emulátorom, ha rajtam kívül nem is használja senki. Tehát valószínűbbnek tűnik, hogy csak kiadok egy új plus4emu verziót, mert az 1.2.9.2 már több okból is elavult (pl. TGA formátumú screenshotok, az ep128emu-ban már évekkel ezelőtt javított problémák, mint például a debugger ablak zavaró villogása a Step gombok használata közben, néhány alapvető debugger funkció hiánya, a képernyő elsötétül az emuláció szüneteltetése közben, stb.), de nem érné meg annyi időt fordítani rá, amennyit a két projekt egybeépítése igényelne.

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re:Plus4emu
« Reply #1 on: 2016.December.16. 13:33:20 »
Az alapvető probléma az, hogy az ep128emu a többi gépet gyakorlatilag az EP lebutított változataként kezeli, ez viszont nem igazán jó megoldás a Plus/4 esetében, különösen mivel az a legbonyolultabb és legjobb minőségű emulátorom, ha rajtam kívül nem is használja senki.
Ebben biztos vagy, a múltkor valami +4-es cuccot néztem meg, és ha jól emlékszem Ergognomik és Zozo le is tolt, hogy a Vice-on próbáltam (és nem a Plus4emun), és nem igazán működött, volt még 1-2 emu amit ajánlottak, hát láss csodát, amit néztem annál a Plus4emu volt épp a legjobb, úgyhogy gopndolom plus4-es körökben is használhatják jópáran, pláne aki programot is ír, mint említettük Zozóval ha bármely más emulátoron kell debuggerhez nyúlni, előtte 1-2 pszichiátriai kezelésre van szükség, utána meg fél évre :D

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1340
  • Country: hu
  • Stray cat from Commodore alley
Re:Plus4emu
« Reply #2 on: 2016.December.16. 14:52:53 »
Ebben biztos vagy, a múltkor valami +4-es cuccot néztem meg, és ha jól emlékszem Ergognomik és Zozo le is tolt, hogy a Vice-on próbáltam (és nem a Plus4emun), és nem igazán működött, volt még 1-2 emu amit ajánlottak, hát láss csodát, amit néztem annál a Plus4emu volt épp a legjobb, úgyhogy gopndolom plus4-es körökben is használhatják jópáran, pláne aki programot is ír, mint említettük Zozóval ha bármely más emulátoron kell debuggerhez nyúlni, előtte 1-2 pszichiátriai kezelésre van szükség, utána meg fél évre :D
+~1
Amennyire tudom elég bevett gyakorlat, hogy akik csak emulátoron fejlesztenek +4-re, azok mindkettőben tesztelik. Sőt, korábban már volt is panasz, hogy István elhanyagolta a plus4emut, és újabb Linux disztribúciókon nem, vagy csak nagyon rosszul futott. Ha emlékezetem nem csal, valakinek volt olyan ötlete is, hogy portolja Androidra, így pl. utazások üres óráiban lenne min fejlesztenie-tesztelnie. Bár arra nem emlékszem, hogy ez utóbbiról később bármit is olvastam volna. Noha nem mindent elsöprő, de érzékelhető igény van a plus4emu karbantartására, ha fejlesztésére nem is. (És én magam is használom. A múltkor ssr86-nak csak azért nem abban mutattam a példát a DAVE zenei képességek témában, mert hirtelen nem emlékeztem rá lehet-e venni, hogy a SID emulációt a natív C64-es címen keresztül futtassa.)
« Last Edit: 2016.December.16. 15:08:21 by ergoGnomik »

Offline balagesz

  • EP user
  • *
  • Posts: 279
  • Country: hu
Re:Plus4emu
« Reply #3 on: 2016.December.17. 01:04:39 »
Az alapvető probléma az, hogy az ep128emu a többi gépet gyakorlatilag az EP lebutított változataként kezeli, ez viszont nem igazán jó megoldás a Plus/4 esetében, különösen mivel az a legbonyolultabb és legjobb minőségű emulátorom, ha rajtam kívül nem is használja senki.

Ezen utolsó megjegyzésre reagálnék tisztelttel: dehogy nem használják mások! :) Ezúton is szeretném megköszönni, hogy foglalkoztál / foglalkozol vele. Persze ugyanez vonatkozik a többi stuffra is, köszönjük! (Az emberek általában ilyenek; ha valami nem megy, akkor nyüszítenek. Amikor minden rendben, akkor csönd van... :) )

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re:Plus4emu
« Reply #4 on: 2016.December.17. 15:19:45 »
Sőt, korábban már volt is panasz, hogy István elhanyagolta a plus4emut, és újabb Linux disztribúciókon nem, vagy csak nagyon rosszul futott.

Itt található újabb verzió, ami az ep128emu változtatásainak a többségét - így a Linux javításokat is - tartalmazza, illetve Linuxon érdemes az aktuális forráskódból fordítani.

Quote
hirtelen nem emlékeztem rá lehet-e venni, hogy a SID emulációt a natív C64-es címen keresztül futtassa.

Jelenleg csak $FD40 és $FE80 címeknél érhető el a SID, de hamarosan használható lesz a C64-es cím is.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re:Plus4emu
« Reply #5 on: 2016.December.19. 22:28:03 »
nem emlékeztem rá lehet-e venni, hogy a SID emulációt a natív C64-es címen keresztül futtassa.

A Git forráskódban már van ilyen:

[ Guests cannot view attachments ]

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1340
  • Country: hu
  • Stray cat from Commodore alley
Re:Plus4emu
« Reply #6 on: 2016.December.19. 23:18:56 »
:smt041

Offline balagesz

  • EP user
  • *
  • Posts: 279
  • Country: hu
Re:Plus4emu
« Reply #7 on: 2016.December.20. 21:53:57 »
A Git forráskódban már van ilyen:
(Attachment Link)

Lehetne a bétából kérni linuxos x86-64-es fordítást is? Olyan "mindent bele" verziót, mint ami a régi SF-os oldalról is letölthető? (Saját forgatáshoz kellene egy csomó devel cucc. :( )

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re:Plus4emu
« Reply #8 on: 2016.December.21. 12:58:48 »
Lehetne a bétából kérni linuxos x86-64-es fordítást is? Olyan "mindent bele" verziót, mint ami a régi SF-os oldalról is letölthető? (Saját forgatáshoz kellene egy csomó devel cucc. :( )

Hamarosan fordítok azt is, az 1.2.10-beta_20160925 már egyébként is kezd elavulttá válni a forráskódhoz képest.

Offline Attus

  • EP addict
  • *
  • Posts: 1225
  • Country: hu
Re:Plus4emu
« Reply #9 on: 2016.December.21. 14:21:15 »
Lehetne a bétából kérni linuxos x86-64-es fordítást is? Olyan "mindent bele" verziót, mint ami a régi SF-os oldalról is letölthető? (Saját forgatáshoz kellene egy csomó devel cucc. :( )
És mi az akadálya annak, hogy ezeket a devel cuccokat felrakd ideiglenesen a disztród központi tárójából? Helyszűke a mai tárbő világban? A fordítás végeztével aztán már le is gyalulhatod őket, hisz az emu futásához azok már feleslegesek.
A github tárolót is nyugodtan letöltheted, kibontod, ott belelépsz a kibontott mappába és a scons paranccsal le is fordíthatod nyugodtan.
Ha nem talál valami, úgyis kukorékol, akkor megtömöd azzal amit kér, amit kér azt feljegyzed, mert arra a fordítás végén már úgysem lesz szükséged többé.
A végén meg futtathatod is helyben, vagy akár rendszergazdaként mehet a scons install, majd a takarítás, oszt jóccakát.
Nem is tudom, hogy csinált vajon István a scons -hoz uninstall részt is?
Ha igen akkor a forrásmappát meg kell tartani, hogy lepucolható legyen egy scons install után is, ha mégsem tetszik az emu.
Install nélkül meg egyszerűen legyalulható az egész mappa.

No, én ezek miatt nem kedvelem a helyben, gépre fordítást.
De az univerzális "mindent bele" hízott linux binárishalmazt sem.

Sokkal jobb minden disztróhoz a disztró karbantarói által elkészített feltelepíthető , a disztró igényeihez jól pásszított kész és karcsú és bármikor fájdalom nélkül könnyedén levakarható csomag.

Egyébként milyen disztród van?
« Last Edit: 2016.December.21. 14:26:57 by Attus »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re:Plus4emu
« Reply #10 on: 2016.December.21. 21:50:53 »
A frissített bináris csomagok már letölthetők innen.

Ha nem talál valami, úgyis kukorékol, akkor megtömöd azzal amit kér, amit kér azt feljegyzed, mert arra a fordítás végén már úgysem lesz szükséged többé.

Ennél egyszerűbb letölteni a bináris verziót. :)

Quote
A végén meg futtathatod is helyben, vagy akár rendszergazdaként mehet a scons install, majd a takarítás, oszt jóccakát.
Nem is tudom, hogy csinált vajon István a scons -hoz uninstall részt is?

Az scons install rendszergazdaként nem ajánlott, mert jelenleg (az ep128emu-hoz hasonlóan) ~/bin és ~/.local/share/plus4emu alatt telepít mindent. De normál felhasználóként egy parancs (scons -j 4 install) lefordít és telepít is mindent. Az scons-nál nem kell külön uninstallert írni, egyszerűen az scons -c install paranccsal törölhető minden amit az install telepítene, legalábbis ha az scons tud az adott file létezéséről. Éppen most került ugyanis a Git forráskódba egy javítás, hogy az összes makecfg által generált konfigurációs file-t is törölje a ~/.local/share/plus4emu/config alatt (a listájukat a makecfg forráskódjából olvasva), ez a kiadott beta csomagban még nincsen.

Quote
De az univerzális "mindent bele" hízott linux binárishalmazt sem.

Ennek ilyen kis méretű programnál nincs különösebb jelentősége.

Offline Attus

  • EP addict
  • *
  • Posts: 1225
  • Country: hu
Re:Plus4emu
« Reply #11 on: 2016.December.21. 22:34:16 »

Ennél egyszerűbb letölteni a bináris verziót. :)

Ezt én is jól tudom.
:)

Ennek ilyen kis méretű programnál nincs különösebb jelentősége.
Ezt is tudom, de én akkor sem tudok kibújni a bőrömből. Sok kicsi sokra megy.

Linux alatt még mindig alapelv, hogy amennyiben lehetséges minden libből dinamikus cuccokat használunk és nem a programba beledrótozott statikusakat. Az meg pláne egy szürnyűség a szememben, ami windózéknál dívik hogy egy és ugyanazon dll temérdek helyen van szétszórva a masinán mindegyekik programhoz mellékelve és ahhoz drótozva, ami azt használja.

Sajna már linuxra is szánt programokon is látszik újabban ez a tendencia.

A scons install részében nem mélyültem bele, nem tudtam, hogy rootként nem ajánlott az install futtatása.
:oops:
Újabban soha nem fordítok és telepítek a gépembe közvetlen forrásból programokat, nálam a /usr/local alatti rész tök üres. a ~ mappám alatt sincsenek futtatható ELF binárisok, csak saját kreálmányú bash szkriptek. Vagy tíz éve volt utoljára, hogy forrásból fordítottam és telepítettem a gépemre valamit.

Offline balagesz

  • EP user
  • *
  • Posts: 279
  • Country: hu
Re:Plus4emu
« Reply #12 on: 2016.December.21. 22:47:44 »
Kaptunk külön témát? Király! :ds_icon_cheesygrin:

A frissített bináris csomagok már letölthetők innen.

Köszönet, máris ránézek!

És mi az akadálya annak, hogy ezeket a devel cuccokat felrakd ideiglenesen a disztród központi tárójából?

Leginkább az, hogy a devel cuccok zömét is jó eséllyel nekem kéne fordítani. :oops:

Sokkal jobb minden disztróhoz a disztró karbantarói által elkészített feltelepíthető , a disztró igényeihez jól pásszított kész és karcsú és bármikor fájdalom nélkül könnyedén levakarható csomag.

Valóban... Itt viszont - sejtésem szerint - akkor lesz csomag, ha csinálok magam. (Csináltam már ilyet, de készségszinten azért nem megy... Szerintem az UHU build rendszerével el vagytok kényeztetve! :) )

Egyébként milyen disztród van?

A fő rendszerem a CentOS, nem éppen ilyen területen erős... Emellett néha előszedem az aktuális (körüli) Fedora-t, ott már nagyobb a gyári csomag esélye.

Offline balagesz

  • EP user
  • *
  • Posts: 279
  • Country: hu
Re:Plus4emu
« Reply #13 on: 2016.December.21. 23:45:47 »
A frissített bináris csomagok már letölthetők innen.

Működik:


És van "normális" fájlválasztó ablak! :)
És "nem nyúlja le" kompletten a hangeszközt, megy a PA-val is! :)
És nem tűnik el a kép Pause alatt! :)
És van ASCII megjelenítés a debugger Memory Dump-nál! :)
És a többi... :)

És még nincs is itt a Karácsony! :) Köszönet!

Kipróbáltam mindkét x86-64-es verziót, látszólag semmi különbség. Ebbe bele van fordítva a lua interpreter is? Még sosem használtam lua-t, fogalmam sincs hogyan lehet kipróbálni. Valami egyszerű teszt-szkript nincs kéznél? :)

Report: a debuggerben a stack dump nem görgethető, illetve a meghajtó CPU-ja esetén mintha nem is jól működne... A többi rendben levőnek tűnik.
« Last Edit: 2016.December.22. 00:52:17 by balagesz »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re:Plus4emu
« Reply #14 on: 2016.December.22. 10:48:01 »
Kipróbáltam mindkét x86-64-es verziót, látszólag semmi különbség. Ebbe bele van fordítva a lua interpreter is? Még sosem használtam lua-t, fogalmam sincs hogyan lehet kipróbálni.

A két x86_64 változat között csak a Lua verzió a különbség, az egyik a Lua 5.3.3-at használja, a másik pedig a LuaJIT 2.1.0 beta2-t. Az utóbbi gyorsabb, mivel interpreter helyett JIT fordító, de a nyelv régebbi verziójára épül, így nem támogatja például az &, |, ~, << és >> műveleteket.

Quote
Valami egyszerű teszt-szkript nincs kéznél? :)

A README-ben a 640. sortól található leírás a Lua használatáról, és egy egyszerű példa is. A Lua nyelv dokumentációja itt olvasható (5.3 verzió), a LuaJIT által támogatott régebbi 5.1 pedig itt. A debugger Lua programozása hasonló az ep128emu-hoz, a lényege röviden, hogy Run-ra lefut a script, és utána minden esetben amikor a debugger ablak megjelenne (az Alt+M-es kézi megnyitás kivételével), az emulátor meghívja a breakPointCallback függvényt, ennek a visszatérési értéke (true vagy false) dönti el, hogy az ablak ténylegesen megjelenik-e. A Stop gomb leállítja a breakPointCallback további hívását. A Lua programból elérhető a debugger funkcióinak a többsége, így írható és olvasható a memória és a CPU regiszterei, töréspontok definiálhatók, a memória PRG formátumban menthető és tölthető, írni lehet a monitor ablakba, stb.

Ez például a 260. sor elején növeli a keret színét:
Code: Lua
  1. setDebugContext(0)
  2. clearBreakPoints()
  3. setBreakPoint(4, 260 * 128, 3)
  4. function breakPointCallback(d, t, a, v)
  5.   if t == 4 then
  6.     writeMemory(0xFF19, readMemory(0xFF19) + 1)
  7.     return false
  8.   end
  9.   return true
  10. end

Quote
Report: a debuggerben a stack dump nem görgethető,

Valóban, ez az ep128emu esetében is így van, csak a "Memory dump" és a disassembler görgethető. De ha hasznos lenne a veremnél (eredetileg csak a veremmutató körüli néhányszor 10 byte-os terület megjelenítése volt a célja), akkor ott is meg lehetne oldani.

Quote
illetve a meghajtó CPU-ja esetén mintha nem is jól működne...

Alapértelmezés szerint a meghajtók nem emuláltak, mivel sokat lassítanak az emulátoron (kb. 9/16 sebességre az 1541 nagy pontosságú módban, és 10/16-ra a pontos időzítést kikapcsolva). A debugger természetesen csak létező hardverről tud használható információt adni, ezért előbb a meghajtót engedélyezni kell D64 file megnyitásával.