Added STROBE buttons to TIA tab.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@727 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-08-18 18:18:59 +00:00
parent 6abd06d9f0
commit b18c3809cb
3 changed files with 130 additions and 31 deletions

View File

@ -13,12 +13,12 @@
// See the file "license" for information on usage and redistribution of // See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES. // this file, and for a DISCLAIMER OF ALL WARRANTIES.
// //
// $Id: Version.hxx,v 1.6 2005-08-10 12:23:42 stephena Exp $ // $Id: Version.hxx,v 1.7 2005-08-18 18:18:59 stephena Exp $
//============================================================================ //============================================================================
#ifndef VERSION_HXX #ifndef VERSION_HXX
#define VERSION_HXX #define VERSION_HXX
#define STELLA_VERSION "2.0pre-0810" #define STELLA_VERSION "2.0_alpha7"
#endif #endif

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of // See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES. // this file, and for a DISCLAIMER OF ALL WARRANTIES.
// //
// $Id: TiaWidget.cxx,v 1.8 2005-08-18 16:19:07 stephena Exp $ // $Id: TiaWidget.cxx,v 1.9 2005-08-18 18:18:59 stephena Exp $
// //
// Based on code from ScummVM - Scumm Interpreter // Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project // Copyright (C) 2002-2004 The ScummVM project
@ -52,8 +52,21 @@ enum {
kNusizP0ID, kNusizP1ID, kNusizP0ID, kNusizP1ID,
kNusizM0ID, kNusizM1ID, kSizeBLID, kNusizM0ID, kNusizM1ID, kSizeBLID,
kEnaM0ID, kEnaM1ID, kEnaBLID, kEnaM0ID, kEnaM1ID, kEnaBLID,
kResM0ID, kResM1ID kResMP0ID, kResMP1ID
};
// Strobe button commands
enum {
kWsyncCmd = 'Swsy',
kRsyncCmd = 'Srsy',
kResP0Cmd = 'Srp0',
kResP1Cmd = 'Srp1',
kResM0Cmd = 'Srm0',
kResM1Cmd = 'Srm1',
kResBLCmd = 'Srbl',
kHmoveCmd = 'Shmv',
kHmclrCmd = 'Shmc',
kCxclrCmd = 'Scxl'
}; };
// Color registers // Color registers
@ -130,7 +143,7 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
// Color registers // Color registers
const char* regNames[] = { "COLUP0:", "COLUP1:", "COLUPF:", "COLUBK:" }; const char* regNames[] = { "COLUP0:", "COLUP1:", "COLUPF:", "COLUBK:" };
xpos = 10; ypos += 2*lineHeight; xpos = 10; ypos += 3*lineHeight;
for(int row = 0; row < 4; ++row) for(int row = 0; row < 4; ++row)
{ {
t = new StaticTextWidget(boss, xpos, ypos + row*lineHeight + 2, t = new StaticTextWidget(boss, xpos, ypos + row*lineHeight + 2,
@ -166,12 +179,18 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
// Collision register bits // Collision register bits
//////////////////////////// ////////////////////////////
// Add horizontal labels // Add horizontal labels
xpos += myCOLUBKColor->getWidth() + 2*fontWidth + 30; ypos -= 3*lineHeight + 5; xpos += myCOLUBKColor->getWidth() + 2*fontWidth + 30; ypos -= 4*lineHeight + 5;
t = new StaticTextWidget(boss, xpos, ypos, t = new StaticTextWidget(boss, xpos, ypos,
14*fontWidth, fontHeight, 14*fontWidth, fontHeight,
"PF BL M1 M0 P1", kTextAlignLeft); "PF BL M1 M0 P1", kTextAlignLeft);
t->setFont(font); t->setFont(font);
// Add label for Strobes; buttons will be added later
t = new StaticTextWidget(boss, xpos + t->getWidth() + 9*fontWidth, ypos,
8*fontWidth, fontHeight,
"Strobes:", kTextAlignLeft);
t->setFont(font);
// Add vertical labels // Add vertical labels
xpos -= 2*fontWidth + 5; ypos += lineHeight; xpos -= 2*fontWidth + 5; ypos += lineHeight;
const char* collLabel[] = { "P0", "P1", "M0", "M1", "BL" }; const char* collLabel[] = { "P0", "P1", "M0", "M1", "BL" };
@ -203,8 +222,50 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
collY += lineHeight+3; collY += lineHeight+3;
} }
// Add STROBE buttons ////////////////////////////
// TODO ... // Strobe buttons
////////////////////////////
ButtonWidget* b;
unsigned int buttonX, buttonY;
buttonX = collX + 20*fontWidth; buttonY = ypos;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "WSync", kWsyncCmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "ResP0", kResP0Cmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "ResM0", kResM0Cmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "ResBL", kResBLCmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "HmClr", kHmclrCmd);
b->setTarget(this);
buttonX += 50 + 10; buttonY = ypos;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "RSync", kRsyncCmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "ResP1", kResP1Cmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "ResM1", kResM1Cmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "HMove", kHmoveCmd);
b->setTarget(this);
buttonY += lineHeight + 3;
b = new ButtonWidget(boss, buttonX, buttonY, 50, lineHeight, "CxClr", kCxclrCmd);
b->setTarget(this);
// Set the strings to be used in the grPx registers // Set the strings to be used in the grPx registers
// We only do this once because it's the state that changes, not the strings // We only do this once because it's the state that changes, not the strings
@ -221,7 +282,7 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
// P0 register info // P0 register info
//////////////////////////// ////////////////////////////
// grP0 // grP0
xpos = 10; ypos += 7*lineHeight; xpos = 10; ypos = 13*lineHeight;
t = new StaticTextWidget(boss, xpos, ypos+2, t = new StaticTextWidget(boss, xpos, ypos+2,
7*fontWidth, fontHeight, 7*fontWidth, fontHeight,
"P0: GR:", kTextAlignLeft); "P0: GR:", kTextAlignLeft);
@ -424,11 +485,11 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
// M0 reset // M0 reset
xpos += myNusizM0->getWidth() + 15; xpos += myNusizM0->getWidth() + 15;
myResM0 = new CheckboxWidget(boss, font, xpos, ypos+1, "Reset", kCheckActionCmd); myResMP0 = new CheckboxWidget(boss, font, xpos, ypos+1, "Reset", kCheckActionCmd);
myResM0->setFont(font); myResMP0->setFont(font);
myResM0->setTarget(this); myResMP0->setTarget(this);
myResM0->setID(kResM0ID); myResMP0->setID(kResMP0ID);
addFocusWidget(myResM0); addFocusWidget(myResMP0);
//////////////////////////// ////////////////////////////
// M1 register info // M1 register info
@ -487,11 +548,11 @@ TiaWidget::TiaWidget(GuiObject* boss, int x, int y, int w, int h)
// M1 reset // M1 reset
xpos += myNusizM1->getWidth() + 15; xpos += myNusizM1->getWidth() + 15;
myResM1 = new CheckboxWidget(boss, font, xpos, ypos+1, "Reset", kCheckActionCmd); myResMP1 = new CheckboxWidget(boss, font, xpos, ypos+1, "Reset", kCheckActionCmd);
myResM1->setFont(font); myResMP1->setFont(font);
myResM1->setTarget(this); myResMP1->setTarget(this);
myResM1->setID(kResM1ID); myResMP1->setID(kResMP1ID);
addFocusWidget(myResM1); addFocusWidget(myResMP1);
//////////////////////////// ////////////////////////////
// BL register info // BL register info
@ -577,6 +638,46 @@ void TiaWidget::handleCommand(CommandSender* sender, int cmd, int data, int id)
switch(cmd) switch(cmd)
{ {
case kWsyncCmd:
tia.strobeWsync();
break;
case kRsyncCmd:
tia.strobeRsync();
break;
case kResP0Cmd:
tia.strobeResP0();
break;
case kResP1Cmd:
tia.strobeResP1();
break;
case kResM0Cmd:
tia.strobeResM0();
break;
case kResM1Cmd:
tia.strobeResM1();
break;
case kResBLCmd:
tia.strobeResBL();
break;
case kHmoveCmd:
tia.strobeHmove();
break;
case kHmclrCmd:
tia.strobeHmclr();
break;
case kCxclrCmd:
tia.strobeCxclr();
break;
case kDGItemDataChangedCmd: case kDGItemDataChangedCmd:
switch(id) switch(id)
{ {
@ -765,12 +866,12 @@ void TiaWidget::handleCommand(CommandSender* sender, int cmd, int data, int id)
tia.vdelBL(myDelBL->getState() ? 1 : 0); tia.vdelBL(myDelBL->getState() ? 1 : 0);
break; break;
case kResM0ID: case kResMP0ID:
tia.resMP0(myResM0->getState() ? 1 : 0); tia.resMP0(myResMP0->getState() ? 1 : 0);
break; break;
case kResM1ID: case kResMP1ID:
tia.resMP1(myResM1->getState() ? 1 : 0); tia.resMP1(myResMP1->getState() ? 1 : 0);
break; break;
} }
break; break;
@ -912,7 +1013,7 @@ void TiaWidget::fillGrid()
myNusizM0->setList(0, state.size[M0], state.size[M0] != oldstate.size[M0]); myNusizM0->setList(0, state.size[M0], state.size[M0] != oldstate.size[M0]);
// resMP0 // resMP0
myResM0->setState(tia.resMP0()); myResMP0->setState(tia.resMP0());
//////////////////////////// ////////////////////////////
// M1 register info // M1 register info
@ -930,7 +1031,7 @@ void TiaWidget::fillGrid()
myNusizM1->setList(0, state.size[M1], state.size[M1] != oldstate.size[M1]); myNusizM1->setList(0, state.size[M1], state.size[M1] != oldstate.size[M1]);
// resMP1 // resMP1
myResM1->setState(tia.resMP1()); myResMP1->setState(tia.resMP1());
//////////////////////////// ////////////////////////////
// BL register info // BL register info

View File

@ -13,7 +13,7 @@
// See the file "license" for information on usage and redistribution of // See the file "license" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES. // this file, and for a DISCLAIMER OF ALL WARRANTIES.
// //
// $Id: TiaWidget.hxx,v 1.6 2005-08-18 16:19:07 stephena Exp $ // $Id: TiaWidget.hxx,v 1.7 2005-08-18 18:18:59 stephena Exp $
// //
// Based on code from ScummVM - Scumm Interpreter // Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project // Copyright (C) 2002-2004 The ScummVM project
@ -95,13 +95,11 @@ class TiaWidget : public Widget, public CommandSender
CheckboxWidget* myEnaM1; CheckboxWidget* myEnaM1;
CheckboxWidget* myEnaBL; CheckboxWidget* myEnaBL;
CheckboxWidget* myResM0; CheckboxWidget* myResMP0;
CheckboxWidget* myResM1; CheckboxWidget* myResMP1;
/** Collision register bits */ /** Collision register bits */
CheckboxWidget* myCollision[15]; CheckboxWidget* myCollision[15];
}; };
#endif #endif