sifadil / pcsx2-playground

Automatically exported from code.google.com/p/pcsx2-playground
2 stars 0 forks source link

Sound cut-off and out-of-sync in Devil May Cry. #33

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Sound samples are cut-off in the very beginning in Devil May Cry 1 with 
SPU2Ghz, both Public Beta and Playground Mod. 

--------------------------------------

1) It works with build 207, didn't tried latest build with reverted 
changes in counters.c

2) What steps will reproduce the problem?
1. Start new game and see the intro.

3) What is the expected output? What do you see instead?
Compare with ZeroSPU2

4) What version of the product are you using? On what operating system?
SLES_50358 CRC:7D8F539A
Both on WinXP and Vista 32bit

Original issue reported on code.google.com by eliotfur on 28 Oct 2008 at 10:20

GoogleCodeExporter commented 8 years ago
By Public Beta do you mean 1.9r2 released by gigaherz a couple months ago?  I 
just
want to make sure we're both on the same page before I make any assumptions. :)

Original comment by Jake.Stine on 28 Oct 2008 at 4:41

GoogleCodeExporter commented 8 years ago
I can't find the release number, but yes...
I tried both DLLs marked as "Public Beta" with same effects:
First DLL is dated 06 June 08 and has size 290816 bytes...
Second DLL is dated 27 July 08 and has size 295936 bytes...

When I say Intro I mean everything after the phone rings, not prerendered 
video...

*phone rings*
-Devi...
-We're clos...
-No pas...
-We're n...

and so on...

Original comment by eliotfur on 29 Oct 2008 at 8:25

GoogleCodeExporter commented 8 years ago
Try messing with those 2 .ini settings:
AutoDMA_Play_Rate_0=0
AutoDMA_Play_Rate_1=0

See if any other values help :)

Original comment by ramapcsx2 on 29 Oct 2008 at 2:11

GoogleCodeExporter commented 8 years ago
Tested values 1/1, 10/10, 60/0, 60/60, -1/-1 on Public Beta and Playground 
Mod... No 
effects... Tried several PCSX2 builds (109, 129, 148, 199, 207) with default 
values...
I'm going to test r247 to see if something fixed...

Original comment by eliotfur on 29 Oct 2008 at 2:32

GoogleCodeExporter commented 8 years ago
Ok it sounds like a definite problem in spu2ghz.  Now I just have to think of 
the
best way to troubleshoot it. :/

Original comment by Jake.Stine on 29 Oct 2008 at 2:44

GoogleCodeExporter commented 8 years ago
Actually this sounds like a very rare problem with some kind of DMA gigaherz 
tried to
fix once.
Thats why I recommended the autodma thing..

Well, its definatly a problem with audio streams. That much is clear :p

Original comment by ramapcsx2 on 29 Oct 2008 at 2:51

GoogleCodeExporter commented 8 years ago
does the sound plugin handle SPU DMA?

Original comment by cottonvibes on 29 Oct 2008 at 6:14

GoogleCodeExporter commented 8 years ago
Yeah sure :p
It wouldnt work otherwise.

Original comment by ramapcsx2 on 29 Oct 2008 at 6:49

GoogleCodeExporter commented 8 years ago
i meant does it handle the actual DMA code, or does it just get sent the 
correct 
memory information.

because i don't think the GS plugins handle anything with DMA (the DMA code is 
done 
by PCSX2)
it doesn't make sense for the plugins to handle the code.

Original comment by cottonvibes on 29 Oct 2008 at 7:26

GoogleCodeExporter commented 8 years ago
SPU2 plugin receives DMA management info via the following interfaces:

void CALLBACK SPU2readDMA4Mem(u16 *pMem, u32 size);
void CALLBACK SPU2writeDMA4Mem(u16 *pMem, u32 size);
void CALLBACK SPU2interruptDMA4();
void CALLBACK SPU2readDMA7Mem(u16* pMem, u32 size);
void CALLBACK SPU2writeDMA7Mem(u16 *pMem, u32 size);
void CALLBACK SPU2interruptDMA7();
void CALLBACK SPU2setDMABaseAddr(uptr baseaddr);

