Skip to content

Commit a8bf13b

Browse files
main: Match examCharSet
1 parent 7bf961b commit a8bf13b

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/main/mbar.c

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,33 @@ static void mbar_othon_frame_set(MBAR_REQ_STR *mr_pp);
8888
static void guidisp_init_pr(void);
8989
static void guidisp_draw_quit(int drapP);
9090

91-
INCLUDE_ASM("asm/nonmatchings/main/mbar", examCharSet);
91+
void examCharSet(EX_CHAR_DISP *ecd_pp, sceGifPacket *gifpk_pp) {
92+
int wl, hl;
93+
int xp, yp;
94+
95+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_TEXFLUSH, 0);
96+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_PRMODECONT, 1);
97+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_CLAMP_1, SCE_GS_SET_CLAMP_1(1, 1, 0, 0, 0, 0));
98+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_ALPHA_1, SCE_GS_SET_ALPHA_1(0, 1, 0, 1, 0));
99+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_TEX0_1, ecd_pp->GsTex0);
100+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_TEX1_1, ecd_pp->GsTex1);
101+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_PABE, SCE_GS_SET_PABE(PR_REGS(ecd_pp).pabe));
102+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_FBA_1, SCE_GS_SET_FBA(PR_REGS(ecd_pp).fba));
103+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_COLCLAMP, 1);
104+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_RGBAQ, SCE_GS_SET_RGBAQ(ecd_pp->kido[0], ecd_pp->kido[1], ecd_pp->kido[2], 128, 0x3f800000));
105+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_TEST_1, SCE_GS_SET_TEST_1(1, 6, 0, 0, 0, 0, 1, 1));
106+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_TEXA, SCE_GS_SET_TEXA(0, 1, 128));
107+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_PRIM, SCE_GS_SET_PRIM(6, 0, 1, 0, ecd_pp->alpha, 0, 1, 0, 0));
108+
109+
wl = ecd_pp->w * ecd_pp->scalex * 16.0f;
110+
hl = ecd_pp->h * ecd_pp->scaley * 16.0f;
111+
xp = ecd_pp->x - (int)(ecd_pp->cx * ecd_pp->scalex);
112+
yp = ecd_pp->y - (int)(ecd_pp->cy * ecd_pp->scaley);
113+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_UV, SCE_GS_SET_UV(ecd_pp->u << 4, ecd_pp->v << 4));
114+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_XYZ2, SCE_GS_SET_XYZ2(xp & 0xffff, yp & 0xffff, 1));
115+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_UV, SCE_GS_SET_UV(((ecd_pp->u + ecd_pp->w) << 4) + 8, ((ecd_pp->v + ecd_pp->h) << 4) + 8));
116+
sceGifPkAddGsAD(gifpk_pp, SCE_GS_XYZ2, SCE_GS_SET_XYZ2((xp + wl) & 0xffff, (yp + hl) & 0xffff, 1));
117+
}
92118

93119
INCLUDE_ASM("asm/nonmatchings/main/mbar", clrColorBuffer);
94120

0 commit comments

Comments
 (0)