public void SaveBank(int bank) { RAMBank b = banks[bank]; if (b == null || b.compressed || b.value.Length > b.ROMEnd - b.ROMStart) { messages.AppendMessage("RAM bank 0x" + bank.ToString("X2") + " cannot be saved", "Error"); return; } Array.Copy(banks[bank].value, 0, ROM, banks[bank].ROMStart, banks[bank].value.Length); }
public void LoadBank(int bank, int ROMStart, int ROMEnd, bool decompress) { if (bank >= banks.Length || bank < 0) { messages.AppendMessage("Bank 0x" + bank.ToString("X") + " is too high!", "Error"); return; } if (!AssertROM()) { return; } if (ROMEnd > ROM.Length || ROMEnd < ROMStart) { messages.AppendMessage("Invalid ROM end for bank 0x" + bank + " (" + ROMStart.ToString("X") + " - " + ROMEnd.ToString("X") + ").", "Error"); return; } banks[bank] = new RAMBank(bank, ROMStart, ROMEnd, decompress); if (BankLoaded != null) { BankLoaded(bank); } }