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); }
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); }
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; }
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); }
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); }
public MetaTileSet(AddrData addrData, bool isBg1) { metaTileSetData = DataHelper.GetData(addrData); this.isBg1 = isBg1; }
private bool TileCommonCheck(AddrData data) { return(data.dest != 0x4000); }
private bool Tile2Check(AddrData data) { return(data.dest != 0x8000); }
private bool Tile1Check(AddrData data) { return(data.dest != 0); }