LinkedDisassemblable and put it in gambattelink
This commit is contained in:
parent
547c28ef28
commit
2016adcacf
|
@ -0,0 +1,31 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace BizHawk.Emulation.Common
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A generic linked implementation of IDisassemblable that can be used by any link core
|
||||||
|
/// </summary>
|
||||||
|
/// <seealso cref="IDisassemblable" />
|
||||||
|
public class LinkedDisassemblable : VerifiedDisassembler
|
||||||
|
{
|
||||||
|
private readonly IDisassemblable _baseDisassembler;
|
||||||
|
|
||||||
|
public LinkedDisassemblable(IDisassemblable baseDisassembler, int numCores)
|
||||||
|
{
|
||||||
|
_baseDisassembler = baseDisassembler;
|
||||||
|
string[] cpus = new string[numCores];
|
||||||
|
for (int i = 0; i < numCores; i++)
|
||||||
|
{
|
||||||
|
cpus[i] = $"P{i + 1} " + baseDisassembler.Cpu;
|
||||||
|
}
|
||||||
|
AvailableCpus = cpus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override IEnumerable<string> AvailableCpus { get; }
|
||||||
|
|
||||||
|
public override string PCRegisterName => Cpu.Substring(0, 2) + " PC";
|
||||||
|
|
||||||
|
public override string Disassemble(MemoryDomain m, uint addr, out int length) => _baseDisassembler.Disassemble(m, addr, out length);
|
||||||
|
}
|
||||||
|
}
|
|
@ -78,6 +78,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
|
|
||||||
_linkedDebuggable = new LinkedDebuggable(_linkedCores, _numCores, _memoryCallbacks);
|
_linkedDebuggable = new LinkedDebuggable(_linkedCores, _numCores, _memoryCallbacks);
|
||||||
_serviceProvider.Register<IDebuggable>(_linkedDebuggable);
|
_serviceProvider.Register<IDebuggable>(_linkedDebuggable);
|
||||||
|
|
||||||
|
_linkedDisassemblable = new LinkedDisassemblable(new GBDisassembler(), _numCores);
|
||||||
|
_serviceProvider.Register<IDisassemblable>(_linkedDisassemblable);
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly BasicServiceProvider _serviceProvider;
|
private readonly BasicServiceProvider _serviceProvider;
|
||||||
|
@ -105,6 +108,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
private readonly LinkedSaveRam _linkedSaveRam;
|
private readonly LinkedSaveRam _linkedSaveRam;
|
||||||
private readonly LinkedMemoryDomains _linkedMemoryDomains;
|
private readonly LinkedMemoryDomains _linkedMemoryDomains;
|
||||||
private readonly LinkedDebuggable _linkedDebuggable;
|
private readonly LinkedDebuggable _linkedDebuggable;
|
||||||
|
private readonly LinkedDisassemblable _linkedDisassemblable;
|
||||||
|
|
||||||
// counters to ensure we do 35112 samples per frame
|
// counters to ensure we do 35112 samples per frame
|
||||||
private readonly int[] _linkedOverflow;
|
private readonly int[] _linkedOverflow;
|
||||||
|
|
Loading…
Reference in New Issue