Merge pull request #4208 from DavidHaywood/281018_2

XaviX - allow driver to work with i2cmem in a suitable way nostalgia games (page support causes hangs in Gaplus etc.)
This commit is contained in:
R. Belmont 2018-10-28 14:29:17 -04:00 committed by GitHub
commit 518f20e8cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 16 deletions

View File

@ -786,10 +786,18 @@ MACHINE_CONFIG_START(xavix_state::xavix)
// sound is PCM
MACHINE_CONFIG_END
MACHINE_CONFIG_START(xavix_state::xavix_i2c)
MACHINE_CONFIG_START(xavix_state::xavix_i2c_24lc04)
xavix(config);
I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x200);
// according to http://ww1.microchip.com/downloads/en/devicedoc/21708k.pdf 'the master transmits up to 16 data bytes' however this breaks the Nostalgia games
// of note Galplus Phalanx on Namco Nostalgia 2, which will hang between stages unable to properly access the device, but with no page support it doesn't hang and scores save
I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x200); // 24LC04 on Nostalgia games, 24C04 on others
MACHINE_CONFIG_END
MACHINE_CONFIG_START(xavix_state::xavix_i2c_24c08)
xavix(config);
I2CMEM(config, "i2cmem", 0)/*.set_page_size(16)*/.set_data_size(0x400); // 24C08 (Excite Fishing DX)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(xavix_state::xavixp)
@ -817,10 +825,16 @@ MACHINE_CONFIG_START(xavix_state::xavix2000)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(xavix_state::xavix2000_i2c)
MACHINE_CONFIG_START(xavix_state::xavix2000_i2c_24c04)
xavix2000(config);
I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x200);
I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x200); // 24C04
MACHINE_CONFIG_END
MACHINE_CONFIG_START(xavix_state::xavix2000_i2c_24c02)
xavix2000(config);
I2CMEM(config, "i2cmem", 0).set_page_size(16).set_data_size(0x100); // 24C02
MACHINE_CONFIG_END
void xavix_state::init_xavix()
@ -977,13 +991,13 @@ ROM_END
/* Standalone TV Games */
CONS( 2006, taitons1, 0, 0, xavix_i2c, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1", MACHINE_IS_SKELETON )
CONS( 2006, taitons1, 0, 0, xavix_i2c_24lc04, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 1", MACHINE_IS_SKELETON )
CONS( 2006, taitons2, 0, 0, xavix_i2c, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 2", MACHINE_IS_SKELETON )
CONS( 2006, taitons2, 0, 0, xavix_i2c_24lc04, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Taito", "Let's! TV Play Classic - Taito Nostalgia 2", MACHINE_IS_SKELETON )
CONS( 2006, namcons1, 0, 0, xavix_i2c, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 1", MACHINE_IS_SKELETON )
CONS( 2006, namcons1, 0, 0, xavix_i2c_24lc04, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 1", MACHINE_IS_SKELETON )
CONS( 2006, namcons2, 0, 0, xavix_i2c, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 2", MACHINE_IS_SKELETON )
CONS( 2006, namcons2, 0, 0, xavix_i2c_24lc04, namcons2, xavix_state, init_xavix, "Bandai / SSD Company LTD / Namco", "Let's! TV Play Classic - Namco Nostalgia 2", MACHINE_IS_SKELETON )
CONS( 2000, rad_ping, 0, 0, xavix, xavix, xavix_state, init_xavix, "Radica / SSD Company LTD / Simmer Technology", "Play TV Ping Pong", MACHINE_IS_SKELETON ) // "Simmer Technology" is also known as "Hummer Technology Co., Ltd"
@ -1011,7 +1025,7 @@ CONS( 200?, rad_fb, 0, 0, xavix, xavix, xavix_state, init_xavix
CONS( 200?, rad_rh, 0, 0, xavix, rad_rh, xavix_state, init_xavix, "Radioa / Fisher-Price / SSD Company LTD", "Play TV Rescue Heroes", MACHINE_IS_SKELETON)
CONS( 200?, epo_efdx, 0, 0, xavix_i2c, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_IS_SKELETON)
CONS( 200?, epo_efdx, 0, 0, xavix_i2c_24c08, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Fishing DX (Japan)", MACHINE_IS_SKELETON)
CONS( 200?, has_wamg, 0, 0, xavix, xavix, xavix_state, init_xavix, "Hasbro / Milton Bradley / SSD Company LTD", "TV Wild Adventure Mini Golf", MACHINE_IS_SKELETON)
@ -1056,9 +1070,9 @@ ROM_START( drgqst )
ROM_END
CONS( 2004, xavtenni, 0, 0, xavix2000_i2c, xavix, xavix_state, init_xavix, "SSD Company LTD", "XaviX Tennis (XaviXPORT)", MACHINE_IS_SKELETON )
CONS( 2004, xavtenni, 0, 0, xavix2000_i2c_24c04, xavix, xavix_state, init_xavix, "SSD Company LTD", "XaviX Tennis (XaviXPORT)", MACHINE_IS_SKELETON )
CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c, xavix, xavix_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_IS_SKELETON )
CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c, xavix, xavix_state, init_xavix, "Tiger / SSD Company LTD", "Lord Of The Rings - Warrior of Middle-Earth", MACHINE_IS_SKELETON )
CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c, ttv_mx, xavix_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_IS_SKELETON )
CONS( 2003, drgqst, 0, 0, xavix2000_i2c, xavix, xavix_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_IS_SKELETON )
CONS( 2005, ttv_sw, 0, 0, xavix2000_i2c_24c02, xavix, xavix_state, init_xavix, "Tiger / SSD Company LTD", "Star Wars Saga Edition - Lightsaber Battle Game", MACHINE_IS_SKELETON )
CONS( 2005, ttv_lotr, 0, 0, xavix2000_i2c_24c02, xavix, xavix_state, init_xavix, "Tiger / SSD Company LTD", "Lord Of The Rings - Warrior of Middle-Earth", MACHINE_IS_SKELETON )
CONS( 2005, ttv_mx, 0, 0, xavix2000_i2c_24c04, ttv_mx, xavix_state, init_xavix, "Tiger / SSD Company LTD", "MX Dirt Rebel", MACHINE_IS_SKELETON )
CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c02, xavix, xavix_state, init_xavix, "Square Enix / SSD Company LTD", "Kenshin Dragon Quest: Yomigaerishi Densetsu no Ken", MACHINE_IS_SKELETON )

View File

@ -49,8 +49,11 @@ public:
void xavixp(machine_config &config);
void xavix2000(machine_config &config);
void xavix_i2c(machine_config &config);
void xavix2000_i2c(machine_config &config);
void xavix_i2c_24lc04(machine_config &config);
void xavix_i2c_24c08(machine_config &config);
void xavix2000_i2c_24c04(machine_config &config);
void xavix2000_i2c_24c02(machine_config &config);
void init_xavix();