23 November 2015, 23:53 | #1 |
Registered User
|
Ripping DKK IFF-SMUS files
Heyho folks!
I'm just busy ripping DKK songs. They're IFF-SMUS, should be easy, right? No it isn't. Because of that simple fact: I wrote small assembly program to extract DKK:sound/soundData files. This format is pretty simple: ULONG name_chunk; // NAME ULONG size; // size+1 && 1 UBYTE *formData; // FORM....CHNK ULONG next_name_chunk ULONG next_size UBYTE *formNextData ... and so on, so it's just a collection of IFF files which my assembly program wrote to RAM: That wouldn't be a problem, if the files weren't completely out of date. I'm able to load the SMUS (e.g. sorrow.smu, victory.smu) within DeluxeMusic, but it doesn't recognize samples. I also tried almost any program on TOSEC in Apps for that (no luck). So I changed instrument samples by default DeluxeMusic samples with somewhat hearable result but still not original. Then I decided to use orignal "odd" sample. However the in3 file mentioning odd has a fasttrem IFF-envelope. Anyone here, has an idea on how to decode that properly? It seems like a VERY, VERY old IFF-standard. in3 referring to odd has: FORM....INSTPTCH....VLUM....SAMP Anyone has an idea? |
23 November 2015, 23:55 | #2 |
Registered User
|
Oh, forgot to mention: DKK = Death Knights of Krynn
|
23 November 2015, 23:58 | #3 |
Registered User
|
Here's Devpac 3.01 program for extract (copy DKK:sound/soundData to RAM:soundData before execution):
include "exec/exec_lib.i" include "exec/memory.i" include "libraries/dos.i" BUFSIZE equ 512 FILE_BUFSIZE equ 256 move.l #BUFSIZE,d0 moveq #MEMF_PUBLIC,d1 move.l d0,d5 move.l 4.w,a6 jsr _LVOAllocMem(a6) tst.l d0 beq NoMem move.l d0,a2 moveq #0,d0 lea DOSName(pc),a1 jsr _LVOOpenLibrary(a6) tst.l d0 beq NoDOS lea -(FILE_BUFSIZE+4)(sp),sp move.l sp,a3 move.l a3,a4 move.l #"RAM:",(a3)+ lea ChunkNames(pc),a5 move.l d0,a6 lea FileName(pc),a0 move.l a0,d1 move.l #MODE_OLDFILE,d2 jsr _LVOOpen(a6) move.l d0,d6 beq LoopDone Loop: move.l d6,d1 move.l a2,d2 moveq #8,d3 jsr _LVORead(a6) move.l d6,d1 movem.l (a5),d2/d4 cmp.l d3,d0 bne.s LoopDone cmp.l (a2),d2 bne.s LoopDone move.l a3,d2 move.l 4(a2),d3 addq.l #1,d3 bclr #0,d3 jsr _LVORead(a6) cmp.l d3,d0 bne.s LoopDone move.l a4,d1 move.l #MODE_NEWFILE,d2 jsr _LVOOpen(a6) move.l d0,d7 beq.s LoopDone move.l d6,d1 move.l a2,d2 moveq #8,d3 jsr _LVORead(a6) cmp.l d3,d0 bne.s LoopErr cmp.l (a2),d4 bne.s LoopErr move.l d7,d1 jsr _LVOWrite(a6) cmp.l d3,d0 bne.s LoopErr move.l 4(a2),d4 BufLoop: move.l d5,d3 cmp.l d4,d3 bls.s BufLoopLast move.l d4,d3 BufLoopLast: move.l d6,d1 jsr _LVORead(a6) cmp.l d3,d0 bne.s LoopErr move.l d7,d1 jsr _LVOWrite(a6) cmp.l d3,d0 bne.s LoopErr sub.l d5,d4 bhi.s BufLoop move.l d7,d1 jsr _LVOClose(a6) bra Loop cnop 0,4 LoopErr: move.l d7,d1 jsr _LVOClose(a6) LoopDone: move.l d6,d1 jsr _LVOClose(a6) move.l a6,a1 move.l 4.w,a6 lea FILE_BUFSIZE+4(sp),sp jsr _LVOCloseLibrary(a6) NoDOS: move.l a2,a1 move.l d5,d0 jsr _LVOFreeMem(a6) NoMem: moveq #0,d0 rts cnop 0,4 ChunkNames: dc.b 'NAMEFORM' FileName: dc.b 'RAM:soundData',0 DOSName: dc.b 'dos.library',0 |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
converting pc pictures to iff or ilbm files | locksmith | Amiga scene | 12 | 14 September 2015 15:54 |
Sonix SMUS files to MOD converter? | quahappy | request.Music | 4 | 14 July 2015 22:14 |
SMUS Files in DeliPlayer Do Not Play | Doommaster1994 | request.Music | 30 | 11 December 2012 15:05 |
Aren't DPaintIV files IFF? | Morbane | support.Amiga Forever | 19 | 27 November 2011 12:29 |
Create an ADF slideshow with IFF files. | Vollldo | request.Demos | 13 | 21 September 2011 19:29 |
|
|