diff -Nur a/core/hw/maple/maple_cfg.cpp b/core/hw/maple/maple_cfg.cpp --- a/core/hw/maple/maple_cfg.cpp 2015-08-27 12:17:34.718561243 -0300 +++ b/core/hw/maple/maple_cfg.cpp 2015-08-27 15:57:10.233166402 -0300 @@ -22,10 +22,12 @@ */ void UpdateInputState(u32 port); -extern u16 kcode[4]; -extern u32 vks[4]; -extern s8 joyx[4],joyy[4]; -extern u8 rt[4],lt[4]; +#define NUM_PORTS 4 + +extern u16 kcode[NUM_PORTS]; +extern u32 vks[NUM_PORTS]; +extern s8 joyx[NUM_PORTS],joyy[NUM_PORTS]; +extern u8 rt[NUM_PORTS],lt[NUM_PORTS]; u8 GetBtFromSgn(s8 val) { @@ -69,10 +71,13 @@ void mcfg_CreateDevices() { #if DC_PLATFORM == DC_PLATFORM_DREAMCAST - mcfg_Create(MDT_SegaController,0,5); + for (int i = 0; i < NUM_PORTS; i++) + { + mcfg_Create(MDT_SegaController,i,5); - mcfg_Create(MDT_SegaVMU,0,0); - mcfg_Create(MDT_SegaVMU,0,1); + mcfg_Create(MDT_SegaVMU,i,0); + mcfg_Create(MDT_SegaVMU,i,1); + } #else mcfg_Create(MDT_NaomiJamma, 0, 5); #endif