Z80 dallamcsengő és eprom

Mindenféle hardver tuning, ötlet ZX81-hez, ZX Spectrum-hoz régről és napjainkból...
csaba
Speccyalista
Hozzászólások: 142
Csatlakozott: 2012.01.09. 19:18
Rádióamatőr hívójel: HG5BMU
Tartózkodási hely: Surány
Kapcsolat:

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: csaba » 2015.05.12. 07:37

3ic-t ezért a 254-es címért elpazarolni... (3 IC egy ZX81 :)
ha univerzális áramkört akarsz ahogy írtad, használj logikai komparátort, és mellé egy dip kapcsolót
amivel majd tudod állítgatni a címeket.
(mondjuk ez is csak a logikai áramkörökkel ismerkedés miatt hasznos)
tehát ha csak az A0-t, IORQ-t WR-t kapuzod ki akkkor a 254-es címen kívül még jópár periféria címeden fog látszódni az áramköröd, ami nem probléma ha ezekre a címekre nincs szüksége más áramköröknek.
254, 252, 248,....128, 4,2,0

Avatar
Asimo
Speccyalista
Hozzászólások: 147
Csatlakozott: 2012.01.09. 18:49

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: Asimo » 2015.05.12. 20:43

csege írta: Érdekes lenne Asimo Kartársat meginterjúvolni,
[?] milyen módon tudta előbányászni az általa megszólaltatott zenéket az eredeti programokból?
[?] talált-e valamilyen kvázi-szabványos formátumot a zene tárolására a progikban?
[?] a beepola lejátszó által emészthető formátumot ő generálta, és ha nem, akkor hogyan?
[?] jól látom-e, hogy ezek a zenék két csatornán szólnak, tehát nem kell valós polifóniát előadni?

és ezek után elgondolkodni, lehetséges-e, érdemes-e egy két(három)csatornás lejátszómotort (át)írni 1.5MHz órajelre? hiszen itt annyi mindent NEM kell csinálnia a CPU-nak a zenélés közben!
:)
A programokból kód-visszafejtéssel lehet előbányászni a zenéket. Mivel a hangszóró mozgatásához OUT 254-re van szükség, ezért érdemes a keresgélést ezeknél az utasításoknál kezdeni. Ezeket a zenéket simán a Spectaculator segítségével meg lehetett fejteni.

Szabványos megoldás nincs, de az egyes beep-engine-eken belül már azért nagyjából egyformák. Ez is adhatott alapot a beepola megírására. De azért lehetnek engine-eken belüli eltérések is (verziók). Mondjuk olyan nagyon sokat még nem néztem, hogy átfogó képem legyen.

A beepola lejátszó által emészthető formát egyszerűen beepola-ban írtam. :)

A WHAM! engine két csatornás, a Dynamite Dan zenéje nem. Létezik 9 csatornás zene is Speccy-re. Persze itt a csatorna nem valódi csatornát jelent, hiszen a Spectrum-ban csupán egy ULA bit-et lehet kapcsolgatni.

1,5 MHz órajelre az időzítések átszámolásával lehet szerintem viszonylag gyorsan és egyszerűen áttenni többcsatornás Spectrum zenéket. A lényeg szerint annyi csak, hogy a hangszóró és a Z80 között ne legyen egyéb jelformáló áramkör. Kevés ennél egyszerűbb megoldás létezik, kb. futófény bonyolultságú. Ezért is lehetett gyorsan PIC verziót kreálni belőle. Most egy hosszabb zenét akartam átírni PIC-re, de kevés az 1K FLASH, keresek nagyobb, de még 8-bites PIC-et. :)

Avatar
csege
Speccyalista
Hozzászólások: 180
Csatlakozott: 2012.01.06. 15:15
Tartózkodási hely: Föld.Naprendszer.Tejút

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: csege » 2015.05.13. 19:45

Asimo írta: A programokból kód-visszafejtéssel lehet előbányászni a zenéket. Mivel a hangszóró mozgatásához OUT 254-re van szükség, ezért érdemes a keresgélést ezeknél az utasításoknál kezdeni. Ezeket a zenéket simán a Spectaculator segítségével meg lehetett fejteni.

Szabványos megoldás nincs, de az egyes beep-engine-eken belül már azért nagyjából egyformák. Ez is adhatott alapot a beepola megírására. De azért lehetnek engine-eken belüli eltérések is (verziók). Mondjuk olyan nagyon sokat még nem néztem, hogy átfogó képem legyen.

