Some minor UI improvements to the InputSettings dialog; renamed the
'Virtual Devs' tab to 'Devices & Ports'. Updated documentation and snapshots for this change. Added Halo 2600 ROM info to internal properties database. Increased default setting for 'joydeadzone' from 0 to 13. This means the default deadzone is somewhere around half the axis range (~16500). Fixed behaviour of hat events; events weren't actually being turned off until the stick was centered. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2108 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
16
Changes.txt
|
@ -12,6 +12,20 @@
|
|||
Release History
|
||||
===========================================================================
|
||||
|
||||
3.2 to 3.2.1: (August x, 2010)
|
||||
|
||||
* Improved behaviour of joystick 'hat' movement. This should fix bugs
|
||||
most visible in Yars' Revenge.
|
||||
|
||||
* Fixed bug in debugger rewind states; bankswitching wasn't being
|
||||
performed during the rewind. Related to this, fixed a similar issue
|
||||
with the debugger 'loadstate' and 'savestate' commands.
|
||||
|
||||
* Added game properties info for the newly released 'Halo 2600' ROM.
|
||||
|
||||
-Have fun!
|
||||
|
||||
|
||||
3.1.2 to 3.2: (August 20, 2010)
|
||||
|
||||
* NOTE: because of the many event-related changes in this release, all
|
||||
|
@ -111,8 +125,6 @@
|
|||
|
||||
* Updated included ZLib to latest release version (1.2.5).
|
||||
|
||||
-Have fun!
|
||||
|
||||
|
||||
3.1.1 to 3.1.2: (May 3, 2010)
|
||||
|
||||
|
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.2 KiB |
|
@ -10,7 +10,7 @@
|
|||
<br><br>
|
||||
<center><h2><b>A multi-platform Atari 2600 VCS emulator</b></h2></center>
|
||||
|
||||
<center><h4><b>Release 3.2</b></h4></center>
|
||||
<center><h4><b>Release 3.2.1</b></h4></center>
|
||||
<br><br>
|
||||
|
||||
<center><h2><b>User's Guide</b></h2></center>
|
||||
|
@ -2341,10 +2341,10 @@
|
|||
|
||||
</p>
|
||||
|
||||
<p>Virtual devices can be configured under the 'Virtual Devs' tab, shown below:</p>
|
||||
<p>Device and port settings can be configured under the 'Devices & Ports' tab, shown below:</p>
|
||||
<table border="5" cellpadding="2" frame="box" rules="none">
|
||||
<tr>
|
||||
<td><img src="graphics/eventmapping_virtualdevs.png"></td>
|
||||
<td><img src="graphics/eventmapping_devsports.png"></td>
|
||||
<td> </td>
|
||||
<td valign="top">
|
||||
<table border="1" cellpadding="4">
|
||||
|
@ -2541,7 +2541,7 @@
|
|||
this is outside the scope of this document). Once your operating system
|
||||
properly detects the AtariVox, you will need to tell Stella which serial
|
||||
port it is connected to. This is done by using the '-avoxport' commandline
|
||||
argument, or by setting it in the UI under the 'Virtual Devs' tab in
|
||||
argument, or by setting it in the UI under the 'Devices & Ports' tab in
|
||||
<b>Advanced Configuration - <a href="#Remapping">Input Devices</a></b>.</p>
|
||||
|
||||
<p>Note that you must use the entire name of the port as specified by
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
regenerated and the application recompiled.
|
||||
*/
|
||||
|
||||
#define DEF_PROPS_SIZE 3240
|
||||
#define DEF_PROPS_SIZE 3241
|
||||
|
||||
static const char* DefProps[DEF_PROPS_SIZE][20] = {
|
||||
{ "000509d1ed2b8d30a9d94be1b3b5febb", "Greg Zumwalt", "", "Jungle Jane (2003) (Greg Zumwalt) (Hack)", "Hack of Pitfall!", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
@ -983,6 +983,7 @@ static const char* DefProps[DEF_PROPS_SIZE][20] = {
|
|||
{ "4ac9f40ddfcf194bd8732a75b3f2f214", "Atari, Stephen Keith, Preston Stuart", "CX26106", "Grover's Music Maker (12-29-1982) (Atari) (Prototype)", "Uses Kids/Keypad Controllers", "Prototype", "", "", "", "", "", "", "KEYBOARD", "KEYBOARD", "", "", "", "", "", "" },
|
||||
{ "4ae8c76cd6f24a2e181ae874d4d2aa3d", "", "", "Flash Gordon (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "4af4103759d603c82b1c9c5acd2d8faf", "Imagic, Bob Smith", "720114-2A, 13207, EIZ-001-04I", "Moonsweeper (1983) (Imagic) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "" },
|
||||
{ "4afa7f377eae1cafb4265c68f73f2718", "Ed Fries", "", "Halo 2600 (2010) (Ed Fries)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "4afe528a082f0d008e7319ebd481248d", "", "", "Multi-Color Demo 1 (Bob Colbert) (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "4b143d7dcf6c96796c37090cba045f4f", "Atari, Jim Huether - Sears", "CX2644 - 6-99824", "Flag Capture (1978) (Atari) (4K)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
{ "4b205ef73a5779acc5759bde3f6d33ed", "", "", "Berzerk (Unknown) (PAL)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" },
|
||||
|
|
|
@ -848,18 +848,32 @@ void EventHandler::poll(uInt64 time)
|
|||
// Preprocess all hat events, converting to Stella JoyHat type
|
||||
// Generate multiple equivalent hat events representing combined direction
|
||||
// when we get a diagonal hat event
|
||||
if(myState == S_EMULATE)
|
||||
{
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATUP][kEmulationMode],
|
||||
value & SDL_HAT_UP);
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATRIGHT][kEmulationMode],
|
||||
value & SDL_HAT_RIGHT);
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATDOWN][kEmulationMode],
|
||||
value & SDL_HAT_DOWN);
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATLEFT][kEmulationMode],
|
||||
value & SDL_HAT_LEFT);
|
||||
}
|
||||
else if(myOverlay != NULL)
|
||||
{
|
||||
if(value == SDL_HAT_CENTERED)
|
||||
handleJoyHatEvent(stick, hat, EVENT_HATCENTER);
|
||||
myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATCENTER);
|
||||
else
|
||||
{
|
||||
if(value & SDL_HAT_UP)
|
||||
handleJoyHatEvent(stick, hat, EVENT_HATUP);
|
||||
myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATUP);
|
||||
if(value & SDL_HAT_RIGHT)
|
||||
handleJoyHatEvent(stick, hat, EVENT_HATRIGHT);
|
||||
myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATRIGHT);
|
||||
if(value & SDL_HAT_DOWN)
|
||||
handleJoyHatEvent(stick, hat, EVENT_HATDOWN);
|
||||
myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATDOWN);
|
||||
if(value & SDL_HAT_LEFT)
|
||||
handleJoyHatEvent(stick, hat, EVENT_HATLEFT);
|
||||
myOverlay->handleJoyHatEvent(stick, hat, EVENT_HATLEFT);
|
||||
}
|
||||
}
|
||||
break; // SDL_JOYHATMOTION
|
||||
}
|
||||
|
@ -911,29 +925,6 @@ void EventHandler::poll(uInt64 time)
|
|||
myEvent->set(Event::MouseAxisYValue, 0);
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void EventHandler::handleJoyHatEvent(int stick, int hat, JoyHat value)
|
||||
{
|
||||
#ifdef JOYSTICK_SUPPORT
|
||||
if(myState == S_EMULATE)
|
||||
{
|
||||
if(value == EVENT_HATCENTER)
|
||||
{
|
||||
// Turn off all associated events, since we don't know exactly
|
||||
// which one was previously activated.
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATUP] [kEmulationMode], 0);
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATDOWN] [kEmulationMode], 0);
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATLEFT] [kEmulationMode], 0);
|
||||
handleEvent(myJoyHatTable[stick][hat][EVENT_HATRIGHT][kEmulationMode], 0);
|
||||
}
|
||||
else
|
||||
handleEvent(myJoyHatTable[stick][hat][value][kEmulationMode], 1);
|
||||
}
|
||||
else if(myOverlay != NULL)
|
||||
myOverlay->handleJoyHatEvent(stick, hat, value);
|
||||
#endif
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void EventHandler::handleEvent(Event::Type event, int state)
|
||||
{
|
||||
|
|
|
@ -336,15 +336,6 @@ class EventHandler
|
|||
void allowAllDirections(bool allow) { myAllowAllDirectionsFlag = allow; }
|
||||
|
||||
private:
|
||||
/**
|
||||
Send a joystick hat event to the handler
|
||||
|
||||
@param stick The joystick number
|
||||
@param hat The joystick hat
|
||||
@param value The value on the given hat
|
||||
*/
|
||||
void handleJoyHatEvent(int stick, int hat, JoyHat value);
|
||||
|
||||
/**
|
||||
Detects and changes the eventhandler state
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ Settings::Settings(OSystem* osystem)
|
|||
setInternal("joyaxismap", "");
|
||||
setInternal("joyhatmap", "");
|
||||
setInternal("combomap", "");
|
||||
setInternal("joydeadzone", "0");
|
||||
setInternal("joydeadzone", "13");
|
||||
setInternal("joyallow4", "false");
|
||||
setInternal("usemouse", "true");
|
||||
setInternal("pspeed", "6");
|
||||
|
|
|
@ -19607,3 +19607,9 @@
|
|||
"Cartridge.Rarity" "Homebrew"
|
||||
"Display.Phosphor" "YES"
|
||||
""
|
||||
|
||||
"Cartridge.MD5" "4afa7f377eae1cafb4265c68f73f2718"
|
||||
"Cartridge.Manufacturer" "Ed Fries"
|
||||
"Cartridge.Name" "Halo 2600 (2010) (Ed Fries)"
|
||||
"Cartridge.Rarity" "Homebrew"
|
||||
""
|
||||
|
|
|
@ -48,7 +48,7 @@ InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent,
|
|||
WidgetArray wid;
|
||||
|
||||
// Set real dimensions
|
||||
_w = BSPF_min(48 * fontWidth + 10, max_w);
|
||||
_w = BSPF_min(49 * fontWidth + 10, max_w);
|
||||
_h = BSPF_min(12 * (lineHeight + 4) + 10, max_h);
|
||||
|
||||
// The tab widget
|
||||
|
@ -78,8 +78,8 @@ InputDialog::InputDialog(OSystem* osystem, DialogContainer* parent,
|
|||
myTab->setParentWidget(tabID, myMenuEventMapper);
|
||||
addToFocusList(myMenuEventMapper->getFocusList(), tabID);
|
||||
|
||||
// 3) Virtual device support
|
||||
addVDeviceTab(font);
|
||||
// 3) Devices & ports
|
||||
addDevicePortTab(font);
|
||||
|
||||
// Finalize the tabs, and activate the first tab
|
||||
myTab->activateTabs();
|
||||
|
@ -101,7 +101,7 @@ InputDialog::~InputDialog()
|
|||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void InputDialog::addVDeviceTab(const GUI::Font& font)
|
||||
void InputDialog::addDevicePortTab(const GUI::Font& font)
|
||||
{
|
||||
const int lineHeight = font.getLineHeight(),
|
||||
fontWidth = font.getMaxCharWidth(),
|
||||
|
@ -110,8 +110,8 @@ void InputDialog::addVDeviceTab(const GUI::Font& font)
|
|||
WidgetArray wid;
|
||||
StringMap items;
|
||||
|
||||
// Virtual device/ports
|
||||
tabID = myTab->addTab("Virtual Devs");
|
||||
// Devices/ports
|
||||
tabID = myTab->addTab("Devices & Ports");
|
||||
|
||||
// Stelladaptor mappings
|
||||
xpos = 5; ypos = 5;
|
||||
|
|
|
@ -52,7 +52,7 @@ class InputDialog : public Dialog
|
|||
void setDefaults();
|
||||
|
||||
private:
|
||||
void addVDeviceTab(const GUI::Font& font);
|
||||
void addDevicePortTab(const GUI::Font& font);
|
||||
|
||||
private:
|
||||
enum {
|
||||
|
|