Exemple #1
0
 private void InitMemoryCallbacks()
 {
     readcb  = (addr) => MemoryCallbacks.CallReads(addr);
     writecb = (addr) => MemoryCallbacks.CallWrites(addr);
     execcb  = (addr) => MemoryCallbacks.CallExecutes(addr);
     _memorycallbacks.ActiveChanged += RefreshMemoryCallbacks;
 }
Exemple #2
0
 private void InitMemoryCallbacks()
 {
     _readcb  = new LibGambatte.MemoryCallback(ReadCallback);
     _writecb = new LibGambatte.MemoryCallback(WriteCallback);
     _execcb  = new LibGambatte.MemoryCallback(ExecCallback);
     _memorycallbacks.ActiveChanged += RefreshMemoryCallbacks;
 }
        private void InitMemoryCallbacks()
        {
            LibGambatte.MemoryCallback CreateCallback(MemoryCallbackFlags flags, Func <bool> getHasCBOfType)
            {
                var rawFlags = (uint)flags;

                return((address, cycleOffset) =>
                {
                    callbackCycleCount = _cycleCount + cycleOffset;
                    if (getHasCBOfType())
                    {
                        MemoryCallbacks.CallMemoryCallbacks(address, 0, rawFlags, systemBusScope);
                    }
                });
            }

            _readcb  = CreateCallback(MemoryCallbackFlags.AccessRead, () => MemoryCallbacks.HasReads);
            _writecb = CreateCallback(MemoryCallbackFlags.AccessWrite, () => MemoryCallbacks.HasWrites);
            _execcb  = CreateCallback(MemoryCallbackFlags.AccessExecute, () => MemoryCallbacks.HasExecutes);

            _memorycallbacks.ActiveChanged += () =>
            {
                LibGambatte.gambatte_setreadcallback(GambatteState, MemoryCallbacks.HasReads ? _readcb : null);
                LibGambatte.gambatte_setwritecallback(GambatteState, MemoryCallbacks.HasWrites ? _writecb : null);
                LibGambatte.gambatte_setexeccallback(GambatteState, MemoryCallbacks.HasExecutes ? _execcb : null);
            };
        }
 private void InitMemoryCallbacks()
 {
     _readcb  = addr => MemoryCallbacks.CallReads(addr, "System Bus");
     _writecb = addr => MemoryCallbacks.CallWrites(addr, "System Bus");
     _execcb  = addr => MemoryCallbacks.CallExecutes(addr, "System Bus");
     _memorycallbacks.ActiveChanged += RefreshMemoryCallbacks;
 }
		private void InitMemoryCallbacks()
		{
			readcb = (addr) => MemoryCallbacks.CallReads(addr);
			writecb = (addr) => MemoryCallbacks.CallWrites(addr);
			execcb = (addr) => MemoryCallbacks.CallExecutes(addr);
			_memorycallbacks.ActiveChanged += RefreshMemoryCallbacks;
		}
Exemple #6
0
 /// <summary>
 /// for use in dual core
 /// </summary>
 internal void ConnectMemoryCallbackSystem(MemoryCallbackSystem mcs, int which)
 {
     _memorycallbacks = mcs;
     _readcb          = CreateCallback(MemoryCallbackFlags.AccessRead, () => MemoryCallbacks.HasReads, $"P{which + 1} ");
     _writecb         = CreateCallback(MemoryCallbackFlags.AccessWrite, () => MemoryCallbacks.HasWrites, $"P{which + 1} ");
     _execcb          = CreateCallback(MemoryCallbackFlags.AccessExecute, () => MemoryCallbacks.HasExecutes, $"P{which + 1} ");
     _memorycallbacks.ActiveChanged += SetMemoryCallbacks;
 }
Exemple #7
0
        private void InitMemoryCallbacks()
        {
            _readcb  = CreateCallback(MemoryCallbackFlags.AccessRead, () => MemoryCallbacks.HasReads);
            _writecb = CreateCallback(MemoryCallbackFlags.AccessWrite, () => MemoryCallbacks.HasWrites);
            _execcb  = CreateCallback(MemoryCallbackFlags.AccessExecute, () => MemoryCallbacks.HasExecutes);

            _memorycallbacks.ActiveChanged += SetMemoryCallbacks;
        }
Exemple #8
0
        void RefreshMemoryCallbacks()
        {
            var mcs = CoreComm.MemoryCallbackSystem;

            // we RefreshMemoryCallbacks() after the triggers in case the trigger turns itself off at that point

            if (mcs.HasReads)
            {
                readcb = delegate(uint addr) { mcs.CallRead(addr); RefreshMemoryCallbacks(); }
            }
            ;
            else
            {
                readcb = null;
            }
            if (mcs.HasWrites)
            {
                writecb = delegate(uint addr) { mcs.CallWrite(addr); RefreshMemoryCallbacks(); }
            }
            ;
            else
            {
                writecb = null;
            }
            if (mcs.HasExecutes)
            {
                execcb = delegate(uint addr) { mcs.CallExecute(addr); RefreshMemoryCallbacks(); }
            }
            ;
            else
            {
                execcb = null;
            }

            LibGambatte.gambatte_setreadcallback(GambatteState, readcb);
            LibGambatte.gambatte_setwritecallback(GambatteState, writecb);
            LibGambatte.gambatte_setexeccallback(GambatteState, execcb);
        }
Exemple #9
0
		void RefreshMemoryCallbacks()
		{
			var mcs = CoreComm.MemoryCallbackSystem;

			// we RefreshMemoryCallbacks() after the triggers in case the trigger turns itself off at that point

			if (mcs.HasReads)
				readcb = delegate(uint addr) { mcs.CallRead(addr); RefreshMemoryCallbacks(); };
			else
				readcb = null;
			if (mcs.HasWrites)
				writecb = delegate(uint addr) { mcs.CallWrite(addr); RefreshMemoryCallbacks(); };
			else
				writecb = null;
			if (mcs.HasExecutes)
				execcb = delegate(uint addr) { mcs.CallExecute(addr); RefreshMemoryCallbacks(); };
			else
				execcb = null;

			LibGambatte.gambatte_setreadcallback(GambatteState, readcb);
			LibGambatte.gambatte_setwritecallback(GambatteState, writecb);
			LibGambatte.gambatte_setexeccallback(GambatteState, execcb);
		}