summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2012-11-16 07:51:19 +0100
committerPierre Bourdon <delroth@gmail.com>2012-11-16 07:51:19 +0100
commitc8b2ba1bc6086f9ac954c84b39bbd62ac582000d (patch)
tree6f14d268260d297f7c4fd47c7a84fd0398a9ee64 /Source
parent5a2d8661d7113ed2fd1c51d5f4e10b5ce385459a (diff)
Implement the MORE command (0D) used to read more commands from the CPU
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.cpp14
-rw-r--r--Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.h2
2 files changed, 12 insertions, 4 deletions
diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.cpp b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.cpp
index a7e9c561f0..ccb1c25661 100644
--- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.cpp
+++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.cpp
@@ -79,6 +79,7 @@ void CUCode_NewAX::HandleCommandList()
// Temp variables for addresses computation
u16 addr_hi, addr_lo;
u16 addr2_hi, addr2_lo;
+ u16 size;
u32 pb_addr = 0;
@@ -90,8 +91,7 @@ void CUCode_NewAX::HandleCommandList()
switch (cmd)
{
-
- // A lot of these commands are unknown, or unused in this AX HLE.
+ // Some of these commands are unknown, or unused in this AX HLE.
// We still need to skip their arguments using "curr_idx += N".
case CMD_SETUP:
@@ -140,7 +140,15 @@ void CUCode_NewAX::HandleCommandList()
case CMD_COMPRESSOR_TABLE_ADDR: curr_idx += 2; break;
case CMD_UNK_0B: break; // TODO: check other versions
case CMD_UNK_0C: break; // TODO: check other versions
- case CMD_UNK_0D: curr_idx += 2; break;
+
+ case CMD_MORE:
+ addr_hi = m_cmdlist[curr_idx++];
+ addr_lo = m_cmdlist[curr_idx++];
+ size = m_cmdlist[curr_idx++];
+
+ CopyCmdList(HILO_TO_32(addr), size);
+ curr_idx = 0;
+ break;
case CMD_OUTPUT:
// Skip the first address, it is used for surround audio
diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.h b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.h
index 91aa495c0e..a6cbe071de 100644
--- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.h
+++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_NewAX.h
@@ -64,7 +64,7 @@ private:
CMD_COMPRESSOR_TABLE_ADDR = 0x0A,
CMD_UNK_0B = 0x0B,
CMD_UNK_0C = 0x0C,
- CMD_UNK_0D = 0x0D,
+ CMD_MORE = 0x0D,
CMD_OUTPUT = 0x0E,
CMD_END = 0x0F,
CMD_UNK_10 = 0x10,