DSPHLE/Zelda: set COMBINED_CMD_0D flag appropriately
All relevant games other than Pikmin 1 Wii seem to always set the two dwords to zero, so previously they were ignored during command dispatch and now we still ignore them but in the right place.
This commit is contained in:
parent
116da3ab95
commit
5db9924d13
|
@ -91,30 +91,28 @@ static const std::map<u32, u32> UCODE_FLAGS = {
|
||||||
{0x56D36052, SYNC_PER_FRAME | NO_CMD_0D},
|
{0x56D36052, SYNC_PER_FRAME | NO_CMD_0D},
|
||||||
// The Legend of Zelda: The Wind Waker.
|
// The Legend of Zelda: The Wind Waker.
|
||||||
{0x86840740, 0},
|
{0x86840740, 0},
|
||||||
|
// The Legend of Zelda: Collector's Edition (except Wind Waker).
|
||||||
// The Legend of Zelda: Four Swords Adventures.
|
// The Legend of Zelda: Four Swords Adventures.
|
||||||
// Mario Kart: Double Dash.
|
// Mario Kart: Double Dash.
|
||||||
// Pikmin 2 GC NTSC.
|
// Pikmin 2 GC NTSC.
|
||||||
{0x2FCDF1EC, MAKE_DOLBY_LOUDER},
|
{0x2FCDF1EC, MAKE_DOLBY_LOUDER},
|
||||||
// The Legend of Zelda: Twilight Princess / GC.
|
// The Legend of Zelda: Twilight Princess / GC.
|
||||||
// Donkey Kong Jungle Beat.
|
// Donkey Kong Jungle Beat GC.
|
||||||
//
|
//
|
||||||
// TODO: These do additional filtering at frame rendering time. We don't
|
// TODO: These do additional filtering at frame rendering time. We don't
|
||||||
// implement this yet.
|
// implement this yet.
|
||||||
{0x6CA33A6D, MAKE_DOLBY_LOUDER},
|
{0x6CA33A6D, MAKE_DOLBY_LOUDER | COMBINED_CMD_0D},
|
||||||
// The Legend of Zelda: Twilight Princess / Wii.
|
// The Legend of Zelda: Twilight Princess / Wii.
|
||||||
{0x6C3F6F94, NO_ARAM | MAKE_DOLBY_LOUDER},
|
// Link's Crossbow Training.
|
||||||
|
{0x6C3F6F94, NO_ARAM | MAKE_DOLBY_LOUDER | COMBINED_CMD_0D},
|
||||||
// Super Mario Galaxy.
|
// Super Mario Galaxy.
|
||||||
// Super Mario Galaxy 2.
|
// Super Mario Galaxy 2.
|
||||||
{0xD643001F, NO_ARAM | MAKE_DOLBY_LOUDER},
|
// Donkey Kong Jungle Beat Wii.
|
||||||
|
{0xD643001F, NO_ARAM | MAKE_DOLBY_LOUDER | COMBINED_CMD_0D},
|
||||||
// Pikmin 1 New Play Control.
|
// Pikmin 1 New Play Control.
|
||||||
{0xB7EB9A9C, NO_ARAM | MAKE_DOLBY_LOUDER | COMBINED_CMD_0D},
|
{0xB7EB9A9C, NO_ARAM | MAKE_DOLBY_LOUDER | COMBINED_CMD_0D},
|
||||||
// Pikmin 2 New Play Control.
|
// Pikmin 2 New Play Control.
|
||||||
{0xEAEB38CC, NO_ARAM | MAKE_DOLBY_LOUDER},
|
{0xEAEB38CC, NO_ARAM | MAKE_DOLBY_LOUDER | COMBINED_CMD_0D},
|
||||||
|
|
||||||
// TODO: Other games that use this UCode (exhaustive list):
|
|
||||||
// * Link's Crossbow Training
|
|
||||||
// * The Legend of Zelda: Collector's Edition
|
|
||||||
// * The Legend of Zelda: Twilight Princess / Wii (type ????, CRC ????)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ZeldaUCode::ZeldaUCode(DSPHLE* dsphle, u32 crc)
|
ZeldaUCode::ZeldaUCode(DSPHLE* dsphle, u32 crc)
|
||||||
|
@ -518,6 +516,7 @@ void ZeldaUCode::RunPendingCommands()
|
||||||
{
|
{
|
||||||
// Ignore the two values which are equivalent to arguments passed to
|
// Ignore the two values which are equivalent to arguments passed to
|
||||||
// command 0D.
|
// command 0D.
|
||||||
|
// Used by Pikmin 1 Wii.
|
||||||
Read32();
|
Read32();
|
||||||
Read32();
|
Read32();
|
||||||
}
|
}
|
||||||
|
@ -559,6 +558,7 @@ void ZeldaUCode::RunPendingCommands()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Command 0D: TODO: find a name and implement.
|
// Command 0D: TODO: find a name and implement.
|
||||||
|
// Used by Wind Waker.
|
||||||
case 0x0D:
|
case 0x0D:
|
||||||
if (m_flags & NO_CMD_0D)
|
if (m_flags & NO_CMD_0D)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue