From: <ste...@us...> - 2012-03-16 17:57:30
|
Revision: 2418 http://stella.svn.sourceforge.net/stella/?rev=2418&view=rev Author: stephena Date: 2012-03-16 17:57:23 +0000 (Fri, 16 Mar 2012) Log Message: ----------- Using the Control key in CompuMate mode will no longer interfere with normal control functions (ie, pressing Ctrl-q will not quit, but send this combo directly to CompuMate). Mapped Func-Space to the Backspace key for CompuMate keyboard. Func-space (which is actually Ctrl-space is still supported). Updated documentation for CompuMate changes and system requirements. Modified Paths: -------------- trunk/Changes.txt trunk/docs/index.html trunk/src/emucore/CompuMate.cxx trunk/src/emucore/EventHandler.cxx Modified: trunk/Changes.txt =================================================================== --- trunk/Changes.txt 2012-03-16 13:19:29 UTC (rev 2417) +++ trunk/Changes.txt 2012-03-16 17:57:23 UTC (rev 2418) @@ -12,12 +12,12 @@ Release History =========================================================================== -3.5.5 to 3.6: (March xx, 2012) +3.5.5 to 3.6: (March 23, 2012) * Added support for 2600-daptor II device, including native support for 7800 controllers, BoosterGrip and Keypad controllers. Special thanks go to Tom Hafner for a complimentary test sample of this - device. + device, and also for donating a BoosterGrip controller. * Added ability to dynamically swap the port order of Stelladaptor/ 2600-daptor devices with the 'Control-1' key combo (useful if you @@ -26,6 +26,10 @@ * Added CompuMate bankswitching/controller support to the emulation core; the Spectravideo CompuMate ROMs (NTSC and PAL) now work. + Frequently used keys on the CompuMate are directly mapped to your + keyboard (ie, Func-Space for backspace is mapped to Backspace, etc). + Loading/saving from the cassette player is not yet supported, and + will come in a future release. * Fixed bug in BoosterGrip controller emulation; the functionality of the booster and trigger buttons was reversed. Related to this, Modified: trunk/docs/index.html =================================================================== --- trunk/docs/index.html 2012-03-16 13:19:29 UTC (rev 2417) +++ trunk/docs/index.html 2012-03-16 17:57:23 UTC (rev 2418) @@ -260,7 +260,9 @@ joysticks or mouse</li> <li>Emulates CX-22 / CX-80 style trackballs and Amiga Mouse using your computer's mouse</li> - <li>Emulates Spectravideo CompuMate system using your computer's keyboard</li> + <li>Emulates Spectravideo CompuMate system using your computer's keyboard, + including mapping of CompuMate 'Backspace', 'Space' and 'Enter' functionality to + to the actual keys on your keyboard.</li> <li>Support for real Atari 2600 controllers using the <a href="http://www.stelladaptor.com">Stelladaptor</a> and <a href="http://2600-daptor.com">2600-adaptor/2600-daptor II</a></li> @@ -306,6 +308,7 @@ <p> <h3><b><u>General</u> (required for all versions of Stella)</b></h3> <ul> + <li>1GHz+ CPU</li> <li>Enough RAM for the OS + 64MB RAM for the emulation; 128MB+ highly recommended</li> <li>15/16 bit color minimum; 24/32 bit color graphics card highly recommended</li> <li>SDL version 1.2.10 or greater, latest version highly recommended</li> @@ -323,10 +326,9 @@ <p>The Linux version of Stella is designed to work on a Linux Workstation with the following:</p> <ul> - <li>Pentium class machine required; OpenGL accelerated video card highly - recommended</li> - <li>Linux Kernel 2.4.x, Linux Kernel 2.6.x/3.x is highly recommended</li> + <li>Linux Kernel 2.6.x/3.x</li> <li>i386 or x86_64 class machine, with 32 or 64-bit distribution</li> + <li>OpenGL accelerated video card highly recommended</li> <li>Other architectures (MIPS, PPC, PPC64, etc) have been confirmed to work, but aren't as well tested as i386/x86_64</li> <li>GNU C++ compiler version 4.x and the make utility are required for compiling @@ -340,7 +342,7 @@ the following:</p> <ul> <li>MacOSX 10.4 (Tiger) or above</li> - <li>PPC G4 or Intel processor, 500MHz or above</li> + <li>PPC G4/G5 or Intel processor</li> <li>OpenGL capable video card</li> <li>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</li> @@ -354,8 +356,7 @@ with the following:</p> <ul> - <li>Pentium class machine required; OpenGL accelerated video card highly - recommended</li> + <li>OpenGL accelerated video card highly recommended</li> <li>64-bit port has been tested on Windows Vista/7 only; it may work on WinXP64 as well, but isn't a priority</li> <li>Visual C++ 2005 is required to compile the Stella source code for Windows 98 and 2000</li> @@ -1274,10 +1275,11 @@ <tr><td>A - Z </td><td>A - Z </td></tr> <tr><td>Comma </td><td>Comma </td></tr> <tr><td>Period </td><td>Period </td></tr> - <tr><td>Function </td><td>Control (left or right) </td></tr> + <tr><td>Func </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> + <tr><td>Func-Space </td><td>Backspace </td></tr> </table> <a name="DeveloperKeys"></a> Modified: trunk/src/emucore/CompuMate.cxx =================================================================== --- trunk/src/emucore/CompuMate.cxx 2012-03-16 13:19:29 UTC (rev 2417) +++ trunk/src/emucore/CompuMate.cxx 2012-03-16 17:57:23 UTC (rev 2418) @@ -65,14 +65,14 @@ rp.myAnalogPinValue[Controller::Nine] = Controller::minimumResistance; rp.myAnalogPinValue[Controller::Five] = Controller::maximumResistance; rp.myDigitalPinState[Controller::Six] = true; - rp.myDigitalPinState[Controller::Three] = true; - rp.myDigitalPinState[Controller::Four] = true; if (KeyTable[KBDK_LSHIFT] || KeyTable[KBDK_RSHIFT]) rp.myAnalogPinValue[Controller::Five] = Controller::minimumResistance; if (KeyTable[KBDK_LCTRL] || KeyTable[KBDK_RCTRL]) lp.myAnalogPinValue[Controller::Nine] = Controller::minimumResistance; + rp.myDigitalPinState[Controller::Three] = true; + rp.myDigitalPinState[Controller::Four] = true; switch(myCart.column()) { case 0: @@ -112,6 +112,12 @@ rp.myDigitalPinState[Controller::Six] = false; if (KeyTable[KBDK_SLASH] || KeyTable[KBDK_SPACE]) rp.myDigitalPinState[Controller::Four] = false; + // Emulate Ctrl-space (aka backspace) with the actual Backspace key + if (KeyTable[KBDK_BACKSPACE]) + { + lp.myAnalogPinValue[Controller::Nine] = Controller::minimumResistance; + rp.myDigitalPinState[Controller::Four] = false; + } break; case 6: if (KeyTable[KBDK_9]) lp.myDigitalPinState[Controller::Six] = false; Modified: trunk/src/emucore/EventHandler.cxx =================================================================== --- trunk/src/emucore/EventHandler.cxx 2012-03-16 13:19:29 UTC (rev 2417) +++ trunk/src/emucore/EventHandler.cxx 2012-03-16 17:57:23 UTC (rev 2418) @@ -994,7 +994,7 @@ //////////////////////////////////////////////////////////////////////// case Event::Fry: - myFryingFlag = bool(state); + if(myUseCtrlKeyFlag) myFryingFlag = bool(state); return; case Event::VolumeDecrease: @@ -2051,6 +2051,10 @@ { myState = state; + // Normally, the usage of Control key is determined by 'ctrlcombo' + // For certain ROMs it may be forced off, whatever the setting + myUseCtrlKeyFlag = myOSystem->settings().getBool("ctrlcombo"); + // Only enable Unicode in GUI modes, since there we need it for ascii data // Otherwise, it causes a performance hit, so leave it off switch(myState) @@ -2059,6 +2063,9 @@ myOverlay = NULL; myOSystem->sound().mute(false); SDL_EnableUNICODE(0); + if(myOSystem->console().controller(Controller::Left).type() == + Controller::CompuMate) + myUseCtrlKeyFlag = false; break; case S_PAUSE: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |