diff --git a/src/burn/drv/sega/d_xbrd.cpp b/src/burn/drv/sega/d_xbrd.cpp index c1f935bf5..628897636 100644 --- a/src/burn/drv/sega/d_xbrd.cpp +++ b/src/burn/drv/sega/d_xbrd.cpp @@ -1,4 +1,5 @@ #include "sys16.h" +#include "segapcm.h" /*==================================================== Input defs @@ -1698,12 +1699,12 @@ Memory Handlers ====================================================*/ typedef UINT8 (*io_custom_read)(UINT8); -static io_custom_read iochip_custom_read[2][5]; +static io_custom_read iochip_custom_read[2][8] = {{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }}; typedef void (*io_custom_write)(UINT8); -static io_custom_write iochip_custom_write[2][5]; +static io_custom_write iochip_custom_write[2][8] = {{ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }}; -static UINT8 iochip_regs[2][8]; +static UINT8 iochip_regs[2][8] = {{ 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0 }}; static UINT8 LastsurvMux = 0; static INT32 LastsurvPosition[2] = { 0, 0 }; @@ -2486,8 +2487,11 @@ static INT32 LoffireInit() BurnGunInit(2, true); System16ProcessAnalogControlsDo = LoffireProcessAnalogControls; - - return System16Init(); + INT32 rc = System16Init(); + SegaPCMSetRoute(0, BURN_SND_SEGAPCM_ROUTE_1, 1.0, BURN_SND_ROUTE_BOTH); + SegaPCMSetRoute(0, BURN_SND_SEGAPCM_ROUTE_2, 1.0, BURN_SND_ROUTE_BOTH); + + return rc; } static UINT8 RacheroProcessAnalogControls(UINT16 value) @@ -2675,7 +2679,7 @@ static INT32 XBoardExit() { memset(iochip_regs, 0, sizeof(iochip_regs)); - for (INT32 i = 0; i <= 4; i++) { + for (INT32 i = 0; i < 8; i++) { iochip_custom_read[0][i] = NULL; iochip_custom_read[1][i] = NULL; iochip_custom_write[0][i] = NULL;