table_offset::table_offset(uint u) { this->u = u; users_count = 0; short_bitmaps = new ushort[((1<<u)+1)]; offset_class = new ushort[u+2]; binomial = new uint*[u+1]; log2binomial = new ushort*[u+1]; for(uint i=0;i<u+1;i++) { binomial[i] = new uint[u+1]; log2binomial[i] = new ushort[u+1]; for(uint j=0;j<u+1;j++) { binomial[i][j] = 0; log2binomial[i][j] = 0; } } for(uint i=0;i<u+1;i++) { binomial[i][0] = 1; binomial[i][1] = 1; binomial[i][i] = 1; log2binomial[i][0] = 0; log2binomial[i][1] = 0; log2binomial[i][i] = 0; } for(uint j=1;j<u+1;j++) { for(uint i=j+1;i<u+1;i++) { binomial[i][j] = binomial[i-1][j-1]+binomial[i-1][j]; log2binomial[i][j] = bits(binomial[i][j]-1); } } fill_tables(); }
SceUID mhp3_open(const char *file, int flags, SceMode mode) { u32 k1; SceUID fd = sceIoOpen(file, flags, mode); if (fd >= 0) { k1 = pspSdkSetK1(0); if (strcmp(file, DATABIN_PATH) == 0) { kprintf("DATA.BIN opened\n"); reopen_translation(); if (fill_tables(transfd) >= 0) { fill_install_tables(transfd); datafd = fd; } } else { register_install(file, fd); } pspSdkSetK1(k1); } return fd; }