private bool Set3(AddrData data)
        {
            switch (data.dest)
            {
            case 0x02025EB4:
                this.bg2RoomDataAddr = data;
                break;

            case 0x0200B654:
                this.bg1RoomDataAddr = data;
                break;

            case 0x2002F00:
                this.bg1RoomDataAddr = data;
                this.bg1Use20344B0   = true;
                break;

            default:
                Debug.Write("Unhandled room data addr: ");
                Debug.Write(data.src.Hex() + "->" + data.dest.Hex());
                Debug.WriteLine(data.compressed ? " (compressed)" : "");
                break;
            }
            return(true);
        }
Beispiel #2
0
        public MetaTileSet(AddrData addrData, AddrData metaTypes, bool isBg1, string filePath, int enumType)
        {
            var setPath  = filePath;
            var typePath = filePath;

            if (enumType == 1)
            {
                setPath  += "/" + DataType.bg1MetaTileSet + "Dat.bin";
                typePath += "/" + DataType.bg1MetaTileType + "Dat.bin";
            }

            if (enumType == 2)
            {
                setPath  += "/" + DataType.bg2MetaTileSet + "Dat.bin";
                typePath += "/" + DataType.bg2MetaTileType + "Dat.bin";
            }

            metaTileSetData  = Project.Instance.GetSavedData(setPath, true, addrData.size);
            metaTileTypeData = Project.Instance.GetSavedData(typePath, true, metaTypes.size);

            if (metaTileSetData == null)
            {
                metaTileSetData = DataHelper.GetData(addrData);
            }
            if (metaTileTypeData == null)
            {
                metaTileTypeData = DataHelper.GetData(metaTypes);
            }
            Console.WriteLine("types" + metaTileTypeData.Length);
            Console.WriteLine("tiles" + metaTileSetData.Length);
            this.isBg1 = isBg1;
        }
        private bool Set2(AddrData data)
        {
            //use a switch in case this data is out of order
            switch (data.dest)
            {
            case 0x0202CEB4:
                this.bg2MetaTilesAddr = data;
                Debug.WriteLine(data.src.Hex() + " bg2");
                break;

            case 0x02012654:
                this.bg1MetaTilesAddr = data;
                Debug.WriteLine(data.src.Hex() + " bg1");
                break;

            //case 0x0202AEB4:
            //ret[8] = source; //not handled
            //break;
            //case 0x02010654:
            //ret[9] = source; //not handled
            //break;
            default:
                Debug.Write("Unhandled metatile addr: ");
                Debug.Write(data.src.Hex() + "->" + data.dest.Hex());
                Debug.WriteLine(data.compressed ? " (compressed)" : "");
                break;
            }
            return(true);
        }
Beispiel #4
0
 public static byte[] GetData(AddrData addrData)
 {
     if (addrData.compressed)
     {
         return(GetCompressed(addrData.src));
     }
     else
     {
         return(GetUncompressed(addrData.src, addrData.size));
     }
 }
        public MetaTileSet(AddrData addrData, bool isBg1, string filePath)
        {
            metaTileSetData = Project.Instance.GetSavedData(filePath, true, addrData.size);

            if (metaTileSetData == null)
            {
                metaTileSetData = DataHelper.GetData(addrData);
            }

            this.isBg1 = isBg1;
        }
Beispiel #6
0
 public static byte[] GetData(AddrData addrData)
 {
     if (addrData.compressed)
     {
         return(Lz77Decompress(addrData.src));
     }
     else
     {
         return(DMA(addrData.src, addrData.size));
     }
 }
        private bool Bg2Check(AddrData data)
        {
            switch (data.dest)
            {
            case 0x02025EB4:
                return(false);

            default:
                break;
            }
            return(true);
        }
        //dont have any good names for these 3
        private bool Set1(AddrData data)
        {
            if ((data.dest & 0xF000000) != 0x6000000)
            {             //not valid tile data addr
                Console.WriteLine("Unhandled tile data destination address: " + data.dest.Hex() + " Source:" + data.src.Hex() + " Compressed:" + data.compressed + " Size:" + data.size.Hex());
                return(false);
            }

            data.dest = data.dest & 0xFFFFFF;
            this.tileSetAddrs.Add(data);
            return(true);
        }
Beispiel #9
0
        private bool Meta1Check(AddrData data)
        {
            switch (data.dest)
            {
            case 0x02012654:
                return(false);

            default:
                break;
            }
            return(true);
        }
        private bool Bg1Check(AddrData data)
        {
            switch (data.dest)
            {
            case 0x0200B654:
                return(false);

            case 0x2002F00:
                return(false);

            default:
                break;
            }
            return(true);
        }
Beispiel #11
0
 public MetaTileSet(AddrData addrData, bool isBg1)
 {
     metaTileSetData = DataHelper.GetData(addrData);
     this.isBg1      = isBg1;
 }
Beispiel #12
0
 private bool TileCommonCheck(AddrData data)
 {
     return(data.dest != 0x4000);
 }
Beispiel #13
0
 private bool Tile2Check(AddrData data)
 {
     return(data.dest != 0x8000);
 }
Beispiel #14
0
 private bool Tile1Check(AddrData data)
 {
     return(data.dest != 0);
 }