Mármint ahol két hang szól egyszerre egy hangszernél ("két régetű hangszer")? Jó kérdés. Jó, ha van, de ha problémás a lejátszása mondjuk valamilyen játék közben, akkor inkább jobb kihagyni. De ha a minél jobb "hangszer" a cél EP-ből, akkor az is kellene. Így könnyen elérhetők lennének bizonyos jó hangzások.
Tulajdonképpen lehetne feltételesen is fordítható.
Az a dupla gyűrűmoduláció (mindkét csatorna modulálja a másikat) kicsit sok. Ennek kiküszöbölésére mit írtál pontosan, hogy lehet megoldani? Még egy midi sáv kellene hozzá?
Igen, itt hasznos az a lehetőség, hogy a másik hang ne ugyanarra a MIDI csatornára kerüljön.
(Még az előző midiplay-jel hallgattam, az újat nem sokára kipróbálom, de gondolom, ezen a téren nincs eltérés.)
Azt még érdemes lenne megnézni, hogy a MIDJOKE javult-e, természetesen a 70-es vezérlőt most 25 helyett 20-ra kell állítani.
Talán már el lehetne kezdeni az assembly nyelvű változat fejlesztését, már legalábbis ha van értelme. A LIVIDEO.BIN például hatékonyabban lenne lejátszható a Xorgame-es módszerrel, a memória igénye is kisebb lenne. Bár a midiplay lehetőségeit jobban kihasználó zenéknél nem biztos, hogy így lenne, de ha jó megoldás a program DAVE kimenetét egyszerűen felvenni és valamilyen módon tömöríteni, akkor talán nem érné meg a midiplay (akár assembly változatát) más programokba építeni. Maradhatna csak a C verzió, az sem lenne probléma, ha csak turbós emulált gépen működne, mert csak a zene készítésekor van rá szükség.
Mindenesetre jelenleg ez a memória fogyasztás:
0000000F l__GSINIT
000002B6 l__HOME
00001000 s__CODE
00002A6E l__CODE
00003A6E s__HOME
00003D24 s__INITIALIZER
00003D26 s__GSINIT
00003D35 s__GSFINAL
00006000 s__DATA
0000840D l__DATA
0000E40D s__INITIALIZED
0000E40F s__BSEG
0000E40F s__BSS
0000E40F s__HEAPTehát a betöltőt és a vermet nem számítva D40Fh = 54287 byte:
- 3D35h - 1000h = 11573 byte kód + konstans adat
- 6000h - 3D36h = 8906 byte nem használt terület
- E40Fh - 6000h = 33807 byte adat, ebből 20480 byte file puffer, 8192 byte bukológörbe puffer (1 másodperc = 200 byte), 4*256 = 1024 byte hangszer táblázat, 1536 byte PITCH táblázat, 256 byte sin() táblázat, 16 * 128 = 2048 byte billentyű állapot, a maradék 271 byte egyéb kisebb táblázat és a globális változók