static INT32 CpsLoadOneHack160(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nType) { INT32 i = 0, j = 0; UINT8 *Rom1 = NULL, *Rom2 = NULL; INT32 nRomLen1 = 0, nRomLen2 = 0; UINT8 *pt = NULL, *pr = NULL; LoadUp(&Rom1, &nRomLen1, nNum); if (Rom1 == NULL) { return 1; } LoadUp(&Rom2, &nRomLen2, nNum + 1); if (Rom2 == NULL) { return 1; } INT32 TileOffset[4] = { 0x000000, 0x000004, 0x200000, 0x200004 }; if (nType == 1) { TileOffset[1] = 0x200000; TileOffset[2] = 0x000004; } for (j = 0; j < 4; j++) { for (i = 0, pt = Tile + TileOffset[j], pr = Rom1 + (0x80000 * j); i < 0x80000; pt += 8) { UINT32 Pix; // Eight pixels UINT8 b; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= 0; *((UINT32 *)pt) |= Pix; } for (i = 0, pt = Tile + TileOffset[j], pr = Rom2 + (0x80000 * j); i < 0x80000; pt += 8) { UINT32 Pix; // Eight pixels UINT8 b; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= 2; *((UINT32 *)pt) |= Pix; } } BurnFree(Rom2); BurnFree(Rom1); return 0; }
static int Cps2LoadOne(unsigned char* Tile, int nNum, int nWord, int nShift) { unsigned char *Rom = NULL; int nRomLen = 0; unsigned char *pt, *pr; LoadUp(&Rom, &nRomLen, nNum); if (Rom == NULL) { return 1; } if (nWord == 0) { unsigned char*Rom2 = NULL; int nRomLen2 = 0; unsigned char*Rom3 = Rom; LoadUp(&Rom2, &nRomLen2, nNum + 1); if (Rom2 == NULL) { return 1; } nRomLen <<= 1; Rom = (unsigned char*)malloc(nRomLen); if (Rom == NULL) { free(Rom2); free(Rom3); return 1; } for (int i = 0; i < nRomLen2; i++) { Rom[(i << 1) + 0] = Rom3[i]; Rom[(i << 1) + 1] = Rom2[i]; } free(Rom2); free(Rom3); } // Go through each section pt = Tile; pr = Rom; for (int b = 0; b < nRomLen >> 19; b++) { Cps2Load100000(pt, pr, nShift); pt += 0x100000; Cps2Load100000(pt, pr + 2, nShift); pt += 0x100000; pr += 0x80000; } free(Rom); return 0; }
static INT32 Cps2LoadOne(UINT8* Tile, INT32 nNum, INT32 nWord, INT32 nShift) { UINT8 *Rom = NULL; INT32 nRomLen = 0; UINT8 *pt, *pr; LoadUp(&Rom, &nRomLen, nNum); if (Rom == NULL) { return 1; } if (nWord == 0) { UINT8*Rom2 = NULL; INT32 nRomLen2 = 0; UINT8*Rom3 = Rom; LoadUp(&Rom2, &nRomLen2, nNum + 1); if (Rom2 == NULL) { return 1; } nRomLen <<= 1; Rom = (UINT8*)BurnMalloc(nRomLen); if (Rom == NULL) { BurnFree(Rom2); BurnFree(Rom3); return 1; } for (INT32 i = 0; i < nRomLen2; i++) { Rom[(i << 1) + 0] = Rom3[i]; Rom[(i << 1) + 1] = Rom2[i]; } BurnFree(Rom2); BurnFree(Rom3); } // Go through each section pt = Tile; pr = Rom; for (INT32 b = 0; b < nRomLen >> 19; b++) { Cps2Load100000(pt, pr, nShift); pt += 0x100000; Cps2Load100000(pt, pr + 2, nShift); pt += 0x100000; pr += 0x80000; } BurnFree(Rom); return 0; }
static int CpsLoadOnePang(unsigned char *Tile,int nNum,int nWord,int nShift) { int i=0; unsigned char *Rom = NULL; int nRomLen = 0; unsigned char *pt = NULL, *pr = NULL; LoadUp(&Rom, &nRomLen, nNum); if (Rom == NULL) { return 1; } nRomLen &= ~1; // make sure even for (i = 0x100000, pt = Tile, pr = Rom + 0x100000; i < nRomLen; pt += 8) { unsigned int Pix; // Eight pixels unsigned char b; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= nShift; *((unsigned int *)pt) |= Pix; } free(Rom); return 0; }
static INT32 CpsLoadOneBootlegType3Swap(UINT8 *Tile, INT32 nNum, INT32 nWord, INT32 nShift) { UINT8 *Rom = NULL; int nRomLen=0; UINT8 *pt = NULL, *pr = NULL; INT32 i; LoadUp(&Rom, &nRomLen, nNum); if (Rom == NULL) { return 1; } nRomLen &= ~1; // make sure even for (i = 0, pt = Tile, pr = Rom; i < nRomLen; pt += 4) { UINT32 Pix; // Eight pixels UINT8 b; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= nShift; *((UINT32 *)pt) |= Pix; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= (nShift + 1); *((UINT32 *)pt) |= Pix; } BurnFree(Rom); return 0; }
static INT32 CpsLoadOnePang(UINT8 *Tile,INT32 nNum,INT32 nWord,INT32 nShift) { INT32 i=0; UINT8 *Rom = NULL; INT32 nRomLen = 0; UINT8 *pt = NULL, *pr = NULL; LoadUp(&Rom, &nRomLen, nNum); if (Rom == NULL) { return 1; } nRomLen &= ~1; // make sure even for (i = 0x100000, pt = Tile, pr = Rom + 0x100000; i < nRomLen; pt += 8) { UINT32 Pix; // Eight pixels UINT8 b; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= nShift; *((UINT32 *)pt) |= Pix; } BurnFree(Rom); return 0; }
static int CpsLoadOneHack160(unsigned char *Tile, int nNum, int nWord, int nOffset) { int i = 0; unsigned char *Rom1 = NULL, *Rom2 = NULL; int nRomLen1 = 0, nRomLen2 = 0; unsigned char *pt = NULL, *pr = NULL; LoadUp(&Rom1, &nRomLen1, nNum); if (Rom1 == NULL) { return 1; } LoadUp(&Rom2, &nRomLen2, nNum + 1); if (Rom2 == NULL) { return 1; } for (i = 0, pt = Tile, pr = Rom1 + (0x80000 * nOffset); i < 0x80000; pt += 8) { unsigned int Pix; // Eight pixels unsigned char b; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= 0; *((unsigned int *)pt) |= Pix; } for (i = 0, pt = Tile, pr = Rom2 + (0x80000 * nOffset); i < 0x80000; pt += 8) { unsigned int Pix; // Eight pixels unsigned char b; b = *pr++; i++; Pix = SepTable[b]; if (nWord) { b = *pr++; i++; Pix |= SepTable[b] << 1; } Pix <<= 2; *((unsigned int *)pt) |= Pix; } free(Rom2); free(Rom1); return 0; }
void lload::CImageController::UpdateScrollPosition(size_t position) { if (position > m_scrollPosition) { LoadBack(position); } else { LoadUp(position); } m_scrollPosition = position; }
int CpsLoadStarsForgottnAlt(unsigned char* pStar, int nStart) { unsigned char* pTemp[2] = { NULL, NULL}; int nLen; for (int i = 0; i < 2; i++) { if (LoadUp(&pTemp[i], &nLen, nStart + (i * 3))) { free(pTemp[0]); free(pTemp[1]); } } for (int i = 0; i < 0x1000; i++) { pStar[i] = pTemp[0][i << 1]; pStar[0x01000 + i] = pTemp[1][i << 1]; } free(pTemp[0]); free(pTemp[1]); return 0; }
INT32 CpsLoadStarsForgottnAlt(UINT8* pStar, INT32 nStart) { UINT8* pTemp[2] = { NULL, NULL}; INT32 nLen; for (INT32 i = 0; i < 2; i++) { if (LoadUp(&pTemp[i], &nLen, nStart + (i * 3))) { BurnFree(pTemp[0]); BurnFree(pTemp[1]); } } for (INT32 i = 0; i < 0x1000; i++) { pStar[i] = pTemp[0][i << 1]; pStar[0x01000 + i] = pTemp[1][i << 1]; } BurnFree(pTemp[0]); BurnFree(pTemp[1]); return 0; }