So yeah, pcsx does most of the management.  SPU just gets reads, writes, and 
interrupts.

Original comment by Jake.Stine on 29 Oct 2008 at 7:44

GoogleCodeExporter commented 8 years ago
okay i see.
i might take a look at that later to get more familiar with how pcsx2 interacts 
with 
the plugin.

Original comment by cottonvibes on 29 Oct 2008 at 8:29

GoogleCodeExporter commented 8 years ago
Since ZeroSPU2 works, my guess is that it's a bug in SPU2ghz somehow.  And it 
may not
be a DMA thing at all.  It could even be something related voice volumes 
(misread
register or ADSR bugs).  ADSR (volume slideing) in particular is a potential 
red flag
anytime something plays in ZeroSPU2 but is silence (or cut short) in SPU2ghz:
ZeroSPU2 pretty well ignores ADSR stuff.  So it's an obvious difference between 
the
two plugins.

Original comment by Jake.Stine on 29 Oct 2008 at 8:45

GoogleCodeExporter commented 8 years ago
Okay, I've tried DMC1 on r246 +SPU2Ghz r247 with same result...
In other games timing is excellent now nad sound is smooth even with low 
latencies...

Original comment by eliotfur on 30 Oct 2008 at 8:52

GoogleCodeExporter commented 8 years ago
Just want to add that it could very well be the counters (or rather iop/ee 
timing) as
well.

Original comment by ramapcsx2 on 30 Oct 2008 at 4:22

GoogleCodeExporter commented 8 years ago
It doesn't work even in earliest builds, before counters' rewriting...
Original release of PCSX2 doesn't have sound at all... :-)

Original comment by eliotfur on 31 Oct 2008 at 10:15

GoogleCodeExporter commented 8 years ago
PCSX2 r262 and SPU2GHz r264.
Problem is still there...

Original comment by eliotfur on 1 Nov 2008 at 9:06

GoogleCodeExporter commented 8 years ago
Well, more and more hints that dma/irq timing is borked a bit.
WildArms5 may be broken for the same reason.

I also noticed that every game that has the weird sounds (FF12 footsteps for 
example)
has the dma misaligned warning.. Could be related.

Original comment by ramapcsx2 on 2 Nov 2008 at 2:49

GoogleCodeExporter commented 8 years ago
rama: good find.  I'll check the code and see if mis-alignments could cause 
other
problems, or if they're being caused by problems in other areas of spu2 
emulation.

Original comment by Jake.Stine on 2 Nov 2008 at 3:03

GoogleCodeExporter commented 8 years ago

Original comment by Jake.Stine on 2 Nov 2008 at 3:04

GoogleCodeExporter commented 8 years ago
@rama: Attached is a special build that outputs a little extra information when 
those
mis-aligned DMAs occur.  I'm just curious to see what exactly is going on when 
those
misaligned DMAs happen.  Give it a whirrl and paste the console output.

Original comment by Jake.Stine on 2 Nov 2008 at 4:09

Attachments:

GoogleCodeExporter commented 8 years ago
Also, have you turned on the ADMA conlog option and see if these games use auto 
DMAs?
 I'm looking at the auto dma code right now and it's appearing very suspect to me. 
But if these games don't use ADMA then I'll keep looking elsewhere. ;)

Original comment by Jake.Stine on 2 Nov 2008 at 4:19

GoogleCodeExporter commented 8 years ago
Bingo!  I think I'm on to something here.  I fixed the audio for Soul Calibur 
3, and
considering that AutoDMA was *completely* broken, I'm betting a chocolate 
eclair that
DMC and FFXII might be fixed too.

Original comment by Jake.Stine on 2 Nov 2008 at 4:46

GoogleCodeExporter commented 8 years ago
Here is my log.
Hope it help. I have enable a few more loggin option because autodma did not 
really 
show output.

Original comment by Wagnar...@gmail.com on 2 Nov 2008 at 4:50

Attachments:

