private void DrawObject(int tile, bool h, bool v, bool s, int c, Bitmap img, int x, int y, int zoom) { int objsize = (Data.GetPPUReg(0x01) & 0xE0) >> 5; int nameBase = 0xE000 & ((Data.GetPPUReg(0x01) & 0x7) << 14); int nameOffset = 0x6000 & ((Data.GetPPUReg(0x01) & 0x18) << 10); int vram = 0xFFFF & (nameBase + (tile >= 0x100 ? nameOffset : 0) + tile * 0x20); int cgram = 0x80 + SNESGraphics.colorsPerPalette[1] * c; int bw = Util.OBJsizes[objsize, (s ? 1 : 0), 0] / 8, bh = Util.OBJsizes[objsize, (s ? 1 : 0), 1] / 8; SNESGraphics.DrawObject(vram, h, v, bw, bh, cgram, img, x, y, zoom); }
private void DrawOBJ(int tile, bool h, bool v, bool s, int c, Bitmap img, int x, int y, int zoom) { int objsize = (Data.GetPPUReg(0x01) & 0xE0) >> 5; int nameBase = 0xE000 & ((Data.GetPPUReg(0x01) & 0x7) << 14); int nameOffset = 0x6000 & ((Data.GetPPUReg(0x01) & 0x18) << 10); int vram = 0xFFFF & (nameBase + (tile >= 0x100 ? nameOffset : 0) + tile * 0x20); int cgram = 0x80 + SNESGraphics.colorsPerPalette[1] * c; int bw = Util.OBJsizes[objsize, (s ? 1 : 0), 0] / 8, bh = Util.OBJsizes[objsize, (s ? 1 : 0), 1] / 8; for (int ty = 0; ty < bh; ty++) { for (int tx = 0; tx < bw; tx++) { SNESGraphics.Clear8x8Tile(cgram, img, x + 8 * tx, y + 8 * ty, zoom, viewerTransparency); } } SNESGraphics.DrawObject(vram, h, v, bw, bh, cgram, img, x, y, zoom); }