Updating the PC in CpuWidget area now moves the PC indicator in ROM area.

Disabled editing of banks when the ROM doesn't do bankswitching.

Fixed Shift-Tab key not being detected (and hence not being able to
reverse-tab through items in debugger).

Bumped version number to 2.0 and updated all documentation.  Barring
anything major popping up in the next day or so, this is essentially the
2.0 release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@831 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-10-14 13:50:00 +00:00
parent e3d8eef7ac
commit c92414107f
10 changed files with 160 additions and 62 deletions

View File

@ -9,7 +9,7 @@
SSSS ttt eeeee llll llll aaaaa SSSS ttt eeeee llll llll aaaaa
=============================================================================== ===============================================================================
Release 1.4.2 for Linux, Mac OSX and Windows Release 2.0 for Linux, Mac OSX and Windows
=============================================================================== ===============================================================================
The Atari 2600 Video Computer System (VCS), introduced in 1977, was the most The Atari 2600 Video Computer System (VCS), introduced in 1977, was the most
@ -21,19 +21,19 @@ of your favorite Atari 2600 games again! Stella was originally developed for
Linux by Bradford W. Mott, however, it has been ported to a number of other Linux by Bradford W. Mott, however, it has been ported to a number of other
platforms. platforms.
This is the 1.4.2 release of Stella for Linux, Mac OSX and Windows. Distributions This is the 2.0 release of Stella for Linux, Mac OSX and Windows. Distributions
for other operating systems will appear as they become available. The for other operating systems will appear as they become available. The
distributions currently available are: distributions currently available are:
* Binary distribution in RPM format for Linux (stella-1.4.2-1plf.i586.rpm) * Binary distribution in RPM format for Linux (stella-2.0-1.i586.rpm)
* Binary distribution for Mac OSX (StellaOSX1.4.2.dmg.gz) * Binary distribution for Mac OSX (StellaOSX2.0.dmg.gz)
* Binary distribution for Windows (stella-1.4.2-win32.zip) * Binary distribution for Windows (stella-2.0-win32.zip)
* Source code distribution for Linux, Mac OSX and Windows (stella-1.4.2-src.tar.gz) * Source code distribution for Linux, Mac OSX and Windows (stella-2.0-src.tar.gz)
* Source code in SRPM format for Linux RPM-based systems (stella-1.4.2-1plf.src.rpm) * Source code in SRPM format for Linux RPM-based systems (stella-2.0-1.src.rpm)
PLEASE DO NOT WRITE ASKING FOR ROM IMAGES TO USE WITH STELLA! ALL SUCH PLEASE DO NOT WRITE ASKING FOR ROM IMAGES TO USE WITH STELLA! ALL SUCH
REQUESTS WILL BE IGNORED! REQUESTS WILL BE IGNORED!

View File

@ -11,6 +11,100 @@
=============================================================================== ===============================================================================
Release History Release History
=============================================================================== ===============================================================================
1.4.2 to 2.0: (October 16, 2005)
* Added integrated GUI. Stella is now a fully graphical application, and all
settings can be changed dynamically while the application is running. That
means the commandline is no longer required (but support is still there
for those who want to use it).
* Added ROM launcher. You can now exit a game and start playing another one
from directly within Stella (you no longer have to quit Stella and
restart it).
* Because of the integrated GUI and ROM launcher, StellaX and KStella
(the Windows and Linux frontends) have been discontinued. The OSX
port now uses the launcher as well.
* Added an integrated debugger for game developers. This is currently
the first version of a debugger in Stella, but it's already quite
usable.
* Added new sound subsystem, which is much faster and more accurate.
Related to this, added stereo sound output (used by some homebrew games).
* Added ZIP support. Stella can now open ROM's compressed in zip
format.
* Added cartridge 'frying', thanks to Fred "batari" Quimby. This
emulates the action of turning the power button on and off on a
real Atari, often resulting in some strange effects.
* Added ability to edit current ROM properties from directly within
Stella, which can then be saved directly into the 'user.pro' file.
So creating a properties entry for a new ROM can be done without
any external tools.
* Added initial support for using Stella in an 'arcade-box'
environment without a keyboard. This consists of an in-game
menu for choosing common actions in Stella, as well as using the
joystick navigate the mouse pointer.
* Reworked properties system to use both a system-wide 'stella.pro' and
a per-user 'user.pro' properties files. Changes made by the user
and stored in 'user.pro' are no longer erased when upgrading Stella.
* Added support for cartridges with 3E bankswitching format.
* Added preliminary Cheat support.
* Added 'Alt/Shift-Cmd' z, x, c, v, b, n keys to enable/disable the
P0, P1, M0, M1, BL, PL bits in the TIA, respectively.
* Added 'Alt/Shift-Cmd .' key to disable all bits in the TIA.
* Added 'Alt/Shift-Cmd /' key to enable all bits in the TIA.
* Added 'Alt/Shift-Cmd g' key to switch dynamically switch between
software and OpenGL modes while Stella is running.
* Added 'Ctrl/Cmd r' key to reload the ROM currently being emulated.
* Added 'Alt/Shift-Cmd s' key to merge the current game properties
into the properties file.
* Added 'help' commandline argument. Launching Stella from the
commandline with no options now starts Stella in ROM launcher mode,
instead of showing help (as in previous versions).
* Added the following commandline arguments for developers:
"pro, type, ld, rd, tv, lc, rc, bc, format, xstart, ystart, width
height, cpu, hmove". Developers can consult the manual for
further details.
* Removed 'mergeprops' commandline argument, since there are now
dedicated keys to either save or merge game properties.
* Removed 'hidecursor' commandline argument. Stella will now
automatically decide when to use this setting.
* Fixed framerate when switching between NTSC and PAL modes. Stella
now uses the correct framerate based on the format of the ROM,
in terms of both video and audio.
* Added 'configure' support to the build process for both Linux and
Win32 (using MinGW). Developers can now use the familiar 'configure;
make; make install' commands to compile Stella.
* Further consolidation and integration of SDL. This should lead to
faster operation and a more consistent look for all ports.
* Fixed some 64-bit issues. Stella now compiles and runs correctly
on AMD64 and PPC64 Linux systems.
* Updated the Stella manual with pictures of the new integrated GUI.
1.4.2a to 1.4.2b: MacOSX version only (February 27, 2005) 1.4.2a to 1.4.2b: MacOSX version only (February 27, 2005)
* Added fix to mute sound while user is loading a new cartridge, or using * Added fix to mute sound while user is loading a new cartridge, or using

View File

@ -9,43 +9,37 @@
SSSS ttt eeeee llll llll aaaaa SSSS ttt eeeee llll llll aaaaa
=============================================================================== ===============================================================================
To Do List - February 19, 2005 To Do List - October 16, 2005
=============================================================================== ===============================================================================
If you would like to contribute to Stella's development then find something If you would like to contribute to Stella's development then find something
on the list below and send email to Bradford Mott at bwmott@acm.org or on the list below and send email to Bradford Mott at bwmott@acm.org or
Stephen Anthony at stephena@users.sourceforge.net. Stephen Anthony at stephena@users.sourceforge.net.
For all ports (in order of importance): * Improve debugger support for cartridges with dedicated RAM, and add
source-level debugging
* Provide a fully integrated GUI where all settings can be changed, multiple
games can be run, etc; basically, move all functionality of external
frontends into Stella itself
* Add an internal debugger to Stella for game developers
* Provide suggestions for improving Stella
* Provide suggestions for improving the Stella User's Manual
* Find people to actually do the above ports, and try to more actively * Find people to actually do the above ports, and try to more actively
recruit people into the Stella project recruit people into the Stella project
* Improve cheatcode support, add GUI, etc
For the various frontends * Either Support DASM as frontend or integrate a 6507 Assembler
- Discontinue all external frontends; integrate into Stella itself * Either Support Distella as frontend or integrate a 6507 Disassembler
- Add a Sprite/Animation Editor
- Add a PF Editor * Add a Sprite/Animation Editor
- Add a Sourcecode Editor
- Either Support DASM as frontend or integrate a 6507 Assembler * Record and Playback games - not as real movie, but by logging
- Either Support Distella as frontend or integrate a 6507 Disassembler
- AVI/MPEG export
- WAV/MP3 export
- Client/Server networked play for up to 4 Computers via LAN/Internet
- Tracking Hiscores
- Record and Playback games - not as real movie, but by logging
Input/RAM/processor states in given intervals. Input/RAM/processor states in given intervals.
- Cheatcodes
- Improve frontend by adding snapshots, labels, manuals, etc. * AVI/MPEG export
* Add a PF Editor
* Client/Server networked play for up to 4 Computers via LAN/Internet
* Tracking Hiscores
* Improve frontend by adding snapshots, labels, manuals, etc.
Like KStella for Linux. (Suggestion from Brian Luttrull) Like KStella for Linux. (Suggestion from Brian Luttrull)

View File

@ -220,7 +220,7 @@
<li>Added integrated GUI. Stella is now a fully graphical application, and all <li>Added integrated GUI. Stella is now a fully graphical application, and all
settings can be changed dynamically while the application is running. That settings can be changed dynamically while the application is running. That
means the commandline is no longer required (but support is still there means the commandline is no longer required (but support is still there
for those that want to use it).</li> for those who want to use it).</li>
<li>Added ROM launcher. You can now exit a game and start playing another one <li>Added ROM launcher. You can now exit a game and start playing another one
from directly within Stella (you no longer have to quit Stella and from directly within Stella (you no longer have to quit Stella and
@ -240,6 +240,10 @@
<li>Added ZIP support. Stella can now open ROM's compressed in zip <li>Added ZIP support. Stella can now open ROM's compressed in zip
format.</li> format.</li>
<li>Added cartridge 'frying', thanks to Fred "batari" Quimby. This
emulates the action of turning the power button on and off on a
real Atari, often resulting in some strange effects.</li>
<li>Added ability to edit current ROM properties from directly within <li>Added ability to edit current ROM properties from directly within
Stella, which can then be saved directly into the 'user.pro' file. Stella, which can then be saved directly into the 'user.pro' file.
So creating a properties entry for a new ROM can be done without So creating a properties entry for a new ROM can be done without
@ -254,12 +258,10 @@
a per-user 'user.pro' properties files. Changes made by the user a per-user 'user.pro' properties files. Changes made by the user
and stored in 'user.pro' are no longer erased when upgrading Stella.</li> and stored in 'user.pro' are no longer erased when upgrading Stella.</li>
<li>Added cartridge 'frying', thanks to Fred "batari" Quimby. This
emulates the action of turning the power button on and off on a
real Atari, often resulting in some strange effects.</li>
<li>Added support for cartridges with 3E bankswitching format.</li> <li>Added support for cartridges with 3E bankswitching format.</li>
<li>Added preliminary Cheat support.</li>
<li>Added <b>Alt/Shift-Cmd z, x, c, v, b, n</b> keys to enable/disable the <li>Added <b>Alt/Shift-Cmd z, x, c, v, b, n</b> keys to enable/disable the
P0, P1, M0, M1, BL, PL bits in the TIA, respectively.</li> P0, P1, M0, M1, BL, PL bits in the TIA, respectively.</li>
@ -400,7 +402,7 @@
<p> <p>
<h2><b>Windows</b></h2> <h2><b>Windows</b></h2>
<p>The Windows version of Stella is designed to work on Windows 95/98/ME/2000/XP with <p>The Windows version of Stella is designed to work on Windows 98/ME/2000/XP with
the following:</p> the following:</p>
<ul> <ul>
@ -460,7 +462,7 @@
<h2><b>Macintosh</b></h2> <h2><b>Macintosh</b></h2>
<p>To install the Mac binary, simply download the DMG disk <p>To install the Mac binary, simply download the DMG disk
image. Mount the disk image, then copy the StellaOSXxxx folder to image. Mount the disk image, then copy the StellaOSX<i>release</i> folder to
your hard drive.<br> your hard drive.<br>
</p> </p>

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.8 2005-08-30 17:51:26 stephena Exp $ // $Id: Version.hxx,v 1.9 2005-10-14 13:50:00 stephena Exp $
//============================================================================ //============================================================================
#ifndef VERSION_HXX #ifndef VERSION_HXX
#define VERSION_HXX #define VERSION_HXX
#define STELLA_VERSION "2.0_beta1" #define STELLA_VERSION "2.0"
#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: CpuWidget.cxx,v 1.2 2005-10-11 17:14:35 stephena Exp $ // $Id: CpuWidget.cxx,v 1.3 2005-10-14 13:50:00 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
@ -157,24 +157,30 @@ void CpuWidget::handleCommand(CommandSender* sender, int cmd, int data, int id)
switch(addr) switch(addr)
{ {
case kPCRegAddr: case kPCRegAddr:
dbg.setPC(value); {
break; // Use the parser to set PC, since we want to propagate the
// event the rest of the debugger widgets
ostringstream command;
command << "pc #" << value;
instance()->debugger().run(command.str());
break;
}
case kSPRegAddr: case kSPRegAddr:
dbg.setSP(value); dbg.setSP(value);
break; break;
case kARegAddr: case kARegAddr:
dbg.setA(value); dbg.setA(value);
break; break;
case kXRegAddr: case kXRegAddr:
dbg.setX(value); dbg.setX(value);
break; break;
case kYRegAddr: case kYRegAddr:
dbg.setY(value); dbg.setY(value);
break; break;
} }
break; break;

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: DebuggerDialog.cxx,v 1.8 2005-10-13 18:53:07 stephena Exp $ // $Id: DebuggerDialog.cxx,v 1.9 2005-10-14 13:50:00 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
@ -231,7 +231,7 @@ void DebuggerDialog::addRomArea()
buttonY += 22; buttonY += 22;
addButton(buttonX, buttonY, "Exit", kDDExitCmd, 0); addButton(buttonX, buttonY, "Exit", kDDExitCmd, 0);
xpos = r.left + 10; ypos += myRam->getHeight() + 15; xpos = r.left + 10; ypos += myRam->getHeight() + 5;
myRom = new RomWidget(this, instance()->consoleFont(), xpos, ypos); myRom = new RomWidget(this, instance()->consoleFont(), xpos, ypos);
addToFocusList(myRom->getFocusList()); addToFocusList(myRom->getFocusList());

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: RomWidget.cxx,v 1.12 2005-10-13 18:53:07 stephena Exp $ // $Id: RomWidget.cxx,v 1.13 2005-10-14 13:50:00 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
@ -50,7 +50,7 @@ RomWidget::RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y)
StaticTextWidget* t; StaticTextWidget* t;
// Create bank editable area // Create bank editable area
xpos = x + 40; ypos = y; xpos = x + 40; ypos = y + 7;
t = new StaticTextWidget(boss, xpos, ypos, t = new StaticTextWidget(boss, xpos, ypos,
font.getStringWidth("Current bank: "), font.getStringWidth("Current bank: "),
font.getFontHeight(), font.getFontHeight(),
@ -62,6 +62,8 @@ RomWidget::RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y)
1, 1, 1, 2, kBASE_16_4); 1, 1, 1, 2, kBASE_16_4);
myBank->setTarget(this); myBank->setTarget(this);
myBank->setRange(0, instance()->debugger().bankCount()); myBank->setRange(0, instance()->debugger().bankCount());
if(instance()->debugger().bankCount() <= 1)
myBank->setEditable(false);
addFocusWidget(myBank); addFocusWidget(myBank);
// Show number of banks // Show number of banks
@ -79,7 +81,7 @@ RomWidget::RomWidget(GuiObject* boss, const GUI::Font& font, int x, int y)
myBankCount->setEditable(false); myBankCount->setEditable(false);
// Create rom listing // Create rom listing
xpos = x; ypos += myBank->getHeight() + 2; xpos = x; ypos += myBank->getHeight() + 4;
myRomList = new RomListWidget(boss, font, xpos, ypos, w, h); myRomList = new RomListWidget(boss, font, xpos, ypos, w, h);
myRomList->setTarget(this); myRomList->setTarget(this);
myRomList->myMenu->setTarget(this); myRomList->myMenu->setTarget(this);

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: Dialog.cxx,v 1.31 2005-09-30 00:40:34 stephena Exp $ // $Id: Dialog.cxx,v 1.32 2005-10-14 13:50:00 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
@ -290,7 +290,8 @@ void Dialog::handleKeyDown(int ascii, int keycode, int modifiers)
return; return;
} }
} }
else if(keycode == 9) // tab key
if(keycode == 9) // tab key
{ {
if(_focusedWidget && !(_focusedWidget->getFlags() & WIDGET_WANTS_TAB)) if(_focusedWidget && !(_focusedWidget->getFlags() & WIDGET_WANTS_TAB))
{ {

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: InputTextDialog.cxx,v 1.6 2005-10-06 17:28:55 stephena Exp $ // $Id: InputTextDialog.cxx,v 1.7 2005-10-14 13:50:00 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
@ -66,7 +66,6 @@ InputTextDialog::InputTextDialog(GuiObject* boss, const GUI::Font& font,
xpos = 10; ypos = 2*lineHeight + 5; xpos = 10; ypos = 2*lineHeight + 5;
_title = new StaticTextWidget(this, xpos, ypos, _w - 2*xpos, fontHeight, _title = new StaticTextWidget(this, xpos, ypos, _w - 2*xpos, fontHeight,
"", kTextAlignCenter); "", kTextAlignCenter);
_title->setFont(font);
_title->setColor(kTextColorEm); _title->setColor(kTextColorEm);
#ifndef MAC_OSX #ifndef MAC_OSX