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