public void why_is_zscreammagic_making_extra_room_data() { RomData romData = Utilities.LoadRom("ALttP - VT_no-glitches-27_normal-open-ganon_521333165 original.sfc"); Random rand = new Random(0); var originalRooms = new DungeonObjectDataPointerCollection(romData); //foreach (var r in originalRooms.Rooms) //{ // output.WriteLine($"RoomId: {r.RoomId}, RoomName: {r.RoomName}, RoomGfx: {r.GraphicsBlockId}, sprite count: {r.Sprites.Count}, sprites: {String.Join(",", r.Sprites.Select(x => (x.IsOverlord ? "1" : "") + x.SpriteId.ToString("X2") + (x.HasAKey ? "(HasKey)" : "")))}"); //} romData = Utilities.LoadRom("ALttP - VT_no-glitches-27_normal-open-ganon_521333165 mod.sfc"); var bustedRooms = new DungeonObjectDataPointerCollection(romData); foreach (var r in originalRooms.RoomDungeonObjectDataPointers.Values) { var bustedRoom = bustedRooms.RoomDungeonObjectDataPointers.Values.Where(x => x.RoomId == r.RoomId).FirstOrDefault(); if (bustedRoom != null) { if (r.Data != bustedRoom.Data) { output.WriteLine($"RoomId: {r.RoomId}, original length: {r.Data.Length}, modified length: {bustedRoom.Data.Length}"); } } } }
public void load_object_pointer_table() { //RomData romData = Utilities.LoadRom("rando.sfc"); RomData romData = Utilities.LoadRom("..\\..\\..\\alttp - VT_no-glitches-26_normal_open_none_830270265.sfc"); //RomData romData = Utilities.LoadRom("..\\..\\..\\EnemizerGui\\bin\\Debug\\Enemizer 6.0 - alttp - VT_no-glitches-26_normal_open_none_830270265.sfc"); var d = new DungeonObjectDataPointerCollection(romData); d.RoomDungeonObjectDataPointers[200].AddShell(0x2B, 0x28, false, 0xFF2); d.WriteChangesToRom(0x122000); output.WriteLine($"{d.RoomDungeonObjectDataPointers.Values.Where(x => x.RoomId == 200).FirstOrDefault().ROMAddress.ToString("X")}"); output.WriteLine($"Room\tSnesAddress\tRomAddress"); foreach (var p in d.RoomDungeonObjectDataPointers.Values) { output.WriteLine($"{p.RoomId}\t{p.SnesAddress.ToString("X")}\t{p.ROMAddress.ToString("X")}"); } }