aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/service
diff options
context:
space:
mode:
authorGravatar Tony Wasserka <NeoBrainX@gmail.com>2014-06-04 18:30:23 +0200
committerGravatar Tony Wasserka <NeoBrainX@gmail.com>2014-07-23 00:33:08 +0200
commitbaf0aa04f50dff257b57fa78786e53b97c1e6abb (patch)
tree3dc92a276f58d1099eb19dd2b5fcb52c69a8da9a /src/core/hle/service
parent0b4055c1520fbe7f697d2f1f93a85b559504cca4 (diff)
GPU: Emulate memory fills.
Diffstat (limited to 'src/core/hle/service')
-rw-r--r--src/core/hle/service/gsp.cpp8
-rw-r--r--src/core/hle/service/gsp.h2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/core/hle/service/gsp.cpp b/src/core/hle/service/gsp.cpp
index fea52189..5baa7a7a 100644
--- a/src/core/hle/service/gsp.cpp
+++ b/src/core/hle/service/gsp.cpp
@@ -174,6 +174,14 @@ void TriggerCmdReqQueue(Service::Interface* self) {
break;
case GXCommandId::SET_MEMORY_FILL:
+ GPU::Write<u32>(GPU::Registers::MemoryFillStart1, cmd_buff[1] >> 3);
+ GPU::Write<u32>(GPU::Registers::MemoryFillEnd1, cmd_buff[3] >> 3);
+ GPU::Write<u32>(GPU::Registers::MemoryFillSize1, cmd_buff[3] - cmd_buff[1]);
+ GPU::Write<u32>(GPU::Registers::MemoryFillValue1, cmd_buff[2]);
+ GPU::Write<u32>(GPU::Registers::MemoryFillStart2, cmd_buff[4] >> 3);
+ GPU::Write<u32>(GPU::Registers::MemoryFillEnd2, cmd_buff[6] >> 3);
+ GPU::Write<u32>(GPU::Registers::MemoryFillSize2, cmd_buff[6] - cmd_buff[4]);
+ GPU::Write<u32>(GPU::Registers::MemoryFillValue2, cmd_buff[5]);
break;
// TODO: Check if texture copies are implemented correctly..
diff --git a/src/core/hle/service/gsp.h b/src/core/hle/service/gsp.h
index 214de140..fb50a928 100644
--- a/src/core/hle/service/gsp.h
+++ b/src/core/hle/service/gsp.h
@@ -14,7 +14,7 @@ namespace GSP_GPU {
enum class GXCommandId : u32 {
REQUEST_DMA = 0x00000000,
SET_COMMAND_LIST_LAST = 0x00000001,
- SET_MEMORY_FILL = 0x00000002, // TODO: Confirm? (lictru uses 0x01000102)
+ SET_MEMORY_FILL = 0x01000102, // TODO: Confirm?
SET_DISPLAY_TRANSFER = 0x00000003,
SET_TEXTURE_COPY = 0x00000004,
SET_COMMAND_LIST_FIRST = 0x00000005,