diff options
Diffstat (limited to 'src')
| -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 | 6 | ||||
| -rw-r--r-- | src/video_core/pica.h | 3 |
4 files changed, 27 insertions, 2 deletions
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 | |||
| 73 | format_choice->addItem(tr("RGB565")); | 73 | format_choice->addItem(tr("RGB565")); |
| 74 | format_choice->addItem(tr("RGBA4")); | 74 | format_choice->addItem(tr("RGBA4")); |
| 75 | format_choice->addItem(tr("IA8")); | 75 | format_choice->addItem(tr("IA8")); |
| 76 | format_choice->addItem(tr("UNK6")); | 76 | format_choice->addItem(tr("RG8")); |
| 77 | format_choice->addItem(tr("I8")); | 77 | format_choice->addItem(tr("I8")); |
| 78 | format_choice->addItem(tr("A8")); | 78 | format_choice->addItem(tr("A8")); |
| 79 | format_choice->addItem(tr("IA4")); | 79 | 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) { | |||
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | /** | 71 | /** |
| 72 | * Decode a color stored in RG8 (aka HILO8) format | ||
| 73 | * @param bytes Pointer to encoded source color | ||
| 74 | * @return Result color decoded as Math::Vec4<u8> | ||
| 75 | */ | ||
| 76 | inline const Math::Vec4<u8> DecodeRG8(const u8* bytes) { | ||
| 77 | return { bytes[1], bytes[0], 0, 255 }; | ||
| 78 | } | ||
| 79 | |||
| 80 | /** | ||
| 72 | * Decode a color stored in RGB565 format | 81 | * Decode a color stored in RGB565 format |
| 73 | * @param bytes Pointer to encoded source color | 82 | * @param bytes Pointer to encoded source color |
| 74 | * @return Result color decoded as Math::Vec4<u8> | 83 | * @return Result color decoded as Math::Vec4<u8> |
| @@ -152,6 +161,15 @@ inline void EncodeRGB8(const Math::Vec4<u8>& color, u8* bytes) { | |||
| 152 | } | 161 | } |
| 153 | 162 | ||
| 154 | /** | 163 | /** |
| 164 | * Encode a color as RG8 (aka HILO8) format | ||
| 165 | * @param color Source color to encode | ||
| 166 | * @param bytes Destination pointer to store encoded color | ||
| 167 | */ | ||
| 168 | inline void EncodeRG8(const Math::Vec4<u8>& color, u8* bytes) { | ||
| 169 | bytes[1] = color.r(); | ||
| 170 | bytes[0] = color.g(); | ||
| 171 | } | ||
| 172 | /** | ||
| 155 | * Encode a color as RGB565 format | 173 | * Encode a color as RGB565 format |
| 156 | * @param color Source color to encode | 174 | * @param color Source color to encode |
| 157 | * @param bytes Destination pointer to store encoded color | 175 | * @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 21664aab6..8ad77f0c8 100644 --- a/src/video_core/debug_utils/debug_utils.cpp +++ b/src/video_core/debug_utils/debug_utils.cpp | |||
| @@ -410,6 +410,12 @@ const Math::Vec4<u8> LookupTexture(const u8* source, int x, int y, const Texture | |||
| 410 | } | 410 | } |
| 411 | } | 411 | } |
| 412 | 412 | ||
| 413 | case Regs::TextureFormat::RG8: | ||
| 414 | { | ||
| 415 | auto res = Color::DecodeRG8(source + VideoCore::GetMortonOffset(x, y, 2)); | ||
| 416 | return { res.r(), res.g(), 0, 255 }; | ||
| 417 | } | ||
| 418 | |||
| 413 | case Regs::TextureFormat::I8: | 419 | case Regs::TextureFormat::I8: |
| 414 | { | 420 | { |
| 415 | const u8* source_ptr = source + VideoCore::GetMortonOffset(x, y, 1); | 421 | 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 { | |||
| 174 | RGB565 = 3, | 174 | RGB565 = 3, |
| 175 | RGBA4 = 4, | 175 | RGBA4 = 4, |
| 176 | IA8 = 5, | 176 | IA8 = 5, |
| 177 | 177 | RG8 = 6, ///< @note Also called HILO8 in 3DBrew. | |
| 178 | I8 = 7, | 178 | I8 = 7, |
| 179 | A8 = 8, | 179 | A8 = 8, |
| 180 | IA4 = 9, | 180 | IA4 = 9, |
| @@ -215,6 +215,7 @@ struct Regs { | |||
| 215 | case TextureFormat::RGB565: | 215 | case TextureFormat::RGB565: |
| 216 | case TextureFormat::RGBA4: | 216 | case TextureFormat::RGBA4: |
| 217 | case TextureFormat::IA8: | 217 | case TextureFormat::IA8: |
| 218 | case TextureFormat::RG8: | ||
| 218 | return 4; | 219 | return 4; |
| 219 | 220 | ||
| 220 | case TextureFormat::I4: | 221 | case TextureFormat::I4: |