Example #1
0
        static void Main(string[] args)
        {
            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterType<Cpu>().As<ICpu>().SingleInstance();
            containerBuilder.RegisterType<Emulator>().As<IEmulator>();
            containerBuilder.RegisterType<Memory>().As<IMemory>().SingleInstance();
            containerBuilder.RegisterType<Ppu>().As<IPpu>().SingleInstance();
            containerBuilder.RegisterType<StolenPpu>().SingleInstance();
            containerBuilder.RegisterType<Lazy<StolenPpu>>().SingleInstance();

            var instructionTypes = Assembly.GetExecutingAssembly().GetTypes().Where(f => typeof(IInstruction).IsAssignableFrom(f) && !f.IsAbstract).ToArray();

            containerBuilder.RegisterTypes(instructionTypes)
                .As<IInstruction>();

            //var cartridge = new Cartridge("../../roms/nestest.nes");
            var cartridge = new Cartridge("../../roms/Balloon Fight (JU) [!].nes");

            containerBuilder.RegisterInstance(cartridge).As<ICartridge>();

            var container = containerBuilder.Build();

            var emulator = container.Resolve<IEmulator>();
            var memory = container.Resolve<IMemory>();

            memory.SetCartridge(cartridge);
            emulator.Reset();
            for (;;)
            {
                emulator.Step();
            }
        }
Example #2
0
        private static IContainer ConfigureApplication(MainForm mainForm)
        {
            var builder = new ContainerBuilder();
            builder.RegisterType<InputSource>().As<IInputSource>().SingleInstance();
            builder.RegisterInstance(mainForm).As<IPresenter>();

            builder.RegisterType<Cpu>().As<ICpu>().SingleInstance();
            builder.RegisterType<Emulator>().As<IEmulator>().SingleInstance();
            builder.RegisterType<Memory>().As<IMemory>().SingleInstance();
            builder.RegisterType<Ppu>().As<IPpu>().SingleInstance();
            builder.RegisterType<StolenPpu>();

            //var cartridge = new Cartridge("../../../LeetNES/roms/nestest.nes");
            var cartridge = new Cartridge("../../../LeetNES/roms/Bomberman (U).nes");

            builder.RegisterInstance(cartridge).As<ICartridge>();

            var instructionTypes = typeof(IInstruction).Assembly.GetTypes().Where(f => typeof(IInstruction).IsAssignableFrom(f) && !f.IsAbstract).ToArray();
            builder.RegisterTypes(instructionTypes).As<IInstruction>();

            return builder.Build();
        }
Example #3
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            //  var cartridge = new Cartridge("../../../LeetNES/roms/nestest.nes");//"Bomberman (U).nes");
            //var cartridge = new Cartridge("../../../LeetNES/roms/Bomberman (U).nes");
            var cartridge = new Cartridge("../../../LeetNES/roms/Balloon Fight (JU) [!].nes");

            //
            emulator.LoadCartridge(cartridge);
            emulator.Reset();
            base.Initialize();
        }