A beepola lejátszó által emészthető formát egyszerűen beepola-ban írtam. :)

A WHAM! engine két csatornás, a Dynamite Dan zenéje nem. Létezik 9 csatornás zene is Speccy-re. Persze itt a csatorna nem valódi csatornát jelent, hiszen a Spectrum-ban csupán egy ULA bit-et lehet kapcsolgatni.

1,5 MHz órajelre az időzítések átszámolásával lehet szerintem viszonylag gyorsan és egyszerűen áttenni többcsatornás Spectrum zenéket. A lényeg szerint annyi csak, hogy a hangszóró és a Z80 között ne legyen egyéb jelformáló áramkör. Kevés ennél egyszerűbb megoldás létezik, kb. futófény bonyolultságú. Ezért is lehetett gyorsan PIC verziót kreálni belőle. Most egy hosszabb zenét akartam átírni PIC-re, de kevés az 1K FLASH, keresek nagyobb, de még 8-bites PIC-et. :)
Köszönöm.

Olvastam a beepola dokujában, hogy bizonyos zene formátumokat magától megtalál programon belül,
vagy ha te megmondod neki, hol keresse azt, onnan átemeli.
ezért érdekelt a dolog sikerfaktora, hogy mennyire általános (elterjedt) egy-egy zenelejátszó motor a játékírók között, vagy mindenki mindenhova saját zenemodult írt?

Néztem a z80 asm zenelejátszó fájlokat, tényleg viszonylag egyszerűek.
sajnos kijöttem a z80 assembler gyakorlatból, így elsőre nem láttam, hogy hogyan szólalnak meg a több szólamú hangok?
vagy a "hangpalettába" vannak a kevert hangok is berakva?

elméletileg a mostani áramkör kettes osztója is torzítás mentesen tudná a speccy zenéket játszani,
hiszen egy hang impulzus ugye két out utasításból áll, és így a kettes osztó kimenete követi a hang adat értékét:

Kód: Egész kijelölése

out 254, 16     /IORQ ra kötött kettes osztó kimenet 1
vár vmennyit
out 254, 0      /IORQ ra kötött kettes osztó kimenet 0
vár vmennyit

buddhasoft
Speccyalista
Hozzászólások: 237
Csatlakozott: 2012.01.09. 08:48
Tartózkodási hely: Biatorbágy
Kapcsolat:

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: buddhasoft » 2015.05.26. 20:21

Időközben elkezdtem én is agyalni a modernizáción. Az UV Eprom patinás, de tényleg korszerűbb lenne egy Propeller+ eeprom páros.

A Z80 emulátorom is megvan - de nézzétek el nekem, nem teljesen értem, mivel már a Z80-al is meggyűlt a bajom. A Propeller részét értem, tudom paraméterezni, de fogalmam sincs, hogy egy assembly (hexa) kódot, hogyan futtassak rajta. Már pedig kitaláltam, hogy lehetne külső SD kártyán a hang a meglévő midi lejátszómhoz hasonlóan, a működtető program az eepromban, a propelleren pedig a Z80 emulátor. Mellékelem is, hátha valakinél kigyúl az az isteni szikra...
z80_emu.zip
Propeller Z80 emulátor
(13.41 KiB) Letöltve 9 alkalommal.
(c) 1986 BUDDHA SoFtWaRe HUNGARY

buddhasoft
Speccyalista
Hozzászólások: 237
Csatlakozott: 2012.01.09. 08:48
Tartózkodási hely: Biatorbágy
Kapcsolat:

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: buddhasoft » 2015.06.06. 15:19

Csege! Elég lett volna kicsit visszaolvasnod :)

Ez a Kinczel féle verzió, aminél még a helyén vannak az IO lábak.

Urbán már összekevergette.

Éppen emiatt készítettem egy saját "visszakeverő" adaptert az Urbán féle, több dallamot tartalmazó epromokhoz (2féle). Így az eredeti IO lábakon is működhet az Urbán féle 2 eprom dallamkészlete. :)

Igen. Ennek az erősítője tartalmaz még egy TBA810-et is, de a két tranzisztoros változat is éppen elég hangos.
(c) 1986 BUDDHA SoFtWaRe HUNGARY

Avatar
csege
Speccyalista
Hozzászólások: 180
Csatlakozott: 2012.01.06. 15:15
Tartózkodási hely: Föld.Naprendszer.Tejút

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: csege » 2015.06.07. 14:29

buddhasoft írta:Csege! Elég lett volna kicsit visszaolvasnod :)
Ez a Kinczel féle verzió, aminél még a helyén vannak az IO lábak.
Urbán már összekevergette.
Éppen emiatt készítettem egy saját "visszakeverő" adaptert az Urbán féle, több dallamot tartalmazó epromokhoz (2féle). Így az eredeti IO lábakon is működhet az Urbán féle 2 eprom dallamkészlete. :)
Igen. Ennek az erősítője tartalmaz még egy TBA810-et is, de a két tranzisztoros változat is éppen elég hangos.
Buddha Mester!
úgy érzem magam, mint aki időhurokba került,
légyszíves mondd meg, melyik hszemre válaszoltál?
lgutóbb a 2015.01.08-as hszben volt megemlítve a "végfok icvel" megépített verzió.
de abban a közlésben is a hangkészlet, a program és dallam hexadump volt az új(don)ság.

thx!
(c)

buddhasoft
Speccyalista
Hozzászólások: 237
Csatlakozott: 2012.01.09. 08:48
Tartózkodási hely: Biatorbágy
Kapcsolat:

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: buddhasoft » 2015.06.08. 05:48

Ismét az idõalagút és balról jobbra.. :)
Mobilon a legfrissebb hsz-ok vannak elöl, a PC-men fordítva.
Hardver oldalról:
A0= legkisebb helyiérték
A15=legnagyobb
Európai ember balról jobbra, fentrõl lefelé haladva olvas.
Azaz: A0..A15
Propeller kódolása mindkét irányt engedi.
speccy kódolâs (szoftver) A15..A0
(c) 1986 BUDDHA SoFtWaRe HUNGARY

tcsaba73
Speccyalista
Hozzászólások: 2
Csatlakozott: 2017.07.27. 11:51
Tartózkodási hely: Budapest
Kapcsolat:

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: tcsaba73 » 2017.07.28. 16:03

Üdvözlet Mindenkinek!

Részletesen visszafejtettem, a dallamcsengő vezérlő algoritmusát.
Hogy, miért?
Mert anno, összeraktam én is egy jó-pár darabot.
Valamint a dallamkészletét szerettem volna megmenteni és más mikrovezérlővel lejátszani.
Az átíráshoz némi segítség a csatolmányokban.

A vezérlő algoritmust már átírtam Arduinora.
Bár a szoftver jelenlegi állapotában, még csak egy hex-ekből álló sztring sorozatot olvas...
:D
Eredeti vezérlő program.pdf
(88.57 KiB) Letöltve 7 alkalommal.
Z80 dallamcsengő hangkészlet.pdf
(107.72 KiB) Letöltve 6 alkalommal.

Avatar
csege
Speccyalista
Hozzászólások: 180
Csatlakozott: 2012.01.06. 15:15
Tartózkodási hely: Föld.Naprendszer.Tejút

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: csege » 2017.07.30. 00:15

tcsaba73 írta:
2017.07.28. 16:03
Üdvözlet Mindenkinek!

Részletesen visszafejtettem, a dallamcsengő vezérlő algoritmusát.
Szép munka, köszönjük!

Az arduino forrást nem akarod publikálni? :)
én (anno) ott akadtam el, hogy az eredeti (E)Promból hogyan olvassam ki a tartalmat az arduinoba?
túl sok lábat elhasznált a 2716 összes lábát egyenesbe lekezelni :(
az már működött, ha az eredeti romot átírtam egy I2C soros eepromba, és a progi onnan olvassa ki
(c)

tcsaba73
Speccyalista
Hozzászólások: 2
Csatlakozott: 2017.07.27. 11:51
Tartózkodási hely: Budapest
Kapcsolat:

Re: Z80 dallamcsengő és eprom

Hozzászólás Szerző: tcsaba73 » 2017.08.07. 22:09

Szia Csege!

Publikálom, amit eddig megcsináltam Arduino-ra.
Ez még mindig fapados progi.
Z80_dallamgeneretor.pdf
(101.37 KiB) Letöltve 12 alkalommal.
Én, az eredeti EPROM címzését, egy külső számlálóval csinálnám...
Sokfajta megoldás létezik, a címzés megoldására. (Soros memória cím beállítás, majd az adatot le kell venni az EPROM adatvonalról.)
Így bőven elég lenne, az Arduino IO portok mennyisége.

Válasz küldése

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég