summaryrefslogtreecommitdiff
path: root/src/code/ucode_disas.c
diff options
context:
space:
mode:
authorRoman971 <32455037+Roman971@users.noreply.github.com>2020-08-23 23:50:30 +0200
committerGitHub <noreply@github.com>2020-08-23 17:50:30 -0400
commit49609dd78bb586c8ab3349105ceedeb2eb0d91ea (patch)
treec076c98bff5e83feb342219344ed027718519acf /src/code/ucode_disas.c
parent281aaa0cb6a55f19eceb322871a8d27da9e0e8b2 (diff)
Match/Improve a bunch of non matchings (#342)
Diffstat (limited to 'src/code/ucode_disas.c')
-rw-r--r--src/code/ucode_disas.c70
1 files changed, 19 insertions, 51 deletions
diff --git a/src/code/ucode_disas.c b/src/code/ucode_disas.c
index 8a331d94e..1f4975799 100644
--- a/src/code/ucode_disas.c
+++ b/src/code/ucode_disas.c
@@ -161,36 +161,26 @@ void UCodeDisas_SetCurUCodeImpl(UCodeDisas* this, void* ptr) {
}
}
-#ifdef NON_MATCHING
-// s4/s6 swap (basically same diff as UCodeDisas_ParseRenderMode)
void UCodeDisas_ParseGeometryMode(UCodeDisas* this, u32 mode) {
u32 first = true;
s32 i;
for (i = 0; i < ARRAY_COUNT(sUCodeDisasGeometryModes); i++) {
- if (sUCodeDisasGeometryModes[i].value & mode) {
- u32 cond = first;
- if (!cond) {
- DISAS_LOG("|");
- }
- first = false;
+ if ((sUCodeDisasGeometryModes[i].value & mode) == 0) {
+ continue;
+ }
- DISAS_LOG("%s", sUCodeDisasGeometryModes[i].name);
+ if (first) {
+ } else {
+ DISAS_LOG("|");
}
+ first = false;
+
+ DISAS_LOG("%s", sUCodeDisasGeometryModes[i].name);
}
}
-#else
-void UCodeDisas_ParseGeometryMode(UCodeDisas* this, u32 mode);
-#pragma GLOBAL_ASM("asm/non_matchings/code/ucode_disas/UCodeDisas_ParseGeometryMode.s")
-#endif
-#ifdef NON_MATCHING
-// s1/s2 swap (basically same diff as UCodeDisas_ParseGeometryMode)
void UCodeDisas_ParseRenderMode(UCodeDisas* this, u32 mode) {
- s32 i;
- s32 a;
- s32 b;
-
static F3dzexRenderMode sUCodeDisasRenderModeFlags[] = {
F3DZEX_RENDERMODE(AA_EN, 0x8),
F3DZEX_RENDERMODE(Z_CMP, 0x10),
@@ -209,7 +199,6 @@ void UCodeDisas_ParseRenderMode(UCodeDisas* this, u32 mode) {
F3DZEX_RENDERMODE(ALPHA_CVG_SEL, 0x2000),
F3DZEX_RENDERMODE(FORCE_BL, 0x4000),
};
-
static const char* D_8012DDDC[4][4] = {
{ "G_BL_CLR_IN", "G_BL_CLR_MEM", "G_BL_CLR_BL", "G_BL_CLR_FOG" },
{ "G_BL_A_IN", "G_BL_A_FOG", "G_BL_A_SHADE", "G_BL_0" },
@@ -217,18 +206,24 @@ void UCodeDisas_ParseRenderMode(UCodeDisas* this, u32 mode) {
{ "G_BL_1MA", "G_BL_A_MEM", "G_BL_1", "G_BL_0" },
};
+ s32 i;
+ s32 a;
+ s32 b;
+
for (i = 0; i < ARRAY_COUNT(sUCodeDisasRenderModeFlags); i++) {
- if ((mode & sUCodeDisasRenderModeFlags[i].mask) == sUCodeDisasRenderModeFlags[i].value) {
- DISAS_LOG("%s|", sUCodeDisasRenderModeFlags[i].name);
+ if ((mode & sUCodeDisasRenderModeFlags[i].mask) != sUCodeDisasRenderModeFlags[i].value) {
+ continue;
}
+
+ DISAS_LOG("%s|", sUCodeDisasRenderModeFlags[i].name);
}
a = (mode >> 18) & 0x3333;
b = (mode >> 16) & 0x3333;
- if (1) {}
// clang-format off
- if (this->enableLog == 0) {} else { osSyncPrintf("\nGBL_c1(%s, %s, %s, %s)|", D_8012DDDC[0][a >> 12 & 3], D_8012DDDC[1][a >> 8 & 3], D_8012DDDC[2][a >> 4 & 3], D_8012DDDC[3][a >> 0 & 3]); }
+ if (this->enableLog == 0) {} else { osSyncPrintf("\nGBL_c1(%s, %s, %s, %s)|",
+ D_8012DDDC[0][a >> 12 & 3], D_8012DDDC[1][a >> 8 & 3], D_8012DDDC[2][a >> 4 & 3], D_8012DDDC[3][a >> 0 & 3]); }
// clang-format on
if (this->enableLog) {
@@ -236,33 +231,6 @@ void UCodeDisas_ParseRenderMode(UCodeDisas* this, u32 mode) {
D_8012DDDC[2][b >> 4 & 3], D_8012DDDC[3][b >> 0 & 3]);
}
}
-#else
-F3dzexRenderMode sUCodeDisasRenderModeFlags[] = {
- F3DZEX_RENDERMODE(AA_EN, 0x8),
- F3DZEX_RENDERMODE(Z_CMP, 0x10),
- F3DZEX_RENDERMODE(Z_UPD, 0x20),
- F3DZEX_RENDERMODE(IM_RD, 0x40),
- F3DZEX_RENDERMODE(CLR_ON_CVG, 0x80),
- F3DZEX_RENDERMODE(CVG_DST_CLAMP, 0x300),
- F3DZEX_RENDERMODE(CVG_DST_WRAP, 0x300),
- F3DZEX_RENDERMODE(CVG_DST_FULL, 0x300),
- F3DZEX_RENDERMODE(CVG_DST_SAVE, 0x300),
- F3DZEX_RENDERMODE(ZMODE_OPA, 0xC00),
- F3DZEX_RENDERMODE(ZMODE_INTER, 0xC00),
- F3DZEX_RENDERMODE(ZMODE_XLU, 0xC00),
- F3DZEX_RENDERMODE(ZMODE_DEC, 0xC00),
- F3DZEX_RENDERMODE(CVG_X_ALPHA, 0x1000),
- F3DZEX_RENDERMODE(ALPHA_CVG_SEL, 0x2000),
- F3DZEX_RENDERMODE(FORCE_BL, 0x4000),
-};
-const char* D_8012DDDC[4][4] = {
- { "G_BL_CLR_IN", "G_BL_CLR_MEM", "G_BL_CLR_BL", "G_BL_CLR_FOG" },
- { "G_BL_A_IN", "G_BL_A_FOG", "G_BL_A_SHADE", "G_BL_0" },
- { "G_BL_CLR_IN", "G_BL_CLR_MEM", "G_BL_CLR_BL", "G_BL_CLR_FOG" },
- { "G_BL_1MA", "G_BL_A_MEM", "G_BL_1", "G_BL_0" },
-};
-#pragma GLOBAL_ASM("asm/non_matchings/code/ucode_disas/UCodeDisas_ParseRenderMode.s")
-#endif
void UCodeDisas_PrintVertices(UCodeDisas* this, Vtx* vtx, s32 count, s32 start) {
s32 i;