memory domain: silent pokes

This commit is contained in:
goyuken 2015-01-25 20:10:19 +00:00
parent 2f3f7723a0
commit 2c09c10721
2 changed files with 14 additions and 21 deletions

View File

@ -49,17 +49,12 @@ namespace BizHawk.Emulation.Common
{ {
return data[addr]; return data[addr];
}, },
writable ?
delegate(long addr, byte val) delegate(long addr, byte val)
{ {
if (writable) data[addr] = val;
{
data[addr] = val;
}
else
{
throw new NotImplementedException();
}
} }
: (Action<long, byte>)null
); );
} }
@ -88,15 +83,14 @@ namespace BizHawk.Emulation.Common
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
return p[addr]; return p[addr];
}, },
writable ?
delegate(long addr, byte val) delegate(long addr, byte val)
{ {
if (writable) if ((uint)addr >= l)
{ throw new ArgumentOutOfRangeException();
if ((uint)addr >= l) p[addr] = val;
throw new ArgumentOutOfRangeException();
p[addr] = val;
}
} }
: (Action<long, byte>)null
); );
} }
@ -125,15 +119,14 @@ namespace BizHawk.Emulation.Common
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
return p[addr ^ 1]; return p[addr ^ 1];
}, },
writable ?
delegate(long addr, byte val) delegate(long addr, byte val)
{ {
if (writable) if ((uint)addr >= l)
{ throw new ArgumentOutOfRangeException();
if ((uint)addr >= l) p[addr ^ 1] = val;
throw new ArgumentOutOfRangeException();
p[addr ^ 1] = val;
}
} }
: (Action<long, byte>)null
); );
} }

View File

@ -49,7 +49,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
public MemoryDomain GetExRAM() public MemoryDomain GetExRAM()
{ {
return new MemoryDomain("ExRAM", EXRAM.Length, MemoryDomain.Endian.Little, (addr) => EXRAM[addr], (addr, val) => EXRAM[addr] = val); return MemoryDomain.FromByteArray("ExRAM", MemoryDomain.Endian.Little, EXRAM);
} }
/// <summary> /// <summary>