diff options
-rw-r--r-- | CONTRIBUTING.md | 16 | ||||
m--------- | externals/boost | 0 | ||||
-rw-r--r-- | src/citra_qt/debugger/graphics_cmdlists.cpp | 2 | ||||
-rw-r--r-- | src/common/color.h | 18 | ||||
-rw-r--r-- | src/video_core/debug_utils/debug_utils.cpp | 9 | ||||
-rw-r--r-- | src/video_core/pica.h | 3 |
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: |