Fixed missing 'Enter' key in CompuMate emulation. It seems that the

z26 code never actually implemented this, so I'm not sure how people
actually entered Basic code.  I guess not many people have played 
with and tested this before.

Added more sensible keys for the CompuMate 'space' and 'enter' keys.
They're still mapped to '/' and ';' respectively (to keep locations
on the keyboard the same), but are also mapped to the actual 'Space'
and 'Enter' keys (to make usage much easier).  I'll probably also
map 'Shift-;' to Backspace as well.

Updated documentation for CompuMate emulation.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2415 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2012-03-15 23:40:36 +00:00
parent 44b5cf66b9
commit 92cda788c4
4 changed files with 33 additions and 16 deletions

View File

@ -24,8 +24,8 @@
have only one 2600-daptor and want to use it as a left port have only one 2600-daptor and want to use it as a left port
normally, but as a right port for Star Raiders, etc). normally, but as a right port for Star Raiders, etc).
* Added CompuMate bankswitching/controller support; the CompuMate * Added CompuMate bankswitching/controller support to the emulation
NTSC and PAL ROMs now work correctly. core; the Spectravideo CompuMate ROMs (NTSC and PAL) now work.
* Fixed bug in BoosterGrip controller emulation; the functionality * Fixed bug in BoosterGrip controller emulation; the functionality
of the booster and trigger buttons was reversed. Related to this, of the booster and trigger buttons was reversed. Related to this,

View File

