Ejemplo n.º 1
0
        private void LoadTileset(ExpandoPatternOffsets.Entry location)
        {
            int destOffset = location.DestTileindex * 0x10;

            if (!location.IsSprite)
            {
                destOffset += 0x1000;
            }

            CopyChr(location.RomOffset, destOffset, location.TileCount * 0x10);
        }
Ejemplo n.º 2
0
        public override ChrDump GetRawPatterns()
        {
            ExpandoPatternOffsets.Entry bgChrOffsets;
            ExpandoPatternOffsets.Entry areaSprChrOffsets;
            ExpandoPatternOffsets.Entry globalSprOffsets    = ExpandoPatternOffsets.GlobalGameplaySprites;
            ExpandoPatternOffsets.Entry justinBaileyOffsets = ExpandoPatternOffsets.JustinBaileySprites;


            if (LevelId == LevelIndex.None)
            {
                bgChrOffsets      = ExpandoPatternOffsets.TitleBgGraphics;
                areaSprChrOffsets = ExpandoPatternOffsets.TitleSpriteGraphics;
            }
            else
            {
                bgChrOffsets      = ExpandoPatternOffsets.GetBackgroundEntry(LevelId);
                areaSprChrOffsets = ExpandoPatternOffsets.GetSpriteEntry(LevelId);
            }

            LoadTileset(bgChrOffsets);
            LoadTileset(globalSprOffsets);
            LoadTileset(areaSprChrOffsets);
            var sprChr = ExtractChr(0x0000, 0x1000);
            var bgChr  = ExtractChr(0x1000, 0x1000);

            LoadTileset(justinBaileyOffsets);
            var altSprChr = ExtractChr(0x0000, 0x800);

            if (LevelId == LevelIndex.None)
            {
                byte[][] blobs  = new byte[][] { bgChr, sprChr };
                var      bgMeta = new FrameSectionID[] { new FrameSectionID(0) };
                return(new ChrDump(blobs, bgMeta, 1, null, null));
            }
            else
            {
                byte[][] blobs  = new byte[][] { bgChr, sprChr, altSprChr };
                var      bgMeta = new FrameSectionID[] { new FrameSectionID(0) };
                return(new ChrDump(blobs, bgMeta, 1, 2, null));
            }
        }
Ejemplo n.º 3
0
 private RomRange RomRangeFrom(ExpandoPatternOffsets.Entry entry)
 {
     return(new RomRange(entry.RomOffset, entry.TileCount * 0x10));
 }
Ejemplo n.º 4
0
 void loadExpandoGroup(ExpandoPatternOffsets.Entry group)
 {
     LoadTiles(rom.data, group.RomOffset, group.DestTileindex, group.TileCount);
 }
Ejemplo n.º 5
0
 private void ApplyPatternsToBank(ChrBankBuilder builder, ExpandoPatternOffsets.Entry entry)
 {
     builder.CopyTiles(entry.RomOffset, entry.DestTileindex, entry.TileCount);
 }