diff --git a/src/burn/drv/neogeo/d_neogeo.cpp b/src/burn/drv/neogeo/d_neogeo.cpp index e3e92e3c5..f2a35459f 100644 --- a/src/burn/drv/neogeo/d_neogeo.cpp +++ b/src/burn/drv/neogeo/d_neogeo.cpp @@ -13656,13 +13656,20 @@ static struct BurnRomInfo vlinerRomDesc[] = { STDROMPICKEXT(vliner, vliner, neogeo) STD_ROM_FN(vliner) +static INT32 vlinerInit() +{ + vlinermode = 1; + + return NeoInit(); +} + struct BurnDriver BurnDrvvliner = { "vliner", NULL, "neogeo", NULL, "2001", "V-Liner (v0.7a)\0", NULL, "Dyna / BreezaSoft", "Neo Geo MVS", NULL, NULL, NULL, NULL, BDF_GAME_WORKING, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_GAMBLING, GBF_CASINO, 0, NULL, vlinerRomInfo, vlinerRomName, NULL, NULL, vlinerInputInfo, neogeoDIPInfo, - NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, + vlinerInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, 0x1000, 304, 224, 4, 3 }; @@ -13689,7 +13696,7 @@ struct BurnDriver BurnDrvvliner7e = { NULL, NULL, NULL, NULL, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_GAMBLING, GBF_CASINO, 0, NULL, vliner7eRomInfo, vliner7eRomName, NULL, NULL, vlinerInputInfo, neogeoDIPInfo, - NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, + vlinerInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, 0x1000, 304, 224, 4, 3 }; @@ -13718,7 +13725,7 @@ struct BurnDriver BurnDrvvliner6e = { NULL, NULL, NULL, NULL, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_GAMBLING, GBF_CASINO, 0, NULL, vliner6eRomInfo, vliner6eRomName, NULL, NULL, vlinerInputInfo, neogeoDIPInfo, - NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, + vlinerInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, 0x1000, 304, 224, 4, 3 }; @@ -13747,7 +13754,7 @@ struct BurnDriver BurnDrvvliner54 = { NULL, NULL, NULL, NULL, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_GAMBLING, GBF_CASINO, 0, NULL, vliner54RomInfo, vliner54RomName, NULL, NULL, vlinerInputInfo, neogeoDIPInfo, - NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, + vlinerInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, 0x1000, 304, 224, 4, 3 }; @@ -13774,7 +13781,7 @@ struct BurnDriver BurnDrvvliner53 = { NULL, NULL, NULL, NULL, BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_SNK_NEOGEO | HARDWARE_SNK_GAMBLING, GBF_CASINO, 0, NULL, vliner53RomInfo, vliner53RomName, NULL, NULL, vlinerInputInfo, neogeoDIPInfo, - NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, + vlinerInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette, 0x1000, 304, 224, 4, 3 }; diff --git a/src/burn/drv/neogeo/neo_run.cpp b/src/burn/drv/neogeo/neo_run.cpp index 5ca508c63..fa54ca0c9 100644 --- a/src/burn/drv/neogeo/neo_run.cpp +++ b/src/burn/drv/neogeo/neo_run.cpp @@ -227,6 +227,7 @@ static INT32 nSoundPrevReply; INT32 s1945pmode = 0; INT32 fatfury2mode = 0; // fatfury2 protection active (fatfury2, ssideki) +INT32 vlinermode = 0; static INT32 nInputSelect; static UINT8* NeoInputBank; @@ -1167,7 +1168,7 @@ static void NeoMapActiveCartridge() SekSetReadByteHandler(6, neogeoReadByteGambling); SekSetReadWordHandler(6, neogeoReadWordGambling); - if (!strcmp(BurnDrvGetTextA(DRV_NAME), "vliner") || !strcmp(BurnDrvGetTextA(DRV_NAME), "vlinero")) { + if (vlinermode) { SekMapHandler(7, 0x320000, 0x320001, MAP_READ); SekSetReadByteHandler(7, vliner_timing); } @@ -4285,6 +4286,7 @@ INT32 NeoExit() s1945pmode = 0; fatfury2mode = 0; + vlinermode = 0; return 0; } diff --git a/src/burn/drv/neogeo/neogeo.h b/src/burn/drv/neogeo/neogeo.h index 363866014..e50ce3c9b 100644 --- a/src/burn/drv/neogeo/neogeo.h +++ b/src/burn/drv/neogeo/neogeo.h @@ -84,8 +84,8 @@ extern bool bNeoEnableGraphics; extern bool bDisableNeoWatchdog; extern INT32 s1945pmode; - extern INT32 fatfury2mode; +extern INT32 vlinermode; INT32 NeoInit(); INT32 NeoCDInit();