Parent Directory
|
Revision Log
|
Patch
--- trunk/RomCheater/Docking/UI/UIMemoryViewer.cs 2012/05/31 09:03:53 203 +++ trunk/RomCheater/Docking/UI/UIMemoryViewer.cs 2012/06/02 10:43:05 214 @@ -15,7 +15,6 @@ { public partial class UIMemoryViewer : UserControl, IProcessConfig, IAcceptsPlugin<IConfigPlugin>//, IAcceptsMemoryRange { - private bool first_load = true; public UIMemoryViewer() { InitializeComponent(); @@ -78,8 +77,8 @@ public IConfigPlugin AcceptedPlugin { get; set; } #endregion #region IAcceptsMemoryRange members - private uint MemoryStart { get { return 0; } } - private uint MemorySize { get { return int.MaxValue; } } + public uint MemoryStart { get { return 0; } } + public uint MemorySize { get { return int.MaxValue; } } #endregion public void GotoTop() { this.CURRENT_TOP_ADDR = 0; } public void GotoBottom() { uint size = MemorySize; this.CURRENT_TOP_ADDR = (uint)((size - 1) - max_ram_view); } @@ -148,10 +147,10 @@ editor.ShowDialog(); if (editor.BytesEdited) { - DynamicByteProvider _DynamicByteProvider = new DynamicByteProvider(editor.AsBytes); - txtData.ByteProvider = _DynamicByteProvider; - _DynamicByteProvider.Changed += new EventHandler(HexResourceViewerBytes_Changed); - this.WriteCurrentBytes(); + //DynamicByteProvider _DynamicByteProvider = new DynamicByteProvider(editor.AsBytes); + //txtData.ByteProvider = _DynamicByteProvider; + //_DynamicByteProvider.Changed += new EventHandler(HexResourceViewerBytes_Changed); + this.WriteCurrentBytes(this.CURRENT_TOP_ADDR, editor.AsBytes); } this.UpdateEnabled = reenable; } @@ -269,18 +268,18 @@ } catch (Exception ex) { logger.Error.WriteLine("{0}.UpdateMemroyView():{1}{2}", this.GetType().Name, System.Environment.NewLine, ex.ToString()); } } - private void HexResourceViewerBytes_Changed(object sender, System.EventArgs e) - { - this.WriteCurrentBytes(); - } - private void WriteCurrentBytes() + //private void HexResourceViewerBytes_Changed(object sender, System.EventArgs e) + //{ + // this.WriteCurrentBytes(); + //} + private void WriteCurrentBytes(uint start_address, byte[] data) { try { if (AcceptedProcess == null) { return; } if (AcceptedPlugin == null) { return; } // Byte changed - byte[] data = (txtData.ByteProvider as DynamicByteProvider).Bytes.ToArray(); + //byte[] data = (txtData.ByteProvider as DynamicByteProvider).Bytes.ToArray(); Sojaner.MemoryScanner.ProcessMemoryReader reader = new Sojaner.MemoryScanner.ProcessMemoryReader(); @@ -288,11 +287,11 @@ reader.OpenProcess(); int bytesReadSize; - for (int i = 0; i < data.Length; i += sizeof(uint)) + for (int i = 0; i < data.Length; i ++) { - uint addr = (uint)(this.CURRENT_TOP_ADDR + i); - uint data_to_write = BitConverter.ToUInt32(data, i); - reader.WriteProcessMemory((UIntPtr)addr, data, out bytesReadSize); + uint addr = (uint)(start_address + i); + byte data_to_write = data[i]; + reader.WriteProcessMemory((UIntPtr)addr, data_to_write, out bytesReadSize); } } catch (Exception ex) { logger.Error.WriteLine("{0}.WriteCurrentBytes():{1}{2}", this.GetType().Name, System.Environment.NewLine, ex.ToString()); } @@ -309,7 +308,7 @@ //this.Logger.LogDebugMessage(string.Format("RunWorkerCompeleted() -> Memory Size: {0}0x{2:X8}{1}", "{", "}", RamData.Length)); DynamicByteProvider _DynamicByteProvider = new DynamicByteProvider(RamData); txtData.ByteProvider = _DynamicByteProvider; - _DynamicByteProvider.Changed += new EventHandler(HexResourceViewerBytes_Changed); + //_DynamicByteProvider.Changed += new EventHandler(HexResourceViewerBytes_Changed); } catch (ObjectDisposedException) { } // ignore errors aobut disposed objects (usually only happens when the parent closes) catch (Exception ex) { logger.Error.WriteLine("{0}.ResultsUpdateWorkerThread_RunWorkerCompleted():{1}{2}", this.GetType().Name, System.Environment.NewLine, ex.ToString()); } @@ -325,7 +324,7 @@ uint ORIGINAL_ADDR = this.CURRENT_TOP_ADDR; ////if (e.Type == ScrollEventType.EndScroll) return; - uint size = max_ram_view; + //uint size = max_ram_view; bool haveModifier = false; switch (e.Modifiers) @@ -337,7 +336,7 @@ this.CURRENT_TOP_ADDR = 0; //NonHandledKeysAreBeingPressed = false; break; case Keys.End: - this.CURRENT_TOP_ADDR = (uint)((size - 1) - max_ram_view); //NonHandledKeysAreBeingPressed = false; + this.CURRENT_TOP_ADDR = (uint)((MemorySize - 1) - max_ram_view); //NonHandledKeysAreBeingPressed = false; break; default: //NonHandledKeysAreBeingPressed = true; @@ -351,13 +350,27 @@ switch (e.KeyCode) { case Keys.Up: - this.CURRENT_TOP_ADDR -= (uint)small_scroll_change; //NonHandledKeysAreBeingPressed = false; + if (this.CURRENT_TOP_ADDR == 0 && (this.CURRENT_TOP_ADDR - small_scroll_change > this.CURRENT_TOP_ADDR)) + { + this.CURRENT_TOP_ADDR = ORIGINAL_ADDR; + } + else + { + this.CURRENT_TOP_ADDR -= (uint)small_scroll_change; //NonHandledKeysAreBeingPressed = false; + } break; case Keys.Down: this.CURRENT_TOP_ADDR += (uint)small_scroll_change; //NonHandledKeysAreBeingPressed = false; break; case Keys.PageUp: - this.CURRENT_TOP_ADDR -= (uint)(large_scroll_change); //NonHandledKeysAreBeingPressed = false; + if (this.CURRENT_TOP_ADDR == 0 && (this.CURRENT_TOP_ADDR - large_scroll_change > this.CURRENT_TOP_ADDR)) + { + this.CURRENT_TOP_ADDR = ORIGINAL_ADDR; + } + else + { + this.CURRENT_TOP_ADDR -= (uint)(large_scroll_change); //NonHandledKeysAreBeingPressed = false; + } break; case Keys.PageDown: this.CURRENT_TOP_ADDR += (uint)(large_scroll_change); //NonHandledKeysAreBeingPressed = false; @@ -369,8 +382,8 @@ } if (this.CURRENT_TOP_ADDR < MemoryStart) this.CURRENT_TOP_ADDR = MemoryStart; //if (this.CURRENT_TOP_ADDR >= VTLB_VADDR_SIZE) this.CURRENT_TOP_ADDR = (size - 1) - max_ram_view; - if (this.CURRENT_TOP_ADDR + max_ram_view >= MemorySize) this.CURRENT_TOP_ADDR = (size - 1); - + if (this.CURRENT_TOP_ADDR + max_ram_view >= MemorySize) this.CURRENT_TOP_ADDR = (MemorySize - max_ram_view); + //this.UpdateEnabled = reenable; } @@ -427,7 +440,7 @@ this.UpdateMaxRamView(); uint ORIGINAL_ADDR = this.CURRENT_TOP_ADDR; - uint size = MemorySize; + //uint size = MemorySize; if (e.Type == ScrollEventType.EndScroll) return; switch (e.Type) @@ -469,9 +482,10 @@ if (this.CURRENT_TOP_ADDR < 0) this.CURRENT_TOP_ADDR = 0; //if (this.CURRENT_TOP_ADDR >= VTLB_VADDR_SIZE) this.CURRENT_TOP_ADDR = VTLB_VADDR_SIZE - max_ram_view; //if (this.CURRENT_TOP_ADDR < 0 || this.CURRENT_TOP_ADDR >= VTLB_VADDR_SIZE) this.CURRENT_TOP_ADDR = ORIGINAL_ADDR; - if (this.CURRENT_TOP_ADDR + max_ram_view >= MemorySize) this.CURRENT_TOP_ADDR = (size - 1) - max_ram_view; + if (this.CURRENT_TOP_ADDR + max_ram_view >= MemorySize) this.CURRENT_TOP_ADDR = MemorySize - max_ram_view; //this.UpdateEnabled = reenable; //isScrolling = false; } + } }
ViewVC Help | |
Powered by ViewVC 1.1.22 |