Example #1
0
        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);
        }
Example #2
0
        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);
        }