Previous Thread
Next Thread
Print Thread
Page 16 of 55 1 2 14 15 16 17 18 54 55
Joined: Sep 2007
Posts: 56
K
Member
Offline
Member
K
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
R
Very Senior Member
OP Offline
Very Senior Member
R
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
R
Very Senior Member
OP Offline
Very Senior Member
R
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
R
Very Senior Member
OP Offline
Very Senior Member
R
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 smirk
- 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
K
Member
Offline
Member
K
Joined: Sep 2007
Posts: 56
Originally Posted by R. Belmont
- I tried to get ADPCM interpolation going. And failed smirk

Code
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
R
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 17,215
Likes: 234
And this is why I shouldn't work on code at midnight. Thanks, ks smile

Joined: Feb 2008
Posts: 107
D
Senior Member
Offline
Senior Member
D
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
R
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 17,215
Likes: 234
a5 with kingshriek's fix:

http://rbelmont.mameworld.info/aosdk_140a5a.zip

Sounds 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
R
Senior Member
Offline
Senior Member
R
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
R
Very Senior Member
OP Offline
Very Senior Member
R
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.

Page 16 of 55 1 2 14 15 16 17 18 54 55

Moderated by  R. Belmont, Richard Bannister 

Link Copied to Clipboard
Who's Online Now
2 members (AJR, Kale), 273 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