Welcome, Guest. Please login or register.


Author Topic: EP128emu (Read 401016 times)

Offline Attus

  • EP addict
  • *
  • Posts: 1225
  • Country: hu
Re: EP128emu
« Reply #990 on: 2016.December.14. 12:26:17 »
A fenti problémák QT specifikusnak tűnnek és nem egyértelmű, hogy valójában a GCC vagy a QT a hibás, mert ha jól látom, későbbi QT verzióban javították. A ROM letöltésnél mindenesetre a GCC verziómnak nincs jelentősége, mivel azt egy NSIS plugin (INetC) végzi, amit és az installert nem én fordítottam. Ezen kívül Zozosoft XP-s gépein nincs hiba. De fordítottam egy optimalizálás nélküli 32 bites verziót, talán jelent valami különbséget, bár valószínűleg csak lassabb. :)

(Attachment Link)
A ROM letöltési részhez nem tudok hozzáfűzni semmit.
A QT csak egy példa volt a gcc6 extrém finnyás voltára, és hogy csak futási időben jött elő ott is jó pár bibi. A noveau meghajtóval jó pár QT5 program még mindig keményen segfaultol (VLC, satöbbi), ehhez még a mesa nouveau drájver részt kellene teljesen átdolgozniuk a fejlesztőinek, mert az ott most csak egyszálas, az új gcc6 -al fordított QT-nél meg többszálon akarna menni, ezért elseggel. A gcc6 -nál a -std=c++11 az alapértelmezett és ez hozta elő a temérdek fordítási gondot, és jó pár futásidejűt is.
Nem tudom, esetleg meg lehetne próbálni egy más régebbi paraméterrel lefordítani az emut a gcc6 -al, amely most explicit módon megadandó neki.
Például -sdt=c++98.

Talán...
« Last Edit: 2016.December.14. 12:30:07 by Attus »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #991 on: 2016.December.19. 22:37:27 »
Hmmm... ha a plus4emu-ban van SID, akkor az ep128emu-ba is be lehetne tenni Balagesz SID kártyáját?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #992 on: 2016.December.19. 22:55:04 »
Hmmm... ha a plus4emu-ban van SID, akkor az ep128emu-ba is be lehetne tenni Balagesz SID kártyáját?

Elvileg igen, de erről a kártyáról nem sokat tudok. :oops: Például hogy milyen port címeken érhető el, mi a SID órajele, ha sztereó a hang akkor azt hogyan oldja meg, stb. Szerk.: a kapcsolási rajz alapján feltételezem, nem biztos hogy helyesen:
- jumperelhető, hogy a 08-0Bh vagy 0C-0Fh portokat használja (nem tudom, melyiket lenne célszerűbb emulálni?)
- két hardveresen emulált SID található a kártyán 1 MHz-esnek megfelelő órajellel, az egyiknek a kimenete a bal csatorna, a másiké pedig a jobb
- a páros címeken 5 bites cím-, a páratlanokon pedig 8 bites adatregiszterek találhatók
- a 08-09h vagy 0C-0Dh a bal SID, a 0A-0Bh vagy 0E-0Fh pedig a jobb
- a portok csak írhatók
« Last Edit: 2016.December.19. 23:20:03 by IstvanV »

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: EP128emu
« Reply #993 on: 2016.December.20. 22:16:24 »
Elvileg igen, de erről a kártyáról nem sokat tudok. :oops: Például hogy milyen port címeken érhető el, mi a SID órajele, ha sztereó a hang akkor azt hogyan oldja meg, stb.

Ez a "kártya" egyelőre csak kapcsolási rajz szinten létezik, az összeépítéssel még adós vagyok. (De egyszer eljön annak is az ideje, maga az elv működőképes.) Ami készült kód eddig, az a 0x0E/0x0F portcímeket használja (emlékeim szerint). Amiket feltételezel, azoknak meg úgy kellene lennie, szóval a tippek helyesek. :) A regiszterek csak írhatók, az ott használt "SID-emulátor" úgysem tudja a pár regiszter olvashatóságát. A kapcsolást nem valószínű, hogy érdemes lenne valódi SID kezelésére felkészíteni, de ha mégis, akkor is eléggé elbonyolítaná az olvashatóság... :)

