From 2e89f6ad4d6ba26cb9b73b2a27c0de935fa54a5b Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Wed, 8 May 2024 13:16:15 +0200 Subject: [PATCH] Mdec: Clang format. --- pcsx2/Mdec.cpp | 581 +++++++++++++++++++++++++++---------------------- 1 file changed, 322 insertions(+), 259 deletions(-) diff --git a/pcsx2/Mdec.cpp b/pcsx2/Mdec.cpp index 31daf82af6..c46d9d0351 100644 --- a/pcsx2/Mdec.cpp +++ b/pcsx2/Mdec.cpp @@ -10,149 +10,167 @@ #include "Mdec.h" #include "IopHw.h" -struct { +struct +{ u32 command; u32 status; - u16 *rl; + u16* rl; int rlsize; } mdec; -struct config_mdec { +struct config_mdec +{ u32 Mdec; }; struct config_mdec Config; -u32 mdecArr2[0x100000] = { 0 }; +u32 mdecArr2[0x100000] = {0}; u32 mdecMem[0x100000]; //watherver large size. //Memory only used to get DMA data and not really for anything else. - //Sould be optimized(the funcs. that use it) to read IOP RAM direcly. + //Sould be optimized(the funcs. that use it) to read IOP RAM direcly. #define PSXM(x) ((uptr)mdecMem + x) -int iq_y[DCTSIZE2],iq_uv[DCTSIZE2]; +int iq_y[DCTSIZE2], iq_uv[DCTSIZE2]; -static void idct1(int *block) +static void idct1(int* block) { int i, val; - val = RANGE(DESCALE(block[0], PASS1_BITS+3)); + val = RANGE(DESCALE(block[0], PASS1_BITS + 3)); - for(i=0;i> 16)*(bcr & 0xffff); - if (size < 0) { + int size = (bcr >> 16) * (bcr & 0xffff); + if (size < 0) + { // Need to investigate what happen if the transfer is huge Console.Error("psxDma0 DMA transfer overflow !"); return; } - for (int i = 0; i<(size); i++) { + for (int i = 0; i < (size); i++) + { *(u32*)PSXM(((i + 0) * 4)) = iopMemRead32(adr + ((i + 0) * 4)); - if (i <20) + if (i < 20) MDEC_LOG(" data %08X %08X ", iopMemRead32((adr & 0x00FFFFFF) + (i * 4)), *(u32*)PSXM((i * 4))); } - if (cmd == 0x40000001) { - u8 *p = (u8*)PSXM(0); //u8 *p = (u8*)PSXM(adr); + if (cmd == 0x40000001) + { + u8* p = (u8*)PSXM(0); //u8 *p = (u8*)PSXM(adr); iqtab_init(iq_y, p); iqtab_init(iq_uv, p + 64); } - else if ((cmd & 0xf5ff0000) == 0x30000000) { + else if ((cmd & 0xf5ff0000) == 0x30000000) + { mdec.rl = (u16*)PSXM(0); //mdec.rl = (u16*)PSXM(adr); } @@ -230,40 +261,49 @@ void psxDma0(u32 adr, u32 bcr, u32 chcr) { psxDmaInterrupt(0); } -void psxDma1(u32 adr, u32 bcr, u32 chcr) { - int blk[DCTSIZE2*6]; - unsigned short *image; +void psxDma1(u32 adr, u32 bcr, u32 chcr) +{ + int blk[DCTSIZE2 * 6]; + unsigned short* image; MDEC_LOG("DMA1 %lx %lx %lx (cmd = %lx)", adr, bcr, chcr, mdec.command); - if (chcr != 0x01000200) return; + if (chcr != 0x01000200) + return; // bcr LSBs are the blocksize in words // bcr MSBs are the number of block - int size = (bcr >> 16)*(bcr & 0xffff); - int size2 = (bcr >> 16)*(bcr & 0xffff); - if (size < 0) { + int size = (bcr >> 16) * (bcr & 0xffff); + int size2 = (bcr >> 16) * (bcr & 0xffff); + if (size < 0) + { // Need to investigate what happen if the transfer is huge Console.Error("psxDma1 DMA transfer overflow !"); return; } - image = (u16*)mdecArr2;//(u16*)PSXM(0); //image = (u16*)PSXM(adr); + image = (u16*)mdecArr2; //(u16*)PSXM(0); //image = (u16*)PSXM(adr); - if (mdec.command&0x08000000) { - for (;size>0;size-=(16*16)/2,image+=(16*16)) { - mdec.rl = rl2blk(blk,mdec.rl); - yuv2rgb15(blk,image); + if (mdec.command & 0x08000000) + { + for (; size > 0; size -= (16 * 16) / 2, image += (16 * 16)) + { + mdec.rl = rl2blk(blk, mdec.rl); + yuv2rgb15(blk, image); } - } else { - for (;size>0;size-=(24*16)/2,image+=(24*16)) { - mdec.rl = rl2blk(blk,mdec.rl); - yuv2rgb24(blk,(u8 *)image); + } + else + { + for (; size > 0; size -= (24 * 16) / 2, image += (24 * 16)) + { + mdec.rl = rl2blk(blk, mdec.rl); + yuv2rgb24(blk, (u8*)image); } } - for (int i = 0; i<(size2); i++) { + for (int i = 0; i < (size2); i++) + { iopMemWrite32(((adr & 0x00FFFFFF) + (i * 4) + 0), mdecArr2[i]); - if (i <20) + if (i < 20) MDEC_LOG(" data %08X %08X ", iopMemRead32((adr & 0x00FFFFFF) + (i * 4)), mdecArr2[i]); } @@ -272,172 +312,195 @@ void psxDma1(u32 adr, u32 bcr, u32 chcr) { } static int zscan[DCTSIZE2] = { - 0 ,1 ,8 ,16,9 ,2 ,3 ,10, - 17,24,32,25,18,11,4 ,5 , - 12,19,26,33,40,48,41,34, - 27,20,13,6 ,7 ,14,21,28, - 35,42,49,56,57,50,43,36, - 29,22,15,23,30,37,44,51, - 58,59,52,45,38,31,39,46, - 53,60,61,54,47,55,62,63 -}; + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63}; static int aanscales[DCTSIZE2] = { - 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, - 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270, - 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906, - 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315, - 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, - 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552, - 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446, - 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247 -}; + 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, + 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270, + 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906, + 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315, + 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, + 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552, + 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446, + 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247}; -void iqtab_init(int *iqtab,unsigned char *iq_y) +void iqtab_init(int* iqtab, unsigned char* iq_y) { int i; - for(i=0;i>(CONST_BITS14-IFAST_SCALE_BITS); + for (i = 0; i < DCTSIZE2; i++) + { + iqtab[i] = iq_y[i] * aanscales[zscan[i]] >> (CONST_BITS14 - IFAST_SCALE_BITS); } } -unsigned short* rl2blk(int *blk,unsigned short *mdec_rl) { - int i,k,q_scale,rl; - int *iqtab; +unsigned short* rl2blk(int* blk, unsigned short* mdec_rl) +{ + int i, k, q_scale, rl; + int* iqtab; - memset (blk, 0, 6*DCTSIZE2*4); + memset(blk, 0, 6 * DCTSIZE2 * 4); iqtab = iq_uv; - for(i=0;i<6;i++) { // decode blocks (Cr,Cb,Y1,Y2,Y3,Y4) - if (i>1) iqtab = iq_y; + for (i = 0; i < 6; i++) + { // decode blocks (Cr,Cb,Y1,Y2,Y3,Y4) + if (i > 1) + iqtab = iq_y; // zigzag transformation rl = *mdec_rl++; q_scale = RUNOF(rl); - blk[0] = iqtab[0]*VALOF(rl); - for(k = 0;;) { + blk[0] = iqtab[0] * VALOF(rl); + for (k = 0;;) + { rl = *mdec_rl++; - if (rl==NOP) break; - k += RUNOF(rl)+1; // skip level zero-coefficients - if (k > 63) break; + if (rl == NOP) + break; + k += RUNOF(rl) + 1; // skip level zero-coefficients + if (k > 63) + break; blk[zscan[k]] = (VALOF(rl) * iqtab[k] * q_scale) / 8; // / 16; } - idct(blk,k+1); - blk+=DCTSIZE2; + idct(blk, k + 1); + blk += DCTSIZE2; } return mdec_rl; } -unsigned char roundtbl[256*3]; +unsigned char roundtbl[256 * 3]; -void round_init(void) { +void round_init(void) +{ int i; - for(i=0;i<256;i++) { - roundtbl[i]=0; - roundtbl[i+256]=i; - roundtbl[i+512]=255; + for (i = 0; i < 256; i++) + { + roundtbl[i] = 0; + roundtbl[i + 256] = i; + roundtbl[i + 512] = 255; } } -void yuv2rgb15(int *blk,unsigned short *image) { - int x,y; - int *Yblk = blk+DCTSIZE2*2; - int Cb,Cr,R,G,B; - int *Cbblk = blk; - int *Crblk = blk+DCTSIZE2; +void yuv2rgb15(int* blk, unsigned short* image) +{ + int x, y; + int* Yblk = blk + DCTSIZE2 * 2; + int Cb, Cr, R, G, B; + int* Cbblk = blk; + int* Crblk = blk + DCTSIZE2; - if (!(Config.Mdec&0x1)) - for (y=0;y<16;y+=2,Crblk+=4,Cbblk+=4,Yblk+=8,image+=24) { - if (y==8) Yblk+=DCTSIZE2; - for (x=0;x<4;x++,image+=2,Crblk++,Cbblk++,Yblk+=2) { - Cr = *Crblk; - Cb = *Cbblk; - R = MULR(Cr); - G = MULG(Cb) + MULG2(Cr); - B = MULB(Cb); + if (!(Config.Mdec & 0x1)) + for (y = 0; y < 16; y += 2, Crblk += 4, Cbblk += 4, Yblk += 8, image += 24) + { + if (y == 8) + Yblk += DCTSIZE2; + for (x = 0; x < 4; x++, image += 2, Crblk++, Cbblk++, Yblk += 2) + { + Cr = *Crblk; + Cb = *Cbblk; + R = MULR(Cr); + G = MULG(Cb) + MULG2(Cr); + B = MULB(Cb); - RGB15(0, Yblk[0]); - RGB15(1, Yblk[1]); - RGB15(16, Yblk[8]); - RGB15(17, Yblk[9]); + RGB15(0, Yblk[0]); + RGB15(1, Yblk[1]); + RGB15(16, Yblk[8]); + RGB15(17, Yblk[9]); - Cr = *(Crblk+4); - Cb = *(Cbblk+4); - R = MULR(Cr); - G = MULG(Cb) + MULG2(Cr); - B = MULB(Cb); + Cr = *(Crblk + 4); + Cb = *(Cbblk + 4); + R = MULR(Cr); + G = MULG(Cb) + MULG2(Cr); + B = MULB(Cb); - RGB15(8, Yblk[DCTSIZE2+0]); - RGB15(9, Yblk[DCTSIZE2+1]); - RGB15(24, Yblk[DCTSIZE2+8]); - RGB15(25, Yblk[DCTSIZE2+9]); + RGB15(8, Yblk[DCTSIZE2 + 0]); + RGB15(9, Yblk[DCTSIZE2 + 1]); + RGB15(24, Yblk[DCTSIZE2 + 8]); + RGB15(25, Yblk[DCTSIZE2 + 9]); + } } - } else - for (y=0;y<16;y+=2,Yblk+=8,image+=24) { - if (y==8) Yblk+=DCTSIZE2; - for (x=0;x<4;x++,image+=2,Yblk+=2) { - RGB15BW(0, Yblk[0]); - RGB15BW(1, Yblk[1]); - RGB15BW(16, Yblk[8]); - RGB15BW(17, Yblk[9]); + else + for (y = 0; y < 16; y += 2, Yblk += 8, image += 24) + { + if (y == 8) + Yblk += DCTSIZE2; + for (x = 0; x < 4; x++, image += 2, Yblk += 2) + { + RGB15BW(0, Yblk[0]); + RGB15BW(1, Yblk[1]); + RGB15BW(16, Yblk[8]); + RGB15BW(17, Yblk[9]); - RGB15BW(8, Yblk[DCTSIZE2+0]); - RGB15BW(9, Yblk[DCTSIZE2+1]); - RGB15BW(24, Yblk[DCTSIZE2+8]); - RGB15BW(25, Yblk[DCTSIZE2+9]); + RGB15BW(8, Yblk[DCTSIZE2 + 0]); + RGB15BW(9, Yblk[DCTSIZE2 + 1]); + RGB15BW(24, Yblk[DCTSIZE2 + 8]); + RGB15BW(25, Yblk[DCTSIZE2 + 9]); + } } - } } -void yuv2rgb24(int *blk,unsigned char *image) { - int x,y; - int *Yblk = blk+DCTSIZE2*2; - int Cb,Cr,R,G,B; - int *Cbblk = blk; - int *Crblk = blk+DCTSIZE2; +void yuv2rgb24(int* blk, unsigned char* image) +{ + int x, y; + int* Yblk = blk + DCTSIZE2 * 2; + int Cb, Cr, R, G, B; + int* Cbblk = blk; + int* Crblk = blk + DCTSIZE2; - if (!(Config.Mdec&0x1)) - for (y=0;y<16;y+=2,Crblk+=4,Cbblk+=4,Yblk+=8,image+=24*3) { - if (y==8) Yblk+=DCTSIZE2; - for (x=0;x<4;x++,image+=6,Crblk++,Cbblk++,Yblk+=2) { - Cr = *Crblk; - Cb = *Cbblk; - R = MULR(Cr); - G = MULG(Cb) + MULG2(Cr); - B = MULB(Cb); + if (!(Config.Mdec & 0x1)) + for (y = 0; y < 16; y += 2, Crblk += 4, Cbblk += 4, Yblk += 8, image += 24 * 3) + { + if (y == 8) + Yblk += DCTSIZE2; + for (x = 0; x < 4; x++, image += 6, Crblk++, Cbblk++, Yblk += 2) + { + Cr = *Crblk; + Cb = *Cbblk; + R = MULR(Cr); + G = MULG(Cb) + MULG2(Cr); + B = MULB(Cb); - RGB24(0, Yblk[0]); - RGB24(1*3, Yblk[1]); - RGB24(16*3, Yblk[8]); - RGB24(17*3, Yblk[9]); + RGB24(0, Yblk[0]); + RGB24(1 * 3, Yblk[1]); + RGB24(16 * 3, Yblk[8]); + RGB24(17 * 3, Yblk[9]); - Cr = *(Crblk+4); - Cb = *(Cbblk+4); - R = MULR(Cr); - G = MULG(Cb) + MULG2(Cr); - B = MULB(Cb); + Cr = *(Crblk + 4); + Cb = *(Cbblk + 4); + R = MULR(Cr); + G = MULG(Cb) + MULG2(Cr); + B = MULB(Cb); - RGB24(8*3, Yblk[DCTSIZE2+0]); - RGB24(9*3, Yblk[DCTSIZE2+1]); - RGB24(24*3, Yblk[DCTSIZE2+8]); - RGB24(25*3, Yblk[DCTSIZE2+9]); + RGB24(8 * 3, Yblk[DCTSIZE2 + 0]); + RGB24(9 * 3, Yblk[DCTSIZE2 + 1]); + RGB24(24 * 3, Yblk[DCTSIZE2 + 8]); + RGB24(25 * 3, Yblk[DCTSIZE2 + 9]); + } } - } else - for (y=0;y<16;y+=2,Yblk+=8,image+=24*3) { - if (y==8) Yblk+=DCTSIZE2; - for (x=0;x<4;x++,image+=6,Yblk+=2) { - RGB24BW(0, Yblk[0]); - RGB24BW(1*3, Yblk[1]); - RGB24BW(16*3, Yblk[8]); - RGB24BW(17*3, Yblk[9]); + else + for (y = 0; y < 16; y += 2, Yblk += 8, image += 24 * 3) + { + if (y == 8) + Yblk += DCTSIZE2; + for (x = 0; x < 4; x++, image += 6, Yblk += 2) + { + RGB24BW(0, Yblk[0]); + RGB24BW(1 * 3, Yblk[1]); + RGB24BW(16 * 3, Yblk[8]); + RGB24BW(17 * 3, Yblk[9]); - RGB24BW(8*3, Yblk[DCTSIZE2+0]); - RGB24BW(9*3, Yblk[DCTSIZE2+1]); - RGB24BW(24*3, Yblk[DCTSIZE2+8]); - RGB24BW(25*3, Yblk[DCTSIZE2+9]); + RGB24BW(8 * 3, Yblk[DCTSIZE2 + 0]); + RGB24BW(9 * 3, Yblk[DCTSIZE2 + 1]); + RGB24BW(24 * 3, Yblk[DCTSIZE2 + 8]); + RGB24BW(25 * 3, Yblk[DCTSIZE2 + 9]); + } } - } } //todo: psxmode: add mdec savestate support