Zelda HLE: Add support for the Pikmin 1 NTSC version of the UCode.
This commit is contained in:
parent
a8810e8778
commit
2e72c11025
|
@ -58,6 +58,7 @@ UCodeInterface* UCodeFactory(u32 crc, DSPHLE* dsphle, bool wii)
|
||||||
case 0x6ba3b3ea: // GC IPL - PAL
|
case 0x6ba3b3ea: // GC IPL - PAL
|
||||||
case 0x24b22038: // GC IPL - US
|
case 0x24b22038: // GC IPL - US
|
||||||
case 0x2fcdf1ec: // Zelda FSA - US
|
case 0x2fcdf1ec: // Zelda FSA - US
|
||||||
|
case 0x4be6a5cb: // Pikmin 1 GC - US
|
||||||
return new ZeldaUCode(dsphle, crc);
|
return new ZeldaUCode(dsphle, crc);
|
||||||
|
|
||||||
case 0x2ea36ce6: // Some Wii demos
|
case 0x2ea36ce6: // Some Wii demos
|
||||||
|
|
|
@ -43,6 +43,8 @@ static const std::map<u32, u32> UCODE_FLAGS = {
|
||||||
VOLUME_EXPLICIT_STEP },
|
VOLUME_EXPLICIT_STEP },
|
||||||
// GameCube IPL/BIOS, PAL.
|
// GameCube IPL/BIOS, PAL.
|
||||||
{ 0x6BA3B3EA, LIGHT_PROTOCOL | FOUR_MIXING_DESTS },
|
{ 0x6BA3B3EA, LIGHT_PROTOCOL | FOUR_MIXING_DESTS },
|
||||||
|
// Pikmin 1 GC NTSC.
|
||||||
|
{ 0x4BE6A5CB, LIGHT_PROTOCOL },
|
||||||
// The Legend of Zelda: The Wind Waker.
|
// The Legend of Zelda: The Wind Waker.
|
||||||
{ 0x86840740, 0 },
|
{ 0x86840740, 0 },
|
||||||
// The Legend of Zelda: Four Swords Adventure.
|
// The Legend of Zelda: Four Swords Adventure.
|
||||||
|
@ -945,6 +947,7 @@ ZeldaAudioRenderer::MixingBuffer* ZeldaAudioRenderer::BufferForID(u16 buffer_id)
|
||||||
case 0x0E20: return &m_buf_unk1_reverb;
|
case 0x0E20: return &m_buf_unk1_reverb;
|
||||||
case 0x09A0: return &m_buf_unk0; // Used by the GC IPL as a reverb dest.
|
case 0x09A0: return &m_buf_unk0; // Used by the GC IPL as a reverb dest.
|
||||||
case 0x0FA0: return &m_buf_unk1; // Used by the GC IPL as a mixing dest.
|
case 0x0FA0: return &m_buf_unk1; // Used by the GC IPL as a mixing dest.
|
||||||
|
case 0x0B00: return &m_buf_unk2; // Used by Pikmin 1 as a mixing dest.
|
||||||
default: return nullptr;
|
default: return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1592,6 +1595,7 @@ void ZeldaAudioRenderer::DoState(PointerWrap& p)
|
||||||
p.Do(m_buf_unk1_reverb);
|
p.Do(m_buf_unk1_reverb);
|
||||||
p.Do(m_buf_unk0);
|
p.Do(m_buf_unk0);
|
||||||
p.Do(m_buf_unk1);
|
p.Do(m_buf_unk1);
|
||||||
|
p.Do(m_buf_unk2);
|
||||||
|
|
||||||
p.Do(m_resampling_coeffs);
|
p.Do(m_resampling_coeffs);
|
||||||
p.Do(m_const_patterns);
|
p.Do(m_const_patterns);
|
||||||
|
|
|
@ -119,6 +119,7 @@ private:
|
||||||
MixingBuffer m_buf_unk1_reverb{};
|
MixingBuffer m_buf_unk1_reverb{};
|
||||||
MixingBuffer m_buf_unk0{};
|
MixingBuffer m_buf_unk0{};
|
||||||
MixingBuffer m_buf_unk1{};
|
MixingBuffer m_buf_unk1{};
|
||||||
|
MixingBuffer m_buf_unk2{};
|
||||||
|
|
||||||
// Maps a buffer "ID" (really, their address in the DSP DRAM...) to our
|
// Maps a buffer "ID" (really, their address in the DSP DRAM...) to our
|
||||||
// buffers. Returns nullptr if no match is found.
|
// buffers. Returns nullptr if no match is found.
|
||||||
|
|
Loading…
Reference in New Issue