(Frissítés) Kimaradt: a Fake-SID a C64-es sebességet, a 985.248 KHz-es órajelet (17.73447 MHz / 18) emulálja.
« Last Edit: 2016.December.21. 22:52:33 by balagesz »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #994 on: 2016.December.24. 11:43:01 »
(Frissítés) Kimaradt: a Fake-SID a C64-es sebességet, a 985.248 KHz-es órajelet (17.73447 MHz / 18) emulálja.

Az 1 MHz megoldása egyszerűbbnek tűnik, a meglevő EP hang emuláció 500 kHz-en fut, így annak az egész számú többszöröse jobban működne. Hasonló okból elvileg a plus4emu-ban is jobb minőségű a SID az alapértelmezett TED frekvencián mint a 10/9-szeres (illetve az emulátorban most pontatlanul 9/8-szoros szerk.: javítva) C64 kompatibilis órajelen, bár ez a gyakorlatban nem tűnik jelentősnek. Ettől eltekintve nem lenne különösebben nehéz EP-s SID kártyát emulálni, de tartok tőle, hogy nem lenne olyan program ami ténylegesen használná is. :oops: A DTM lejátszóhoz emulált 4x8 bites D/A konvertert sem használja semmi más, és a hardver sem készült el.
« Last Edit: 2016.December.24. 12:26:07 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #995 on: 2016.December.24. 11:46:26 »
Ettől eltekintve nem lenne különösebben nehéz EP-s SID kártyát emulálni, de tartok tőle, hogy nem lenne olyan program ami ténylegesen használná is. :oops:
A Geco féle SID Playerből készült hozzá.

Quote
A DTM lejátszóhoz emulált 4x8 bites D/A konvertert sem használja semmi más, és a hardver sem készült el.
A Pear féle All in one kártyába remélem mind belekerül. Meg egy AY kéne meg :-)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #996 on: 2016.December.24. 13:13:07 »
A Pear féle All in one kártyába remélem mind belekerül. Meg egy AY kéne meg :-)

D/A: Tennek ra egy min par szaz byte-os FIFO RAM-ot, pl FULL es HALF-EMPTY jellel (ez utobbit lehetoleg interrupt-ot triggerelheto modon), programozhato "lejatszasi sebesseggel" az olvasasi oldalon. Igy sokkal kisebb CPU eroforrassal lehetne jo minosegben lejatszani :) Ez csak onnan jutott az eszembe, hogy amikor az SD-s lejatszoval jatszottam, ugye rajottem, hogy nagyon sok orajelciklust az visz el, hogy minden mintanal megszakitas, Dave fele interrupt latch torles, miegymas ...

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #997 on: 2016.December.24. 13:40:57 »
D/A: Tennek ra egy min par szaz byte-os FIFO RAM-ot, pl FULL es HALF-EMPTY jellel (ez utobbit lehetoleg interrupt-ot triggerelheto modon), programozhato "lejatszasi sebesseggel" az olvasasi oldalon.
Olyanokat mondasz, amiről még az életben nem hallottam :oops:

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: EP128emu
« Reply #998 on: 2016.December.24. 14:56:20 »
Olyanokat mondasz, amiről még az életben nem hallottam :oops:

FIFO (FIFO: First-In-First-Out, a stack mint adatszerkezet az ugye LIFO - Last-In-First-Out, a FIFO tehat egyfajta puffer szeruseg) RAM az vegulis egy dual port RAM (na jo, nem egeszen), de specialis, nem tudsz cimezni. Egyik bemeneten "nyomod" bele az adatot, masikon meg olvasod ki (cimezni nem kell, "automatikus"). Altalaban vannak "okos" kimenetei is, azaz jelzi, hogy "ures" (empty) szoval ha olvasol vmit es ures volt mar eleve, akkor ugye hulyeseg lesz amit olvasol. Hasonlokeppen, ha a FIFO megtelt ("full") akkor nem ajanlatos bele irni ugye. Egyeseken meg van ilyen "felig" jelzes is, vagy hasonlo. Amugy ha jol remlik, van ilyen a 74xx IC sorozatban is, igaz nem tul nagy meretben - 74xx220 vagy valami hasonlok ha jol remlik :)

Azert gondoltam, hogy ez jo lenne ilyen digi lejatszas celra, mert pl egy az egyben kiirsz pl 64 byte sample-t (felteve ha a FIFO merete 64 byte vagy tobb) es akkor annyi sample-nyi ideig megoldja maganak, felteve, ha adott frekvenciaval olvasod ki pont a FIFO masik felen, ami egy D/A-ra van kapcsolva.