@ -10,7 +10,7 @@
<br><br> <br><br>
<center><h2><b>A multi-platform Atari 2600 VCS emulator</b></h2></center> <center><h2><b>A multi-platform Atari 2600 VCS emulator</b></h2></center>
<center><h4><b>Release 3.5.5</b></h4></center> <center><h4><b>Release 3.6</b></h4></center>
<br><br> <br><br>
<center><h2><b>User's Guide</b></h2></center> <center><h2><b>User's Guide</b></h2></center>
@ -54,7 +54,7 @@
<br><br><br> <br><br><br>
<center><b>February 1999 - February 2012</b></center> <center><b>February 1999 - March 2012</b></center>
<center><b>The Stella Team</b></center> <center><b>The Stella Team</b></center>
<center><b><a href="http://stella.sourceforge.net">Stella Homepage</a></b></center> <center><b><a href="http://stella.sourceforge.net">Stella Homepage</a></b></center>
@ -260,16 +260,18 @@
joysticks or mouse</li> joysticks or mouse</li>
<li>Emulates CX-22 / CX-80 style trackballs and Amiga Mouse using your <li>Emulates CX-22 / CX-80 style trackballs and Amiga Mouse using your
computer's mouse</li> computer's mouse</li>
<li>Emulates Spectravideo CompuMate system using your computer's keyboard</li>
<li>Support for real Atari 2600 controllers using the <li>Support for real Atari 2600 controllers using the
<a href="http://www.stelladaptor.com">Stelladaptor</a> and <a href="http://www.stelladaptor.com">Stelladaptor</a> and
<a href="http://2600-daptor.com">2600-adaptor</a></li> <a href="http://2600-daptor.com">2600-adaptor/2600-daptor II</a></li>
<li>Support for the speech portion of a real <li>Support for the speech portion of a real
<a href="http://www.richard.hutchinson.dsl.pipex.com/new_page_5.htm"> <a href="http://www.richard.hutchinson.dsl.pipex.com/new_page_5.htm">
AtariVox</a> device connected to your PC using a USB adaptor</li> AtariVox</a> device connected to your PC using a USB adaptor</li>
<li>Supports EEPROM emulation for <a href="http://www.richard.hutchinson.dsl.pipex.com/new_page_5.htm"> <li>Supports EEPROM emulation for <a href="http://www.richard.hutchinson.dsl.pipex.com/new_page_5.htm">
AtariVox</a> and <a href="http://www.vectrex.biz/MemCard.htm">SaveKey</a> controllers</li> AtariVox</a> and <a href="http://www.vectrex.biz/MemCard.htm">SaveKey</a> controllers</li>
<li>Supports all known bankswitching schemes (let us know if there's one we missed)</li> <li>Supports all known bankswitching schemes (let us know if there's one we missed)</li>
<li>Supports DPC+ bankswitching scheme from the Harmony cart, including partial emulation of the ARM processor</li> <li>Supports DPC+ bankswitching scheme from the <a href="http://harmony.atariage.com">Harmony Cart</a>,
including partial emulation of the ARM processor</li>
<li>Supports cartridge autodetection for almost all bankswitching schemes</li> <li>Supports cartridge autodetection for almost all bankswitching schemes</li>
<li>Supports Supercharger single-load and multi-load games</li> <li>Supports Supercharger single-load and multi-load games</li>
<li>Supports ROMs stored in ZIP and GZIP format, as well as the usual A26/BIN/ROM formats</li> <li>Supports ROMs stored in ZIP and GZIP format, as well as the usual A26/BIN/ROM formats</li>
@ -339,10 +341,9 @@
<ul> <ul>
<li>MacOSX 10.4 (Tiger) or above</li> <li>MacOSX 10.4 (Tiger) or above</li>
<li>PPC G4 or Intel processor, 500MHz or above</li> <li>PPC G4 or Intel processor, 500MHz or above</li>
<li>OpenGL capable video card; software rendering mode is still available, <li>OpenGL capable video card</li>
but as of MacOSX 10.4 is substandard (and untested) compared to OpenGL</li> <li>Xcode 3.1 and SDL 1.2.14 required to compile a 10.4 compatible Universal Binary version;
<li>Xcode 3.2 is required to compile the Stella source code (SDL 1.2.14 also Xcode 3.2 and SDL 1.2.15 required to compile the Intel/64-bit version</li>
required to compile the 64-bit version)</li>
<li>The 64-bit version requires at minimum Snow Leopard (10.6) and Intel CPU/architecture</li> <li>The 64-bit version requires at minimum Snow Leopard (10.6) and Intel CPU/architecture</li>
</ul> </ul>
@ -366,7 +367,7 @@
<h3><b><u>Other</u></b></h3> <h3><b><u>Other</u></b></h3>
<p>Stella is extremely portable, and in its lifetime has been ported to almost every <p>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 and Windows. The Stella Team is interested in hearing about any problems you may
encounter with diverse operating systems and CPU types.</p> encounter with diverse operating systems and CPU types.</p>
</blockquote> </blockquote>
@ -1265,6 +1266,18 @@
</tr> </tr>
</table> </table>
<p><b>CompuMate Controller (cannot be remapped)</b></p>
<table BORDER=2 cellpadding=5>
<tr><th>CompuMate</th> <th>Key</th></tr>
<tr><td>0 - 9 </td><td>0 - 9 </td></tr>
<tr><td>A - Z </td><td>A - Z </td></tr>
<tr><td>Function </td><td>Control (left or right) </td></tr>
<tr><td>Shift </td><td>Shift (left or right) </td></tr>
<tr><td>Enter </td><td>; or Return/Enter </td></tr>
<tr><td>Space </td><td>/ or Space </td></tr>
</table>
<a name="DeveloperKeys"></a> <a name="DeveloperKeys"></a>
<p><b>Developer Keys in TIA mode (cannot be remapped)</b></p> <p><b>Developer Keys in TIA mode (cannot be remapped)</b></p>
@ -3071,6 +3084,7 @@ Ms Pac-Man (Stella extended codes):
<tr><td>4A50 </td><td>64K 4A50 + ram </td></tr> <tr><td>4A50 </td><td>64K 4A50 + ram </td></tr>
<tr><td>4K </td><td>4K Atari </td></tr> <tr><td>4K </td><td>4K Atari </td></tr>
<tr><td>AR </td><td>Supercharger </td></tr> <tr><td>AR </td><td>Supercharger </td></tr>
<tr><td>CM &#185;</td><td>Spectravideo CompuMate </td></tr>
<tr><td>CV </td><td>Commavid extra ram </td></tr> <tr><td>CV </td><td>Commavid extra ram </td></tr>
<tr><td>DPC </td><td>Pitfall II </td></tr> <tr><td>DPC </td><td>Pitfall II </td></tr>
<tr><td>DPC+</td><td>Enhanced DPC </td></tr> <tr><td>DPC+</td><td>Enhanced DPC </td></tr>
@ -3142,6 +3156,7 @@ Ms Pac-Man (Stella extended codes):
AtariVox</a></td><td>A SpeakJet based unlimited-vocabulary speech / sound synthesizer with 32K EEPROM.</td></tr> AtariVox</a></td><td>A SpeakJet based unlimited-vocabulary speech / sound synthesizer with 32K EEPROM.</td></tr>
<tr><td><a href="http://www.vectrex.biz/MemCard.htm">SaveKey</a></td><td>A 32K EEPROM for saving high scores, etc (the EEPROM portion of an AtariVox).</td></tr> <tr><td><a href="http://www.vectrex.biz/MemCard.htm">SaveKey</a></td><td>A 32K EEPROM for saving high scores, etc (the EEPROM portion of an AtariVox).</td></tr>
<tr><td>Genesis </td><td>Sega Genesis controller, which can be used similar to a BoosterGrip, giving an extra button.</td></tr> <tr><td>Genesis </td><td>Sega Genesis controller, which can be used similar to a BoosterGrip, giving an extra button.</td></tr>
<tr><td>CompuMate </td><td>Spectravideo CompuMate (if either left or right is set, CompuMate is used for both).</td></tr>
</table></td> </table></td>
</tr> </tr>

