Previous Thread
Next Thread
Print Thread
Page 40 of 55 1 2 38 39 40 41 42 54 55
Joined: Nov 2008
Posts: 39
E
Member
Offline
Member
E
Joined: Nov 2008
Posts: 39
Hi Knurek,

Yeah, I made an equivalent bash script which did the appending, but I'm not sure it's working right.

However, I found a .adx file in the DiGi Charat archive which vgmstream converted cleanly to a .wav file, so it looks good.

Incidentally, while looking for streaming music to test, I found another music player called XBMC which works in Linux, Windows, OS X and XBox, and includes vgmstream among a horde of other vgm plugins (but not AO SDK it seems). Looks nice.

Joined: Nov 2003
Posts: 459
K
Senior Member
Offline
Senior Member
K
Joined: Nov 2003
Posts: 459
If you're talking about a little skip @ looppoint, then yes, the files have that on Windows too.

And VGMStream supports so many formats you shouldn't have a problem finding some files for it if your game collection has more than one entry. smile

Joined: Mar 2001
Posts: 17,215
Likes: 234
R
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 17,215
Likes: 234
I had no idea, I thought it just played ADX varients smile

Joined: Nov 2008
Posts: 39
E
Member
Offline
Member
E
Joined: Nov 2008
Posts: 39
Originally Posted by Knurek
If you're talking about a little skip @ looppoint, then yes, the files have that on Windows too.

And VGMStream supports so many formats you shouldn't have a problem finding some files for it if your game collection has more than one entry. smile
No, I mean it dies on the files, printing "failed opening IniD_01.spsd" or similar for each one; maybe looking for header magic which isn't there. Looks like there's no debugging or even higher-verbosity mode in vgmstream, so I'll have to go in and throw printfs about the place - since I'm ignorant here I've no intuition about how to use these tools properly. crazy

Joined: Nov 2003
Posts: 459
K
Senior Member
Offline
Senior Member
K
Joined: Nov 2003
Posts: 459
Rename to processed files to GENH, it should work then (SPSD is supported only in SVN test compiles).

Joined: Nov 2008
Posts: 39
E
Member
Offline
Member
E
Joined: Nov 2008
Posts: 39
Hi Knurek, I tried that as well, both GENH and genh in case of case-specific code. Unless I understand your .bat file wrong - mine does:
Code
for i in 1 2 3 4 5 6 7 8 9
do
	cat IniD_0$i.GENH IniD_0$i.spsd > IniD0$i.spsd.new
	mv IniD0$i.spsd.new IniD0$i.spsd
done
Since there was no output file specified in your "copy /b ...GENH + ...SPSD" I tried both ways, but vgmstream isn't happy. I wish it would give a better error message (at least I code grep a return code in the source) shocked

Joined: Nov 2003
Posts: 459
K
Senior Member
Offline
Senior Member
K
Joined: Nov 2003
Posts: 459
Hmm, unless cat needs some switch to process files in binary mode(like windows copy does), everything seems to be in order.

Looking at the source of the public version, it doesn't have Yamaha ADPCM GENH support added yet, so that's probably the problem.

Joined: Feb 2008
Posts: 107
D
Senior Member
Offline
Senior Member
D
Joined: Feb 2008
Posts: 107
Copy with no explict output will append all files to the first one. Try this:
Code
for i in 1 2 3 4 5 6 7 8 9
do
	cat IniD_0$i.spsd >> IniD_0$i.GENH
done

Now, back to the FEG business. Envelope part is rather easy - there are some things I'm not sure of but this can be tested once it actually works. And it doesn't because the filter part is beyond my skills I'm afraid. This from Neil's doc:
Quote
out = f * in + (1.0 - f + q) * prev_out - q * prev_prev_out

Where f and q are coefficients. Exactly how f and q are computed, I'm still
not 100% sure. I have a fairly good idea for f:

f = (((filtervalue & 0xFF) | 0x100) << 4) >> ((filtervalue>>8)^0x1F)

Where filtervalue is the filter envelope level, and f becomes a linear value
in the range of 0x0000 (0.0) to 0x1FFF (almost 1.0).

I'm less certain about q. For now, I intend to simply use the Q register
value, where 0x00=0.0 and 0x20=1.0 (max is 0x1F).

First of all, the equation is wrong. If it was like (1.0 - (f + q)) it'd make more sense, but that's still no good. Most of the result comes from f * in part - if the f is too big it won't do much filtering. If it's too small it will all but mute that channel. Since it's only 13 bits I think that ((filtervalue>>8)^0x1F) is a bit of overkill (shifts up to 31 bits).

In short: I'm lost. I've said it before that signal processing is not my forte - I don't really get the math behind IIR filters. I've tried some random changes, alas only ended up with unstable vibrato or noise generators smile Any ideas?

Joined: Nov 2008
Posts: 39
E
Member
Offline
Member
E
Joined: Nov 2008
Posts: 39
Originally Posted by Knurek
Looking at the source of the public version, it doesn't have Yamaha ADPCM GENH support added yet, so that's probably the problem.
Thanks, you were spot on - I checked out and rebuilt the latest revision from svn it worked first time. smile Great sound too.

Joined: Nov 2003
Posts: 459
K
Senior Member
Offline
Senior Member
K
Joined: Nov 2003
Posts: 459
Pity the third one didn't get made.

Shenmue II (2001)(Sega) set available:

http://dsf.hcs64.com/


Page 40 of 55 1 2 38 39 40 41 42 54 55

Moderated by  R. Belmont, Richard Bannister 

Link Copied to Clipboard
Who's Online Now
5 members (Dodg, yugffuts, judge, AJR, Vag), 289 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,320
Posts121,923
Members5,074
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com