TIA graphics registers now more closely illustrate how they're drawn

to the screen (inactive pixels are 'transparent' in the UI).  In the
case where there is only one possible object below the register, a
'blank' uses the underlying colour (ie, in normal priority, a blank
PF is 'coloured' using COLUBK).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2797 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2013-08-19 14:35:58 +00:00
parent 8ea92e67ef
commit 30a3f3742c
4 changed files with 21 additions and 15 deletions

View File

@ -12,7 +12,7 @@
Release History Release History
=========================================================================== ===========================================================================
3.9 to 3.9.1: (August 14, 2013) 3.9 to 3.9.1: (August xx, 2013)
* Note: because of TIA changes, the state file format has changed again, * Note: because of TIA changes, the state file format has changed again,
and old state files will not work with this release. and old state files will not work with this release.
@ -60,10 +60,11 @@
constants vs. symbolic addresses in the symbol file. Eventually, constants vs. symbolic addresses in the symbol file. Eventually,
further information from the lst file may be used. further information from the lst file may be used.
- The various graphics registers in the TIA output (GRPx and PFx) - The GRPx and PFx registers in the TIA output now show inactive
now have their background pixels (ie, pixels not actively being background pixels as either blanked or with the underlying object
drawn) set to COLUBK instead of always being black. Thanks to colour, instead of always being black. This gives a more accurate
Tjoppen of AtariAge for this idea and the actual code. representation of how the registers are actually drawn onscreen.
Thanks to Tjoppen of AtariAge for this idea and the actual code.
* Renamed 'Override properties' dialog (accessible from the ROM * Renamed 'Override properties' dialog (accessible from the ROM
launcher by a right-mouse-button click) to 'Power-on options', with launcher by a right-mouse-button click) to 'Power-on options', with
@ -85,8 +86,8 @@
* Fixed bug when using event remapping; changes were being saved only * Fixed bug when using event remapping; changes were being saved only
when launching a ROM from the launcher, not in standalone mode. when launching a ROM from the launcher, not in standalone mode.
* Improved bankswitch autodetection for EF and EFSC ROMs, thanks to * Improved bankswitch autodetection for newer EF and EFSC ROMs
RevEng of AtariAge. generated by batari Basic, thanks to RevEng of AtariAge.
* Added properties database info for "Princess Rescue" ROM. * Added properties database info for "Princess Rescue" ROM.

View File

@ -856,7 +856,7 @@ void TiaWidget::loadConfig()
//////////////////////////// ////////////////////////////
// grP0 // grP0
myGRP0->setColor(state.coluRegs[0]); myGRP0->setColor(state.coluRegs[0]);
myGRP0->setBackgroundColor(state.coluRegs[3]); myGRP0->setBackgroundColor(-1);
myGRP0->setIntState(state.gr[P0], false); myGRP0->setIntState(state.gr[P0], false);
// posP0 // posP0
@ -879,7 +879,7 @@ void TiaWidget::loadConfig()
//////////////////////////// ////////////////////////////
// grP1 // grP1
myGRP1->setColor(state.coluRegs[1]); myGRP1->setColor(state.coluRegs[1]);
myGRP1->setBackgroundColor(state.coluRegs[3]); myGRP1->setBackgroundColor(tia.priorityPF() ? state.coluRegs[3] : -1);
myGRP1->setIntState(state.gr[P1], false); myGRP1->setIntState(state.gr[P1], false);
// posP1 // posP1
@ -954,19 +954,20 @@ void TiaWidget::loadConfig()
//////////////////////////// ////////////////////////////
// PF register info // PF register info
//////////////////////////// ////////////////////////////
int pfx_bgcolor = !tia.priorityPF() ? state.coluRegs[3] : -1;
// PF0 // PF0
myPF[0]->setColor(state.coluRegs[2]); myPF[0]->setColor(state.coluRegs[2]);
myPF[0]->setBackgroundColor(state.coluRegs[3]); myPF[0]->setBackgroundColor(pfx_bgcolor);
myPF[0]->setIntState(state.pf[0], true); // reverse bit order myPF[0]->setIntState(state.pf[0], true); // reverse bit order
// PF1 // PF1
myPF[1]->setColor(state.coluRegs[2]); myPF[1]->setColor(state.coluRegs[2]);
myPF[1]->setBackgroundColor(state.coluRegs[3]); myPF[1]->setBackgroundColor(pfx_bgcolor);
myPF[1]->setIntState(state.pf[1], false); myPF[1]->setIntState(state.pf[1], false);
// PF2 // PF2
myPF[2]->setColor(state.coluRegs[2]); myPF[2]->setColor(state.coluRegs[2]);
myPF[2]->setBackgroundColor(state.coluRegs[3]); myPF[2]->setBackgroundColor(pfx_bgcolor);
myPF[2]->setIntState(state.pf[2], true); // reverse bit order myPF[2]->setIntState(state.pf[2], true); // reverse bit order
// Reflect // Reflect

View File

@ -29,7 +29,7 @@ TogglePixelWidget::TogglePixelWidget(GuiObject* boss, const GUI::Font& font,
int x, int y, int cols, int rows) int x, int y, int cols, int rows)
: ToggleWidget(boss, font, x, y, cols, rows), : ToggleWidget(boss, font, x, y, cols, rows),
_pixelColor(0), _pixelColor(0),
_backgroundColor(kBGColor) _backgroundColor(kDlgColor)
{ {
_rowHeight = _colWidth = font.getLineHeight(); _rowHeight = _colWidth = font.getLineHeight();

View File

@ -30,8 +30,12 @@ class TogglePixelWidget : public ToggleWidget
int x, int y, int cols, int rows); int x, int y, int cols, int rows);
virtual ~TogglePixelWidget(); virtual ~TogglePixelWidget();
void setColor(int color) { _pixelColor = color; } void setColor(int color) {
void setBackgroundColor(int color) { _backgroundColor = color; } _pixelColor = (color >= 0 && color <= 255) ? color : kDlgColor;
}
void setBackgroundColor(int color) {
_backgroundColor = (color >= 0 && color <= 255) ? color : kDlgColor;
}
void setState(const BoolArray& state); void setState(const BoolArray& state);
void setIntState(int value, bool swap); void setIntState(int value, bool swap);