Previous Thread
Next Thread
Print Thread
Page 35 of 55 1 2 33 34 35 36 37 54 55
Re: AO SDK release 1.4.4 available [Re: R. Belmont] #45987 11/02/08 01:20 AM
Joined: Nov 2003
Posts: 459
K
Knurek Offline
Senior Member
Offline
Senior Member
K
Joined: Nov 2003
Posts: 459
Three new DSF rips today:

Guilty Gear X (2000)(Arc System Works, Sammy)
Sega GT (2000)(Tose, Sega)
Takoron (Naomi)(2007)(Compile Heart)

GGX and Sega GT are mostly streamed (Sega GT still has roughly 20 minutes of Sega Arcade Music (TM) though, so enjoy).

Both Guilty Gear X and Takoron use the AM2 driver, and both don't really work in either in_aosdk (bad tempo) and current AOSDK compile (Takoron needs AEG code tinkered with, GGX crashes the driver few seconds in each song).

http://dsf.hcs64.com/

Re: AO SDK release 1.4.4 available [Re: Knurek] #45990 11/02/08 04:57 AM
Joined: Sep 2007
Posts: 56
K
kingshriek Offline
Member
Offline
Member
K
Joined: Sep 2007
Posts: 56
To be more precise, GGX isn't actually crashing the driver but instead is keying on looped samples with LSA > LEA and this is being mishandled.

Code:
StartSlot[0E]:   SSCTL 0 SA 04EFEA LSA FFEC LEA 0008 PCMS 2 LPCTL 1
                 AR 1F D1R 00 D2R 00 RR 1F DL 00 KRS 0 LPSLNK 0
                 TL 0C OCT 0 FNS 000
                 LFORE 0 LFOF 00 ALFOWS 0 ALFOS 0 PLFOWS 0 PLFOS 0
                 IMXL 0 ISEL 0 DISDL C DIPAN 17


I'm not exactly what the hardware does in this case, but it would make the most sense if LEA is only processed after LSA is reached, and for this to work, the sample counter needs to rollover upon reaching 0x10000.

AOSDK isn't applying this rollover, and in this particular case, havoc ensues with the steps_to_go part of the ADPCM decoder as this value gets very large and contiunes to increase, unbounded. The result of this is the sound processing spends most of it's time chasing this everly increasing steps_to_go value and is unable to update the sound buffer at the required 44.1 kHz. And so, the end user then hears something along the likes of a broken record.

Re: AO SDK release 1.4.4 available [Re: kingshriek] #45991 11/02/08 05:10 AM
Joined: Mar 2001
Posts: 16,521
R
R. Belmont Offline OP
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,521
That makes sense. I'll take a look.

Re: AO SDK release 1.4.4 available [Re: R. Belmont] #46006 11/02/08 06:04 PM
Joined: Nov 2003
Posts: 459
K
Knurek Offline
Senior Member
Offline
Senior Member
K
Joined: Nov 2003
Posts: 459
New DSF rips for today:

Quiz Keitai Q-Mode (Naomi)(2002)(Amedio, Taito)
Slashout (Naomi)(2000)(Sega)
Spikers Battle (Naomi)(2001)(Sega)
Sports Jam (Naomi)(2001)(Sega)
Street Fighter Zero 3 Upper (Naomi)(2001)(Capcom)
Super Major League (Naomi)(2001)(Sega)
Super Shanghai 2005 (Naomi)(2005)(Star Fish)
Virtua Athlete 2000 (2000)(Sega)
Virtua Golf (Naomi)(2001)(Sega)

Re: AO SDK release 1.4.4 available [Re: Knurek] #46012 11/02/08 09:35 PM
Joined: Feb 2008
Posts: 107
D
Deunan Knute Offline
Senior Member
Offline
Senior Member
D
Joined: Feb 2008
Posts: 107
...no. LSA > LEA = all hell breaks loose.
Well, it's maybe not that bad but it's pretty much undefined behaviour.

I think it's a bug. Could be ARM core (sigh) or a broken driver.
1) I see that happening on my code as well (still works though)
2) Even if a channel is started like this, it will be stopped moments later (as in less than a second, much less)
3) Quite frankly loop like this makes no sense smile

On hardware this setting is simply invalid. This is what happens on simple 400Hz test tone (44100 samples, 16-bit sine wave):
1) The loop goes fine once
2) There is a brief period of silence (1/4 a second give or take)
3) Squeaking starts :P

Hard to say why 3) sounds like it does, but since my program zeroes all AICA memory it could be the sine wave itself but played at much higher speed, along with the empty part of memory up to 0xffff (realative to SA). This is as good guess as any smile
Anyway, once in this mode CA reports pretty much random values. Maybe because of how fast it goes. This is consistent with the fact that "loop jump" flag gets set shortly after it's read (and thus reset). But it does reset so the loop still works.

Note: CA does not fall within the 0xFFEC -> 0x(1)0008 range, it spans entire 0xffff range. My code will keep the loop going but will limit the range and will not change speed. I say it's invalid setting so I'm not keen on trying very hard to match hardware here...

EDIT: One more thing. GGX tune plays fine (?) both in my player and as AICA RAM dump on DC. This is most likely due to channels with invalid valued being promptly turned off, so not much sound is produced anyway. Or maybe a real ARM is not doing that to AICA. Anyway, it works.

Last edited by Deunan Knute; 11/02/08 09:38 PM.
Re: AO SDK release 1.4.4 available [Re: Deunan Knute] #46013 11/02/08 09:50 PM
Joined: Nov 2003
Posts: 459
K
Knurek Offline
Senior Member
Offline
Senior Member
K
Joined: Nov 2003
Posts: 459
If you're hearing nice, instrumental rock, then GGX plays fine.

Re: AO SDK release 1.4.4 available [Re: Knurek] #46014 11/02/08 09:55 PM
Joined: Mar 2001
Posts: 16,521
R
R. Belmont Offline OP
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,521
Thanks for testing on hardware, DK. That's useful to know. I can try with a different ARM core and see if weird LSA/LEA values are also written.

Update: MAME's ARM core writes identical wacky LSA/LEA values. I changed my AICA so that on keyon if LSA > LEA it sets LEA to 0xffff and that seems to work for the Guilty Gear X tracks even if it's not what actually happens smile

Update 2: I hacked up the AEG monitor as Deunan recommended (scaling the result to 0-959) and both Takoron and the VF3 test rip seem to play properly now.

Last edited by R. Belmont; 11/02/08 10:34 PM.
Re: AO SDK release 1.4.5 available [Re: R. Belmont] #46015 11/02/08 10:46 PM
Joined: Mar 2001
Posts: 16,521
R
R. Belmont Offline OP
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,521
AOSDK 1.4.5 is posted. This fixes Guilty Gear X, Takaron, and probably other things.

Re: AO SDK release 1.4.5 available [Re: R. Belmont] #46017 11/02/08 11:06 PM
Joined: Mar 2001
Posts: 16,521
R
R. Belmont Offline OP
Very Senior Member
OP Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,521
Incidentally, Slashout_019_50.dsf and several of Knurek's other most recent rips are keying on voices with very low SA (0x001a6c, for instance) and thus "playing" the ARM7 code and data (which unsurprisingly sounds like gibberish). I'm guessing ripping the AM2 driver isn't quite perfected yet? smile

Re: AO SDK release 1.4.5 available [Re: R. Belmont] #46023 11/03/08 01:07 AM
Joined: Feb 2008
Posts: 107
D
Deunan Knute Offline
Senior Member
Offline
Senior Member
D
Joined: Feb 2008
Posts: 107
Just FYI some Dreamcast games make use of AEG monitoring (and in strange places too), that hack might not work for them. But there's only a handful of those.

Slashout_019_50.dsf works for me. Not a single SA below 0x2000 (and I don't hear any strange noises either). Maybe it's another case of Dreamcast 2MB mask/limit being applied somewhere?

Page 35 of 55 1 2 33 34 35 36 37 54 55

Moderated by  R. Belmont, Richard Bannister 

Who's Online Now
3 registered members (Bavarese, 2 invisible), 75 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
ShoutChat Box
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,782
Posts115,558
Members4,908
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.3