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
===========================================================================
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,
and old state files will not work with this release.
@ -60,10 +60,11 @@
constants vs. symbolic addresses in the symbol file. Eventually,
further information from the lst file may be used.
- The various graphics registers in the TIA output (GRPx and PFx)
now have their background pixels (ie, pixels not actively being
drawn) set to COLUBK instead of always being black. Thanks to
Tjoppen of AtariAge for this idea and the actual code.
- The GRPx and PFx registers in the TIA output now show inactive
background pixels as either blanked or with the underlying object
colour, instead of always being black. This gives a more accurate
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
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
when launching a ROM from the launcher, not in standalone mode.
* Improved bankswitch autodetection for EF and EFSC ROMs, thanks to
RevEng of AtariAge.
* Improved bankswitch autodetection for newer EF and EFSC ROMs
generated by batari Basic, thanks to RevEng of AtariAge.
* Added properties database info for "Princess Rescue" ROM.

View File

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

View File

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

View File

@ -30,8 +30,12 @@ class TogglePixelWidget : public ToggleWidget
int x, int y, int cols, int rows);
virtual ~TogglePixelWidget();
void setColor(int color) { _pixelColor = color; }
void setBackgroundColor(int color) { _backgroundColor = color; }
void setColor(int 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 setIntState(int value, bool swap);