mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
a6fa04a83d
* temp * name the obvious ones * un-pipelined the fast case in generic vu1 * generic2 dma * pass2 * first pass at opengl * many fixes * fix hud, strip * windows fix * final tweaks * memcard folder * add missing include
50 lines
1.6 KiB
C++
50 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "common/dma/gs.h"
|
|
|
|
class AdgifHelper {
|
|
public:
|
|
// takes the 5QW of adgif data
|
|
explicit AdgifHelper(const u8* data) {
|
|
memcpy(&m_data, data, 16 * 5);
|
|
m_tex0 = GsTex0(m_data.tex0_data);
|
|
m_tex1 = GsTex1(m_data.tex1_data);
|
|
m_alpha = GsAlpha(m_data.alpha_data);
|
|
}
|
|
|
|
explicit AdgifHelper(const AdGifData& data) : m_data(data) {
|
|
m_tex0 = GsTex0(m_data.tex0_data);
|
|
m_tex1 = GsTex1(m_data.tex1_data);
|
|
m_alpha = GsAlpha(m_data.alpha_data);
|
|
}
|
|
|
|
bool is_normal_adgif() const {
|
|
return (u8)m_data.tex0_addr == (u32)GsRegisterAddress::TEX0_1 &&
|
|
(u8)m_data.tex1_addr == (u32)GsRegisterAddress::TEX1_1 &&
|
|
(u8)m_data.mip_addr == (u32)GsRegisterAddress::MIPTBP1_1 &&
|
|
(u8)m_data.clamp_addr == (u32)GsRegisterAddress::CLAMP_1 &&
|
|
(u8)m_data.alpha_addr == (u32)GsRegisterAddress::ALPHA_1;
|
|
}
|
|
|
|
std::string print() const {
|
|
std::string result;
|
|
result += fmt::format("[0] {}\n {}", register_address_name(m_data.tex0_addr), m_tex0.print());
|
|
result += fmt::format("[1] {}\n {}", register_address_name(m_data.tex1_addr), m_tex1.print());
|
|
result += fmt::format("[2] {}\n", register_address_name(m_data.mip_addr));
|
|
result += fmt::format("[3] {}\n 0x{:x}\n", register_address_name(m_data.clamp_addr),
|
|
m_data.clamp_data);
|
|
result +=
|
|
fmt::format("[4] {}\n {}\n", register_address_name(m_data.alpha_addr), m_alpha.print());
|
|
return result;
|
|
}
|
|
|
|
const GsAlpha& alpha() const { return m_alpha; }
|
|
|
|
const GsTex0& tex0() const { return m_tex0; }
|
|
|
|
private:
|
|
AdGifData m_data;
|
|
GsTex0 m_tex0;
|
|
GsTex1 m_tex1;
|
|
GsAlpha m_alpha;
|
|
}; |