I decided I was being a bit ambitious, so I removed everything, applied the 101u4 patch, and added back in only bangbedp, pnyaa, mslug5, mslug5a, mslug5nd and compiled again. The errors I got this time were: src/drivers/neogeo.c: In function `mv0_bankswitch_w': src/drivers/neogeo.c:6894: warning: ISO C90 forbids mixed declarations and code src/drivers/neogeo.c: In function `ms5plus_bankswitch_w': src/drivers/neogeo.c:6902: warning: ISO C90 forbids mixed declarations and code src/drivers/neogeo.c: In function `mslug5_vx_decrypt': src/drivers/neogeo.c:6979: error: 'for' loop initial declaration used outside C99 mode Then I got rid of the mslug5 routines and replaced them with your ones. Now I'm compiling again.