View File

@ -68,9 +68,9 @@ void CompuMate::update()
rp.myDigitalPinState[Controller::Three] = true; rp.myDigitalPinState[Controller::Three] = true;
rp.myDigitalPinState[Controller::Four] = true; rp.myDigitalPinState[Controller::Four] = true;
if (KeyTable[KBDK_LSHIFT]) if (KeyTable[KBDK_LSHIFT] || KeyTable[KBDK_RSHIFT])
rp.myAnalogPinValue[Controller::Five] = Controller::minimumResistance; rp.myAnalogPinValue[Controller::Five] = Controller::minimumResistance;
if (KeyTable[KBDK_LCTRL]) if (KeyTable[KBDK_LCTRL] || KeyTable[KBDK_RCTRL])
lp.myAnalogPinValue[Controller::Nine] = Controller::minimumResistance; lp.myAnalogPinValue[Controller::Nine] = Controller::minimumResistance;
switch(myCart.column()) switch(myCart.column())
@ -108,8 +108,10 @@ void CompuMate::update()
case 5: case 5:
if (KeyTable[KBDK_0]) lp.myDigitalPinState[Controller::Six] = false; if (KeyTable[KBDK_0]) lp.myDigitalPinState[Controller::Six] = false;
if (KeyTable[KBDK_p]) rp.myDigitalPinState[Controller::Three] = false; if (KeyTable[KBDK_p]) rp.myDigitalPinState[Controller::Three] = false;
if (KeyTable[KBDK_COLON]) rp.myDigitalPinState[Controller::Six] = false; if (KeyTable[KBDK_SEMICOLON] || KeyTable[KBDK_RETURN])
if (KeyTable[KBDK_SLASH]) rp.myDigitalPinState[Controller::Four] = false; rp.myDigitalPinState[Controller::Six] = false;
if (KeyTable[KBDK_SLASH] || KeyTable[KBDK_SPACE])
rp.myDigitalPinState[Controller::Four] = false;
break; break;
case 6: case 6:
if (KeyTable[KBDK_9]) lp.myDigitalPinState[Controller::Six] = false; if (KeyTable[KBDK_9]) lp.myDigitalPinState[Controller::Six] = false;

View File

@ -240,7 +240,7 @@ GameInfoDialog::GameInfoDialog(
ctrls.push_back("AtariVox", "ATARIVOX" ); ctrls.push_back("AtariVox", "ATARIVOX" );
ctrls.push_back("SaveKey", "SAVEKEY" ); ctrls.push_back("SaveKey", "SAVEKEY" );
ctrls.push_back("Sega Genesis", "GENESIS" ); ctrls.push_back("Sega Genesis", "GENESIS" );
// ctrls.push_back("CompuMate", "COMPUMATE" ); ctrls.push_back("CompuMate", "COMPUMATE" );
// ctrls.push_back("KidVid", "KIDVID" ); // ctrls.push_back("KidVid", "KIDVID" );
// ctrls.push_back("MindLink", "MINDLINK" ); // ctrls.push_back("MindLink", "MINDLINK" );
myP0Controller = new PopUpWidget(myTab, font, xpos+lwidth, ypos, myP0Controller = new PopUpWidget(myTab, font, xpos+lwidth, ypos,