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 @@ @@ -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. SaveKeyA 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,