|
Joined: Sep 2007
Posts: 56
Member
|
Member
Joined: Sep 2007
Posts: 56 |
R. Belmont: I haven't done anything with the AICA since my last patch, so feel free to work on it. I do have a (preliminary) Gunbird 2 rip, though, in case anyone is interested. I'm not sure if the rip is correct, however, since IMXL/ISEL/DISDL/DIPAN are constant (0/0/F/0) for all key-ons which would indicate the game's music is mono (can this actually be the case?). I went ahead and ripped all sequences (MSB) and one-shot banks (OSB). Interestingly, Highly Theoretical fails to play any of the OSB tracks, but AOSDK handles them just fine. http://www.sendspace.com/file/evlrsa
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
The arcade Gunbird 2 appears to be mono too, even though it's sequenced on a chip that's quite capable of good stereo (YMF278B, which is essentially the SCSP's father).
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
Mmm, nice. Doing type 2 as DK suggests does improve things quite a bit. Gonna try and get interpolation going with ADPCM now.
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
New SDK: http://rbelmont.mameworld.info/aosdk_140a5.zip- Fixed ADPCM looping as per Deunan. Sakura Taisen 4 is distortion-free now, but ST3 still has some (possibly due to other causes?) - I tried to get ADPCM interpolation going. And failed - Fixed some Skies of Arcadia songs from crashing - they were setting an active slot playing 16-bit samples' control register so that PCMS = 2, and thus adbase was NULL. Not sure exactly what real h/w would do here since neither KEYONEX or KEYONB are set in the new CTRL value. - Ideas welcome on whatever we're still missing, notably the filter.
|
|
|
|
Joined: Sep 2007
Posts: 56
Member
|
Member
Joined: Sep 2007
Posts: 56 |
- I tried to get ADPCM interpolation going. And failed
diff -Nru aosdk_base/eng_dsf/aica.c aosdk/eng_dsf/aica.c
--- aosdk_base/eng_dsf/aica.c 2008-02-14 00:03:50.000000000 -0800
+++ aosdk/eng_dsf/aica.c 2008-02-13 21:30:06.000000000 -0800
@@ -1037,15 +1037,14 @@
slot->nxtbase = base;
slot->nxtstep = curstep;
- s=(slot->cur_sample);
- // s=(int) slot->cur_sample*((1<<SHIFT)-fpart)+(int) slot->nxt_sample*fpart;
+ s=(int) slot->cur_sample*((1<<SHIFT)-fpart)+(int) slot->nxt_sample*fpart;
}
else
{
s = 0;
}
- sample=s;
+ sample=s>>SHIFT;
}
slot->prv_addr=slot->cur_addr;
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
And this is why I shouldn't work on code at midnight. Thanks, ks
|
|
|
|
Joined: Feb 2008
Posts: 107
Senior Member
|
Senior Member
Joined: Feb 2008
Posts: 107 |
Hmm... so basically you keep two ADPCM states per channel, one for main sample and one for interpolation? Interesting. There's a limit on pitch changes (vs sound's own) when it comes to ADPCM, but what happens if you're standing on LEA-1 and steps_to_go is greater than 1, say 2 for example? Won't it read LEA-1 (correct) and then LEA sample/garbage (that's past loop end now) and contaminate decoder state? This is a very rare case, but still...
I don't know what happens when you change sample type on active channel - I could try to test that. I'm kinda busy now, away from home/town much, so it will have to wait a bit on the TO-DO list. My code will happily switch but ADPCM state will be undefined as it's preset on KEY ON. What AEG phase/level was that channel when the switch happened?
If there are any channels playing ADPCM wrong, try to catch what sample type it is (2/3) and what are LSA and LEA. I can't find good test cases where LSA > 0.
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
a5 with kingshriek's fix: http://rbelmont.mameworld.info/aosdk_140a5a.zipSounds very nice. I could listen to Skies of Arcadia all day on it now :-) BTW, KS, how are we doing vs. HE on the problems you were having with some of your rips? PS: I'll post new AO builds with DSF support later today. Richard, if you want to get a head start, just use the eng_dsf from the aosdk.
|
|
|
|
Joined: Dec 1969
Posts: 920 Likes: 3
Senior Member
|
Senior Member
Joined: Dec 1969
Posts: 920 Likes: 3 |
Hmmm... sounds a little screwy on my machine. Has this been de-endianed yet?
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
OP
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
The 16-bit samples may need to be de-endianed. I can't think of anywhere else that should be a problem though.
|
|
|
2 members (AJR, Kale),
273
guests, and
1
robot. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,923
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|