Pl: http://www.idt.com/document/dst/720072017202-datasheet

Bar, amugy nem tudom, lehet van olcsoert eleve olyan IC-kent kaphato D/A is, ami parhuzamos bemenettel rendelkezik es van benne nemi puffer, es lehet programozni a lejatszasi frekvenciat is? Mondjuk vmi VS akarmi cimszo alatt valhol egyszar lattam olyat ami akar mp3-at meg ogg-ot is lenyom, ha "stream-eled" neki az adatot megfelelo sebesseggel pl, amibol ezt megteszi. Talan SymbOS-nel volt vmi demo, ahol mp3-at jatszottak le, ott is vmi custom hw csinalta a dekodolast persze, azert egy Z80-nak software-bol az nem igazan menne, lassuk be :)
« Last Edit: 2016.December.24. 15:41:27 by lgb »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #999 on: 2016.December.26. 22:40:13 »
SID emulációval (reSID 1.0) "megpatkolt" ep128emu:

ep128emu-2.0.11_sid_beta-x64.exe
ep128emu_sid-src.7z    (forráskód)

Csak konfigurációs file betöltésével lehet engedélyezni, például:
Code: [Select]
sid.0.model     0
sid.0.volumeL   0.0
sid.0.volumeR   0.0
sid.1.model     0
sid.1.volumeL   0.0
sid.1.volumeR   0.0
sid.2.model     2
sid.2.volumeL   1.0
sid.2.volumeR   0.0
sid.3.model     2
sid.3.volumeL   0.0
sid.3.volumeR   1.0
Ez két 8580-at emulál a 0C-0Fh portokon, az elsőt a bal, a másodikat a jobb oldalon. A "model" értéke 0 lehet (SID tiltva), 1 (6581) vagy 2 (8580). Legfeljebb 4 emulálható (két kártya), de ennek magas a CPU igénye.

Problémák:
- snapshot támogatás nincs
- lassú
- valószínűleg bugos
- a SID órajel a hang (DAVE) számára beállított érték kétszerese, azaz alapértelmezés szerint 1 MHz. Ha az eredetileg 500 kHz-es hang frekvencia nagyobbra van állítva mint az eredetileg 889846 Hz-es NICK frekvencia, akkor hibásan működik
- a 4x8 bites DTM lejátszós D/A konvertert elrontja ha aktív, ugyanazokat a változókat használja
- a 16 bites hang keverés túlcsordulását elkerülendő a SID hangereje meglehetősen korlátozott (az értéktartomány nagyobb része a DAVE számára van fenntartva)

Szerk.: egy hibát már találtam, a szűrő Plus/4-es órajelet tételez fel (ezt nem módosítottam), így túl magas a frekvenciája. :oops:

De ettől eltekintve működik, kipróbáltam Geco lejátszójával és innen letöltött zenékkel. Természetesen a SwinSID bővítései (extra hullámformák, 6 oszcillátor, stb.) nem emuláltak, de ezeket a C64-re írt zenék valószínűleg egyébként sem használják.
« Last Edit: 2016.December.27. 19:30:33 by IstvanV »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: EP128emu
« Reply #1000 on: 2016.December.27. 11:12:29 »
- a 4x8 bites DTM lejátszós D/A konvertert
Ilyen volt eddig is? :oops: Ezt hogyan kell engedélyezni?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #1001 on: 2016.December.27. 11:28:56 »
Ilyen volt eddig is? :oops: Ezt hogyan kell engedélyezni?

Mindig engedélyezett az F0-F3h portokon. :) De valószínűleg csak a DTM lejátszó használja, illetve a játékokba épített változata általában már nem.

Offline geco

  • EP addict
  • *
  • Posts: 7121
  • Country: hu
    • Támogató Támogató
Re: EP128emu
« Reply #1002 on: 2016.December.27. 12:04:24 »
:smt041
A héten ki is próbálom :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: EP128emu
« Reply #1003 on: 2016.December.27. 19:27:36 »
Szerk.: egy hibát már találtam, a szűrő Plus/4-es órajelet tételez fel (ezt nem módosítottam), így túl magas a frekvenciája. :oops:

Javítva:
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]     (forráskód)

Offline geco

  • EP addict
  • *
  • Posts: 7121
  • Country: hu
    • Támogató Támogató
Re: EP128emu
« Reply #1004 on: 2016.December.27. 19:55:59 »
Kúúúúl, kipróbáltam, nagyon jó :)