GoogleCodeExporter commented 8 years ago
@Wagnard: Thanks.  Ok, that rules out the fix I just made then since it only 
applies
to ADMAs.  I'm pretty sure the regular DMA code is solid as a rock, so I'll 
check
into those ADSR logs instead.

Original comment by Jake.Stine on 2 Nov 2008 at 4:57

GoogleCodeExporter commented 8 years ago
Im currently compiling. your last commit and gonna check it just in case it 
work.
Ill report back in a couple minutes.

Original comment by Wagnar...@gmail.com on 2 Nov 2008 at 4:58

GoogleCodeExporter commented 8 years ago
Nah it didnt work. You just lost a chocolate eclair :P

Original comment by Wagnar...@gmail.com on 2 Nov 2008 at 5:02

GoogleCodeExporter commented 8 years ago
Btw. I think pcsx2 has something broken for the audio because the intro video 
have 
some repeating song happening each 3-4 sec approx.
ITs like lets-lets rock baby.  ( he really say that)
This happen on both Zerospu2 and SPU2Ghz. so My guess its a problem on pcsx2 
directly.

Original comment by Wagnar...@gmail.com on 2 Nov 2008 at 5:07

GoogleCodeExporter commented 8 years ago
The intro video uses a separate decoder that might have bugs, yeah.
But the in-game dialog isn't an FMV, and it does work in ZeroSPU, right?

Original comment by Jake.Stine on 2 Nov 2008 at 5:11

GoogleCodeExporter commented 8 years ago
Yes it does. and its not FMV.

Original comment by Wagnar...@gmail.com on 2 Nov 2008 at 5:11

GoogleCodeExporter commented 8 years ago
Ok, just as a recap so I don't get myself confused later on:

 * ruled out ADMA, since DMC does not use it.
 * IRQ4/7 problems seem unlikely since the code is neither complex nor exhibiting any
problems in most games... and DMC does not perform unaligned DMA accesses like 
FFXII
does.
 * ADSR is potentially at fault, but I'll need to add more debugging info via a disk
log (since ADSR updates too fast and would flood the console)

Original comment by Jake.Stine on 2 Nov 2008 at 6:56

GoogleCodeExporter commented 8 years ago
You could use the FFX bleeping menu sound (I think its the same bug).
There are areas in the game with no backround music, and when you move around 
in the
menu just this single broken sound will be sampled ;)

Original comment by ramapcsx2 on 3 Nov 2008 at 10:09

GoogleCodeExporter commented 8 years ago
Btw, this is what your debug build says to FF12:
* SPU2 DMA Write > Missaligned SOURCE! Core: 0  TSA: 0x2808  TDA: 0x100000  
Size: 0x20

Original comment by ramapcsx2 on 3 Nov 2008 at 10:13

GoogleCodeExporter commented 8 years ago
Oh, whops, wrong issue :p

Original comment by ramapcsx2 on 3 Nov 2008 at 10:13

GoogleCodeExporter commented 8 years ago
Okay... In SPU2GHz r292 Intro dialogue works, but slightly out of sync...
However now it shows only black screen right after the intro using PCSX2 
r291... It 
works in r262 though... Look for errors in the changes since then...

Original comment by eliotfur on 5 Nov 2008 at 12:17

GoogleCodeExporter commented 8 years ago
Should this issue be closed or something?.. ;-)
Good work...

Original comment by eliotfur on 18 Nov 2008 at 8:59

GoogleCodeExporter commented 8 years ago
Just to confirm: it appears the sound cutoff was caused by rounding error on 
the ADSR
values.  It was the same bug that caused the PS2 logo to chop off prematurely as
well.  That was the "major" change in r292, so I have to assume it was the 
problem. :)

As for the black screen problems in r291 -- chances are it's the same problem 
as Ecco
the Dolphin in Issue 49.  Hopefully my next counters revision will fix it.  (it
really is lots better than the r291 attempt).

Original comment by Jake.Stine on 18 Nov 2008 at 9:59

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
This is'nt fix for me here. using rev 334 of the SPU2ghz

Original comment by Wagnar...@gmail.com on 20 Nov 2008 at 5:42