From e02ec9870f84bee1bf2b0482a3d23bdb12212829 Mon Sep 17 00:00:00 2001 From: Thomas Jentzsch Date: Sun, 16 May 2021 21:17:40 +0200 Subject: [PATCH] added GUID hash to controller name renamed Joystick Database into Controller Database --- docs/graphics/eventmapping_devsports.png | Bin 4641 -> 4644 bytes docs/index.html | 2 +- src/common/EventHandlerSDL2.cxx | 6 +++++- src/common/PJoystickHandler.cxx | 8 +++++--- src/common/PhysicalJoystick.cxx | 6 ++++-- src/common/PhysicalJoystick.hxx | 3 ++- src/emucore/DefProps.hxx | 6 +++--- src/emucore/stella.pro | 3 +++ src/gui/InputDialog.cxx | 6 +++--- src/gui/JoystickDialog.cxx | 4 ++-- 10 files changed, 28 insertions(+), 16 deletions(-) diff --git a/docs/graphics/eventmapping_devsports.png b/docs/graphics/eventmapping_devsports.png index f0e39fbee0afb4fcd0d5494074051e0e25c3b6d3..4d006e3266aff8937b816be52a8ecf37847ba2ca 100644 GIT binary patch literal 4644 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

A3 zo6EaTb24;%e49=x+H=0_*-fV>eC7eyyJ|{6`@>h?xOK>x3*Broq@L+S%L~3&Z!0LO zOesYia0@IK;EHuulFzv79RQ`+sLopcuoKsHMi4bYIFmq4@f@DY8bHay<57KTuy}`u z3nGujDErE()`y%;Nqt?e1nG|uRI%}{V3P{6DpSzjN>|GDGkoz@%tv2*>#VzTg{M{z z0QM4kRbwtH3BmRV4M$on^YZFGC$ErJz2#sit31MCcxF&WHr8G{zKVp=t5qA)lFQ=o z3nnl_g=q(WIta%V-w=+;;5)m5AvZ}9;Cuw;d(m5USX}a-F9+u*{!;b-y59c;v!HYp z*I?gSSKzNSOUzTyj?Vd5LRKf~{d8KqY~*F?tAIQEvU{yfq*hcw=BkK==m%xtL(?F@ zV^bY^`F>A3A(n~YI@K~NP^2J!=MGeLnP=4b@p*|zV zPYKfO9Nu3TD#A)x#o-=JY6Yl9g4F-k%6}2!f1N9oVrNRf9310sz=mBwq+%xg;*Lz1 zTW;H{Upz1Slh^m_O6kX$l)Pm4OR=Mg7~b`4zQ9u=iGoK)Jq5{<tB9qTnsfoLi3QOB??||ap|*ET={p}J68{r5!HnwMt_rU z2Ey`dxYLf zGg6vJj}WTdWv9^6iX1M@_9FS^axgNK++(-DQiSOF`wwebM}eoX9RqJ!?iYq6Yh5}X z*%18|pzD1xRh7TsIiIii3%!Xe9Lwv)gfW5xloYRp;_CX9AHWS*AH%k`?Qd;{xc*gX z|7K4V<54L+FT8NTTvKuPnDhv@!hzy5QimSX#qbeBO!MA#M+w`ei1ua0vJfbFeRC+Ck*_ z7^gmeBjI$fiDSOKd*}wN#kN=OLJ-1a^|{l6TEtUlLU<-${OtN7A7IVW^Ij##A0)bT z@)!R01NxD^jlh_mGb}6OG6MM%DA1G-GUSI$lyj&kS-%^4My#?$y{*e6r%juf zaUoQu*}QJwHTMRe2rF~so#&fUKr3d^Sla`P>a37`8)Eb}rg13G2iEk*;VQJQBYuC; zEUQH*&M|4{*5WlFPY#nThzY|eQ_gP1*34iFHJ>K?=alEtQ@S62I$y*iP4tXd_@$c$ zuPHNRSVAvJM=H@A;-)^3?^BJWArmg%7Ug%~IBvA$cH?&;%EQiz`XNo4>!^P6loU?x zpX~+%$l1(S3w!r*s=+z~ulzR`xYF}KaqD)j8L{TI zx`G9ZM)YV-)7J-c%Pz|XrPn#D>LOI-C&z)JDrpbA3~Q-71VO=`a>dNp-+4wjiIBqa za6_D5nJu11XV;&?bk|RO;=Lh4kz0+&z2DfThfSu!*2`dwD-5Tuc3=9Y?uRt}^}c)f z`+#zQ)|G;lDIS9z`0Cm_bRz1Jie*uf)D6r*T)hM>hk5U;$!fO6-_L~!hK4Am5ZHaA zSP^|{uggP;1NA`}pR^coHF|Uh91*iVA1=H`Wv}n@(y^;yHf=g)HBrvAh81Qs?B>R# zrlJ@ntyKq!2?%x$r#T;d&rIepqBMc!0$FWLo37vU+EbL%`-L06-9rVYaMsu5*R>hz zH?wA|%PVw`H9imR*6Y3hP0l<|kKFN3_O+SkyZQXC}lQhrcZZHgA zs{&dY7Rp>KlOdSK7bd~Ru9D`5W03TgI#&UHRG;TbpA0lz@H?7tcn67(r4Tp@J#^Cp z4VBFG=@&uSaMYI4xMBkn9|R1;v(shwdcE|#M{fIUa8KFL;CYpB1P1@vW{1EYxd40k zdu7UfCGQ|*LGm-pj>i1;GlZEOF7^M^Dsm#{x6x*iY|wvNfzhB@nRgm+7_e5!nJ?%_ z&+{{Qjr!J%F-u8UF5lpWd4Mmo(Y!el=fONMlT*fR%u7-l0@6VR=Ey*AEsb#U01)~J zOfZ}fBtx|iu-j#YdL!&cjQoe90Lo{8b+6LMq}PjvzDfi}CV@3=#6zT)6v_qpE#IIm zG7g#?nTqAllow all 4 directions ...Allow all 4 joystick directions to be pressed simultaneously-joyallow4 Use modifier key combosEnable using modifier keys in keyboard actions-modcombo Swap Stelladaptor portsSwap the order of the detected Stelladaptors/2600-daptors (see Advanced Configuration - Stelladaptor/2600-daptor Support)-saport - Joystick DatabaseShow all joysticks that Stella knows about, with the option to remove them  + Controller DatabaseShow all controllers that Stella knows about, with the option to remove them  Erase EEPROMErase the whole AtariVox/SaveKey flash memory  AtariVox serial portDescribed in further detail in Advanced Configuration - AtariVox/SaveKey Support -avoxport diff --git a/src/common/EventHandlerSDL2.cxx b/src/common/EventHandlerSDL2.cxx index c5e869dff..aaf7fa009 100644 --- a/src/common/EventHandlerSDL2.cxx +++ b/src/common/EventHandlerSDL2.cxx @@ -262,8 +262,12 @@ EventHandlerSDL2::JoystickSDL2::JoystickSDL2(int idx) const char* sdlname = SDL_JoystickName(myStick); const string& desc = BSPF::startsWithIgnoreCase(sdlname, "XInput Controller") ? "XInput Controller" : sdlname; + const SDL_JoystickGUID sdlguid = SDL_JoystickGetDeviceGUID(idx); + char chGuid[33]; - initialize(SDL_JoystickInstanceID(myStick), desc, + SDL_JoystickGetGUIDString(sdlguid, chGuid, sizeof(chGuid)); + + initialize(SDL_JoystickInstanceID(myStick), desc, chGuid, SDL_JoystickNumAxes(myStick), SDL_JoystickNumButtons(myStick), SDL_JoystickNumHats(myStick), SDL_JoystickNumBalls(myStick)); } diff --git a/src/common/PJoystickHandler.cxx b/src/common/PJoystickHandler.cxx index 103aa05db..bc78e17a7 100644 --- a/src/common/PJoystickHandler.cxx +++ b/src/common/PJoystickHandler.cxx @@ -24,8 +24,9 @@ #include "Driving.hxx" #include "Settings.hxx" #include "EventHandler.hxx" -#include "PJoystickHandler.hxx" #include "Logger.hxx" +#include "MD5.hxx" +#include "PJoystickHandler.hxx" #ifdef GUI_SUPPORT #include "DialogContainer.hxx" @@ -138,6 +139,7 @@ int PhysicalJoystickHandler::add(const PhysicalJoystickPtr& stick) } stick->type = PhysicalJoystick::Type::REGULAR; } + stick->name.append(" (" + MD5::hash(stick->guid).substr(0, 4) + ")"); // The stick *must* be inserted here, since it may be used below mySticks[stick->ID] = stick; @@ -294,9 +296,9 @@ void PhysicalJoystickHandler::mapStelladaptors(const string& saport) if(found) { if(saOrder[saCount] == 1) - _stick->name += " (emulates left joystick port)"; + _stick->name += " (emulates left controller port)"; else if(saOrder[saCount] == 2) - _stick->name += " (emulates right joystick port)"; + _stick->name += " (emulates right controller port)"; saCount++; // always map Stelladaptor/2600-daptor to emulation mode defaults diff --git a/src/common/PhysicalJoystick.cxx b/src/common/PhysicalJoystick.cxx index 6770a6356..c15251fae 100644 --- a/src/common/PhysicalJoystick.cxx +++ b/src/common/PhysicalJoystick.cxx @@ -42,11 +42,13 @@ namespace { } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -void PhysicalJoystick::initialize(int index, const string& desc, - int axes, int buttons, int hats, int /*balls*/) +void PhysicalJoystick::initialize(int index, + const string& desc, const string& uid, + int axes, int buttons, int hats, int /*balls*/) { ID = index; name = desc; + guid = uid; numAxes = axes; numButtons = buttons; diff --git a/src/common/PhysicalJoystick.hxx b/src/common/PhysicalJoystick.hxx index 87dce3f01..c4297643b 100644 --- a/src/common/PhysicalJoystick.hxx +++ b/src/common/PhysicalJoystick.hxx @@ -55,7 +55,7 @@ class PhysicalJoystick string about() const; protected: - void initialize(int index, const string& desc, + void initialize(int index, const string& desc, const string& uid, int axes, int buttons, int hats, int balls); private: @@ -68,6 +68,7 @@ class PhysicalJoystick Type type{Type::REGULAR}; int ID{-1}; string name{"None"}; + string guid{"None"}; int numAxes{0}, numButtons{0}, numHats{0}; IntArray axisLastValue; IntArray buttonLast; diff --git a/src/emucore/DefProps.hxx b/src/emucore/DefProps.hxx index 47472f619..1bbfb7b00 100644 --- a/src/emucore/DefProps.hxx +++ b/src/emucore/DefProps.hxx @@ -1764,7 +1764,7 @@ static const BSPF::array2D DefProps = {{ { "7c757bb151269b2a626c907a22f5dae7", "TNT Games - Sculptured Software, Adam Clayton", "26192", "BMX Air Master (1989) (TNT Games) (PAL)", "", "Extremely Rare", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "7c7a4a2d505c2d0c75337c44711d8d54", "Atari, Warren Robinett", "", "Elf Adventure (04-22-83) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "http://www.atariprotos.com/2600/software/elfadventure/elfadventure.htm" }, { "7c9b3b8b25acf2fe3b8da834f69629c6", "", "", "I Robot (1984) (Atari) (Prototype) [!]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, - { "7ca7a471d70305c673fedd08174a81e8", "Tim Snider", "", "Venture II (2001) (Tim Snider)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "", "" }, + { "7ca7a471d70305c673fedd08174a81e8", "Tim Snider", "", "Venture II (2001) (Tim Snider)", "", "New Release", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "YES", "", "", "https://atariage.com/store/index.php?l=product_detail&p=38" }, { "7cc77f6745e1f2b20df4a4327d350545", "Atari, Richard Maurer", "CX2632, CX2632P", "Space Invaders (1980) (Atari) (PAL) [fixed]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"notes\":\"Only player 1 supported\",\"score_addresses\":[\"0xe6\",\"0xe8\"],\"variations_address\":\"0xdc\",\"variations_bcd\":false,\"variations_bcd_A\":false,\"variations_count\":112,\"variations_zero_based\":true}", "" }, { "7ccf350354ee15cd9b85564a2014b08c", "", "", "Big Dig (13-04-2003) (CT)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "7cd379da92c93679f3b6d2548617746a", "", "", "Demo Image Series #5 - Clown (19-02-2003) (AD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, @@ -2601,7 +2601,7 @@ static const BSPF::array2D DefProps = {{ { "be2870a0120fd28d25284e9ccdcbdc99", "", "", "Tomb Raider 2600 [REV 01] (Montezuma's Revenge Hack)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "be35d8b37bbc03848a5f020662a99909", "Atari, Joe Decuir, Steve Mayer, Larry Wagner - Sears", "CX2601 - 99801, 6-99801, 49-75124", "Combat (1977) (Atari) (4K) [a]", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "be3f0e827e2f748819dac2a22d6ac823", "Puzzy - Bit Corporation", "PG202", "Space Tunnel (1982) (Puzzy)", "AKA Le Tunnel de L'Estace", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, - { "be41463cd918daef107d249f8cde3409", "", "", "Berzerk (Voice Enhanced) (Hack)", "Hack of Berzerk", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xdd\",\"0xde\",\"0xdf\"],\"score_digits\":6,\"variations_address\":\"0x80\",\"variations_count\":12}", "" }, + { "be41463cd918daef107d249f8cde3409", "", "", "Berzerk (Voice Enhanced) (Hack)", "Hack of Berzerk", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0xdd\",\"0xde\",\"0xdf\"],\"score_digits\":6,\"variations_address\":\"0x80\",\"variations_count\":12}", "https://atariage.com/store/index.php?l=product_detail&p=29" }, { "be561b286b6432cac71bccbae68002f7", "", "", "Counter Demo (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "be929419902e21bd7830a7a7d746195d", "Activision, Garry Kitchen", "AX-025, AX-025-04", "Keystone Kapers (1983) (Activision)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x9a\",\"0x9b\",\"0x9c\"],\"score_digits\":6,\"variations_count\":1}", "" }, { "becd908f9d7bb361982c3dc02d6475c6", "Kyle Pittman", "", "THX-1138 (Kyle Pittman) (Hack)", "Hack of Berserk", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, @@ -3123,7 +3123,7 @@ static const BSPF::array2D DefProps = {{ { "e275cbe7d4e11e62c3bfcfb38fca3d49", "M Network - INTV - APh Technological Consulting, Ken Smith", "MT5658", "Super Challenge Football (1982) (M Network)", "AKA Pro Football", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "e27d518993b0a010f16e92b971ecdcdd", "Manuel Polik", "", "Star Fire (2003) (XYPE) (PAL)", "", "Homebrew", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x81\",\"0x82\",\"0x83\"],\"score_digits\":6,\"special_address\":\"0x84\",\"special_label\":\"Wave\",\"special_zero_based\":true,\"variations_count\":1}", "https://atariage.com/store/index.php?l=product_detail&p=229" }, { "e28113d10c0c14cc3b5f430b0d142fcb", "CCE", "C-816", "Keystone Kappers (1983) (CCE) [a]", "AKA Keystone Kapers", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "{\"score_addresses\":[\"0x9a\",\"0x9b\",\"0x9c\"],\"score_digits\":6,\"variations_count\":1}", "" }, - { "e2846af3e4d172b251ab77cbdd01761e", "Steve Engelhardt", "", "Adventure Plus (2003) (Steve Engelhardt) (Hack)", "Hack of Adventure", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, + { "e2846af3e4d172b251ab77cbdd01761e", "Steve Engelhardt", "", "Adventure Plus (2003) (Steve Engelhardt) (Hack)", "Hack of Adventure", "Hack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "https://atariage.com/store/index.php?l=product_detail&p=145" }, { "e2904748da63dfefc8816652b924b642", "Jone Yuan Telephonic Enterprise Co", "", "Catch Time (Jone Yuan)", "AKA Plaque Attack", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "e2b682f6e6d76b35c180c7d847e93b4f", "", "", "Dodge Demo 4 (PD)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }, { "e2c1b60eaa8eda131632d73e4e0c146b", "Atari - GCC, Mark Ackerman, Noellie Alito", "CX2692", "Moon Patrol (07-04-1983) (Atari) (Prototype)", "", "Prototype", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "http://www.atariprotos.com/2600/software/moonpatrol/moonpatrol.htm" }, diff --git a/src/emucore/stella.pro b/src/emucore/stella.pro index a39121906..601469a5f 100644 --- a/src/emucore/stella.pro +++ b/src/emucore/stella.pro @@ -11113,6 +11113,7 @@ "Cart.Manufacturer" "Tim Snider" "Cart.Name" "Venture II (2001) (Tim Snider)" "Cart.Rarity" "New Release" +"Cart.Url" "https://atariage.com/store/index.php?l=product_detail&p=38" "Display.Phosphor" "YES" "" @@ -16424,6 +16425,7 @@ "Cart.Note" "Hack of Berzerk" "Cart.Rarity" "Hack" "Cart.Highscore" "{\"score_addresses\":[\"0xdd\",\"0xde\",\"0xdf\"],\"score_digits\":6,\"variations_address\":\"0x80\",\"variations_count\":12}" +"Cart.Url" "https://atariage.com/store/index.php?l=product_detail&p=29" "" "Cart.MD5" "be561b286b6432cac71bccbae68002f7" @@ -19744,6 +19746,7 @@ "Cart.Name" "Adventure Plus (2003) (Steve Engelhardt) (Hack)" "Cart.Note" "Hack of Adventure" "Cart.Rarity" "Hack" +"Cart.Url" "https://atariage.com/store/index.php?l=product_detail&p=145" "" "Cart.MD5" "e2904748da63dfefc8816652b924b642" diff --git a/src/gui/InputDialog.cxx b/src/gui/InputDialog.cxx index ca18d5239..8d75d4e4f 100644 --- a/src/gui/InputDialog.cxx +++ b/src/gui/InputDialog.cxx @@ -204,9 +204,9 @@ void InputDialog::addDevicePortTab() // Show joystick database ypos += lineHeight; - lwidth = Dialog::buttonWidth("Joystick Database" + ELLIPSIS); + lwidth = Dialog::buttonWidth("Controller Database" + ELLIPSIS); myJoyDlgButton = new ButtonWidget(myTab, _font, HBORDER, ypos, lwidth, buttonHeight, - "Joystick Database" + ELLIPSIS, kDBButtonPressed); + "Controller Database" + ELLIPSIS, kDBButtonPressed); wid.push_back(myJoyDlgButton); // Add EEPROM erase (part 1/2) @@ -691,7 +691,7 @@ void InputDialog::handleCommand(CommandSender* sender, int cmd, { const GUI::Font& font = instance().frameBuffer().font(); myJoyDialog = make_unique - (this, font, fontWidth() * 56 + 20, fontHeight() * 18 + 20); + (this, font, fontWidth() * 60 + 20, fontHeight() * 18 + 20); } myJoyDialog->show(); break; diff --git a/src/gui/JoystickDialog.cxx b/src/gui/JoystickDialog.cxx index 7be8f3f91..4034c8979 100644 --- a/src/gui/JoystickDialog.cxx +++ b/src/gui/JoystickDialog.cxx @@ -27,7 +27,7 @@ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JoystickDialog::JoystickDialog(GuiObject* boss, const GUI::Font& font, int max_w, int max_h) - : Dialog(boss->instance(), boss->parent(), font, "Joystick database", 0, 0, max_w, max_h) + : Dialog(boss->instance(), boss->parent(), font, "Controller database", 0, 0, max_w, max_h) { int xpos, ypos; WidgetArray wid; @@ -48,7 +48,7 @@ JoystickDialog::JoystickDialog(GuiObject* boss, const GUI::Font& font, // Joystick ID ypos = _h - VBORDER - (buttonHeight + lineHeight) / 2; - StaticTextWidget* t = new StaticTextWidget(this, font, xpos, ypos+2, "Joystick ID "); + StaticTextWidget* t = new StaticTextWidget(this, font, xpos, ypos+2, "Controller ID "); xpos += t->getWidth(); myJoyText = new EditTextWidget(this, font, xpos, ypos, font.getStringWidth("Unplugged "), font.getLineHeight(), "");