Továbbfejlesztett konvertáló program, egyelőre még nem sokat teszteltem:
[ Guests cannot view attachments ]
Fordítás (a
../ep128emu2/ep128emu a lefordított emulátor forrás könyvtára):
g++ -Wall -O2 -march=native -I../ep128emu2/ep128emu -I../ep128emu2/ep128emu/src -L../ep128emu2/ep128emu sid_conv.cpp -o sid_conv -lepcompress -lep128emu -lm -sHasználat (már nem stdin és stdout a bemenet és kimenet, tehát elvileg lehetne Windowsos verzió is):
sid_conv INFILE OUTFILE [INTFREQ [BLKSIZE]]EXOS fejléc:
- 00h, 4Fh (nem tudom, ezt már használja-e valami más is)
- tömörített adat mérete (2 byte)
- megszakítás frekvencia (2 byte)
- a zene hossza megszakításokban (3 byte)
- fenntartott, mindig 0 (7 byte)
A bemeneti file lehet tömörített formátumú is, és az első blokkban 3FFDh címen tartalmazhatja a megszakítás frekvenciát (- 50 Hz).
Elméletileg ezek mind megvannak az EP128EMU SRC folderében, csak oda kéne tenni gondolom a sid_conv.cpp-t a könyvtárba, vagy az elérési utakat bedrótozni. Egy kérdés, linux alatt hogy lehet jó futásra készen shell scriptbe ágyazva futtatni a ./sid_conv <input> outputot, ha csak úgy simán bevágtam a fájlba a 120 parancsot, és futtattam (desktopomon volt minden) , akkor az első fájlt csinálta a amíg szegmentation errort dobott, végtelenségig az első fájllal dolgozva.
Egy lehetséges megoldás (az új verziónál nem kell a < és >):
for i in *.sid ; do ./sid_conv < $i > `basename $i .sid`.m64 ; done