summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md16
m---------externals/boost0
-rw-r--r--src/citra_qt/debugger/graphics_cmdlists.cpp2
-rw-r--r--src/common/color.h18
-rw-r--r--src/video_core/debug_utils/debug_utils.cpp9
-rw-r--r--src/video_core/pica.h3
6 files changed, 45 insertions, 3 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f2dbdf1a4..28b8b4031 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -25,6 +25,22 @@ Follow the indentation/whitespace style shown below. Do not use tabs, use 4-spac
* For items that are both defined and declared in two separate files, put the doc-comment only next to the associated declaration. (In a header file, usually.) Otherwise, put it next to the implementation. Never duplicate doc-comments in both places.
```cpp
+// Includes should be sorted lexicographically
+// STD includes first
+#include <map>
+#include <memory>
+
+// then, library includes
+#include <nihstro/shared_binary.h>
+
+// finally, citra includes
+#include "common/math_util.h"
+#include "common/vector_math.h"
+
+// each major module is separated
+#include "video_core/pica.h"
+#include "video_core/video_core.h"
+
namespace Example {
// Namespace contents are not indented
diff --git a/externals/boost b/externals/boost
-Subproject 728a4d7d1c8b28355544ae829df9c4b5f28373c
+Subproject d81b9269900ae183d0dc98403eea4c971590a80
diff --git a/src/citra_qt/debugger/graphics_cmdlists.cpp b/src/citra_qt/debugger/graphics_cmdlists.cpp
index e51a4480f..35a3140b2 100644
--- a/src/citra_qt/debugger/graphics_cmdlists.cpp
+++ b/src/citra_qt/debugger/graphics_cmdlists.cpp
@@ -73,7 +73,7 @@ TextureInfoDockWidget::TextureInfoDockWidget(const Pica::DebugUtils::TextureInfo
format_choice->addItem(tr("RGB565"));
format_choice->addItem(tr("RGBA4"));
format_choice->addItem(tr("IA8"));
- format_choice->addItem(tr("UNK6"));
+ format_choice->addItem(tr("RG8"));
format_choice->addItem(tr("I8"));
format_choice->addItem(tr("A8"));
format_choice->addItem(tr("IA4"));
diff --git a/src/common/color.h b/src/common/color.h
index 9dafdca0c..eb199e308 100644
--- a/src/common/color.h
+++ b/src/common/color.h
@@ -69,6 +69,15 @@ inline const Math::Vec4<u8> DecodeRGB8(const u8* bytes) {
}
/**
+ * Decode a color stored in RG8 (aka HILO8) format
+ * @param bytes Pointer to encoded source color
+ * @return Result color decoded as Math::Vec4<u8>
+ */
+inline const Math::Vec4<u8> DecodeRG8(const u8* bytes) {
+ return { bytes[1], bytes[0], 0, 255 };
+}
+
+/**
* Decode a color stored in RGB565 format
* @param bytes Pointer to encoded source color
* @return Result color decoded as Math::Vec4<u8>
@@ -152,6 +161,15 @@ inline void EncodeRGB8(const Math::Vec4<u8>& color, u8* bytes) {
}
/**
+ * Encode a color as RG8 (aka HILO8) format
+ * @param color Source color to encode
+ * @param bytes Destination pointer to store encoded color
+ */
+inline void EncodeRG8(const Math::Vec4<u8>& color, u8* bytes) {
+ bytes[1] = color.r();
+ bytes[0] = color.g();
+}
+/**
* Encode a color as RGB565 format
* @param color Source color to encode
* @param bytes Destination pointer to store encoded color
diff --git a/src/video_core/debug_utils/debug_utils.cpp b/src/video_core/debug_utils/debug_utils.cpp
index e4b397303..8ad77f0c8 100644
--- a/src/video_core/debug_utils/debug_utils.cpp
+++ b/src/video_core/debug_utils/debug_utils.cpp
@@ -4,9 +4,10 @@
#include <algorithm>
#include <condition_variable>
+#include <cstring>
+#include <fstream>
#include <list>
#include <map>
-#include <fstream>
#include <mutex>
#include <string>
@@ -409,6 +410,12 @@ const Math::Vec4<u8> LookupTexture(const u8* source, int x, int y, const Texture
}
}
+ case Regs::TextureFormat::RG8:
+ {
+ auto res = Color::DecodeRG8(source + VideoCore::GetMortonOffset(x, y, 2));
+ return { res.r(), res.g(), 0, 255 };
+ }
+
case Regs::TextureFormat::I8:
{
const u8* source_ptr = source + VideoCore::GetMortonOffset(x, y, 1);
diff --git a/src/video_core/pica.h b/src/video_core/pica.h
index 36916f862..58b924f9e 100644
--- a/src/video_core/pica.h
+++ b/src/video_core/pica.h
@@ -174,7 +174,7 @@ struct Regs {
RGB565 = 3,
RGBA4 = 4,
IA8 = 5,
-
+ RG8 = 6, ///< @note Also called HILO8 in 3DBrew.
I8 = 7,
A8 = 8,
IA4 = 9,
@@ -215,6 +215,7 @@ struct Regs {
case TextureFormat::RGB565:
case TextureFormat::RGBA4:
case TextureFormat::IA8:
+ case TextureFormat::RG8:
return 4;
case TextureFormat::I4: