naomi: enable reset from dimm board and make games boot (nw)

To test set the constant work_mode in naomigd.h to 1
This commit is contained in:
yz70s 2020-01-18 14:01:21 +01:00
parent df8185b8e7
commit 142f8b0030
3 changed files with 18 additions and 4 deletions

View File

@ -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));
}
/*

View File

@ -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 );

View File

@ -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