mirror of https://github.com/stella-emu/stella.git
Added '-joyallow4' commandline argument and associate UI item in
InputDialog/Virtual Devs to allow all 4 directions to be pressed simultaneously on a virtual joystick. This support was always present for 'Bumper Bash', but it can now be enabled/disabled for any ROM. Note that the setting is ignored for 'Bumper Bash', as that ROM requires it to be always turned on. Fixed debugger rewind issue from last commit; the rewind list wasn't being properly reset when entering the debugger or selecting a new ROM. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1850 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
3c5cc40e08
commit
82268325a0
Binary file not shown.
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 6.0 KiB |
|
@ -788,6 +788,13 @@
|
||||||
range from 3200 to 32200.</td>
|
range from 3200 to 32200.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td><pre>-joyallow4 <1|0></pre></td>
|
||||||
|
<td>Allow all 4 directions on a joystick to be pressed
|
||||||
|
simultaneously. Bumper Bash ignores this setting,
|
||||||
|
and always allows all 4 directions.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><pre>-pspeed <number></pre></td>
|
<td><pre>-pspeed <number></pre></td>
|
||||||
<td>Speed for digital emulation of paddles (1-15).</td>
|
<td>Speed for digital emulation of paddles (1-15).</td>
|
||||||
|
@ -2042,33 +2049,26 @@
|
||||||
<img src="graphics/eventmapping.png">
|
<img src="graphics/eventmapping.png">
|
||||||
<img src="graphics/eventmapping_remap.png">
|
<img src="graphics/eventmapping_remap.png">
|
||||||
|
|
||||||
<p>Virtual devices can be configured under the 'Virtual Devs' tab, shown below:<br><br>
|
|
||||||
<img src="graphics/eventmapping_virtualdevs.png"></p>
|
|
||||||
|
|
||||||
<p>Stelladaptor devices can be configured to either the left or right virtual
|
|
||||||
ports. See <b>Section 11 - <a href="#Adaptor">Stelladaptor Support</a></b>
|
|
||||||
for further information.</p>
|
|
||||||
|
|
||||||
<p>Joystick deadzone area for analog joysticks can be set here. The deadzone
|
<p>Virtual devices can be configured under the 'Virtual Devs' tab, shown below:</p>
|
||||||
can be adjusted in an interval from 0 - 29, which internally is converted to
|
<table border="5" cellpadding="2" frame="box" rules="none">
|
||||||
the range 3200 - 32200 using the formula '3200 + DEADZONE * 1000'.</p>
|
<tr>
|
||||||
|
<td><img src="graphics/eventmapping_virtualdevs.png"></td>
|
||||||
<p>Paddle settings are also configured here. The mouse can emulate either paddle
|
<td> </td>
|
||||||
0, 1, 2, or 3. Note that some paddle games don't default to paddle 0. In those
|
<td valign="top">
|
||||||
cases, the ROM properties will automatically set the mouse to emulate the paddle
|
<table border="1" cellpadding="4">
|
||||||
used by Player 0. So, for example, a ROM that defaults to paddle 1 (Demons to Diamonds)
|
<tr><th>Item</th><th>Brief description</th><th>For more information,<br>see Commandline</th></tr>
|
||||||
will set 'Mouse is paddle' to 1, and a ROM that defaults to paddle 3 (Tac-Scan) will
|
<tr><td>Stelladaptor X is</td><td>Specifies which virtual port each Stelladaptor uses (See <b>Section 11 - <a href="#Adaptor">Stelladaptor Support</a></b>)</td><td>-sa1 & -sa2</td></tr>
|
||||||
set 'Mouse is paddle' to 3.</p>
|
<tr><td>Joy deadzone</td><td>Joystick deadzone area for analog joysticks</td><td>-joydeadzone</td></tr>
|
||||||
|
<tr><td>Mouse is paddle</td><td>The mouse can emulate either paddle 0, 1, 2, or 3.</td><td> </td></tr>
|
||||||
<p>Paddle speed is used when emulating a paddle using a digital device
|
<tr><td>Paddle speed</td><td>Speed used when emulating a paddle using a digital device</td><td>-pspeed</td></tr>
|
||||||
(keyboard, digital joystick, etc). Because of the on/off nature of digital
|
<tr><td>AVox serial port</td><td>Described in further detail in <b>Section 12 - <a href="#AtariVox">AtariVox/SaveKey Support</a></b> </td><td>-avoxport</td></tr>
|
||||||
devices, there are no smooth analog values as would be present on a real
|
<tr><td>Allow all 4 ...</td><td>Allow all 4 joystick directions to be pressed simultaneously</td><td>-joyallow4</td></tr>
|
||||||
paddle. When using digital devices, the paddle is moved a certain amount
|
</table>
|
||||||
each frame. This speed setting specifies how much movement will occur.</p>
|
</td>
|
||||||
|
</tr>
|
||||||
<p>The serial port to which a real AtariVox is connected can be set here.
|
</table>
|
||||||
See <b>Section 12 - <a href="#AtariVox">AtariVox/SaveKey Support</a></b> for
|
|
||||||
further information.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ///////////////////////////////////////////////////////////////////////// -->
|
<!-- ///////////////////////////////////////////////////////////////////////// -->
|
||||||
|
@ -2651,6 +2651,7 @@ Ms Pac-Man (Stella extended codes):
|
||||||
<tr><td>E7 </td><td>16K M-network </td></tr>
|
<tr><td>E7 </td><td>16K M-network </td></tr>
|
||||||
<tr><td>EF </td><td>64K Homestar Runner </td></tr>
|
<tr><td>EF </td><td>64K Homestar Runner </td></tr>
|
||||||
<tr><td>EFSC </td><td>64K Homestar Runner + ram</td></tr>
|
<tr><td>EFSC </td><td>64K Homestar Runner + ram</td></tr>
|
||||||
|
<tr><td>F0 </td><td>Dynacom Megaboy </td></tr>
|
||||||
<tr><td>F4 </td><td>32K Atari </td></tr>
|
<tr><td>F4 </td><td>32K Atari </td></tr>
|
||||||
<tr><td>F4SC </td><td>32K Atari + ram </td></tr>
|
<tr><td>F4SC </td><td>32K Atari + ram </td></tr>
|
||||||
<tr><td>F6 </td><td>16K Atari </td></tr>
|
<tr><td>F6 </td><td>16K Atari </td></tr>
|
||||||
|
@ -2659,7 +2660,6 @@ Ms Pac-Man (Stella extended codes):
|
||||||
<tr><td>F8SC </td><td>8K Atari + ram </td></tr>
|
<tr><td>F8SC </td><td>8K Atari + ram </td></tr>
|
||||||
<tr><td>FA </td><td>CBS RAM Plus </td></tr>
|
<tr><td>FA </td><td>CBS RAM Plus </td></tr>
|
||||||
<tr><td>FE </td><td>8K Decathlon </td></tr>
|
<tr><td>FE </td><td>8K Decathlon </td></tr>
|
||||||
<tr><td>F0 </td><td>Dynacom Megaboy </td></tr>
|
|
||||||
<tr><td>MC ¹²</td><td>C. Wilkson Megacart </td></tr>
|
<tr><td>MC ¹²</td><td>C. Wilkson Megacart </td></tr>
|
||||||
<tr><td>SB </td><td>128-256k SUPERbanking </td></tr>
|
<tr><td>SB </td><td>128-256k SUPERbanking </td></tr>
|
||||||
<tr><td>UA </td><td>8K UA Ltd. </td></tr>
|
<tr><td>UA </td><td>8K UA Ltd. </td></tr>
|
||||||
|
@ -3129,7 +3129,7 @@ Ms Pac-Man (Stella extended codes):
|
||||||
<td VALIGN="TOP">Robert Tuccitto</td>
|
<td VALIGN="TOP">Robert Tuccitto</td>
|
||||||
<td>Provided valuable bugtesting and feedback which finally helped in fixing
|
<td>Provided valuable bugtesting and feedback which finally helped in fixing
|
||||||
a long-standing lockup which occurred after Stella has been running for
|
a long-standing lockup which occurred after Stella has been running for
|
||||||
71 muinutes.</td>
|
71 minutes.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -1022,4 +1022,6 @@ void Debugger::RewindManager::clear()
|
||||||
for(int i = 0; i < MAX_SIZE; ++i)
|
for(int i = 0; i < MAX_SIZE; ++i)
|
||||||
if(myStateList[i] != NULL)
|
if(myStateList[i] != NULL)
|
||||||
myStateList[i]->reset();
|
myStateList[i]->reset();
|
||||||
|
|
||||||
|
myTop = mySize = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -166,10 +166,12 @@ Console::Console(OSystem* osystem, Cartridge* cart, const Properties& props)
|
||||||
// Add the real controllers for this system
|
// Add the real controllers for this system
|
||||||
setControllers(md5);
|
setControllers(md5);
|
||||||
|
|
||||||
// Bumper Bash requires all 4 directions
|
// Bumper Bash always requires all 4 directions
|
||||||
bool allow = (md5 == "aa1c41f86ec44c0a44eb64c332ce08af" ||
|
// Other ROMs can use it if the setting is enabled
|
||||||
md5 == "1bf503c724001b09be79c515ecfcbd03");
|
bool joyallow4 = md5 == "aa1c41f86ec44c0a44eb64c332ce08af" ||
|
||||||
myOSystem->eventHandler().allowAllDirections(allow);
|
md5 == "1bf503c724001b09be79c515ecfcbd03" ||
|
||||||
|
myOSystem->settings().getBool("joyallow4");
|
||||||
|
myOSystem->eventHandler().allowAllDirections(joyallow4);
|
||||||
|
|
||||||
// Reset the system to its power-on state
|
// Reset the system to its power-on state
|
||||||
mySystem->reset();
|
mySystem->reset();
|
||||||
|
|
|
@ -79,6 +79,7 @@ Settings::Settings(OSystem* osystem)
|
||||||
setInternal("joyaxismap", "");
|
setInternal("joyaxismap", "");
|
||||||
setInternal("joyhatmap", "");
|
setInternal("joyhatmap", "");
|
||||||
setInternal("joydeadzone", "0");
|
setInternal("joydeadzone", "0");
|
||||||
|
setInternal("joyallow4", "false");
|
||||||
setInternal("pspeed", "6");
|
setInternal("pspeed", "6");
|
||||||
setInternal("sa1", "left");
|
setInternal("sa1", "left");
|
||||||
setInternal("sa2", "right");
|
setInternal("sa2", "right");
|
||||||
|
@ -351,6 +352,7 @@ void Settings::usage()
|
||||||
<< " -cheat <code> Use the specified cheatcode (see manual for description)\n"
|
<< " -cheat <code> Use the specified cheatcode (see manual for description)\n"
|
||||||
<< " -showinfo <1|0> Shows some game info on commandline\n"
|
<< " -showinfo <1|0> Shows some game info on commandline\n"
|
||||||
<< " -joydeadzone <number> Sets 'deadzone' area for analog joysticks (0-29)\n"
|
<< " -joydeadzone <number> Sets 'deadzone' area for analog joysticks (0-29)\n"
|
||||||
|
<< " -joyallow4 <1|0> Allow all 4 directions on a joystick to be pressed simultaneously\n"
|
||||||
<< " -pspeed <number> Speed of digital emulated paddle movement (1-15)\n"
|
<< " -pspeed <number> Speed of digital emulated paddle movement (1-15)\n"
|
||||||
<< " -sa1 <left|right> Stelladaptor 1 emulates specified joystick port\n"
|
<< " -sa1 <left|right> Stelladaptor 1 emulates specified joystick port\n"
|
||||||
<< " -sa2 <left|right> Stelladaptor 2 emulates specified joystick port\n"
|
<< " -sa2 <left|right> Stelladaptor 2 emulates specified joystick port\n"
|
||||||
|
|
|
@ -170,6 +170,12 @@ void InputDialog::addVDeviceTab(const GUI::Font& font)
|
||||||
fwidth, fontHeight, "");
|
fwidth, fontHeight, "");
|
||||||
wid.push_back(myAVoxPort);
|
wid.push_back(myAVoxPort);
|
||||||
|
|
||||||
|
// Add 'allow all 4 directions' for joystick
|
||||||
|
xpos = 10; ypos += 2*lineHeight;
|
||||||
|
myAllowAll4 = new CheckboxWidget(myTab, font, xpos, ypos,
|
||||||
|
"Allow all 4 directions on joystick");
|
||||||
|
wid.push_back(myAllowAll4);
|
||||||
|
|
||||||
// Add items for virtual device ports
|
// Add items for virtual device ports
|
||||||
addToFocusList(wid, tabID);
|
addToFocusList(wid, tabID);
|
||||||
}
|
}
|
||||||
|
@ -200,6 +206,9 @@ void InputDialog::loadConfig()
|
||||||
// AtariVox serial port
|
// AtariVox serial port
|
||||||
myAVoxPort->setEditString(instance().settings().getString("avoxport"));
|
myAVoxPort->setEditString(instance().settings().getString("avoxport"));
|
||||||
|
|
||||||
|
// Allow all 4 joystick directions
|
||||||
|
myAllowAll4->setState(instance().settings().getBool("joyallow4"));
|
||||||
|
|
||||||
myTab->loadConfig();
|
myTab->loadConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,6 +235,11 @@ void InputDialog::saveConfig()
|
||||||
|
|
||||||
// AtariVox serial port
|
// AtariVox serial port
|
||||||
instance().settings().setString("avoxport", myAVoxPort->getEditString());
|
instance().settings().setString("avoxport", myAVoxPort->getEditString());
|
||||||
|
|
||||||
|
// Allow all 4 joystick directions
|
||||||
|
bool allowall4 = myAllowAll4->getState();
|
||||||
|
instance().settings().setBool("joyallow4", allowall4);
|
||||||
|
instance().eventHandler().allowAllDirections(allowall4);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -23,7 +23,7 @@ class OSystem;
|
||||||
class GuiObject;
|
class GuiObject;
|
||||||
class TabWidget;
|
class TabWidget;
|
||||||
class EventMappingWidget;
|
class EventMappingWidget;
|
||||||
class CheckBoxWidget;
|
class CheckboxWidget;
|
||||||
class EditTextWidget;
|
class EditTextWidget;
|
||||||
class PopUpWidget;
|
class PopUpWidget;
|
||||||
class SliderWidget;
|
class SliderWidget;
|
||||||
|
@ -76,6 +76,7 @@ class InputDialog : public Dialog
|
||||||
SliderWidget* myPaddleSpeed;
|
SliderWidget* myPaddleSpeed;
|
||||||
StaticTextWidget* myPaddleLabel;
|
StaticTextWidget* myPaddleLabel;
|
||||||
EditTextWidget* myAVoxPort;
|
EditTextWidget* myAVoxPort;
|
||||||
|
CheckboxWidget* myAllowAll4;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue