From d154b269b189727efd4044a4d7ec5e806273cb9e Mon Sep 17 00:00:00 2001 From: Barry Harris <44396066+barry65536@users.noreply.github.com> Date: Wed, 28 Dec 2011 21:20:07 +0000 Subject: [PATCH] Improve hardware filtering in sel.cpp --- src/burn/burn.h | 36 +++++++-------- src/burner/platform/win32/sel.cpp | 73 +++++++++++++++++-------------- 2 files changed, 59 insertions(+), 50 deletions(-) diff --git a/src/burn/burn.h b/src/burn/burn.h index 8cdebf0db..eeb868e8a 100644 --- a/src/burn/burn.h +++ b/src/burn/burn.h @@ -297,24 +297,24 @@ void IpsApplyPatches(UINT8* base, char* rom_name); #define HARDWARE_PREFIX_CARTRIDGE (0x80000000) -#define HARDWARE_PREFIX_MISC_PRE90S (0x00000000) -#define HARDWARE_PREFIX_CAPCOM (0x01000000) -#define HARDWARE_PREFIX_SEGA (0x02000000) -#define HARDWARE_PREFIX_KONAMI (0x03000000) -#define HARDWARE_PREFIX_TOAPLAN (0x04000000) -#define HARDWARE_PREFIX_SNK (0x05000000) -#define HARDWARE_PREFIX_CAVE (0x06000000) -#define HARDWARE_PREFIX_CPS2 (0x07000000) -#define HARDWARE_PREFIX_IGS_PGM (0x08000000) -#define HARDWARE_PREFIX_CPS3 (0x09000000) -#define HARDWARE_PREFIX_MISC_POST90S (0x0a000000) -#define HARDWARE_PREFIX_TAITO (0x0b000000) -#define HARDWARE_PREFIX_SEGA_MEGADRIVE (0x0c000000) -#define HARDWARE_PREFIX_PSIKYO (0x0d000000) -//#define HARDWARE_PREFIX_KANEKO16 (0x0e000000) // spare -#define HARDWARE_PREFIX_PACMAN (0x0f000000) -#define HARDWARE_PREFIX_GALAXIAN (0x10000000) -#define HARDWARE_PREFIX_IREM (0x20000000) +#define HARDWARE_PREFIX_MISC_PRE90S (0x01000000) +#define HARDWARE_PREFIX_CAPCOM (0x02000000) +#define HARDWARE_PREFIX_SEGA (0x03000000) +#define HARDWARE_PREFIX_KONAMI (0x04000000) +#define HARDWARE_PREFIX_TOAPLAN (0x05000000) +#define HARDWARE_PREFIX_SNK (0x06000000) +#define HARDWARE_PREFIX_CAVE (0x07000000) +#define HARDWARE_PREFIX_CPS2 (0x08000000) +#define HARDWARE_PREFIX_IGS_PGM (0x09000000) +#define HARDWARE_PREFIX_CPS3 (0x0a000000) +#define HARDWARE_PREFIX_MISC_POST90S (0x0b000000) +#define HARDWARE_PREFIX_TAITO (0x0c000000) +#define HARDWARE_PREFIX_SEGA_MEGADRIVE (0x0d000000) +#define HARDWARE_PREFIX_PSIKYO (0x0e000000) +//#define HARDWARE_PREFIX_KANEKO16 (0x0f000000) // spare +#define HARDWARE_PREFIX_PACMAN (0x10000000) +#define HARDWARE_PREFIX_GALAXIAN (0x11000000) +#define HARDWARE_PREFIX_IREM (0x12000000) #define HARDWARE_MISC_PRE90S (HARDWARE_PREFIX_MISC_PRE90S) #define HARDWARE_MISC_POST90S (HARDWARE_PREFIX_MISC_POST90S) diff --git a/src/burner/platform/win32/sel.cpp b/src/burner/platform/win32/sel.cpp index e8799ec60..509fe4a4f 100644 --- a/src/burner/platform/win32/sel.cpp +++ b/src/burner/platform/win32/sel.cpp @@ -114,29 +114,46 @@ HTREEITEM hHardware = NULL; #define DISABLE_NON_AVAILABLE_SELECT 0 // Disable selecting non-available sets #define NON_WORKING_PROMPT_ON_LOAD 1 // Prompt user on loading non-working sets -#define MASKCPS (1 << (HARDWARE_PREFIX_CAPCOM >> 24)) -#define MASKCPS2 (1 << (HARDWARE_PREFIX_CPS2 >> 24)) -#define MASKCPS3 (1 << (HARDWARE_PREFIX_CPS3 >> 24)) -#define MASKNEOGEO (1 << (HARDWARE_PREFIX_SNK >> 24)) -#define MASKSEGA (1 << (HARDWARE_PREFIX_SEGA >> 24)) -#define MASKTOAPLAN (1 << (HARDWARE_PREFIX_TOAPLAN >> 24)) -#define MASKCAVE (1 << (HARDWARE_PREFIX_CAVE >> 24)) -#define MASKPGM (1 << (HARDWARE_PREFIX_IGS_PGM >> 24)) -#define MASKMEGADRIVE (1 << (HARDWARE_PREFIX_SEGA_MEGADRIVE >> 24)) -#define MASKTAITO (1 << (HARDWARE_PREFIX_TAITO >> 24)) -#define MASKPSIKYO (1 << (HARDWARE_PREFIX_PSIKYO >> 24)) -#define MASKKONAMI (1 << (HARDWARE_PREFIX_KONAMI >> 24)) -#define MASKPACMAN (1 << (HARDWARE_PREFIX_PACMAN >> 24)) -#define MASKGALAXIAN (1 << (HARDWARE_PREFIX_GALAXIAN >> 24)) -#define MASKIREM (0x1000 * (HARDWARE_PREFIX_IREM >> 24)) -#define MASKMISCPRE90S (1 << (HARDWARE_PREFIX_MISC_PRE90S >> 24)) -#define MASKMISCPOST90S (1 << (HARDWARE_PREFIX_MISC_POST90S >> 24)) -#define MASKALL (MASKCPS | MASKCPS2 | MASKCPS3 | MASKNEOGEO | MASKSEGA | MASKTOAPLAN | MASKCAVE | MASKPGM | MASKTAITO | MASKPSIKYO | MASKKONAMI | MASKPACMAN | MASKGALAXIAN | MASKIREM | MASKMEGADRIVE | MASKMISCPRE90S | MASKMISCPOST90S) +static int CpsValue = HARDWARE_PREFIX_CAPCOM >> 24; +static int MASKCPS = 1 << CpsValue; +static int Cps2Value = HARDWARE_PREFIX_CPS2 >> 24; +static int MASKCPS2 = 1 << Cps2Value; +static int Cps3Value = HARDWARE_PREFIX_CPS3 >> 24; +static int MASKCPS3 = 1 << Cps3Value; +static int NeogeoValue = HARDWARE_PREFIX_SNK >> 24; +static int MASKNEOGEO = 1 << NeogeoValue; +static int SegaValue = HARDWARE_PREFIX_SEGA >> 24; +static int MASKSEGA = 1 << SegaValue; +static int ToaplanValue = HARDWARE_PREFIX_TOAPLAN >> 24; +static int MASKTOAPLAN = 1 << ToaplanValue; +static int CaveValue = HARDWARE_PREFIX_CAVE >> 24; +static int MASKCAVE = 1 << CaveValue; +static int PgmValue = HARDWARE_PREFIX_IGS_PGM >> 24; +static int MASKPGM = 1 << PgmValue; +static int MegadriveValue = HARDWARE_PREFIX_SEGA_MEGADRIVE >> 24; +static int MASKMEGADRIVE = 1 << MegadriveValue; +static int TaitoValue = HARDWARE_PREFIX_TAITO >> 24; +static int MASKTAITO = 1 << TaitoValue; +static int PsikyoValue = HARDWARE_PREFIX_PSIKYO >> 24; +static int MASKPSIKYO = 1 << PsikyoValue; +static int KonamiValue = HARDWARE_PREFIX_KONAMI >> 24; +static int MASKKONAMI = 1 << KonamiValue; +static int PacmanValue = HARDWARE_PREFIX_PACMAN >> 24; +static int MASKPACMAN = 1 << PacmanValue; +static int GalaxianValue = HARDWARE_PREFIX_GALAXIAN >> 24; +static int MASKGALAXIAN = 1 << GalaxianValue; +static int IremValue = HARDWARE_PREFIX_IREM >> 24; +static int MASKIREM = 1 << IremValue; +static int MiscPre90sValue = HARDWARE_PREFIX_MISC_PRE90S >> 24; +static int MASKMISCPRE90S = 1 << MiscPre90sValue; +static int MiscPost90sValue = HARDWARE_PREFIX_MISC_POST90S >> 24; +static int MASKMISCPOST90S = 1 << MiscPost90sValue; +static int MASKALL = MASKCPS | MASKCPS2 | MASKCPS3 | MASKNEOGEO | MASKSEGA | MASKTOAPLAN | MASKCAVE | MASKPGM | MASKTAITO | MASKPSIKYO | MASKKONAMI | MASKPACMAN | MASKGALAXIAN | MASKIREM | MASKMEGADRIVE | MASKMISCPRE90S | MASKMISCPOST90S; -#define AVAILONLY (1 << 18) -#define AUTOEXPAND (1 << 19) -#define SHOWSHORT (1 << 20) -#define ASCIIONLY (1 << 21) +#define AVAILONLY (1 << 24) +#define AUTOEXPAND (1 << 25) +#define SHOWSHORT (1 << 26) +#define ASCIIONLY (1 << 27) #define MASKBOARDTYPEGENUINE (1) #define MASKFAMILYOTHER 0x10000000 @@ -278,7 +295,7 @@ static int SelListMake() { unsigned int i, j; unsigned int nMissingDrvCount = 0; - + if (nBurnDrv) { free(nBurnDrv); nBurnDrv = NULL; @@ -306,12 +323,8 @@ static int SelListMake() if (BurnDrvGetText(DRV_PARENT) != NULL && (BurnDrvGetFlags() & BDF_CLONE)) { // Skip clones continue; } - //if (avOk && (nLoadMenuShowX & AVAILONLY) && !gameAv[i]) { // Skip non-available games if needed - // continue; - //} int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24); - if ((BurnDrvGetHardwareCode() >> 24) == (HARDWARE_PREFIX_IREM >> 24)) nHardware = MASKIREM; if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || (nHardware & MASKALL) == 0)) { continue; } @@ -365,12 +378,8 @@ static int SelListMake() if (BurnDrvGetTextA(DRV_PARENT) == NULL || !(BurnDrvGetFlags() & BDF_CLONE)) { // Skip parents continue; } - //if (avOk && (nLoadMenuShowX & AVAILONLY) && !gameAv[i]) { // Skip non-available games if needed - // continue; - //} int nHardware = 1 << (BurnDrvGetHardwareCode() >> 24); - if ((BurnDrvGetHardwareCode() >> 24) == (HARDWARE_PREFIX_IREM >> 24)) nHardware = MASKIREM; if ((nHardware & MASKALL) && ((nHardware & nLoadMenuShowX) || ((nHardware & MASKALL) == 0))) { continue; } @@ -1053,7 +1062,7 @@ static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lP _TreeView_SetCheckState(hFilterList, hFilterMiscPost90s, TRUE); _TreeView_SetCheckState(hFilterList, hFilterMegadrive, TRUE); - nLoadMenuShowX &= 0xfffc0000; + nLoadMenuShowX &= 0xff000000; } }