diff --git a/pcsx2/gui/Debugger/CtrlMemView.cpp b/pcsx2/gui/Debugger/CtrlMemView.cpp index 86b86c0de3..899b9cc90d 100644 --- a/pcsx2/gui/Debugger/CtrlMemView.cpp +++ b/pcsx2/gui/Debugger/CtrlMemView.cpp @@ -612,11 +612,11 @@ void CtrlMemView::scrollCursor(int bytes) if (curAddress < windowStart) { - windowStart = (curAddress / rowSize) * curAddress; + windowStart = (curAddress / rowSize) * rowSize; } else if (curAddress >= windowEnd) { windowStart = curAddress - (visibleRows - 1)*rowSize; - windowStart = (windowStart / rowSize) * windowStart; + windowStart = (windowStart / rowSize) * rowSize; } updateStatusBarText(); @@ -642,7 +642,12 @@ void CtrlMemView::gotoAddress(u32 addr, bool pushInHistory) curAddress = addr; selectedNibble = 0; - windowStart = curAddress; + + int visibleRows = GetClientSize().y/rowHeight; + u32 windowEnd = windowStart+visibleRows*rowSize; + + if (curAddress < windowStart || curAddress >= windowEnd) + windowStart = (curAddress / rowSize) * rowSize; updateStatusBarText(); redraw(); diff --git a/pcsx2/gui/Debugger/DisassemblyDialog.cpp b/pcsx2/gui/Debugger/DisassemblyDialog.cpp index 0e962b8407..182b1cae5e 100644 --- a/pcsx2/gui/Debugger/DisassemblyDialog.cpp +++ b/pcsx2/gui/Debugger/DisassemblyDialog.cpp @@ -502,9 +502,8 @@ void DisassemblyDialog::onDebuggerEvent(wxCommandEvent& evt) { currentCpu->showMemoryView(); - CtrlMemView *memview = currentCpu->getMemoryView(); - memview->gotoAddress(evt.GetInt(), true); - memview->SetFocus(); + currentCpu->getMemoryView()->gotoAddress(evt.GetInt(), true); + currentCpu->getDisassembly()->SetFocus(); } } else if (type == debEVT_RUNTOPOS) {