More WaveTable (ucode case 0x4,0x7,0xb,0xc) work (thanks for noticing they're the same, LordMark!)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4292 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
XTra.KrazzY
2009-09-17 12:09:10 +00:00
parent dbf68d9b0d
commit 0ebb7376c8
4 changed files with 22 additions and 10 deletions

View File

@ -307,6 +307,7 @@ private:
void RenderSynth_Constant(ZeldaVoicePB &PB, s32* _Buffer, int _Size);
void RenderSynth_RectWave(ZeldaVoicePB &PB, s32* _Buffer, int _Size);
void RenderSynth_SawWave(ZeldaVoicePB &PB, s32* _Buffer, int _Size);
void RenderSynth_WaveTable(ZeldaVoicePB &PB, s32* _Buffer, int _Size);
void RenderVoice_PCM8(ZeldaVoicePB& PB, s16* _Buffer, int _Size);
void RenderVoice_PCM16(ZeldaVoicePB& PB, s16* _Buffer, int _Size);

View File

@ -117,4 +117,12 @@ void CUCode_Zelda::RenderSynth_Constant(ZeldaVoicePB &PB, s32* _Buffer, int _Siz
}
void CUCode_Zelda::RenderSynth_WaveTable(ZeldaVoicePB &PB, s32* _Buffer, int _Size)
{
WARN_LOG(DSPHLE, "Not synthesizing un-REd format 0x%04x", PB.Format);
// TODO: Header, footer
//for (int i = 0; i < _Size; i++)
//_Buffer[i++] = (s32)PB.RatioInt;
}

View File

@ -531,12 +531,15 @@ void CUCode_Zelda::RenderAddVoice(ZeldaVoicePB &PB, s32* _LeftBuffer, s32* _Righ
break;
// These are more "synth" formats - square wave, saw wave etc.
case 0x0002: WARN_LOG(DSPHLE, "PB Format 0x02 used!");
case 0x0002:
WARN_LOG(DSPHLE, "PB Format 0x02 used!");
break;
case 0x0004: // Example: Big Pikmin onion mothership landing/building a bridge in Pikmin
case 0x0007: // Example: "success" SFX in Pikmin 1, Pikmin 2 in a cave, not sure what sound it is.
case 0x000b: // Example: SFX in area selection menu in Pikmin
case 0x000c: // Example: beam of death/yellow force-field in Temple of the Gods, ZWW
WARN_LOG(DSPHLE, "Not synthesizing unreversed-engineerd format 0x%04x", PB.Format);
RenderSynth_WaveTable(PB, m_VoiceBuffer, _Size);
break;
default:
@ -753,4 +756,4 @@ void CUCode_Zelda::MixAdd(short *_Buffer, int _Size)
_Buffer += 2;
}
m_csMix.Leave();
}
}