mirror of https://github.com/stella-emu/stella.git
Added ability for the debugger to start up in 'fatal error' mode.
This basically shows a messagebox as soon as the debugger starts, describing the error and offering the choice to continue debugging or exiting the ROM entirely. The DPC+ code now catches fatal errors from the Thumb ARM emulation code and shows it as a fatal error in the debugger. This means you no longer need to look at the commandline for this output, and you immediately know that something has gone wrong. Added 'exitrom' debugger parser command, which completely exits from the debugger *and* the ROM, going back to the ROM launcher. Cleaned up the API a little, rearranging some classes and adding references instead of pointers. More work to be done in this area. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2234 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
db46773ea1
commit
bc7daa397e
|
@ -15,9 +15,6 @@
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id$
|
// $Id$
|
||||||
//
|
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef STRING_LIST_HXX
|
#ifndef STRING_LIST_HXX
|
|
@ -0,0 +1,49 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// SSSS tt lll lll
|
||||||
|
// SS SS tt ll ll
|
||||||
|
// SS tttttt eeee ll ll aaaa
|
||||||
|
// SSSS tt ee ee ll ll aa
|
||||||
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||||
|
// SS SS tt ee ll ll aa aa
|
||||||
|
// SSSS ttt eeeee llll llll aaaaa
|
||||||
|
//
|
||||||
|
// Copyright (c) 1995-2011 by Bradford W. Mott, Stephen Anthony
|
||||||
|
// and the Stella Team
|
||||||
|
//
|
||||||
|
// See the file "License.txt" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#ifndef STRING_PARSER_HXX
|
||||||
|
#define STRING_PARSER_HXX
|
||||||
|
|
||||||
|
#include "StringList.hxx"
|
||||||
|
#include "bspf.hxx"
|
||||||
|
|
||||||
|
/**
|
||||||
|
This class converts a string into a StringList by splitting on a delimiter.
|
||||||
|
By default, the delimiter is a newline.
|
||||||
|
|
||||||
|
@author Stephen Anthony
|
||||||
|
*/
|
||||||
|
class StringParser
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StringParser(const string& str, char delim = '\n')
|
||||||
|
{
|
||||||
|
stringstream buf(str);
|
||||||
|
string line;
|
||||||
|
while(std::getline(buf, line, delim))
|
||||||
|
myStringList.push_back(line);
|
||||||
|
}
|
||||||
|
|
||||||
|
const StringList& stringList() const { return myStringList; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
StringList myStringList;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
#define STELLA_VERSION "3.4_svn1"
|
#define STELLA_VERSION "3.4_beta1"
|
||||||
#define STELLA_BUILD atoi("$Rev$" + 6)
|
#define STELLA_BUILD atoi("$Rev$" + 6)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -112,15 +112,12 @@ Debugger::Debugger(OSystem* osystem)
|
||||||
: DialogContainer(osystem),
|
: DialogContainer(osystem),
|
||||||
myConsole(NULL),
|
myConsole(NULL),
|
||||||
mySystem(NULL),
|
mySystem(NULL),
|
||||||
|
myDialog(NULL),
|
||||||
myParser(NULL),
|
myParser(NULL),
|
||||||
myCartDebug(NULL),
|
myCartDebug(NULL),
|
||||||
myCpuDebug(NULL),
|
myCpuDebug(NULL),
|
||||||
myRiotDebug(NULL),
|
myRiotDebug(NULL),
|
||||||
myTiaDebug(NULL),
|
myTiaDebug(NULL),
|
||||||
myTiaInfo(NULL),
|
|
||||||
myTiaOutput(NULL),
|
|
||||||
myTiaZoom(NULL),
|
|
||||||
myRom(NULL),
|
|
||||||
myBreakPoints(NULL),
|
myBreakPoints(NULL),
|
||||||
myReadTraps(NULL),
|
myReadTraps(NULL),
|
||||||
myWriteTraps(NULL),
|
myWriteTraps(NULL),
|
||||||
|
@ -172,19 +169,12 @@ void Debugger::initialize()
|
||||||
|
|
||||||
const GUI::Rect& r = getDialogBounds();
|
const GUI::Rect& r = getDialogBounds();
|
||||||
|
|
||||||
delete myBaseDialog;
|
delete myBaseDialog; myBaseDialog = myDialog = NULL;
|
||||||
DebuggerDialog *dd = new DebuggerDialog(myOSystem, this,
|
myDialog = new DebuggerDialog(myOSystem, this,
|
||||||
r.left, r.top, r.width(), r.height());
|
r.left, r.top, r.width(), r.height());
|
||||||
myBaseDialog = dd;
|
myBaseDialog = myDialog;
|
||||||
|
|
||||||
myPrompt = dd->prompt();
|
myRewindManager = new RewindManager(*myOSystem, myDialog->rewindButton());
|
||||||
myTiaInfo = dd->tiaInfo();
|
|
||||||
myTiaOutput = dd->tiaOutput();
|
|
||||||
myTiaZoom = dd->tiaZoom();
|
|
||||||
myRom = dd->rom();
|
|
||||||
myMessage = dd->message();
|
|
||||||
|
|
||||||
myRewindManager = new RewindManager(*myOSystem, *dd->rewindButton());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -235,7 +225,7 @@ bool Debugger::start(const string& message, int address)
|
||||||
if(address > -1)
|
if(address > -1)
|
||||||
buf << valueToString(address);
|
buf << valueToString(address);
|
||||||
|
|
||||||
myMessage->setEditString(buf.str());
|
myDialog->message().setEditString(buf.str());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -247,17 +237,20 @@ bool Debugger::startWithFatalError(const string& message)
|
||||||
if(myOSystem->eventHandler().enterDebugMode())
|
if(myOSystem->eventHandler().enterDebugMode())
|
||||||
{
|
{
|
||||||
// This must be done *after* we enter debug mode,
|
// This must be done *after* we enter debug mode,
|
||||||
// so the message isn't erased
|
// so the dialog is properly shown
|
||||||
myMessage->setEditString(message);
|
myDialog->showFatalMessage(message);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Debugger::quit()
|
void Debugger::quit(bool exitrom)
|
||||||
{
|
{
|
||||||
myOSystem->eventHandler().leaveDebugMode();
|
if(exitrom)
|
||||||
|
myOSystem->eventHandler().handleEvent(Event::LauncherMode, 1);
|
||||||
|
else
|
||||||
|
myOSystem->eventHandler().leaveDebugMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -630,7 +623,7 @@ void Debugger::setStartState()
|
||||||
saveOldState(false);
|
saveOldState(false);
|
||||||
|
|
||||||
// Set the 're-disassemble' flag, but don't do it until the next scheduled time
|
// Set the 're-disassemble' flag, but don't do it until the next scheduled time
|
||||||
myRom->invalidate(false);
|
myDialog->rom().invalidate(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -42,6 +42,7 @@ class ButtonWidget;
|
||||||
|
|
||||||
#include "Array.hxx"
|
#include "Array.hxx"
|
||||||
#include "DialogContainer.hxx"
|
#include "DialogContainer.hxx"
|
||||||
|
#include "DebuggerDialog.hxx"
|
||||||
#include "DebuggerParser.hxx"
|
#include "DebuggerParser.hxx"
|
||||||
#include "System.hxx"
|
#include "System.hxx"
|
||||||
#include "Rect.hxx"
|
#include "Rect.hxx"
|
||||||
|
@ -119,7 +120,7 @@ class Debugger : public DialogContainer
|
||||||
Wrapper method for EventHandler::leaveDebugMode() for those classes
|
Wrapper method for EventHandler::leaveDebugMode() for those classes
|
||||||
that don't have access to EventHandler.
|
that don't have access to EventHandler.
|
||||||
*/
|
*/
|
||||||
void quit();
|
void quit(bool exitrom);
|
||||||
|
|
||||||
bool addFunction(const string& name, const string& def,
|
bool addFunction(const string& name, const string& def,
|
||||||
Expression* exp, bool builtin = false);
|
Expression* exp, bool builtin = false);
|
||||||
|
@ -344,7 +345,8 @@ class Debugger : public DialogContainer
|
||||||
void reset();
|
void reset();
|
||||||
void clearAllBreakPoints();
|
void clearAllBreakPoints();
|
||||||
|
|
||||||
PromptWidget *prompt() { return myPrompt; }
|
PromptWidget& prompt() { return myDialog->prompt(); }
|
||||||
|
RomWidget& rom() { return myDialog->rom(); };
|
||||||
|
|
||||||
void saveState(int state);
|
void saveState(int state);
|
||||||
void loadState(int state);
|
void loadState(int state);
|
||||||
|
@ -353,22 +355,16 @@ class Debugger : public DialogContainer
|
||||||
Console* myConsole;
|
Console* myConsole;
|
||||||
System* mySystem;
|
System* mySystem;
|
||||||
|
|
||||||
|
DebuggerDialog* myDialog;
|
||||||
DebuggerParser* myParser;
|
DebuggerParser* myParser;
|
||||||
CartDebug* myCartDebug;
|
CartDebug* myCartDebug;
|
||||||
CpuDebug* myCpuDebug;
|
CpuDebug* myCpuDebug;
|
||||||
RiotDebug* myRiotDebug;
|
RiotDebug* myRiotDebug;
|
||||||
TIADebug* myTiaDebug;
|
TIADebug* myTiaDebug;
|
||||||
|
|
||||||
TiaInfoWidget* myTiaInfo;
|
|
||||||
TiaOutputWidget* myTiaOutput;
|
|
||||||
TiaZoomWidget* myTiaZoom;
|
|
||||||
RomWidget* myRom;
|
|
||||||
EditTextWidget* myMessage;
|
|
||||||
|
|
||||||
PackedBitArray* myBreakPoints;
|
PackedBitArray* myBreakPoints;
|
||||||
PackedBitArray* myReadTraps;
|
PackedBitArray* myReadTraps;
|
||||||
PackedBitArray* myWriteTraps;
|
PackedBitArray* myWriteTraps;
|
||||||
PromptWidget* myPrompt;
|
|
||||||
|
|
||||||
static Debugger* myStaticDebugger;
|
static Debugger* myStaticDebugger;
|
||||||
|
|
||||||
|
|
|
@ -699,7 +699,7 @@ void DebuggerParser::executeBreak()
|
||||||
else
|
else
|
||||||
bp = args[0];
|
bp = args[0];
|
||||||
debugger->toggleBreakPoint(bp);
|
debugger->toggleBreakPoint(bp);
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
|
|
||||||
if(debugger->breakPoint(bp))
|
if(debugger->breakPoint(bp))
|
||||||
commandResult << "Set";
|
commandResult << "Set";
|
||||||
|
@ -799,7 +799,7 @@ void DebuggerParser::executeClearwatches()
|
||||||
// "cls"
|
// "cls"
|
||||||
void DebuggerParser::executeCls()
|
void DebuggerParser::executeCls()
|
||||||
{
|
{
|
||||||
debugger->prompt()->clearScreen();
|
debugger->prompt().clearScreen();
|
||||||
commandResult << "";
|
commandResult << "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -822,7 +822,7 @@ void DebuggerParser::executeCode()
|
||||||
CartDebug::CODE, args[0], args[1]);
|
CartDebug::CODE, args[0], args[1]);
|
||||||
commandResult << (result ? "added" : "removed") << " CODE directive on range $"
|
commandResult << (result ? "added" : "removed") << " CODE directive on range $"
|
||||||
<< hex << args[0] << " $" << hex << args[1];
|
<< hex << args[0] << " $" << hex << args[1];
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -863,7 +863,7 @@ void DebuggerParser::executeData()
|
||||||
CartDebug::DATA, args[0], args[1]);
|
CartDebug::DATA, args[0], args[1]);
|
||||||
commandResult << (result ? "added" : "removed") << " DATA directive on range $"
|
commandResult << (result ? "added" : "removed") << " DATA directive on range $"
|
||||||
<< hex << args[0] << " $" << hex << args[1];
|
<< hex << args[0] << " $" << hex << args[1];
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -872,7 +872,7 @@ void DebuggerParser::executeDefine()
|
||||||
{
|
{
|
||||||
// TODO: check if label already defined?
|
// TODO: check if label already defined?
|
||||||
debugger->cartDebug().addLabel(argStrings[0], args[1]);
|
debugger->cartDebug().addLabel(argStrings[0], args[1]);
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -952,6 +952,13 @@ void DebuggerParser::executeExec()
|
||||||
commandResult << exec(file);
|
commandResult << exec(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
// "exitrom"
|
||||||
|
void DebuggerParser::executeExitRom()
|
||||||
|
{
|
||||||
|
debugger->quit(true);
|
||||||
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
// "frame"
|
// "frame"
|
||||||
void DebuggerParser::executeFrame()
|
void DebuggerParser::executeFrame()
|
||||||
|
@ -1002,7 +1009,7 @@ void DebuggerParser::executeGfx()
|
||||||
CartDebug::GFX, args[0], args[1]);
|
CartDebug::GFX, args[0], args[1]);
|
||||||
commandResult << (result ? "added" : "removed") << " GFX directive on range $"
|
commandResult << (result ? "added" : "removed") << " GFX directive on range $"
|
||||||
<< hex << args[0] << " $" << hex << args[1];
|
<< hex << args[0] << " $" << hex << args[1];
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -1040,7 +1047,7 @@ void DebuggerParser::executeJump()
|
||||||
|
|
||||||
if(line >= 0 && address >= 0)
|
if(line >= 0 && address >= 0)
|
||||||
{
|
{
|
||||||
debugger->myRom->scrollTo(line);
|
debugger->rom().scrollTo(line);
|
||||||
commandResult << "disassembly scrolled to address $" << HEX4 << address;
|
commandResult << "disassembly scrolled to address $" << HEX4 << address;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1141,7 +1148,7 @@ void DebuggerParser::executeLoadconfig()
|
||||||
else
|
else
|
||||||
commandResult << debugger->cartDebug().loadConfigFile();
|
commandResult << debugger->cartDebug().loadConfigFile();
|
||||||
|
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -1159,7 +1166,7 @@ void DebuggerParser::executeLoadstate()
|
||||||
void DebuggerParser::executeLoadsym()
|
void DebuggerParser::executeLoadsym()
|
||||||
{
|
{
|
||||||
commandResult << debugger->cartDebug().loadSymbolFile(argStrings[0]);
|
commandResult << debugger->cartDebug().loadSymbolFile(argStrings[0]);
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -1198,7 +1205,7 @@ void DebuggerParser::executePGfx()
|
||||||
CartDebug::PGFX, args[0], args[1]);
|
CartDebug::PGFX, args[0], args[1]);
|
||||||
commandResult << (result ? "added" : "removed") << " PGFX directive on range $"
|
commandResult << (result ? "added" : "removed") << " PGFX directive on range $"
|
||||||
<< hex << args[0] << " $" << hex << args[1];
|
<< hex << args[0] << " $" << hex << args[1];
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -1223,7 +1230,7 @@ void DebuggerParser::executeRam()
|
||||||
void DebuggerParser::executeReset()
|
void DebuggerParser::executeReset()
|
||||||
{
|
{
|
||||||
debugger->reset();
|
debugger->reset();
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
commandResult << "reset CPU";
|
commandResult << "reset CPU";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1233,7 +1240,7 @@ void DebuggerParser::executeRewind()
|
||||||
{
|
{
|
||||||
if(debugger->rewindState())
|
if(debugger->rewindState())
|
||||||
{
|
{
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
commandResult << "rewind by one level";
|
commandResult << "rewind by one level";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1266,7 +1273,7 @@ void DebuggerParser::executeRom()
|
||||||
// The RomWidget is a special case, since we don't want to re-disassemble
|
// The RomWidget is a special case, since we don't want to re-disassemble
|
||||||
// any more than necessary. So we only do it by calling the following
|
// any more than necessary. So we only do it by calling the following
|
||||||
// method ...
|
// method ...
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
|
|
||||||
commandResult << "changed " << debugger->valueToString( args.size() - 1 )
|
commandResult << "changed " << debugger->valueToString( args.size() - 1 )
|
||||||
<< " location(s)";
|
<< " location(s)";
|
||||||
|
@ -1291,7 +1298,7 @@ void DebuggerParser::executeRow()
|
||||||
CartDebug::ROW, args[0], args[1]);
|
CartDebug::ROW, args[0], args[1]);
|
||||||
commandResult << (result ? "added" : "removed") << " ROW directive on range $"
|
commandResult << (result ? "added" : "removed") << " ROW directive on range $"
|
||||||
<< hex << args[0] << " $" << hex << args[1];
|
<< hex << args[0] << " $" << hex << args[1];
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -1299,7 +1306,7 @@ void DebuggerParser::executeRow()
|
||||||
void DebuggerParser::executeRun()
|
void DebuggerParser::executeRun()
|
||||||
{
|
{
|
||||||
debugger->saveOldState();
|
debugger->saveOldState();
|
||||||
debugger->quit();
|
debugger->quit(false);
|
||||||
commandResult << "_EXIT_DEBUGGER"; // See PromptWidget for more info
|
commandResult << "_EXIT_DEBUGGER"; // See PromptWidget for more info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1420,7 +1427,7 @@ void DebuggerParser::executeSaverom()
|
||||||
// "saveses"
|
// "saveses"
|
||||||
void DebuggerParser::executeSaveses()
|
void DebuggerParser::executeSaveses()
|
||||||
{
|
{
|
||||||
if(debugger->prompt()->saveBuffer(argStrings[0]))
|
if(debugger->prompt().saveBuffer(argStrings[0]))
|
||||||
commandResult << "saved session to file " << argStrings[0];
|
commandResult << "saved session to file " << argStrings[0];
|
||||||
else
|
else
|
||||||
commandResult << red("I/O error");
|
commandResult << red("I/O error");
|
||||||
|
@ -1563,7 +1570,7 @@ void DebuggerParser::executeUndef()
|
||||||
{
|
{
|
||||||
if(debugger->cartDebug().removeLabel(argStrings[0]))
|
if(debugger->cartDebug().removeLabel(argStrings[0]))
|
||||||
{
|
{
|
||||||
debugger->myRom->invalidate();
|
debugger->rom().invalidate();
|
||||||
commandResult << argStrings[0] + " now undefined";
|
commandResult << argStrings[0] + " now undefined";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1823,6 +1830,15 @@ DebuggerParser::Command DebuggerParser::commands[kNumCommands] = {
|
||||||
&DebuggerParser::executeExec
|
&DebuggerParser::executeExec
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"exitrom",
|
||||||
|
"Exit emulator, return to ROM launcher",
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
{ kARG_END_ARGS },
|
||||||
|
&DebuggerParser::executeExitRom
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"frame",
|
"frame",
|
||||||
"Advance emulation by xx frames (default=1)",
|
"Advance emulation by xx frames (default=1)",
|
||||||
|
|
|
@ -83,7 +83,7 @@ class DebuggerParser
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum {
|
enum {
|
||||||
kNumCommands = 69,
|
kNumCommands = 70,
|
||||||
kMAX_ARG_TYPES = 10
|
kMAX_ARG_TYPES = 10
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -157,6 +157,7 @@ class DebuggerParser
|
||||||
void executeDisasm();
|
void executeDisasm();
|
||||||
void executeDump();
|
void executeDump();
|
||||||
void executeExec();
|
void executeExec();
|
||||||
|
void executeExitRom();
|
||||||
void executeFrame();
|
void executeFrame();
|
||||||
void executeFunction();
|
void executeFunction();
|
||||||
void executeGfx();
|
void executeGfx();
|
||||||
|
|
|
@ -35,26 +35,19 @@
|
||||||
#include "TiaWidget.hxx"
|
#include "TiaWidget.hxx"
|
||||||
#include "DataGridOpsWidget.hxx"
|
#include "DataGridOpsWidget.hxx"
|
||||||
#include "EditTextWidget.hxx"
|
#include "EditTextWidget.hxx"
|
||||||
|
#include "MessageBox.hxx"
|
||||||
#include "Rect.hxx"
|
#include "Rect.hxx"
|
||||||
#include "Debugger.hxx"
|
#include "Debugger.hxx"
|
||||||
#include "DebuggerParser.hxx"
|
#include "DebuggerParser.hxx"
|
||||||
|
|
||||||
#include "DebuggerDialog.hxx"
|
#include "DebuggerDialog.hxx"
|
||||||
|
|
||||||
enum {
|
|
||||||
kDDStepCmd = 'DDst',
|
|
||||||
kDDTraceCmd = 'DDtr',
|
|
||||||
kDDAdvCmd = 'DDav',
|
|
||||||
kDDSAdvCmd = 'DDsv',
|
|
||||||
kDDRewindCmd = 'DDrw',
|
|
||||||
kDDExitCmd = 'DDex'
|
|
||||||
};
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
DebuggerDialog::DebuggerDialog(OSystem* osystem, DialogContainer* parent,
|
DebuggerDialog::DebuggerDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
int x, int y, int w, int h)
|
int x, int y, int w, int h)
|
||||||
: Dialog(osystem, parent, x, y, w, h, true), // use base surface
|
: Dialog(osystem, parent, x, y, w, h, true), // use base surface
|
||||||
myTab(NULL)
|
myTab(NULL),
|
||||||
|
myFatalError(NULL)
|
||||||
{
|
{
|
||||||
addTiaArea();
|
addTiaArea();
|
||||||
addTabArea();
|
addTabArea();
|
||||||
|
@ -145,7 +138,11 @@ void DebuggerDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kDDExitCmd:
|
case kDDExitCmd:
|
||||||
doExit();
|
doExitDebugger();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case kDDExitFatalCmd:
|
||||||
|
doExitRom();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -153,10 +150,23 @@ void DebuggerDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void DebuggerDialog::showFatalMessage(const string& msg)
|
||||||
|
{
|
||||||
|
const GUI::Rect& r = instance().debugger().getDialogBounds();
|
||||||
|
|
||||||
|
delete myFatalError;
|
||||||
|
myFatalError =
|
||||||
|
new MessageBox(this, instance().consoleFont(), msg,
|
||||||
|
r.width(), r.height(), kDDExitFatalCmd,
|
||||||
|
"Exit ROM", "Continue");
|
||||||
|
myFatalError->show();
|
||||||
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void DebuggerDialog::addTiaArea()
|
void DebuggerDialog::addTiaArea()
|
||||||
{
|
{
|
||||||
GUI::Rect r = instance().debugger().getTiaBounds();
|
const GUI::Rect& r = instance().debugger().getTiaBounds();
|
||||||
|
|
||||||
myTiaOutput = new TiaOutputWidget(this, instance().consoleFont(),
|
myTiaOutput = new TiaOutputWidget(this, instance().consoleFont(),
|
||||||
r.left, r.top, r.width(), r.height());
|
r.left, r.top, r.width(), r.height());
|
||||||
|
@ -165,7 +175,7 @@ void DebuggerDialog::addTiaArea()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void DebuggerDialog::addTabArea()
|
void DebuggerDialog::addTabArea()
|
||||||
{
|
{
|
||||||
GUI::Rect r = instance().debugger().getTabBounds();
|
const GUI::Rect& r = instance().debugger().getTabBounds();
|
||||||
|
|
||||||
const int vBorder = 4;
|
const int vBorder = 4;
|
||||||
|
|
||||||
|
@ -214,7 +224,7 @@ void DebuggerDialog::addStatusArea()
|
||||||
{
|
{
|
||||||
const GUI::Font& font = instance().consoleFont();
|
const GUI::Font& font = instance().consoleFont();
|
||||||
const int lineHeight = font.getLineHeight();
|
const int lineHeight = font.getLineHeight();
|
||||||
GUI::Rect r = instance().debugger().getStatusBounds();
|
const GUI::Rect& r = instance().debugger().getStatusBounds();
|
||||||
int xpos, ypos;
|
int xpos, ypos;
|
||||||
|
|
||||||
xpos = r.left; ypos = r.top;
|
xpos = r.left; ypos = r.top;
|
||||||
|
@ -237,7 +247,7 @@ void DebuggerDialog::addStatusArea()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void DebuggerDialog::addRomArea()
|
void DebuggerDialog::addRomArea()
|
||||||
{
|
{
|
||||||
GUI::Rect r = instance().debugger().getRomBounds();
|
const GUI::Rect& r = instance().debugger().getRomBounds();
|
||||||
int xpos, ypos;
|
int xpos, ypos;
|
||||||
|
|
||||||
xpos = r.left + 10; ypos = 10;
|
xpos = r.left + 10; ypos = 10;
|
||||||
|
@ -320,7 +330,13 @@ void DebuggerDialog::doRewind()
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void DebuggerDialog::doExit()
|
void DebuggerDialog::doExitDebugger()
|
||||||
{
|
{
|
||||||
instance().debugger().parser().run("run");
|
instance().debugger().parser().run("run");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void DebuggerDialog::doExitRom()
|
||||||
|
{
|
||||||
|
instance().debugger().parser().run("exitrom");
|
||||||
|
}
|
||||||
|
|
|
@ -36,6 +36,7 @@ class EditTextWidget;
|
||||||
class TiaInfoWidget;
|
class TiaInfoWidget;
|
||||||
class TiaOutputWidget;
|
class TiaOutputWidget;
|
||||||
class TiaZoomWidget;
|
class TiaZoomWidget;
|
||||||
|
class MessageBox;
|
||||||
|
|
||||||
#include "Dialog.hxx"
|
#include "Dialog.hxx"
|
||||||
|
|
||||||
|
@ -46,19 +47,31 @@ class DebuggerDialog : public Dialog
|
||||||
int x, int y, int w, int h);
|
int x, int y, int w, int h);
|
||||||
~DebuggerDialog();
|
~DebuggerDialog();
|
||||||
|
|
||||||
PromptWidget* prompt() { return myPrompt; }
|
PromptWidget& prompt() { return *myPrompt; }
|
||||||
TiaInfoWidget* tiaInfo() { return myTiaInfo; }
|
TiaInfoWidget& tiaInfo() { return *myTiaInfo; }
|
||||||
TiaOutputWidget* tiaOutput() { return myTiaOutput; }
|
TiaOutputWidget& tiaOutput() { return *myTiaOutput; }
|
||||||
TiaZoomWidget* tiaZoom() { return myTiaZoom; }
|
TiaZoomWidget& tiaZoom() { return *myTiaZoom; }
|
||||||
RomWidget* rom() { return myRom; }
|
RomWidget& rom() { return *myRom; }
|
||||||
EditTextWidget* message() { return myMessageBox; }
|
EditTextWidget& message() { return *myMessageBox; }
|
||||||
ButtonWidget* rewindButton() { return myRewindButton; }
|
ButtonWidget& rewindButton() { return *myRewindButton; }
|
||||||
|
|
||||||
virtual void loadConfig();
|
void loadConfig();
|
||||||
virtual void handleKeyDown(int ascii, int keycode, int modifiers);
|
void handleKeyDown(int ascii, int keycode, int modifiers);
|
||||||
virtual void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
||||||
|
|
||||||
|
void showFatalMessage(const string& msg);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
enum {
|
||||||
|
kDDStepCmd = 'DDst',
|
||||||
|
kDDTraceCmd = 'DDtr',
|
||||||
|
kDDAdvCmd = 'DDav',
|
||||||
|
kDDSAdvCmd = 'DDsv',
|
||||||
|
kDDRewindCmd = 'DDrw',
|
||||||
|
kDDExitCmd = 'DDex',
|
||||||
|
kDDExitFatalCmd = 'DDer'
|
||||||
|
};
|
||||||
|
|
||||||
TabWidget* myTab;
|
TabWidget* myTab;
|
||||||
|
|
||||||
PromptWidget* myPrompt;
|
PromptWidget* myPrompt;
|
||||||
|
@ -70,6 +83,7 @@ class DebuggerDialog : public Dialog
|
||||||
RomWidget* myRom;
|
RomWidget* myRom;
|
||||||
EditTextWidget* myMessageBox;
|
EditTextWidget* myMessageBox;
|
||||||
ButtonWidget* myRewindButton;
|
ButtonWidget* myRewindButton;
|
||||||
|
MessageBox* myFatalError;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addTiaArea();
|
void addTiaArea();
|
||||||
|
@ -82,7 +96,8 @@ class DebuggerDialog : public Dialog
|
||||||
void doScanlineAdvance();
|
void doScanlineAdvance();
|
||||||
void doAdvance();
|
void doAdvance();
|
||||||
void doRewind();
|
void doRewind();
|
||||||
void doExit();
|
void doExitDebugger();
|
||||||
|
void doExitRom();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -212,9 +212,10 @@ inline void CartridgeDPCPlus::callFunction(uInt8 value)
|
||||||
catch(const string& error) {
|
catch(const string& error) {
|
||||||
if(!mySystem->autodectMode())
|
if(!mySystem->autodectMode())
|
||||||
{
|
{
|
||||||
cerr << error << endl;
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
Debugger::debugger().startWithFatalError(error);
|
Debugger::debugger().startWithFatalError(error);
|
||||||
|
#else
|
||||||
|
cout << error << endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1034,7 +1034,8 @@ void EventHandler::handleEvent(Event::Type event, int state)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Event::LauncherMode:
|
case Event::LauncherMode:
|
||||||
if((myState == S_EMULATE || myState == S_CMDMENU) && state)
|
if((myState == S_EMULATE || myState == S_CMDMENU ||
|
||||||
|
myState == S_DEBUGGER) && state)
|
||||||
{
|
{
|
||||||
myOSystem->settings().saveConfig();
|
myOSystem->settings().saveConfig();
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,8 @@ string Thumbulator::run( void ) throw(const string&)
|
||||||
inline int Thumbulator::fatalError(const char* opcode, uInt32 v1, const char* msg)
|
inline int Thumbulator::fatalError(const char* opcode, uInt32 v1, const char* msg)
|
||||||
throw(const string&)
|
throw(const string&)
|
||||||
{
|
{
|
||||||
statusMsg << opcode << "(" << HEX8 << v1 << "), " << msg << endl;
|
statusMsg << "Thumb ARM emulation fatal error: " << endl
|
||||||
|
<< opcode << "(" << HEX8 << v1 << "), " << msg << endl;
|
||||||
dump_regs();
|
dump_regs();
|
||||||
throw statusMsg.str();
|
throw statusMsg.str();
|
||||||
}
|
}
|
||||||
|
@ -82,7 +83,8 @@ inline int Thumbulator::fatalError(const char* opcode, uInt32 v1, uInt32 v2,
|
||||||
const char* msg)
|
const char* msg)
|
||||||
throw(const string&)
|
throw(const string&)
|
||||||
{
|
{
|
||||||
statusMsg << opcode << "(" << HEX8 << v1 << "," << v2 << "), " << msg << endl;
|
statusMsg << "Thumb ARM emulation fatal error: " << endl
|
||||||
|
<< opcode << "(" << HEX8 << v1 << "," << v2 << "), " << msg << endl;
|
||||||
dump_regs();
|
dump_regs();
|
||||||
throw statusMsg.str();
|
throw statusMsg.str();
|
||||||
}
|
}
|
||||||
|
|
|
@ -584,7 +584,10 @@ Widget* Dialog::findWidget(int x, int y)
|
||||||
void Dialog::addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font,
|
void Dialog::addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font,
|
||||||
const string& okText, const string& cancelText)
|
const string& okText, const string& cancelText)
|
||||||
{
|
{
|
||||||
int buttonWidth = font.getStringWidth("Cancel") + 15;
|
|
||||||
|
int buttonWidth = BSPF_max(font.getStringWidth("Cancel"),
|
||||||
|
BSPF_max(font.getStringWidth(okText),
|
||||||
|
font.getStringWidth(okText))) + 15;
|
||||||
int buttonHeight = font.getLineHeight() + 4;
|
int buttonHeight = font.getLineHeight() + 4;
|
||||||
ButtonWidget* b;
|
ButtonWidget* b;
|
||||||
#ifndef MAC_OSX
|
#ifndef MAC_OSX
|
||||||
|
|
|
@ -21,28 +21,60 @@
|
||||||
#include "OSystem.hxx"
|
#include "OSystem.hxx"
|
||||||
#include "Version.hxx"
|
#include "Version.hxx"
|
||||||
#include "Widget.hxx"
|
#include "Widget.hxx"
|
||||||
|
#include "StringParser.hxx"
|
||||||
|
|
||||||
#include "MessageBox.hxx"
|
#include "MessageBox.hxx"
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
MessageBox::MessageBox(GuiObject* boss, const GUI::Font& font,
|
MessageBox::MessageBox(GuiObject* boss, const GUI::Font& font,
|
||||||
const StringList& text, int max_w, int max_h, int cmd)
|
const StringList& text, int max_w, int max_h, int cmd,
|
||||||
: Dialog(&boss->instance(), &boss->parent(), 0, 0, 16, 16),
|
const string& okText, const string& cancelText)
|
||||||
|
: Dialog(&boss->instance(), &boss->parent(), 0, 0, max_w, max_h),
|
||||||
CommandSender(boss),
|
CommandSender(boss),
|
||||||
myCmd(cmd)
|
myCmd(cmd)
|
||||||
|
{
|
||||||
|
addText(font, text);
|
||||||
|
|
||||||
|
WidgetArray wid;
|
||||||
|
addOKCancelBGroup(wid, font, okText, cancelText);
|
||||||
|
addToFocusList(wid);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
MessageBox::MessageBox(GuiObject* boss, const GUI::Font& font,
|
||||||
|
const string& text, int max_w, int max_h, int cmd,
|
||||||
|
const string& okText, const string& cancelText)
|
||||||
|
: Dialog(&boss->instance(), &boss->parent(), 0, 0, max_w, max_h),
|
||||||
|
CommandSender(boss),
|
||||||
|
myCmd(cmd)
|
||||||
|
{
|
||||||
|
StringParser p(text);
|
||||||
|
addText(font, p.stringList());
|
||||||
|
|
||||||
|
WidgetArray wid;
|
||||||
|
addOKCancelBGroup(wid, font, okText, cancelText);
|
||||||
|
addToFocusList(wid);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
MessageBox::~MessageBox()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void MessageBox::addText(const GUI::Font& font, const StringList& text)
|
||||||
{
|
{
|
||||||
const int lineHeight = font.getLineHeight(),
|
const int lineHeight = font.getLineHeight(),
|
||||||
fontWidth = font.getMaxCharWidth(),
|
fontWidth = font.getMaxCharWidth(),
|
||||||
fontHeight = font.getFontHeight();
|
fontHeight = font.getFontHeight();
|
||||||
int xpos, ypos;
|
int xpos, ypos;
|
||||||
WidgetArray wid;
|
|
||||||
|
|
||||||
// Set real dimensions
|
// Set real dimensions
|
||||||
int str_w = 0;
|
int str_w = 0;
|
||||||
for(uInt32 i = 0; i < text.size(); ++i)
|
for(uInt32 i = 0; i < text.size(); ++i)
|
||||||
str_w = BSPF_max((int)text[i].length(), str_w);
|
str_w = BSPF_max((int)text[i].length(), str_w);
|
||||||
_w = BSPF_min(str_w * fontWidth + 20, max_w);
|
_w = BSPF_min(str_w * fontWidth + 20, _w);
|
||||||
_h = BSPF_min(((text.size() + 2) * lineHeight + 20), (uInt32)max_h);
|
_h = BSPF_min(((text.size() + 2) * lineHeight + 20), (uInt32)_h);
|
||||||
|
|
||||||
xpos = 10; ypos = 10;
|
xpos = 10; ypos = 10;
|
||||||
for(uInt32 i = 0; i < text.size(); ++i)
|
for(uInt32 i = 0; i < text.size(); ++i)
|
||||||
|
@ -51,15 +83,6 @@ MessageBox::MessageBox(GuiObject* boss, const GUI::Font& font,
|
||||||
fontHeight, text[i], kTextAlignLeft);
|
fontHeight, text[i], kTextAlignLeft);
|
||||||
ypos += fontHeight;
|
ypos += fontHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
addOKCancelBGroup(wid, font);
|
|
||||||
|
|
||||||
addToFocusList(wid);
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
MessageBox::~MessageBox()
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -36,14 +36,19 @@ class MessageBox : public Dialog, public CommandSender
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MessageBox(GuiObject* boss, const GUI::Font& font, const StringList& text,
|
MessageBox(GuiObject* boss, const GUI::Font& font, const StringList& text,
|
||||||
int max_w, int max_h, int cmd = 0);
|
int max_w, int max_h, int cmd = 0,
|
||||||
|
const string& okText = "", const string& cancelText = "");
|
||||||
|
MessageBox(GuiObject* boss, const GUI::Font& font, const string& text,
|
||||||
|
int max_w, int max_h, int cmd = 0,
|
||||||
|
const string& okText = "", const string& cancelText = "");
|
||||||
virtual ~MessageBox();
|
virtual ~MessageBox();
|
||||||
|
|
||||||
/** Place the input dialog onscreen and center it */
|
/** Place the input dialog onscreen and center it */
|
||||||
void show() { parent().addDialog(this); }
|
void show() { parent().addDialog(this); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
void addText(const GUI::Font& font, const StringList& text);
|
||||||
|
void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int myCmd;
|
int myCmd;
|
||||||
|
|
|
@ -69,7 +69,6 @@
|
||||||
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC7084578BF00812C11 /* PopUpWidget.hxx */; };
|
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC7084578BF00812C11 /* PopUpWidget.hxx */; };
|
||||||
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */; };
|
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */; };
|
||||||
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */; };
|
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */; };
|
||||||
2D91741509BA90380026E9FF /* StringList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEACF084578BF00812C11 /* StringList.hxx */; };
|
|
||||||
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD1084578BF00812C11 /* TabWidget.hxx */; };
|
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD1084578BF00812C11 /* TabWidget.hxx */; };
|
||||||
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD3084578BF00812C11 /* VideoDialog.hxx */; };
|
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD3084578BF00812C11 /* VideoDialog.hxx */; };
|
||||||
2D91741809BA90380026E9FF /* Widget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD5084578BF00812C11 /* Widget.hxx */; };
|
2D91741809BA90380026E9FF /* Widget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD5084578BF00812C11 /* Widget.hxx */; };
|
||||||
|
@ -251,6 +250,8 @@
|
||||||
DC17E80C1361FDB500397A9E /* pngstruct.h in Headers */ = {isa = PBXBuildFile; fileRef = DC17E8081361FDB500397A9E /* pngstruct.h */; };
|
DC17E80C1361FDB500397A9E /* pngstruct.h in Headers */ = {isa = PBXBuildFile; fileRef = DC17E8081361FDB500397A9E /* pngstruct.h */; };
|
||||||
DC1FC18A0DB3B2C7009B3DF7 /* SerialPortMACOSX.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC1FC1880DB3B2C7009B3DF7 /* SerialPortMACOSX.cxx */; };
|
DC1FC18A0DB3B2C7009B3DF7 /* SerialPortMACOSX.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC1FC1880DB3B2C7009B3DF7 /* SerialPortMACOSX.cxx */; };
|
||||||
DC1FC18B0DB3B2C7009B3DF7 /* SerialPortMACOSX.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC1FC1890DB3B2C7009B3DF7 /* SerialPortMACOSX.hxx */; };
|
DC1FC18B0DB3B2C7009B3DF7 /* SerialPortMACOSX.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC1FC1890DB3B2C7009B3DF7 /* SerialPortMACOSX.hxx */; };
|
||||||
|
DC20D6F3138EB130002A7428 /* StringList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC20D6F1138EB130002A7428 /* StringList.hxx */; };
|
||||||
|
DC20D6F4138EB130002A7428 /* StringParser.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC20D6F2138EB130002A7428 /* StringParser.hxx */; };
|
||||||
DC3FE47C11C7D35600C91C72 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = DC3FE46A11C7D35600C91C72 /* png.c */; };
|
DC3FE47C11C7D35600C91C72 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = DC3FE46A11C7D35600C91C72 /* png.c */; };
|
||||||
DC3FE47D11C7D35600C91C72 /* png.h in Headers */ = {isa = PBXBuildFile; fileRef = DC3FE46B11C7D35600C91C72 /* png.h */; };
|
DC3FE47D11C7D35600C91C72 /* png.h in Headers */ = {isa = PBXBuildFile; fileRef = DC3FE46B11C7D35600C91C72 /* png.h */; };
|
||||||
DC3FE47E11C7D35600C91C72 /* pngconf.h in Headers */ = {isa = PBXBuildFile; fileRef = DC3FE46C11C7D35600C91C72 /* pngconf.h */; };
|
DC3FE47E11C7D35600C91C72 /* pngconf.h in Headers */ = {isa = PBXBuildFile; fileRef = DC3FE46C11C7D35600C91C72 /* pngconf.h */; };
|
||||||
|
@ -336,7 +337,6 @@
|
||||||
DCE9CC2B1103812700C86671 /* CartDebug.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCE9CC271103812700C86671 /* CartDebug.hxx */; };
|
DCE9CC2B1103812700C86671 /* CartDebug.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCE9CC271103812700C86671 /* CartDebug.hxx */; };
|
||||||
DCE9CC2C1103812700C86671 /* DiStella.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DCE9CC281103812700C86671 /* DiStella.cxx */; };
|
DCE9CC2C1103812700C86671 /* DiStella.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DCE9CC281103812700C86671 /* DiStella.cxx */; };
|
||||||
DCE9CC2D1103812700C86671 /* DiStella.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCE9CC291103812700C86671 /* DiStella.hxx */; };
|
DCE9CC2D1103812700C86671 /* DiStella.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCE9CC291103812700C86671 /* DiStella.hxx */; };
|
||||||
DCECDAFA10B9DBDC00AF4E1B /* Device.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DCECDAF210B9DBDC00AF4E1B /* Device.cxx */; };
|
|
||||||
DCECDAFB10B9DBDC00AF4E1B /* Device.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCECDAF310B9DBDC00AF4E1B /* Device.hxx */; };
|
DCECDAFB10B9DBDC00AF4E1B /* Device.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCECDAF310B9DBDC00AF4E1B /* Device.hxx */; };
|
||||||
DCECDAFC10B9DBDC00AF4E1B /* M6502.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DCECDAF410B9DBDC00AF4E1B /* M6502.cxx */; };
|
DCECDAFC10B9DBDC00AF4E1B /* M6502.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DCECDAF410B9DBDC00AF4E1B /* M6502.cxx */; };
|
||||||
DCECDAFD10B9DBDC00AF4E1B /* M6502.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCECDAF510B9DBDC00AF4E1B /* M6502.hxx */; };
|
DCECDAFD10B9DBDC00AF4E1B /* M6502.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DCECDAF510B9DBDC00AF4E1B /* M6502.hxx */; };
|
||||||
|
@ -547,7 +547,6 @@
|
||||||
2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ProgressDialog.hxx; path = ../gui/ProgressDialog.hxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ProgressDialog.hxx; path = ../gui/ProgressDialog.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEACA084578BF00812C11 /* ScrollBarWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollBarWidget.cxx; path = ../gui/ScrollBarWidget.cxx; sourceTree = SOURCE_ROOT; };
|
2DDBEACA084578BF00812C11 /* ScrollBarWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollBarWidget.cxx; path = ../gui/ScrollBarWidget.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ScrollBarWidget.hxx; path = ../gui/ScrollBarWidget.hxx; sourceTree = SOURCE_ROOT; };
|
2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ScrollBarWidget.hxx; path = ../gui/ScrollBarWidget.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEACF084578BF00812C11 /* StringList.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = StringList.hxx; path = ../gui/StringList.hxx; sourceTree = SOURCE_ROOT; };
|
|
||||||
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = TabWidget.cxx; path = ../gui/TabWidget.cxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = TabWidget.cxx; path = ../gui/TabWidget.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEAD1084578BF00812C11 /* TabWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = TabWidget.hxx; path = ../gui/TabWidget.hxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAD1084578BF00812C11 /* TabWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = TabWidget.hxx; path = ../gui/TabWidget.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEAD2084578BF00812C11 /* VideoDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = VideoDialog.cxx; path = ../gui/VideoDialog.cxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAD2084578BF00812C11 /* VideoDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = VideoDialog.cxx; path = ../gui/VideoDialog.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -658,6 +657,8 @@
|
||||||
DC17E8081361FDB500397A9E /* pngstruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pngstruct.h; path = ../libpng/pngstruct.h; sourceTree = SOURCE_ROOT; };
|
DC17E8081361FDB500397A9E /* pngstruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pngstruct.h; path = ../libpng/pngstruct.h; sourceTree = SOURCE_ROOT; };
|
||||||
DC1FC1880DB3B2C7009B3DF7 /* SerialPortMACOSX.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SerialPortMACOSX.cxx; sourceTree = "<group>"; };
|
DC1FC1880DB3B2C7009B3DF7 /* SerialPortMACOSX.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SerialPortMACOSX.cxx; sourceTree = "<group>"; };
|
||||||
DC1FC1890DB3B2C7009B3DF7 /* SerialPortMACOSX.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = SerialPortMACOSX.hxx; sourceTree = "<group>"; };
|
DC1FC1890DB3B2C7009B3DF7 /* SerialPortMACOSX.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; path = SerialPortMACOSX.hxx; sourceTree = "<group>"; };
|
||||||
|
DC20D6F1138EB130002A7428 /* StringList.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = StringList.hxx; path = ../common/StringList.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
|
DC20D6F2138EB130002A7428 /* StringParser.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = StringParser.hxx; path = ../common/StringParser.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
DC3FE46A11C7D35600C91C72 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../libpng/png.c; sourceTree = SOURCE_ROOT; };
|
DC3FE46A11C7D35600C91C72 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../libpng/png.c; sourceTree = SOURCE_ROOT; };
|
||||||
DC3FE46B11C7D35600C91C72 /* png.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = png.h; path = ../libpng/png.h; sourceTree = SOURCE_ROOT; };
|
DC3FE46B11C7D35600C91C72 /* png.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = png.h; path = ../libpng/png.h; sourceTree = SOURCE_ROOT; };
|
||||||
DC3FE46C11C7D35600C91C72 /* pngconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pngconf.h; path = ../libpng/pngconf.h; sourceTree = SOURCE_ROOT; };
|
DC3FE46C11C7D35600C91C72 /* pngconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pngconf.h; path = ../libpng/pngconf.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -744,7 +745,6 @@
|
||||||
DCE9CC271103812700C86671 /* CartDebug.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = CartDebug.hxx; path = ../debugger/CartDebug.hxx; sourceTree = SOURCE_ROOT; };
|
DCE9CC271103812700C86671 /* CartDebug.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = CartDebug.hxx; path = ../debugger/CartDebug.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
DCE9CC281103812700C86671 /* DiStella.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DiStella.cxx; path = ../debugger/DiStella.cxx; sourceTree = SOURCE_ROOT; };
|
DCE9CC281103812700C86671 /* DiStella.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DiStella.cxx; path = ../debugger/DiStella.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
DCE9CC291103812700C86671 /* DiStella.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = DiStella.hxx; path = ../debugger/DiStella.hxx; sourceTree = SOURCE_ROOT; };
|
DCE9CC291103812700C86671 /* DiStella.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = DiStella.hxx; path = ../debugger/DiStella.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
DCECDAF210B9DBDC00AF4E1B /* Device.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Device.cxx; path = ../emucore/Device.cxx; sourceTree = SOURCE_ROOT; };
|
|
||||||
DCECDAF310B9DBDC00AF4E1B /* Device.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Device.hxx; path = ../emucore/Device.hxx; sourceTree = SOURCE_ROOT; };
|
DCECDAF310B9DBDC00AF4E1B /* Device.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Device.hxx; path = ../emucore/Device.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
DCECDAF410B9DBDC00AF4E1B /* M6502.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = M6502.cxx; path = ../emucore/M6502.cxx; sourceTree = SOURCE_ROOT; };
|
DCECDAF410B9DBDC00AF4E1B /* M6502.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = M6502.cxx; path = ../emucore/M6502.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
DCECDAF510B9DBDC00AF4E1B /* M6502.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = M6502.hxx; path = ../emucore/M6502.hxx; sourceTree = SOURCE_ROOT; };
|
DCECDAF510B9DBDC00AF4E1B /* M6502.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = M6502.hxx; path = ../emucore/M6502.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -946,6 +946,8 @@
|
||||||
2DDA34020665817D00CDD299 /* SoundSDL.cxx */,
|
2DDA34020665817D00CDD299 /* SoundSDL.cxx */,
|
||||||
2DDA34030665817D00CDD299 /* SoundSDL.hxx */,
|
2DDA34030665817D00CDD299 /* SoundSDL.hxx */,
|
||||||
DC5D1AA6102C6FC900E59AC1 /* Stack.hxx */,
|
DC5D1AA6102C6FC900E59AC1 /* Stack.hxx */,
|
||||||
|
DC20D6F1138EB130002A7428 /* StringList.hxx */,
|
||||||
|
DC20D6F2138EB130002A7428 /* StringParser.hxx */,
|
||||||
DCF467BC0F9399F500B25D7A /* Version.hxx */,
|
DCF467BC0F9399F500B25D7A /* Version.hxx */,
|
||||||
);
|
);
|
||||||
name = common;
|
name = common;
|
||||||
|
@ -1041,7 +1043,6 @@
|
||||||
2DE2DF3A0627AE07006BEC99 /* Control.cxx */,
|
2DE2DF3A0627AE07006BEC99 /* Control.cxx */,
|
||||||
2DE2DF3B0627AE07006BEC99 /* Control.hxx */,
|
2DE2DF3B0627AE07006BEC99 /* Control.hxx */,
|
||||||
DC932D3F0F278A5200FEFEFC /* DefProps.hxx */,
|
DC932D3F0F278A5200FEFEFC /* DefProps.hxx */,
|
||||||
DCECDAF210B9DBDC00AF4E1B /* Device.cxx */,
|
|
||||||
DCECDAF310B9DBDC00AF4E1B /* Device.hxx */,
|
DCECDAF310B9DBDC00AF4E1B /* Device.hxx */,
|
||||||
2DE2DF3E0627AE07006BEC99 /* Driving.cxx */,
|
2DE2DF3E0627AE07006BEC99 /* Driving.cxx */,
|
||||||
2DE2DF3F0627AE07006BEC99 /* Driving.hxx */,
|
2DE2DF3F0627AE07006BEC99 /* Driving.hxx */,
|
||||||
|
@ -1189,7 +1190,6 @@
|
||||||
DC5D2C4F0F117CFD004D1660 /* StellaFont.hxx */,
|
DC5D2C4F0F117CFD004D1660 /* StellaFont.hxx */,
|
||||||
DC5D2C500F117CFD004D1660 /* StellaLargeFont.hxx */,
|
DC5D2C500F117CFD004D1660 /* StellaLargeFont.hxx */,
|
||||||
DC5D2C510F117CFD004D1660 /* StellaMediumFont.hxx */,
|
DC5D2C510F117CFD004D1660 /* StellaMediumFont.hxx */,
|
||||||
2DDBEACF084578BF00812C11 /* StringList.hxx */,
|
|
||||||
2DEF21FA08BC033500B246B4 /* StringListWidget.cxx */,
|
2DEF21FA08BC033500B246B4 /* StringListWidget.cxx */,
|
||||||
2DEF21FB08BC033500B246B4 /* StringListWidget.hxx */,
|
2DEF21FB08BC033500B246B4 /* StringListWidget.hxx */,
|
||||||
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */,
|
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */,
|
||||||
|
@ -1358,7 +1358,6 @@
|
||||||
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */,
|
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */,
|
||||||
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */,
|
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */,
|
||||||
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */,
|
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */,
|
||||||
2D91741509BA90380026E9FF /* StringList.hxx in Headers */,
|
|
||||||
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */,
|
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */,
|
||||||
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */,
|
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */,
|
||||||
2D91741809BA90380026E9FF /* Widget.hxx in Headers */,
|
2D91741809BA90380026E9FF /* Widget.hxx in Headers */,
|
||||||
|
@ -1475,6 +1474,8 @@
|
||||||
DC17E80A1361FDB500397A9E /* pnginfo.h in Headers */,
|
DC17E80A1361FDB500397A9E /* pnginfo.h in Headers */,
|
||||||
DC17E80B1361FDB500397A9E /* pnglibconf.h in Headers */,
|
DC17E80B1361FDB500397A9E /* pnglibconf.h in Headers */,
|
||||||
DC17E80C1361FDB500397A9E /* pngstruct.h in Headers */,
|
DC17E80C1361FDB500397A9E /* pngstruct.h in Headers */,
|
||||||
|
DC20D6F3138EB130002A7428 /* StringList.hxx in Headers */,
|
||||||
|
DC20D6F4138EB130002A7428 /* StringParser.hxx in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -1705,7 +1706,6 @@
|
||||||
DCF467C40F939A1400B25D7A /* CartEFSC.cxx in Sources */,
|
DCF467C40F939A1400B25D7A /* CartEFSC.cxx in Sources */,
|
||||||
DCF7B0DD10A762FC007A2870 /* CartF0.cxx in Sources */,
|
DCF7B0DD10A762FC007A2870 /* CartF0.cxx in Sources */,
|
||||||
DCF7B0DF10A762FC007A2870 /* CartFA.cxx in Sources */,
|
DCF7B0DF10A762FC007A2870 /* CartFA.cxx in Sources */,
|
||||||
DCECDAFA10B9DBDC00AF4E1B /* Device.cxx in Sources */,
|
|
||||||
DCECDAFC10B9DBDC00AF4E1B /* M6502.cxx in Sources */,
|
DCECDAFC10B9DBDC00AF4E1B /* M6502.cxx in Sources */,
|
||||||
DCECDAFE10B9DBDC00AF4E1B /* NullDev.cxx in Sources */,
|
DCECDAFE10B9DBDC00AF4E1B /* NullDev.cxx in Sources */,
|
||||||
DCECDB0010B9DBDC00AF4E1B /* System.cxx in Sources */,
|
DCECDB0010B9DBDC00AF4E1B /* System.cxx in Sources */,
|
||||||
|
|
|
@ -69,7 +69,6 @@
|
||||||
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC7084578BF00812C11 /* PopUpWidget.hxx */; };
|
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC7084578BF00812C11 /* PopUpWidget.hxx */; };
|
||||||
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */; };
|
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */; };
|
||||||
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */; };
|
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */; };
|
||||||
2D91741509BA90380026E9FF /* StringList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEACF084578BF00812C11 /* StringList.hxx */; };
|
|
||||||
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD1084578BF00812C11 /* TabWidget.hxx */; };
|
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD1084578BF00812C11 /* TabWidget.hxx */; };
|
||||||
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD3084578BF00812C11 /* VideoDialog.hxx */; };
|
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD3084578BF00812C11 /* VideoDialog.hxx */; };
|
||||||
2D91741809BA90380026E9FF /* Widget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD5084578BF00812C11 /* Widget.hxx */; };
|
2D91741809BA90380026E9FF /* Widget.hxx in Headers */ = {isa = PBXBuildFile; fileRef = 2DDBEAD5084578BF00812C11 /* Widget.hxx */; };
|
||||||
|
@ -280,6 +279,8 @@
|
||||||
DC6B2BA511037FF200F199A7 /* CartDebug.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC6B2BA111037FF200F199A7 /* CartDebug.hxx */; };
|
DC6B2BA511037FF200F199A7 /* CartDebug.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC6B2BA111037FF200F199A7 /* CartDebug.hxx */; };
|
||||||
DC6B2BA611037FF200F199A7 /* DiStella.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC6B2BA211037FF200F199A7 /* DiStella.cxx */; };
|
DC6B2BA611037FF200F199A7 /* DiStella.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC6B2BA211037FF200F199A7 /* DiStella.cxx */; };
|
||||||
DC6B2BA711037FF200F199A7 /* DiStella.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC6B2BA311037FF200F199A7 /* DiStella.hxx */; };
|
DC6B2BA711037FF200F199A7 /* DiStella.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC6B2BA311037FF200F199A7 /* DiStella.hxx */; };
|
||||||
|
DC74D6A1138D4D7E00F05C5C /* StringList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC74D69F138D4D7E00F05C5C /* StringList.hxx */; };
|
||||||
|
DC74D6A2138D4D7E00F05C5C /* StringParser.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC74D6A0138D4D7E00F05C5C /* StringParser.hxx */; };
|
||||||
DC8078DB0B4BD5F3005E9305 /* DebuggerExpressions.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC8078DA0B4BD5F3005E9305 /* DebuggerExpressions.hxx */; };
|
DC8078DB0B4BD5F3005E9305 /* DebuggerExpressions.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC8078DA0B4BD5F3005E9305 /* DebuggerExpressions.hxx */; };
|
||||||
DC8078E80B4BD697005E9305 /* FileSnapDialog.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC8078E40B4BD697005E9305 /* FileSnapDialog.cxx */; };
|
DC8078E80B4BD697005E9305 /* FileSnapDialog.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC8078E40B4BD697005E9305 /* FileSnapDialog.cxx */; };
|
||||||
DC8078E90B4BD697005E9305 /* FileSnapDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC8078E50B4BD697005E9305 /* FileSnapDialog.hxx */; };
|
DC8078E90B4BD697005E9305 /* FileSnapDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC8078E50B4BD697005E9305 /* FileSnapDialog.hxx */; };
|
||||||
|
@ -543,7 +544,6 @@
|
||||||
2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ProgressDialog.hxx; path = ../gui/ProgressDialog.hxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAC9084578BF00812C11 /* ProgressDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ProgressDialog.hxx; path = ../gui/ProgressDialog.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEACA084578BF00812C11 /* ScrollBarWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollBarWidget.cxx; path = ../gui/ScrollBarWidget.cxx; sourceTree = SOURCE_ROOT; };
|
2DDBEACA084578BF00812C11 /* ScrollBarWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollBarWidget.cxx; path = ../gui/ScrollBarWidget.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ScrollBarWidget.hxx; path = ../gui/ScrollBarWidget.hxx; sourceTree = SOURCE_ROOT; };
|
2DDBEACB084578BF00812C11 /* ScrollBarWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = ScrollBarWidget.hxx; path = ../gui/ScrollBarWidget.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEACF084578BF00812C11 /* StringList.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = StringList.hxx; path = ../gui/StringList.hxx; sourceTree = SOURCE_ROOT; };
|
|
||||||
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = TabWidget.cxx; path = ../gui/TabWidget.cxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = TabWidget.cxx; path = ../gui/TabWidget.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEAD1084578BF00812C11 /* TabWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = TabWidget.hxx; path = ../gui/TabWidget.hxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAD1084578BF00812C11 /* TabWidget.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = TabWidget.hxx; path = ../gui/TabWidget.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
2DDBEAD2084578BF00812C11 /* VideoDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = VideoDialog.cxx; path = ../gui/VideoDialog.cxx; sourceTree = SOURCE_ROOT; };
|
2DDBEAD2084578BF00812C11 /* VideoDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = VideoDialog.cxx; path = ../gui/VideoDialog.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -684,6 +684,8 @@
|
||||||
DC6B2BA111037FF200F199A7 /* CartDebug.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = CartDebug.hxx; path = ../debugger/CartDebug.hxx; sourceTree = SOURCE_ROOT; };
|
DC6B2BA111037FF200F199A7 /* CartDebug.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = CartDebug.hxx; path = ../debugger/CartDebug.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
DC6B2BA211037FF200F199A7 /* DiStella.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DiStella.cxx; path = ../debugger/DiStella.cxx; sourceTree = SOURCE_ROOT; };
|
DC6B2BA211037FF200F199A7 /* DiStella.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DiStella.cxx; path = ../debugger/DiStella.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
DC6B2BA311037FF200F199A7 /* DiStella.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = DiStella.hxx; path = ../debugger/DiStella.hxx; sourceTree = SOURCE_ROOT; };
|
DC6B2BA311037FF200F199A7 /* DiStella.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = DiStella.hxx; path = ../debugger/DiStella.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
|
DC74D69F138D4D7E00F05C5C /* StringList.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = StringList.hxx; path = ../common/StringList.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
|
DC74D6A0138D4D7E00F05C5C /* StringParser.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = StringParser.hxx; path = ../common/StringParser.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
DC8078DA0B4BD5F3005E9305 /* DebuggerExpressions.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = DebuggerExpressions.hxx; path = ../debugger/DebuggerExpressions.hxx; sourceTree = SOURCE_ROOT; };
|
DC8078DA0B4BD5F3005E9305 /* DebuggerExpressions.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = DebuggerExpressions.hxx; path = ../debugger/DebuggerExpressions.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
DC8078E40B4BD697005E9305 /* FileSnapDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FileSnapDialog.cxx; path = ../gui/FileSnapDialog.cxx; sourceTree = SOURCE_ROOT; };
|
DC8078E40B4BD697005E9305 /* FileSnapDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = FileSnapDialog.cxx; path = ../gui/FileSnapDialog.cxx; sourceTree = SOURCE_ROOT; };
|
||||||
DC8078E50B4BD697005E9305 /* FileSnapDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = FileSnapDialog.hxx; path = ../gui/FileSnapDialog.hxx; sourceTree = SOURCE_ROOT; };
|
DC8078E50B4BD697005E9305 /* FileSnapDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = FileSnapDialog.hxx; path = ../gui/FileSnapDialog.hxx; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -941,6 +943,8 @@
|
||||||
2DDA34020665817D00CDD299 /* SoundSDL.cxx */,
|
2DDA34020665817D00CDD299 /* SoundSDL.cxx */,
|
||||||
2DDA34030665817D00CDD299 /* SoundSDL.hxx */,
|
2DDA34030665817D00CDD299 /* SoundSDL.hxx */,
|
||||||
DC5D1AA6102C6FC900E59AC1 /* Stack.hxx */,
|
DC5D1AA6102C6FC900E59AC1 /* Stack.hxx */,
|
||||||
|
DC74D69F138D4D7E00F05C5C /* StringList.hxx */,
|
||||||
|
DC74D6A0138D4D7E00F05C5C /* StringParser.hxx */,
|
||||||
DCF467BC0F9399F500B25D7A /* Version.hxx */,
|
DCF467BC0F9399F500B25D7A /* Version.hxx */,
|
||||||
);
|
);
|
||||||
name = common;
|
name = common;
|
||||||
|
@ -1183,7 +1187,6 @@
|
||||||
DC5D2C4F0F117CFD004D1660 /* StellaFont.hxx */,
|
DC5D2C4F0F117CFD004D1660 /* StellaFont.hxx */,
|
||||||
DC5D2C500F117CFD004D1660 /* StellaLargeFont.hxx */,
|
DC5D2C500F117CFD004D1660 /* StellaLargeFont.hxx */,
|
||||||
DC5D2C510F117CFD004D1660 /* StellaMediumFont.hxx */,
|
DC5D2C510F117CFD004D1660 /* StellaMediumFont.hxx */,
|
||||||
2DDBEACF084578BF00812C11 /* StringList.hxx */,
|
|
||||||
2DEF21FA08BC033500B246B4 /* StringListWidget.cxx */,
|
2DEF21FA08BC033500B246B4 /* StringListWidget.cxx */,
|
||||||
2DEF21FB08BC033500B246B4 /* StringListWidget.hxx */,
|
2DEF21FB08BC033500B246B4 /* StringListWidget.hxx */,
|
||||||
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */,
|
2DDBEAD0084578BF00812C11 /* TabWidget.cxx */,
|
||||||
|
@ -1352,7 +1355,6 @@
|
||||||
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */,
|
2D91741109BA90380026E9FF /* PopUpWidget.hxx in Headers */,
|
||||||
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */,
|
2D91741209BA90380026E9FF /* ProgressDialog.hxx in Headers */,
|
||||||
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */,
|
2D91741309BA90380026E9FF /* ScrollBarWidget.hxx in Headers */,
|
||||||
2D91741509BA90380026E9FF /* StringList.hxx in Headers */,
|
|
||||||
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */,
|
2D91741609BA90380026E9FF /* TabWidget.hxx in Headers */,
|
||||||
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */,
|
2D91741709BA90380026E9FF /* VideoDialog.hxx in Headers */,
|
||||||
2D91741809BA90380026E9FF /* Widget.hxx in Headers */,
|
2D91741809BA90380026E9FF /* Widget.hxx in Headers */,
|
||||||
|
@ -1469,6 +1471,8 @@
|
||||||
DC69670C1361FD0A0036499D /* pnginfo.h in Headers */,
|
DC69670C1361FD0A0036499D /* pnginfo.h in Headers */,
|
||||||
DC69670D1361FD0A0036499D /* pnglibconf.h in Headers */,
|
DC69670D1361FD0A0036499D /* pnglibconf.h in Headers */,
|
||||||
DC69670E1361FD0A0036499D /* pngstruct.h in Headers */,
|
DC69670E1361FD0A0036499D /* pngstruct.h in Headers */,
|
||||||
|
DC74D6A1138D4D7E00F05C5C /* StringList.hxx in Headers */,
|
||||||
|
DC74D6A2138D4D7E00F05C5C /* StringParser.hxx in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue