ENTERPRISE KLUB
2021. október 2., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Belépés kizárólag klubtagok részére! (Klubkártyával vagy előfizetéssel!)
Welcome, Guest. Please login or register.


Author Topic: SID illesztés EP-hez (Read 15967 times)

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #45 on: 2015.June.06. 18:05:03 »
A "teszt" cuccom már régebben elkészült volna, ha nem szívatom meg szépen magam. :) Kergettem egy hibát: egy oszcillátor nem indult el. A felépítése nem éppen ideális, majd később ez máshogy lesz, de tesztelni éppen megfelelő. Mivel ez egyszer már működött, ezért ezt raktam össze először, majd szépen el is temettem egy rakás másik vezeték alá. Mérés közben meg szépen le is állt (ez mondjuk nem para...), emiatt csak a külső jelekből tippeltem erre, mint hibaforrásra. Valahogy nem akaródzott lebontani fölüle a többi elkészült részt, de a végén csak muszáj volt szétszednem. Egy "tuti jó" megoldást ideiglenesen hozzákötve ugyanazt csinálta, mint eddig. :???: A hibát - mint kiderült - egy rossz fw okozta, én meg forrasztgathattam vissza mindent. :-D

Na de a lényeg: egy kis BASIC tesztprogrammal sikerült belőle hangot kicsikarni. A jelenlegi felállás:

  • Portcímnek a 08h..0Fh I/O tartomány lett kiválasztva
  • A jelenlegi verzió a 0Eh/0Fh I/O címeket dekódolja
  • 0Eh = a SID-regiszter címe, A B43210 tartalmazza a cím 5 bitjét, a maradék 3 bit nem használt
  • 0Fh = a SID adata, a 0Eh-n kiválasztott számú regiszterbe fog bekerülni az ide beírt adat

A regiszterpárból (a későbbiekben) 4 db. helyezhető el a kiválasztott tartományban. A regiszterek csak írhatók, olvasáskor "nem definiált" adat jön vissza, ezért jelenleg nem oldható meg a bővítés automatikus detektálása. Viszont aki ma EP-t használ, ott szerintem van annyi intelligencia, hogy ha egy SID-es programot indít el bővítés nélkül, akkor nem fog fennakadni azon, hogy miért nincs hang. :)

Tehát a lényeg: a SID regiszterírás úgy működik, hogy 0Eh I/O címre a beállítandó SID regiszter címét kell először kiírni, majd utána 0Fh I/O címre kell az adatot kiküldeni. Hogy ezt a szekvenciát milyen sebességgel lehet ismételni, az jó kérdés, ezt majd még meg kell vizsgálni.

Majd lesz kép is, de először szeretném egy "rendes" zenével meghallgatni. :-D

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14016
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
    • http://enterprise.iko.hu/
Re: SID illesztés EP-hez
« Reply #46 on: 2015.June.08. 11:59:53 »
Izgalmas! Geconak kéne most egy portra írós verziót csinálni a SID playerből :-)

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #47 on: 2015.June.08. 12:14:55 »
Geconak kéne most egy portra írós verziót csinálni a SID playerből :-)

Igen. (Épp most írtam neki egy üzenetet.) Amúgy én is rendkívül kíváncsi vagyok. Azt a tesztet, amit csináltam (BASIC-ből OUT-okkal bekapcsoltam egy hangot), azt azért nem érzem túl meggyőzőnek. :)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14016
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
    • http://enterprise.iko.hu/
Re: SID illesztés EP-hez
« Reply #48 on: 2015.June.08. 12:16:47 »
A hang az most hol jön ki? Külön csatin, vagy már bemegy az EP-be?

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #49 on: 2015.June.08. 12:23:33 »
A hang az most hol jön ki? Külön csatin, vagy már bemegy az EP-be?

Egyelőre az analóg rész - mondjuk úgy - nincs túlbonyolítva. Simán bekötöttem az egyik AudioIn bemenetre (emiatt most féloldalasan szól, viszont "átmegy" az EP-n), de tesztnek szerintem meg fog felelni ez a felállás is.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14016
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
    • http://enterprise.iko.hu/
Re: SID illesztés EP-hez
« Reply #50 on: 2015.June.08. 12:30:48 »
Simán bekötöttem az egyik AudioIn bemenetre (emiatt most féloldalasan szól, viszont "átmegy" az EP-n)
:ds_icon_cheesygrin:
Gyanítom, hogy az EP történelmében te használod először azt a bemenetet :-)

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #51 on: 2015.June.08. 12:51:23 »
:ds_icon_cheesygrin:
Gyanítom, hogy az EP történelmében te használod először azt a bemenetet :-)

Ó, Yessssssssss! :ds_icon_cheesygrin: Történelmet forrasztottam? :-D

Offline geco

  • EP addict
  • *
  • Posts: 6283
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #52 on: 2015.June.09. 19:48:43 »
Ez milyen?
Sajnos nem hallok semmit :D , ahogy a kiírt értékeket nézem, jónak kéne lennie.
SID-en milyen regisztereket írnak Digi hanghoz? Mert a lejátszót megfektetik, az a tippem, hogy d000-d3ffh és d500-dfffh területre írnak, ezzel felülírva a kódot, de tudja valaki, hogy hová?

Offline lgb

  • EP addict
  • *
  • Posts: 3555
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
    • http://lgb.hu/
Re: SID illesztés EP-hez
« Reply #53 on: 2015.June.09. 20:10:26 »
SID-en milyen regisztereket írnak Digi hanghoz? Mert a lejátszót megfektetik, az a tippem, hogy d000-d3ffh és d500-dfffh területre írnak, ezzel felülírva a kódot, de tudja valaki, hogy hová?

D400-D7FF szokott lenni a SID szamara dekodolt (memoriaba agyazott ... mint minden a 65xx-n) I/O cimtartomany, mivel nincs dekodolva teljesen, minden 32. byte-on ismetlodik a cucc a fenti tartomanyban. Ezzel szoktak trukkozni, hogy jobban dekodoljak, es akkor befer melle pl meg egy SID boven, dual SID config, stb :)

D000-tol amugy az "I/O tartomany" kezdodik, amiben a SID is van, itt van pl a VIC, CIA, miegymas, inkabb nezz meg egy memory map-et, az jobban kifejtos, most hirtelen csak ilyen kisse tul beszedest talaltam: http://sta.c64.org/cbm64mem.html

Offline geco

  • EP addict
  • *
  • Posts: 6283
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #54 on: 2015.June.09. 20:22:51 »
Akkor elképzelhető, hogy nem csak a D400-D420 portokat írják, hanem D400-D7FF címtartományt kihasználják erre a célra, vagy van D000-DFFF tartományban még valamilyen port, ami digi hangkeltésre használható?
A linken én nem láttam semmi ilyet, de ez nem jelent semmit :D

Offline lgb

  • EP addict
  • *
  • Posts: 3555
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
    • http://lgb.hu/
Re: SID illesztés EP-hez
« Reply #55 on: 2015.June.09. 20:35:28 »
Akkor elképzelhető, hogy nem csak a D400-D420 portokat írják, hanem D400-D7FF címtartományt kihasználják erre a célra, vagy van D000-DFFF tartományban még valamilyen port, ami digi hangkeltésre használható?
A linken én nem láttam semmi ilyet, de ez nem jelent semmit :D

Hat, amennyire tudom a SID file az vegulis 65xx gepi kod C64-re stb. Tehat elvileg benne maradhat olyan is "veletlenul" ami nem a hangkeltessel kapcsolatos, hanem vmi massal. Illetve, nem tudom, de ha mondjuk idozitve van es IRQ rutinban van vagy akarmi, akkor meg lehet a CIA generalja az IRQ-t, vagy a VIC video interrupt-bol, igy ezeket is programozni kell? Nem tudom amugy, csak tippelek ... Nem neztem meg sid file-okat kozelebbrol :)

Offline geco

  • EP addict
  • *
  • Posts: 6283
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #56 on: 2015.June.09. 20:38:18 »
Hat, amennyire tudom a SID file az vegulis 65xx gepi kod C64-re stb. Tehat elvileg benne maradhat olyan is "veletlenul" ami nem a hangkeltessel kapcsolatos, hanem vmi massal. Illetve, nem tudom, de ha mondjuk idozitve van es IRQ rutinban van vagy akarmi, akkor meg lehet a CIA generalja az IRQ-t, vagy a VIC video interrupt-bol, igy ezeket is programozni kell? Nem tudom amugy, csak tippelek ... Nem neztem meg sid file-okat kozelebbrol :)
Simán lehet, megnézve még egyszer a CIA-ra gyanakodtam én is, a bentmaradt kód részlet eszembe se jutott :)
Azért kérdeztem, hogyha lenne valami köztudottan használt port, akkor azt kiszedném az írásból ha lehet, ne írja felül a Z80 kódot, bár úgy néz ki, hogy ez csak macerásan kivitelezhető.

Offline lgb

  • EP addict
  • *
  • Posts: 3555
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
    • http://lgb.hu/
Re: SID illesztés EP-hez
« Reply #57 on: 2015.June.09. 22:39:50 »
Mennyi a Z80 kod mennyisege, ami az emulaciohoz kell? Hova kerul jelenleg a cimtartomanyban?

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
Re: SID illesztés EP-hez
« Reply #58 on: 2015.June.09. 23:51:17 »
Ez milyen?
Sajnos nem hallok semmit :D , ahogy a kiírt értékeket nézem, jónak kéne lennie.

Jelentem, szól. :-D Most csak egy gyors tesztre volt időm, az eredetileg letöltött pakkban levő zenék közül párra hallgattam rá, de túlzás lenne állítani, hogy mind ismerős. :) Majd előszedek egy saját gyűjteményt, aztán még fülelek! Mindenesetre a jelek biztatóak, köszi!

SID-en milyen regisztereket írnak Digi hanghoz? Mert a lejátszót megfektetik, az a tippem, hogy d000-d3ffh és d500-dfffh területre írnak, ezzel felülírva a kódot, de tudja valaki, hogy hová?

A SID-nél az "elterjedt" digi lejátszás az $FD18-as hangerőregiszterrel történik, ott szerintem nem ez a probléma lesz. Inkább az, hogy a digi lejátszásához nem elég az 50Hz-es megszakítás, ahhoz sajátot fog a lejátszó beállítani magának. Természetesen hardveres regiszterírásokkal. C64-en az I/O terület $D000..$DFFF tartományban van, már ameddig ki nem kapcsolják. :) Szóval várható irkálás a $D400..$D418 terület mellett $D000..$D02F részre (VIC-II) meg $DC00..$DC0F / $DD00..$DD0F (CIA-k) címére is. (Ezek a tartományok a "hivatalos" címek, de a hiányos címdekódolás miatt jó párszor ismétlődnek ezek.)

Azért kérdeztem, hogyha lenne valami köztudottan használt port, akkor azt kiszedném az írásból ha lehet, ne írja felül a Z80 kódot, bár úgy néz ki, hogy ez csak macerásan kivitelezhető.

Ha a fenti alap tartományokat felszabadítod, akkor jó eséllyel a lejátszók zöme nem fogja felülírni a kódod. Ami meg a "másolat" címeket piszkálja, az egyéb galádságokra is képes. :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1056
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 31.9 Firefox 31.9
    • View Profile
Re: SID illesztés EP-hez
« Reply #59 on: 2015.June.10. 08:28:17 »
balagesz: az az $FD18 gondolom $D418 akart lenni. :)

A modern digi lejátszók már nem a hangerő bitekkel manipulálnak. Korábban volt ötlet a négyszögjel kitöltési tényező vezérlés segítségével lejátszani hangmintákat, de az tudtommal nem terjedt el. A legutóbbi fejlesztés valahogyan a háromszög (vagy fűrészfog - franc se tudja) abuzálásával éri el a kívánt hatást. Emellé még megmarad két natív SID csatorna és természetesen a szűrők használatának lehetősége. Ha valakit esetleg érdekelne, az nézze és hallgassa meg a Vicious Sid demót emulátorban vagy natívan, vagy tecsőn.

Ja, és nem digi téma, de manapság kezdik felütni a fejüket 2 vagy 3 SID-re írt zenék is, nyilván nem alapkiépítésű gépre. És természetesen ott is többféle megoldás létezik a hanggenerátorok címzésére. Van ahol 256 bájt eltolással van(nak) dekódolva a további SID(-ek), másik iskola szerint meg 32 bájtonként. Éljen a "szabványosság"! :)
« Last Edit: 2015.June.10. 08:33:28 by ergoGnomik »