Re-implement BIOS SoundBias function more correctly. Get rid of SPU_ReadLong.
(is the bias feature really used by many games anyway? I don't think so)
This commit is contained in:
parent
1fcd48722a
commit
d8578f1f58
|
@ -515,15 +515,6 @@ void SPU_struct::KeyOn(int channel)
|
|||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
u32 SPU_ReadLong(u32 addr)
|
||||
{
|
||||
addr &= 0xFFF;
|
||||
|
||||
return T1ReadLong(MMU.ARM7_REG, addr);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void SPU_struct::WriteByte(u32 addr, u8 val)
|
||||
{
|
||||
channel_struct &thischan=channels[(addr >> 4) & 0xF];
|
||||
|
|
|
@ -139,7 +139,6 @@ void SPU_KeyOn(int channel);
|
|||
void SPU_WriteByte(u32 addr, u8 val);
|
||||
void SPU_WriteWord(u32 addr, u16 val);
|
||||
void SPU_WriteLong(u32 addr, u32 val);
|
||||
u32 SPU_ReadLong(u32 addr);
|
||||
void SPU_Emulate_core(void);
|
||||
void SPU_Emulate_user(void);
|
||||
|
||||
|
|
|
@ -1049,12 +1049,12 @@ TEMPLATE static u32 isDebugger()
|
|||
|
||||
TEMPLATE static u32 SoundBias()
|
||||
{
|
||||
u32 current = SPU_ReadLong(0x4000504);
|
||||
if (cpu->R[0] > current)
|
||||
SPU_WriteLong(0x4000504, current + 0x1);
|
||||
else
|
||||
SPU_WriteLong(0x4000504, current - 0x1);
|
||||
return cpu->R[1];
|
||||
u32 curBias = _MMU_read32<ARMCPU_ARM7>(0x04000504);
|
||||
u32 newBias = (curBias == 0) ? 0x000:0x200;
|
||||
u32 delay = (newBias > curBias) ? (newBias-curBias) : (curBias-newBias);
|
||||
|
||||
_MMU_write32<ARMCPU_ARM7>(0x04000504, newBias);
|
||||
return cpu->R[1] * delay;
|
||||
}
|
||||
|
||||
TEMPLATE static u32 getBootProcs()
|
||||
|
|
Loading…
Reference in New Issue