public Mapper(GameBoyMemoryBus bus) { if (bus == null) throw new ArgumentNullException(); this.bus = bus; this.ramWriteInternalHandler = HandleRamWriteInternal; this.ramWriteHandler = HandleRamWrite; }
internal void ResetRamWriteHandler() { MemoryWriteHandler handler = mapper != null ? mapper.RamWriteHandler : null; for (int i = 0xA0; i < 0xC0; i++) { segmentWriteHandlerArray[i] = handler; } }
private void ResetRomWriteHandler() { MemoryWriteHandler handler = mapper != null ? new MemoryWriteHandler(mapper.HandleRomWrite) : null; for (int i = 0x00; i < 0x80; i++) { segmentWriteHandlerArray[i] = handler; } }
public Mapper(GameBoyMemoryBus bus) { if (bus == null) { throw new ArgumentNullException(); } this._bus = bus; this._ramWriteInternalHandler = HandleRamWriteInternal; this._ramWriteHandler = HandleRamWrite; }
/// <summary>Writes a <see cref="System.Byte"/> at the specified offset in Game Boy memory.</summary> /// <param name="offsetLow">The low byte of the offset.</param> /// <param name="offsetHigh">The high byte of the offset.</param> /// <param name="value">The value to write.</param> public unsafe void WriteByte(byte offsetLow, byte offsetHigh, byte value) { MemoryWriteHandler handler = segmentWriteHandlerArray[offsetHigh]; if (handler != null) { handler(offsetLow, offsetHigh, value); } else { segmentArray[offsetHigh][offsetLow] = value; } }
public unsafe void WriteByte(ushort offset, byte value) { MemoryWriteHandler handler = segmentWriteHandlerArray[offset >> 8]; if (handler != null) { handler((byte)offset, (byte)(offset >> 8), value); } else { segmentArray[offset >> 8][offset & 0xFF] = value; } }