]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Football Director 2 dongle emulation
authorToni Wilen <twilen@winuae.net>
Sun, 4 Jun 2023 17:54:10 +0000 (20:54 +0300)
committerToni Wilen <twilen@winuae.net>
Sun, 4 Jun 2023 17:54:10 +0000 (20:54 +0300)
cfgfile.cpp
dongle.cpp
od-win32/win32gui.cpp

index 24d9769fc8675e84718b9fb5830ec7c843780250..887a7fa41f16a611334d09a055e3a87ecb78e69c 100644 (file)
@@ -212,7 +212,7 @@ static const TCHAR *dongles[] =
        _T("robocop 3"), _T("leaderboard"), _T("b.a.t. ii"), _T("italy'90 soccer"), _T("dames grand maitre"),
        _T("rugby coach"), _T("cricket captain"), _T("leviathan"), _T("musicmaster"),
        _T("logistics"), _T("scala red"), _T("scala green"),
-       _T("strikermanager"), _T("multi-player soccer manager"),
+       _T("strikermanager"), _T("multi-player soccer manager"), _T("football director 2"),
        NULL
 };
 static const TCHAR *cdmodes[] = { _T("disabled"), _T(""), _T("image"), _T("ioctl"), _T("spti"), _T("aspi"), 0 };
index 48441ef66cb3b01846ca6e416eafa57b744f60b7..4d4f0c016abca25b33052f420c6e89d7451354e4 100644 (file)
@@ -31,6 +31,7 @@
 #define SCALA_GREEN 12
 #define STRIKERMANAGER 13
 #define MPSOCCERMANAGER 14
+#define FOOTBALLDIRECTOR2 15
 
 static int dflag;
 static frame_time_t cycles;
@@ -254,6 +255,18 @@ uae_u16 dongle_joydat (int port, uae_u16 val)
                        }
                }
                break;
+       case FOOTBALLDIRECTOR2:
+               if (port == 1) {
+                       if (dflag >= 4) {
+                               val &= ~0x0303;
+                               val |= 0x0300;
+                               dflag--;
+                       } else if (dflag > 0) {
+                               val &= ~0x0303;
+                               val |= 0x0303;
+                       }
+               }
+               break;
        }
        return val;
 }
@@ -271,6 +284,7 @@ void dongle_potgo (uae_u16 val)
                break;
        case STRIKERMANAGER:
        case MPSOCCERMANAGER:
+       case FOOTBALLDIRECTOR2:
                if ((val & 0x0500) == 0x0500) {
                        dflag++;
                } else {
index c732b315cee919b465f8c75fbbe3a96bd5f9b1bd..d57ba1fc5d515814edf8beee495017aa4ab0d286 100644 (file)
@@ -17797,6 +17797,7 @@ static void init_portsdlg (HWND hDlg)
        xSendDlgItemMessage(hDlg, IDC_DONGLELIST, CB_ADDSTRING, 0, (LPARAM)_T("Scala MM (Green)"));
        xSendDlgItemMessage(hDlg, IDC_DONGLELIST, CB_ADDSTRING, 0, (LPARAM)_T("Striker Manager"));
        xSendDlgItemMessage(hDlg, IDC_DONGLELIST, CB_ADDSTRING, 0, (LPARAM)_T("Multi-Player Soccer Manager"));
+       xSendDlgItemMessage(hDlg, IDC_DONGLELIST, CB_ADDSTRING, 0, (LPARAM)_T("Football Director 2"));
 
        xSendDlgItemMessage (hDlg, IDC_SERIAL, CB_RESETCONTENT, 0, 0L);
        xSendDlgItemMessage (hDlg, IDC_SERIAL, CB_ADDSTRING, 0, (LPARAM)szNone.c_str());