mirror of https://github.com/stella-emu/stella.git
Updated 'Fixed Debug Colors' for PAL mode to more closely match the ones
in NTSC. First pass at disassembly of ZP RAM in the debugger UI. For now, the entire range is disassembled, with no regard for alignment (so the PC won't necessarily always line up with the disassembly). Also, changes to RAM don't yet trigger a re-disassembly. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1867 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
8f8095073b
commit
33130a78f0
|
@ -608,8 +608,11 @@ const string& Debugger::disassemble(int start, int lines)
|
|||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void Debugger::disassemble(IntArray& addr, StringList& addrLabel,
|
||||
StringList& bytes, StringList& data,
|
||||
int start, int lines)
|
||||
int start, int end)
|
||||
{
|
||||
if(start < 0x80 || end > 0xffff)
|
||||
return;
|
||||
|
||||
string cpubuf, tmp;
|
||||
char buf[255];
|
||||
|
||||
|
@ -630,7 +633,7 @@ void Debugger::disassemble(IntArray& addr, StringList& addrLabel,
|
|||
|
||||
data.push_back(cpubuf);
|
||||
}
|
||||
while(--lines > 0 && start <= 0xffff);
|
||||
while(start <= end);
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
|
|
@ -177,12 +177,12 @@ class Debugger : public DialogContainer
|
|||
const string& disassemble(int start, int lines);
|
||||
|
||||
/**
|
||||
Disassemble from the starting address the specified number of lines
|
||||
Disassemble from the starting address to the ending address
|
||||
and place addresses, bytes and data in given arrays.
|
||||
*/
|
||||
void disassemble(IntArray& addr, StringList& addrLabel,
|
||||
StringList& bytes, StringList& data,
|
||||
int start, int lines);
|
||||
int start, int end);
|
||||
|
||||
void autoExec();
|
||||
|
||||
|
|
|
@ -27,8 +27,7 @@
|
|||
RomListWidget::RomListWidget(GuiObject* boss, const GUI::Font& font,
|
||||
int x, int y, int w, int h)
|
||||
: CheckListWidget(boss, font, x, y, w, h),
|
||||
myMenu(NULL),
|
||||
myHighlightedItem(-1)
|
||||
myMenu(NULL)
|
||||
{
|
||||
_type = kRomListWidget;
|
||||
|
||||
|
|
|
@ -53,7 +53,6 @@ class RomListWidget : public CheckListWidget
|
|||
|
||||
private:
|
||||
ContextMenu* myMenu;
|
||||
int myHighlightedItem;
|
||||
int myLabelWidth;
|
||||
int myBytesWidth;
|
||||
|
||||
|
|
|
@ -179,8 +179,9 @@ void RomWidget::loadConfig()
|
|||
myCurrentBank = dbg.getBank();
|
||||
|
||||
// Update romlist to point to current PC
|
||||
// Take mirroring of PC into account
|
||||
int pc = dbg.cpuDebug().pc() | 0xe000;
|
||||
// Take mirroring of PC into account, as well as zero-page RAM
|
||||
int pc = dbg.cpuDebug().pc();
|
||||
if(pc & 0x1000) pc |= 0xe000;
|
||||
AddrToLine::iterator iter = myLineList.find(pc);
|
||||
|
||||
// if current PC not found, do an update (we're executing what
|
||||
|
@ -232,8 +233,9 @@ void RomWidget::initialUpdate()
|
|||
StringList label, data, disasm;
|
||||
BoolArray state;
|
||||
|
||||
// Disassemble entire bank (up to 4096 lines) and reset breakpoints
|
||||
dbg.disassemble(myAddrList, label, data, disasm, 0xf000, 4096);
|
||||
// Disassemble zero-page RAM and entire bank and reset breakpoints
|
||||
dbg.disassemble(myAddrList, label, data, disasm, 0x80, 0xff);
|
||||
dbg.disassemble(myAddrList, label, data, disasm, 0xf000, 0xffff);
|
||||
for(unsigned int i = 0; i < data.size(); ++i)
|
||||
{
|
||||
if(bp.isSet(myAddrList[i]))
|
||||
|
|
|
@ -176,10 +176,10 @@ void TIA::reset()
|
|||
}
|
||||
else
|
||||
{
|
||||
myFixedColor[_P0] = 0x30303030; // TODO - fix these for PAL
|
||||
myFixedColor[_P1] = 0x16161616;
|
||||
myFixedColor[_PF] = 0x76767676;
|
||||
myFixedColor[_BK] = 0x0a0a0a0a;
|
||||
myFixedColor[_P0] = 0x62626262;
|
||||
myFixedColor[_P1] = 0x26262626;
|
||||
myFixedColor[_PF] = 0xd8d8d8d8;
|
||||
myFixedColor[_BK] = 0x1c1c1c1c;
|
||||
myFixedColor[_HBLANK] = 0x0e0e0e0e;
|
||||
myColorLossEnabled = true;
|
||||
myMaximumNumberOfScanlines = 342;
|
||||
|
@ -1583,7 +1583,7 @@ void TIA::greyOutFrame()
|
|||
if(c > (myFrameHeight + myFrameYStart))
|
||||
return;
|
||||
|
||||
cerr << "greying frame from scanline " << c << endl;
|
||||
//cerr << "greying frame from scanline " << c << endl;
|
||||
|
||||
uInt8* buffer = myCurrentFrameBuffer + myFramePointerOffset;
|
||||
for(uInt32 s = c; s < (myFrameHeight + myFrameYStart); ++s)
|
||||
|
|
Loading…
Reference in New Issue