diff --git a/src/mame/tvgames/xavix.h b/src/mame/tvgames/xavix.h index b8d27fd31a9ca..a9bb005a1b253 100644 --- a/src/mame/tvgames/xavix.h +++ b/src/mame/tvgames/xavix.h @@ -132,7 +132,9 @@ class xavix_state : public driver_device void xavixp_1mb(machine_config &config); void xavix2000(machine_config &config); + void xavix2000_4mb(machine_config &config); void xavix2000_nv(machine_config &config); + void xavix2000_4mb_nv(machine_config &config); void xavix_43mhz(machine_config &config); @@ -753,7 +755,10 @@ class xavix_i2c_state : public xavix_state void xavix_i2c_24c16_4mb(machine_config &config); void xavix2000_i2c_24c08(machine_config &config); + void xavix2000_i2c_24c08_4mb(machine_config &config); void xavix2000_i2c_24c04(machine_config &config); + void xavix2000_i2c_24c04_2mb(machine_config &config); + void xavix2000_i2c_24c04_4mb(machine_config &config); void xavix2000_i2c_24c02(machine_config &config); protected: diff --git a/src/mame/tvgames/xavix_2000.cpp b/src/mame/tvgames/xavix_2000.cpp index 1f2633f906a7f..40fc13506bfc4 100644 --- a/src/mame/tvgames/xavix_2000.cpp +++ b/src/mame/tvgames/xavix_2000.cpp @@ -220,16 +220,28 @@ void xavix_state::xavix2000(machine_config &config) m_palette->set_entries(512); } -void xavix_state::xavix2000_nv(machine_config &config) +void xavix_state::xavix2000_4mb(machine_config &config) { xavix2000(config); + m_maincpu->set_addrmap(6, &xavix_state::xavix_4mb_extbus_map); +} +void xavix_state::xavix2000_nv(machine_config &config) +{ + xavix2000(config); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1); } -void xavix_2000_nv_sdb_state::xavix2000_nv_sdb(machine_config &config) +void xavix_state::xavix2000_4mb_nv(machine_config &config) { xavix2000_nv(config); + m_maincpu->set_addrmap(6, &xavix_state::xavix_4mb_extbus_map); +} + + +void xavix_2000_nv_sdb_state::xavix2000_nv_sdb(machine_config &config) +{ + xavix2000_4mb_nv(config); m_anport->read_0_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport0_r)); m_anport->read_1_callback().set(FUNC(xavix_2000_nv_sdb_state::sdb_anport1_r)); @@ -240,10 +252,16 @@ void xavix_2000_nv_sdb_state::xavix2000_nv_sdb(machine_config &config) void xavix_i2c_state::xavix2000_i2c_24c08(machine_config &config) { xavix2000(config); - I2C_24C08(config, "i2cmem", 0); } +void xavix_i2c_state::xavix2000_i2c_24c08_4mb(machine_config &config) +{ + xavix2000_i2c_24c08(config); + m_maincpu->set_addrmap(6, &xavix_i2c_state::xavix_4mb_extbus_map); +} + + void xavix_i2c_state::xavix2000_i2c_24c04(machine_config &config) { xavix2000(config); @@ -251,6 +269,19 @@ void xavix_i2c_state::xavix2000_i2c_24c04(machine_config &config) I2C_24C04(config, "i2cmem", 0); } +void xavix_i2c_state::xavix2000_i2c_24c04_2mb(machine_config &config) +{ + xavix2000_i2c_24c04(config); + m_maincpu->set_addrmap(6, &xavix_i2c_state::xavix_2mb_extbus_map); +} + +void xavix_i2c_state::xavix2000_i2c_24c04_4mb(machine_config &config) +{ + xavix2000_i2c_24c04(config); + m_maincpu->set_addrmap(6, &xavix_i2c_state::xavix_4mb_extbus_map); +} + + void xavix_i2c_state::xavix2000_i2c_24c02(machine_config &config) { xavix2000(config); @@ -262,32 +293,32 @@ void xavix_i2c_state::xavix2000_i2c_24c02(machine_config &config) ROM_START( epo_sdb ) - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("superdashball.bin", 0x000000, 0x400000, CRC(a004a764) SHA1(47a96822d4d7d6a0f6be5cd729c3747dbab65979) ) ROM_END ROM_START( epo_ebox ) - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("exciteboxing.bin", 0x000000, 0x400000, CRC(e25ae4f5) SHA1(7f7b613f0ab8f43f5cad0d13de538921e77cae9c) ) ROM_END ROM_START( epo_bowl ) - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x200000, "bios", ROMREGION_ERASE00) ROM_LOAD("bowling.bin", 0x000000, 0x200000, CRC(d34f8d9e) SHA1(ebe3792172dc43904b9226beb27f1da89d2388cc) ) ROM_END ROM_START( epo_golf ) // GLFJ MAIN-03 - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("golf.bin", 0x000000, 0x400000, CRC(d1f231cf) SHA1(9421836a6bc4af9ee1fc7a402d62b2fb4dbcdefc) ) ROM_END ROM_START( epo_hamc ) // ET158 MB REV.0 - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD( "hamster.u1", 0x000000, 0x400000, CRC(b1177813) SHA1(ed01096ebb63b72267ad7e0b2115224bbab64011) ) ROM_END ROM_START( ban_omt ) // OMTJ MAIN-07 - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("otmj.bin", 0x000000, 0x400000, CRC(1c1dc6fb) SHA1(d0cf1345b765d66ca9a0870ee6d0e3ccd84a8c0b) ) ROM_END @@ -324,12 +355,12 @@ ROM_START( drgqst ) ROM_END ROM_START( epo_mini ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "bios", ROMREGION_ERASE00 ) ROM_LOAD( "minimoni.u1", 0x000000, 0x400000, CRC(2adb01ee) SHA1(987218b6799195ba15adf39885c1d177c381ec26) ) ROM_END ROM_START( tak_chq ) - ROM_REGION( 0x800000, "bios", ROMREGION_ERASE00 ) + ROM_REGION( 0x400000, "bios", ROMREGION_ERASE00 ) ROM_LOAD( "choroq.u2", 0x000000, 0x400000, CRC(ffd2eb95) SHA1(a30884da5554483ebfd0009cf5dd1768be8a99cb) ) ROM_END @@ -339,17 +370,17 @@ ROM_START( ban_onep ) ROM_END ROM_START( duelmast ) - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x200000, "bios", ROMREGION_ERASE00) ROM_LOAD("duelmasters.u4", 0x000000, 0x200000, CRC(2f11fcd7) SHA1(d8849c74833e77b8b309e845523f2cdc7ac68054) ) ROM_END ROM_START( tom_dpgm ) - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("disney.bin", 0x000000, 0x400000, CRC(1dc181b3) SHA1(fa30069d17705f27e4ff45e7f6ccf06986e138f3) ) ROM_END ROM_START( epo_es2j ) // ES2J MAIN-01 2005 date on PCB, 2006 ingame - ROM_REGION(0x800000, "bios", ROMREGION_ERASE00) + ROM_REGION(0x400000, "bios", ROMREGION_ERASE00) ROM_LOAD("es2j.u3", 0x000000, 0x400000, CRC(840aecb1) SHA1(ad52449ffc13af5f4c67b2c3cf438e7ecd80b9fb) ) ROM_END @@ -362,32 +393,32 @@ void xavix_i2c_lotr_state::init_epo_mini() // doesn't use extra opcodes? // K.O.しようぜ!エキサイトボクシング -CONS( 2002, epo_ebox, 0, 0, xavix2000_nv, epo_ebox, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Boxing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // doesn't use XaviX2000 extra opcodes, but had that type of CPU +CONS( 2002, epo_ebox, 0, 0, xavix2000_4mb_nv, epo_ebox, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Excite Boxing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // doesn't use XaviX2000 extra opcodes, but had that type of CPU // die not confirmed, but uses extra opcodes. (hangs on title screen due to combination of freq_timer_done nested interrupts tripping, and waiting on bits in input ports to change // ストライクきめるぜ! エキサイトボウリング -CONS( 2002, epo_bowl, 0, 0, xavix2000_i2c_24c04, epo_bowl, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Bowling (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2002, epo_bowl, 0, 0, xavix2000_i2c_24c04_2mb, epo_bowl, xavix_i2c_state, init_xavix, "Epoch / SSD Company LTD", "Excite Bowling (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // スーパーショット! エキサイトゴルフ // needs timer irq hack to boot, fails to draw main menu properly (buggy xavix2000 opcodes?) (2002 date on PCB, 2003 ingame) -CONS( 2003, epo_golf, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Epoch / SSD Company LTD", "Super Shot! Excite Golf (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2003, epo_golf, 0, 0, xavix2000_i2c_24c04_4mb, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Epoch / SSD Company LTD", "Super Shot! Excite Golf (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // とっとこハム太郎 ハムハム大サーカス! -CONS( 2002, epo_hamc, 0, 0, xavix2000, epo_hamc, xavix_epo_hamc_state, init_xavix, "Epoch / SSD Company LTD", "Tottoko Hamtaro - Ham Ham Dai Circus! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2002, epo_hamc, 0, 0, xavix2000_4mb, epo_hamc, xavix_epo_hamc_state, init_xavix, "Epoch / SSD Company LTD", "Tottoko Hamtaro - Ham Ham Dai Circus! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // ミニモニ。パーティ!リズムでぴょん! // needs timer irq hack to boot -CONS( 2003, epo_mini, 0, 0, xavix2000_i2c_24c08, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Epoch / SSD Company LTD", "mini-moni Party! Rhythm de Pyon! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2003, epo_mini, 0, 0, xavix2000_i2c_24c08_4mb, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Epoch / SSD Company LTD", "mini-moni Party! Rhythm de Pyon! (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // カードスキャン! エキサイトステージ サッカー日本代表チーム -CONS( 2006, epo_es2j, 0, 0, xavix2000, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Card Scan! Excite Stage Soccer Nippon Daihyou Team (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2006, epo_es2j, 0, 0, xavix2000_4mb, xavix, xavix_state, init_xavix, "Epoch / SSD Company LTD", "Card Scan! Excite Stage Soccer Nippon Daihyou Team (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // takes a long time to boot to a card scanner error // This is a product in the Duel Masters line called Duel Station; the boot up screen calls it Duel Station, title logo is Duel Masters // It also has a cartridge slot in addition to the card scanner and at least 1 ROM cartridge was produced "デュエルマスターズ デュエルステーション専用カートリッジ Ver.1" // デュエルステーション -CONS( 2003, duelmast, 0, 0, xavix2000_i2c_24c04, duelmast, xavix_duelmast_state, init_xavix, "Takara / SSD Company LTD", "Duel Masters: Duel Station (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2003, duelmast, 0, 0, xavix2000_i2c_24c04_2mb, duelmast, xavix_duelmast_state, init_xavix, "Takara / SSD Company LTD", "Duel Masters: Duel Station (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // スーパーダッシュボール CONS( 2004, epo_sdb, 0, 0, xavix2000_nv_sdb, epo_sdb, xavix_2000_nv_sdb_state, init_xavix, "Epoch / SSD Company LTD", "Super Dash Ball (Japan)", MACHINE_IMPERFECT_SOUND ) @@ -405,7 +436,7 @@ CONS( 2003, drgqst, 0, 0, xavix2000_i2c_24c08, ttv_lotr, xavix_i2c_lot // チョロQビュンビュンレーサー // crashes whenever a CPU car reaches a corner - see map -CONS( 2003, tak_chq, 0, 0, xavix2000_i2c_24c04, xavix_i2c, xavix_i2c_state, init_xavix, "Takara / SSD Company LTD", "Choro-Q Byun Byun Racer (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2003, tak_chq, 0, 0, xavix2000_i2c_24c04_4mb, xavix_i2c, xavix_i2c_state, init_xavix, "Takara / SSD Company LTD", "Choro-Q Byun Byun Racer (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // hangs after starting a game, check why // Let’s!TV プレイ 体感格闘ワンピースパンチバトル  ~海賊王にキミがなる!~ @@ -413,7 +444,7 @@ CONS( 2004, ban_onep, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_sta // Let’s!TV プレイ 闘印奥義  陰陽大戦記~目指せ最強闘神士~ // stalls unless timers are disabled like epo_mini / epo_golf, 2004 date on PCB, 2005 ingame -CONS( 2005, ban_omt, 0, 0, xavix2000_i2c_24c04, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Bandai / SSD Company LTD", "Let's! TV Play Touin Ougi Onmyou Taisenki: Mezase Saikyou Toushinshi (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2005, ban_omt, 0, 0, xavix2000_i2c_24c04_4mb, ttv_lotr, xavix_i2c_lotr_state, init_epo_mini, "Bandai / SSD Company LTD", "Let's! TV Play Touin Ougi Onmyou Taisenki: Mezase Saikyou Toushinshi (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // ディズニープリンセス キラキラ魔法のレッスン -CONS( 2004, tom_dpgm, 0, 0, xavix2000_i2c_24c08, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tomy / SSD Company LTD", "Disney Princess Kirakira Mahou no Lesson (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) +CONS( 2004, tom_dpgm, 0, 0, xavix2000_i2c_24c08_4mb, ttv_lotr, xavix_i2c_lotr_state, init_xavix, "Tomy / SSD Company LTD", "Disney Princess Kirakira Mahou no Lesson (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )