Most megneztem, egyre jobban nez ki. :) Nem hiszem, hogy lesz idom jatszani vele, de tenyleg cool. Pontosabba: hanyszor hanyas a tablazat, es mi az intervallum amibe az ertekeknek kerulni kell? Esetleg probalok generalni valamit. :)
Két $1003-hívás között eltelt idő. Tehát (többnyire) egy képciklus.
(Ebből az is következik, hogy ugyanaz a zene, egyéb trükközés nélkül, NTSC-s gépen gyorsabban fog lejátszódni mint PAL-gépen, egyszerűen azért mert ott a frame 60Hz-es, PAL-ban pedig 50).
Az effekt-programoknál a helyzet kicsit más. Annyiban, hogy ha "multispeedes" zenét írsz, akkor az effektek számára a "frame" a (tetszőleges variációban történő) $1003 ill. $1006-hívások között eltelt idő.
(A dolog háttere az, hogy a $1003-as rutin a track- sector- és effekt-programokat is futtatja, a $1006 pedig csak az effekt-programokat).
> 2) Az Arpeggio, Slide es Volume programok "parhuzamosan" hajtodnak vegre?
Igen, teljesen. Egy hangszer megszólaltatásával egymástól függetlenül (egymás mellett) a hangszernél definiált mindhárom effekt-program elkezd futni.
> 3) Lehet sectort/tracket vagy nem nemtudommit definialni csatornankent es ezeket szabadon elzendezni? ...
A hierarchia úgy néz ki hogy...
- Van két tracked (ami a két szólamnak felel meg).
- Van asszem max. 128 darab szektorod. Ezek bármelyike lejátszható bármely trackből.
- Van 64 db. hangszered, melyeket alapesetben $7c-féle hangmagasságon szólaltathatsz meg (de a felsőkre asszem nem definiáltam makrót, mert "túl magasak" ;-), de lehetne). Bármely hangszer megszólaltatható, bármely hangmagasságon, bármely szektorból.
A szektorokban a dallam egy-egy rövid részlete található. Ezeket a részleteket tudod "összefűzni" a track-ekkel.
(A programban nincs ezekre kötöttség, legfeljebb annyi, hogy a zaj-hullámformát tartalmazó hangszer csak a 2. tracken megszólaltatva fog megfelelően működni (mert a TED csak a 2. hanggenerátoron tud zajt).)
> ...Tehat pl van egy alap ritmus, vagy dallam az egyik csatornan, amit tobbszor hasznalok, es melle rakok egy masikat ami a lenyegi zene van. Tehat tobb szolamu zenenel egybe kell megirnom, vagy kulon-kulon a szolamokat es utana valahogy egymas melle rakom.
Szólamonként, ill. a szólamok "részleteiként" tudod megírni, ill. ezeket a részleteket tudod összefűzni a track-táblákkal. (A munka közben, persze, ezeket a lépéseket "párhuzamosan" csinálja az ember, hogy meghallgathassa ami épp elkészült :-). Kitűnő "fast forward" funkció pl. hogy lehet a tracklistában is kommentezni :-))) ).
Vegigolvastam/atfutottam a leirasod. Nehany kerdes, ami lehet, hogy masodjara mar vilagos lenne, lehet, hogy csak elkerulte a figyelmem.
1) Mi az a frame? Mennyi ideig tart?
2) Az Arpeggio, Slide es Volume programok "parhuzamosan" hajtodnak vegre?
3) Lehet sectort/tracket vagy nem nemtudommit definialni csatornankent es ezeket szabadon elzendezni? Tehat pl van egy alap ritmus, vagy dallam az egyik csatornan, amit tobbszor hasznalok, es melle rakok egy masikat ami a lenyegi zene van. Tehat tobb szolamu zenenel egybe kell megirnom, vagy kulon-kulon a szolamokat es utana valahogy egymas melle rakom.
(Bocs a bikfanyelvert, nem ertek a zenehez).
Akkor jo otletnek tunt, de utolag "muveltebben", csak egy egyszerubb, gyorsabb, kevesbe hatekony Huffman szeruseg... :-( Igy van.
Háát, az összes plusis tömörítőnél sokkal jobb, csak van benne valami bug, nem mindig működött jól, aztán nem volt türelmem befejezni anno, most meg nincs sok értelme, mert ott a pucrunch és társai, amiknél biztos sokkal rosszabb. Persze tartozni ehhez egy pc-s besűrítő, asse tudom hol van már :)))
Mindenesetre AP4 bemutatónak jó, mert majdnem minden extra lehetőséget kihasznál.
Tegnap nezegettem a forrast, ez vegulis az a compressor amihez meg en adtam anno az otletet
:-) Kiraly, hogy megcsinaltad, mennyire hatekony?
Akkor jo otletnek tunt, de utolag "muveltebben", csak egy egyszerubb, gyorsabb, kevesbe hatekony Huffman szeruseg... :-(
Ha trukkoknel tartunk, egy aranylag common megoldas, hatha valaki meg nem ismeri...
adva van 2 rutin, amit sokszor hivsz meg, de csak annyi a kulonbseg koztuk, hogy mas kezdoertekkel hivod meg oket, de mindig csak 2 kezdoertek kozott valtozik, a legrovidebb megoldas: (vegulis az analogia atultetheto tobb kezdoertekre is...)
nekem az AP4 decompiler példaprogramjában van egy érdekes megoldásom. Az a lényeg, hogy ha AC = 0 akkor 0, bármi más esetben 1-es bit forduljon be egy adott nulláslapos változó felső bitjébe balra shifteléssel. Igy oldottam meg, szerintem nincs rövidebb:
rebuild:
// if AC = 0 then the bit is 0, else bit is 1 - watch my hands
// don't try this at home... :)
clc // this one will be VERY tricky!
adc #$FF // set C if AC <> 0
rol DECODE // roll in C :)
rts
Ez megoldható, nullaslap nevű fileban origin 0, és ide megkódolod ami kell, majd binaryként behúzod a nullaslap.prg-t egy másik forrásba, ahol mondjuk akár a compile opcióval automatikusan fordíttathatod is a nullaslap filet. Itt kifelejtettem, hogy a nullaslap.ap4 elején használni kell ekkor a STRIP kulcsszót, hogy ne csináljon a .prg elejére 2 lokáció byteot, hiszen ez nem magában fog futni, hanem egy másik forrás behúzza binárisként egy tetszőleges címre.
persze a grafikatol is fugg, hogy mennyire igenyel kontrasztos arnyalatokat, elkepzelheto, hogy az fenyerokkel picit lehet varialni...
Ezeket most hirtelen egy monitoron csinaltam emu alatt, ugye itt nincs pal emulacio sem, biztos lehet szebbeket is kihozni...
- jo lenne siman command lineos forditokent is hasznalhato lenne, vagy atdefinialhato key beallitasok, vagy mindketto :) Egyebkent hihetetlenul kicsi az exe! Nagyon egybe van gyógyítva, bár nem volna nehéz megoldani, hogy a megadott file-t lefordíccsa...
Azért kicsi, mert UPX-szel meg van tömve, amúgy 500K :) Delphi6 azért elég méretes vackokat fordít.
- valahogy jo lenne kozeliteni a forras kompatibilitassal mas forditok fele, bar szintaktikailag meg nem talaltam ket egyformat :(
Ebben 2 dolog lehetséges:
- asm konverter, ami más asm szintaxist alakít AP4-essé
- a fordító több szintaxist ismerjen
Mindkettő nagyon gázos, főként azért, mert az assemblerek eszközkészlete is más, pl szokott lenni shift operátor, nálam csak hi/low byte operátor van, stb...
- kellene olyan opcio, hogy megadom, hogy latszolag hova forditson, de memoriaban hova keruljon mindez, igy lehet 0-as lapos cimekre masolhato code-okat forditani! Ez megoldható, nullaslap nevű fileban origin 0, és ide megkódolod ami kell, majd binaryként behúzod a nullaslap.prg-t egy másik forrásba, ahol mondjuk akár a compile opcióval automatikusan fordíttathatod is a nullaslap filet.
Tudnak egymásra hivatkozni meg minden. Lásd decomp és decomphead mintafileokat!
- opciokent megadhato lenne, vagy az utasitas elott valami prefix-el, hogy egy lda $0002-nal ne optimalizalja le, lda $02-re, vagy sem! Ez jó kérdés, anno filóztam is rajta, hogy meg kelljen-e adni a címzésmódot, majd úgy döntöttem, hogy a nulláslaposokat nulláslaposként fordítsa mindig. Most viszont, ha beteszem az illegal kódokat, lesz csomó azonos utasítás más opkódokkal (pl van vagy 8 féle NOP2), tehát megcsinálom, hogy opkód szinten meg lehessen adni 1-1 utasítást. Nem lesz kényelmes, de úgyis csak extrém esetben kell. (magyarán az utasításnév után odaírhatod majd valami módon a kívánt opkódot, és akkor azt fogja használni, ha van több lehetőség)
ehh, sohse értettem a színekhez, mert sokáig FF tévén nyomtam a kódot. Mondjatok nekem narancssárga színódokat, 4 közeli fényerősségben. hex kódok, amiket ff16 ff17 ff15 be pakolok és hozzá fillezem a 0800-t. Lécci.
Naah, nincs itt ekkora bajság, vagy szenzáció vagy akármi!... :-O . A félreértés valószínűleg abból adódik, hogy azt gondoljátok, hogy a kiadott és az újabb, nem kiadott anyag között valami nagy, alapvető különbség van. De ez nincs így. A kiadott lejátszó is multispeedes, csak a demózene, ami a packban van, nem használja ezt a képességet. Azaz senki nem vesztett semmit. Lehet multispeeddel kísérletezni, zenélni, bármit; (a kiadott és az "újabb", nem kiadott / nem dokumentált darab nem ebben a lehetőségben különbözik, hanem apróságokban). Ha nem jutok el oda, hogy a később megváltoztatott dolgokat tisztázzam / dokumentáljam stb., lényegileg akkor sem vesztett senki semmit (legfeljebb nyersebb / lassabb / kevésbé paraméterezhető a most kiadott lejátszó, mint amilyen a reménybeli "végleges" lenne... a még befektetendő meló után).
Ha nem lesz "végleges" TLCplay, holnap akkor is fel fog kelni a Nap, azt hiszem ;-).
Nem ígérek semmit, mert nem akarok vaporware-t gyártani. ...Köszi :-)
Ha valaki kísérletezik a stuffal és valami nem világos, elakad, akármi van, keressen nyugodtan :-). Sőt, új TED-es zenéket is szívesen hallgatok ;-) (legyen ebben, vagy más rendszerben megírva :-) ).
(Így elsőre: ha rám hallgattok, én inkább a gépen kísérleteznék mint emulátorban ;-). Bár a Yape már egészen jól szól, az igazi azért mindig "más" ;-). Néha egészen apró, árnyalatnyi különbségeken múlik hogy valami "jól szól").