Welcome, Guest. Please login or register.


Author Topic: ep128emu libretro core (Read 7186 times)

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 96.0 Firefox 96.0
    • View Profile
ep128emu libretro core
« on: 2022.January.23. 16:36:43 »
Sziasztok,
talán ismerős a RetroArch rendszer: https://retroarch.com/ , és a mögötte meghúzódó libretro interface. Ez kifejezetten régebbi rendszerek emulálására szolgál, az emulációt végző core-hoz rengeteg szolgáltatást ad, például shader-t, amivel a CRT hatás emulálható, valamint a különféle hang/video/input drivereket is kezeli.
A githubos ep128emu kód alapján megpróbáltam egy libretro core-t faragni az ep128emu-ból, és tulajdonképp nem is volt annyira bonyolult, mint elsőre gondoltam. Persze még nagyon az elején tartok (éppen csak a képet és a billentyűzet/joystick bemenetet tudja kezelni, hang pl. még nincs, egyetlen platformra fordul, stb), de egy képernyőképet már tudok csatolni. A bal szélén az a libretro debug kijelzés, csak az aspect ratio miatt a mentett képről lemaradt a fele.
Ha van érdeklődés, akkor időnként beszámolok, hogyan halad. Illetve ha István jár erre, akkor érdekelne, mit szól hozzá, és szeretném ezúton is megköszönni az emuba tett munkát - a kód logikus és olvasható, eddig minden szükséges részt meg tudtam találni.
---
I have started working on a retroarch / libretro core interface for ep128emu. It is in a very early stage, but looks doable.

Offline geco

  • EP addict
  • *
  • Posts: 6762
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 11 Windows 11
  • Browser:
  • Firefox 96.0 Firefox 96.0
    • View Profile
Re: ep128emu libretro core
« Reply #1 on: 2022.January.24. 14:32:03 »
Ígéretesnek néz ki.

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 96.0 Firefox 96.0
    • View Profile
Re: ep128emu libretro core
« Reply #2 on: 2022.February.04. 19:35:42 »
Haladgatok szép lassan, van már hang, és diszket is tudok cserélni. A 60 fps-t gond nélkül hozza, persze ez egy asztali gép, más platformokon is meg kell majd nézni.

Van esetleg a letöltéseknél fent levő lemezek közt olyan, amin valamelyik program használ interlace módot? Az vszg. még nem jól jelenik meg.

Ami még érdekes lehet, hogy hány sort lehetne overscan-nek minősíteni és igény esetén levágni, erre van külön kapcsolható opció RetroArch-ban. A modern widescreen megjelenítők miatt elsősorban az alsó/felső sorok az érdekesek, vízszintesen úgyis lesz fekete sáv kétoldalt.

Offline Lacika

  • EP addict
  • *
  • Posts: 3130
  • Country: hu
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 96.0 Firefox 96.0
    • View Profile
    • http://www.ep128.hu
Re: ep128emu libretro core
« Reply #3 on: 2022.February.04. 20:16:58 »
Van esetleg a letöltéseknél fent levő lemezek közt olyan, amin valamelyik program használ interlace módot?

Disk 1-en Nasa Demo 5 interlace

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 96.0 Firefox 96.0
    • View Profile
Re: ep128emu libretro core
« Reply #4 on: 2022.February.05. 15:33:33 »
Köszönöm! Az mintha pont nem működne jól az eredeti ep128emu-n sem - nagyon villog a kép, úgy nézem meghosszabbítja a vsync-et, de nem úgy és nem annyival, amiből detektálni tudná, lehet, hogy a crt tv-nek ez még elég volt.
Viszont ugyaninnen az interlace demo-k már jól mennek, némi csalást beépítve - az előző félkép fixen ottmarad a háttérben, így nincs villódzás. Animációnál ez hátrányos, de nem tudom, van-e animált interlace játék EP-re...

Offline Lacika

  • EP addict
  • *
  • Posts: 3130
  • Country: hu
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 96.0 Firefox 96.0
    • View Profile
    • http://www.ep128.hu
Re: ep128emu libretro core
« Reply #5 on: 2022.February.06. 22:33:22 »
Köszönöm! Az mintha pont nem működne jól az eredeti ep128emu-n sem - nagyon villog a kép

Az interlace a legtöbb kijelzőn villog. A konkrét program nekem anno igazi gépen, Junosztyon is vibrált :ds_icon_cheesygrin:

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 97.0 Firefox 97.0
    • View Profile
Re: ep128emu libretro core
« Reply #6 on: 2022.February.27. 12:29:42 »
Alakulgat. Disk image-et, tap-ot és sima file-okat (epfileio-val) be tud tölteni, jól játszhatóak.

A következő nagyobb ugrás az lesz, ha a snapshot-ot is sikerül összehozni benne, mert akkor menne a rewind is.

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: ep128emu libretro core
« Reply #7 on: 2022.March.14. 11:22:06 »
TVC emuláció is működik, diszk és (fileio-val) .cas is. Most már fordul Raspberry Pi-re is, de a teljesítménnyel küzdök, 10-20 fps a legtöbb, amit eddig sikerült elérni (rpi 2), hiába van alatta egy ide optimalizált környezet (Lakka).

Offline geco

  • EP addict
  • *
  • Posts: 6762
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 10+ Windows 10+
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: ep128emu libretro core
« Reply #8 on: 2022.March.14. 12:09:13 »
Ha leveszed minimumra a hang és video beállításokat, akkor is?

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: ep128emu libretro core
« Reply #9 on: 2022.March.14. 14:13:11 »
A megjelenítőben nincs már erre lehetőség, az a rész kikerült. A hangnál még benne van, köszi az ötletet, megnézem.

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: ep128emu libretro core
« Reply #10 on: 2022.March.18. 19:39:46 »
Megy a save/load state, ezáltal a rewind is. Felteszek egy verziót, ha valakinek van kedve kipróbálni.

Ami kell hozzá:
- 64 bites linux (egyelőre csak ilyen verzió van + ARM, de az lassú, legalábbis ahol én tudom tesztelni)
- feltelepített, működő retroarch

Indítás:
retroarch -L ep128emu_core_libretro.so -v

Elsőre nem fogja megtalálni a ROM-okat, ezt a sort kell figyelni:
[libretro INFO] Retro ROM DIRECTORY
Ez alá kell egy ep128emu/roms könyvtárba a szokásos ROM-okat elhelyezni.

A következőket tudja betölteni:
- EP lemezek (.img)
- EP kazetta (.tap)
- EP közvetlen fájlok (most a .com és a .trn, ami elfogadott)
- TVC lemez (.dsk)
- TVC közvetlen fájl (.cas)

Billentyűzet működik (a TVC esc-et visszaraktam a tényleges esc-re), a kontrollerre egyelőre ezek a funkciók vannak ráültetve:
- belső botkormány: D-pad
- space: X gomb (fent)
- enter: Y gomb (bal)
- F1: start gomb (EP-n hasznos a magnóról vagy fájlból való töltéshez)
- 1: L2
-2: R2 (ezek csak azért, mert sok játékot ezekkel lehet indítani)

Érdemes az "integer scale" funkciót bekapcsolni, különben kicsit fura lesz a skálázás. Normál üzemben 768*268-as felbontást küld ki, interlace esetén 768*536 (a "crop overscan" kikapcsolása esetén a szokásosabb 768*288 / 768*576-ot).
---
A preliminary version of the core, if someone wants to try it. Needs 64-bit Linux and retroarch. Start command is above, after first (failed) run look for that log line, put ROMs in that directory / ep128emu / roms.
« Last Edit: 2022.March.18. 19:44:09 by Zoldalma »

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: ep128emu libretro core
« Reply #11 on: 2022.March.27. 14:49:21 »
Még faragtam kicsit, és csináltam belőle egy githubos release-t is:
https://github.com/zoltanvb/ep128emu-core/releases/tag/core_v0.7

A 64-bites Linux mellett most már van ARM változat is, bár elég lassú azon a Raspberry Pi 2-n, amin én próbálgatni tudom.

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: ep128emu libretro core
« Reply #12 on: 2022.April.03. 12:21:32 »
Van v0.8:
https://github.com/zoltanvb/ep128emu-core/releases/tag/core_v0.8

Amiben ez új, hogy van egy nagyító funkció, R3 gombra megpróbálja levágni a fekete/egyszínű keretet és csak a tényleges játék tartalmat mutatni. ZX, CPC is megy.

Offline szipucsu

  • EP addict
  • *
  • Posts: 9539
  • Country: hu
    • Támogató Támogató
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: ep128emu libretro core
« Reply #13 on: 2022.April.03. 13:49:58 »
Ez pontosan miben tud mást, többet, mint a hagyományos EP128Emu? Ahogy nézegettem a letöltési oldalt és a RetroArch oldalát, ahogy sejtem, futtatható néhány újabb platformon az emulátor, pl. az RPI-t említik. Az első hozzászólásban említi még Zöldalma a CRT hatás emulálását.
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Zoldalma

  • EP fan
  • *
  • Posts: 140
  • Country: hu
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 98.0 Firefox 98.0
    • View Profile
Re: ep128emu libretro core
« Reply #14 on: 2022.April.03. 22:26:33 »
Emulációban többet nem tud, használatban és megjelenésben tér el. Talán két dolog az, ami használat szempontjából markánsan máshogy megy, mintha önálló ep128emu-t futtatna az ember:
- az indításhoz meg kell adni, hogy milyen tartalmat szeretne az ember betölteni (ami itt lehet diszk, szalagos image, vagy a fileio-val rögtön a programfájl)
- az irányítás alapvetően nem billentyűzettel történik, hanem egy virtuális joypad-del (retropad), ami tetszőlegesen felüldefiniálható, tehát végeredményben maradhat a billentyűzet is, de nem muszáj, én is egy xbox kontrollerrel tesztelem

A környezet támogat savestate-eket, amik tulajdonképpen ep128emu savestate-ek. Bekapcsolható egy "rewind" funkció is, ami folyamatosan menti az állapotot, szükség esetén vissza lehet ugorni az (emulált) időben. Meg még rengeteg dolgot, amit nem próbáltam, képernyőrögzítés és streamelés, hálózatos játék... Ugyanakkor az ep128emu menüi semmilyen formában nem jelennek meg, nincs lehetőség ROM konfigurálásra, debuggolásra stb.

Megjelenítésben pedig ad egy felületet, amivel az emulátor magnak nem kell foglalkoznia a video (és hang, és bemeneti) driverekkel, tehát tetszőleges felbontásban futtatható (ablak, fullscreen mindegy), és a már említett CRT pixel shader-ekkel tovább hangolható az eredmény.

Végső (?) cél az lenne, hogy EP-re is meglegyen a lehetőség, ami már rengeteg 8-16 bites rendszerre megvan: a játékok egyszerűen előszedhetőek legyenek modern rendszereken ezzel a retroarch megoldással, ennek egyik válfajaként kifejezetten retro célú kisméretű számítógépeken. Ehhez azért még sok minden hiányzik, ha ez a core elér egy stabil állapotot, akkor is még  be kellene kerüljön a megfelelő csatornákra, hogy egyszerűen telepíthető legyen, és akkor még a  játékadatbázisról nem beszéltünk.

Pár minimális dolog azért van benne újdonság is: a bemenetként érkező fájlról megállapítja, hogy milyen rendszerhez való (EP, TVC, CPC, ZX), és ha tudja, el is indítja rögtön (load és barátai), illetve ez a keret-levágás.