From 142f8b0030f34613e159dd7c93188e0160667877 Mon Sep 17 00:00:00 2001 From: yz70s Date: Sat, 18 Jan 2020 14:01:21 +0100 Subject: naomi: enable reset from dimm board and make games boot (nw) To test set the constant work_mode in naomigd.h to 1 --- src/mame/drivers/naomi.cpp | 13 +++++++++++++ src/mame/includes/naomi.h | 1 + src/mame/machine/naomigd.cpp | 8 ++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp index a1534f0771f..2a463844f5d 100644 --- a/src/mame/drivers/naomi.cpp +++ b/src/mame/drivers/naomi.cpp @@ -2922,6 +2922,17 @@ MACHINE_RESET_MEMBER(naomi_state,naomi) naomi_state::machine_reset(); } +WRITE_LINE_MEMBER(naomi_state::external_reset) +{ + // routine called by the dimm board to reboot the naomi mainboard + logerror("Received reset fromm dimm board !\n"); + naomi_state::machine_reset(); + m_maincpu->reset(); + // it will probably need to be adjusted + m_aica->reset(); + m_soundcpu->reset(); +} + /* * Common for Naomi 1, Naomi GD-Rom, Naomi 2, Atomiswave ... */ @@ -3012,6 +3023,7 @@ void naomi_state::naomi(machine_config &config) naomi_rom_board &rom_board(NAOMI_ROM_BOARD(config, "rom_board", 0, "naomibd_eeprom")); rom_board.irq_callback().set(FUNC(dc_state::g1_irq)); rom_board.ext_irq_callback().set(FUNC(dc_state::external_irq)); + rom_board.reset_out_callback().set(FUNC(naomi_state::external_reset)); } /* @@ -3024,6 +3036,7 @@ void naomi_state::naomigd(machine_config &config) naomi_gdrom_board &rom_board(NAOMI_GDROM_BOARD(config, "rom_board", 0, "naomibd_eeprom", ":gdrom", "pic")); rom_board.irq_callback().set(FUNC(dc_state::g1_irq)); rom_board.ext_irq_callback().set(FUNC(dc_state::external_irq)); + rom_board.reset_out_callback().set(FUNC(naomi_state::external_reset)); } /* diff --git a/src/mame/includes/naomi.h b/src/mame/includes/naomi.h index 11160f45f98..9c6a3173851 100644 --- a/src/mame/includes/naomi.h +++ b/src/mame/includes/naomi.h @@ -79,6 +79,7 @@ protected: optional_ioport_array<5> m_mp; DECLARE_MACHINE_RESET(naomi); + DECLARE_WRITE_LINE_MEMBER(external_reset); DECLARE_READ16_MEMBER( naomi_g2bus_r ); DECLARE_READ64_MEMBER( eeprom_93c46a_r ); diff --git a/src/mame/machine/naomigd.cpp b/src/mame/machine/naomigd.cpp index afa5e54fda7..9468b4edcc8 100644 --- a/src/mame/machine/naomigd.cpp +++ b/src/mame/machine/naomigd.cpp @@ -1070,10 +1070,10 @@ ROM_START( dimm ) // dynamically filled with data ROM_REGION(0x1000, "pic", ROMREGION_ERASE00) - ROM_REGION(0x100, "i2c_0", ROMREGION_ERASE00) - ROM_LOAD("dimmspd.bin", 0x00, 0x100, CRC(ad3bf001) SHA1(462290324b02ae87416381e24491319f35033ae3)) - ROM_REGION(0x100, "i2c_1", ROMREGION_ERASE00) - ROM_LOAD("dimmspd.bin", 0x00, 0x100, CRC(ad3bf001) SHA1(462290324b02ae87416381e24491319f35033ae3)) + ROM_REGION(0x80, "i2c_0", ROMREGION_ERASE00) + ROM_LOAD("dimmspd.bin", 0x00, 0x80, CRC(45dac6d7) SHA1(4548675f8d31348fa6828d5b4f247af1f072b62d)) + ROM_REGION(0x80, "i2c_1", ROMREGION_ERASE00) + ROM_LOAD("dimmspd.bin", 0x00, 0x80, CRC(45dac6d7) SHA1(4548675f8d31348fa6828d5b4f247af1f072b62d)) ROM_REGION(0x80, "eeprom", ROMREGION_ERASE00) ROM_LOAD("93c46.bin", 0x00, 0x80, CRC(daafbccd) SHA1(1e39983779a62ebc6801ec6f2a5138717a7a5259)) ROM_END -- cgit v1.2.3