diff --git a/Changes.txt b/Changes.txt
index 68f330237..9a411d6c4 100644
--- a/Changes.txt
+++ b/Changes.txt
@@ -24,8 +24,8 @@
have only one 2600-daptor and want to use it as a left port
normally, but as a right port for Star Raiders, etc).
- * Added CompuMate bankswitching/controller support; the CompuMate
- NTSC and PAL ROMs now work correctly.
+ * Added CompuMate bankswitching/controller support to the emulation
+ core; the Spectravideo CompuMate ROMs (NTSC and PAL) now work.
* Fixed bug in BoosterGrip controller emulation; the functionality
of the booster and trigger buttons was reversed. Related to this,
diff --git a/docs/index.html b/docs/index.html
index 4fea8a1a4..b8f5d6a07 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -10,7 +10,7 @@
A multi-platform Atari 2600 VCS emulator
- Release 3.5.5
+ Release 3.6
User's Guide
@@ -54,7 +54,7 @@
- February 1999 - February 2012
+ February 1999 - March 2012
The Stella Team
Stella Homepage
@@ -260,16 +260,18 @@
joysticks or mouse
Emulates CX-22 / CX-80 style trackballs and Amiga Mouse using your
computer's mouse
+ Emulates Spectravideo CompuMate system using your computer's keyboard
Support for real Atari 2600 controllers using the
Stelladaptor and
- 2600-adaptor
+ 2600-adaptor/2600-daptor II
Support for the speech portion of a real
AtariVox device connected to your PC using a USB adaptor
Supports EEPROM emulation for
AtariVox and SaveKey controllers
Supports all known bankswitching schemes (let us know if there's one we missed)
- Supports DPC+ bankswitching scheme from the Harmony cart, including partial emulation of the ARM processor
+ Supports DPC+ bankswitching scheme from the Harmony Cart,
+ including partial emulation of the ARM processor
Supports cartridge autodetection for almost all bankswitching schemes
Supports Supercharger single-load and multi-load games
Supports ROMs stored in ZIP and GZIP format, as well as the usual A26/BIN/ROM formats
@@ -339,10 +341,9 @@
- MacOSX 10.4 (Tiger) or above
- PPC G4 or Intel processor, 500MHz or above
- - OpenGL capable video card; software rendering mode is still available,
- but as of MacOSX 10.4 is substandard (and untested) compared to OpenGL
- - Xcode 3.2 is required to compile the Stella source code (SDL 1.2.14 also
- required to compile the 64-bit version)
+ - OpenGL capable video card
+ - Xcode 3.1 and SDL 1.2.14 required to compile a 10.4 compatible Universal Binary version;
+ Xcode 3.2 and SDL 1.2.15 required to compile the Intel/64-bit version
- The 64-bit version requires at minimum Snow Leopard (10.6) and Intel CPU/architecture
@@ -366,7 +367,7 @@
Other
Stella is extremely portable, and in its lifetime has been ported to almost every
- platform where the SDL library exists. It is 32/64 bit clean in Linux/Unix, MacOSX
+ platform where the SDL library exists. It is 32/64-bit and endian clean in Linux/Unix, MacOSX
and Windows. The Stella Team is interested in hearing about any problems you may
encounter with diverse operating systems and CPU types.
@@ -1265,6 +1266,18 @@
+ CompuMate Controller (cannot be remapped)
+
+
+ CompuMate | Key |
+ 0 - 9 | 0 - 9 |
+ A - Z | A - Z |
+ Function | Control (left or right) |
+ Shift | Shift (left or right) |
+ Enter | ; or Return/Enter |
+ Space | / or Space |
+
+
Developer Keys in TIA mode (cannot be remapped)
@@ -3071,6 +3084,7 @@ Ms Pac-Man (Stella extended codes):
4A50 | 64K 4A50 + ram |
4K | 4K Atari |
AR | Supercharger |
+ CM ¹ | Spectravideo CompuMate |
CV | Commavid extra ram |
DPC | Pitfall II |
DPC+ | Enhanced DPC |
@@ -3142,6 +3156,7 @@ Ms Pac-Man (Stella extended codes):
AtariVoxA SpeakJet based unlimited-vocabulary speech / sound synthesizer with 32K EEPROM. |
SaveKey | A 32K EEPROM for saving high scores, etc (the EEPROM portion of an AtariVox). |
Genesis | Sega Genesis controller, which can be used similar to a BoosterGrip, giving an extra button. |
+ CompuMate | Spectravideo CompuMate (if either left or right is set, CompuMate is used for both). |
diff --git a/src/emucore/CompuMate.cxx b/src/emucore/CompuMate.cxx
index 2fe25f929..fc2b006c4 100644
--- a/src/emucore/CompuMate.cxx
+++ b/src/emucore/CompuMate.cxx
@@ -68,9 +68,9 @@ void CompuMate::update()
rp.myDigitalPinState[Controller::Three] = true;
rp.myDigitalPinState[Controller::Four] = true;
- if (KeyTable[KBDK_LSHIFT])
+ if (KeyTable[KBDK_LSHIFT] || KeyTable[KBDK_RSHIFT])
rp.myAnalogPinValue[Controller::Five] = Controller::minimumResistance;
- if (KeyTable[KBDK_LCTRL])
+ if (KeyTable[KBDK_LCTRL] || KeyTable[KBDK_RCTRL])
lp.myAnalogPinValue[Controller::Nine] = Controller::minimumResistance;
switch(myCart.column())
@@ -108,8 +108,10 @@ void CompuMate::update()
case 5:
if (KeyTable[KBDK_0]) lp.myDigitalPinState[Controller::Six] = false;
if (KeyTable[KBDK_p]) rp.myDigitalPinState[Controller::Three] = false;
- if (KeyTable[KBDK_COLON]) rp.myDigitalPinState[Controller::Six] = false;
- if (KeyTable[KBDK_SLASH]) rp.myDigitalPinState[Controller::Four] = false;
+ if (KeyTable[KBDK_SEMICOLON] || KeyTable[KBDK_RETURN])
+ rp.myDigitalPinState[Controller::Six] = false;
+ if (KeyTable[KBDK_SLASH] || KeyTable[KBDK_SPACE])
+ rp.myDigitalPinState[Controller::Four] = false;
break;
case 6:
if (KeyTable[KBDK_9]) lp.myDigitalPinState[Controller::Six] = false;
diff --git a/src/gui/GameInfoDialog.cxx b/src/gui/GameInfoDialog.cxx
index a4f56ca22..a43f36ff9 100644
--- a/src/gui/GameInfoDialog.cxx
+++ b/src/gui/GameInfoDialog.cxx
@@ -240,7 +240,7 @@ GameInfoDialog::GameInfoDialog(
ctrls.push_back("AtariVox", "ATARIVOX" );
ctrls.push_back("SaveKey", "SAVEKEY" );
ctrls.push_back("Sega Genesis", "GENESIS" );
-// ctrls.push_back("CompuMate", "COMPUMATE" );
+ ctrls.push_back("CompuMate", "COMPUMATE" );
// ctrls.push_back("KidVid", "KIDVID" );
// ctrls.push_back("MindLink", "MINDLINK" );
myP0Controller = new PopUpWidget(myTab, font, xpos+lwidth, ypos,