From 883af3f660aaa12f960064b7f7c495ac5b5e8ee1 Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Thu, 23 Nov 2023 10:35:24 +0100 Subject: Added the dump of the psr540 external roms. There are (at least) two internal roms, one in the sh2 and one in the 63b05. There may be one in the sxw00. New NOT_WORKING machines ---------------------------------- Yamaha PSR 540 [O. Galibert] --- src/mame/mame.lst | 3 ++ src/mame/yamaha/ympsr540.cpp | 69 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/mame/yamaha/ympsr540.cpp diff --git a/src/mame/mame.lst b/src/mame/mame.lst index c76dc0545e4..249ec84bf0a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -45866,6 +45866,9 @@ psr340 // 1999 PSR-340 @source:yamaha/ympsr400.cpp psr500 // 1991 PSR-500 +@source:yamaha/ympsr540.cpp +psr540 // 1999 PSR-540 + @source:yamaha/ymqy70.cpp qy70 // 1997 QY-70 diff --git a/src/mame/yamaha/ympsr540.cpp b/src/mame/yamaha/ympsr540.cpp new file mode 100644 index 00000000000..a6d94b202db --- /dev/null +++ b/src/mame/yamaha/ympsr540.cpp @@ -0,0 +1,69 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert + +#include "bus/midi/midiinport.h" +#include "bus/midi/midioutport.h" +#include "cpu/sh/sh7014.h" + +#include "debugger.h" +#include "speaker.h" + +class psr540_state : public driver_device { +public: + psr540_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_boot(*this, "boot") + { } + + void psr540(machine_config &config); + +private: + required_device m_maincpu; + required_shared_ptr m_boot; + + void map(address_map &map); + + void machine_start() override; +}; + +void psr540_state::machine_start() +{ + m_boot[0] = 0x1000; + m_boot[0x400] = 0xdf03d004; + m_boot[0x401] = 0x400b0009; + m_boot[0x402] = 0xaffe0009; + m_boot[0x404] = 0x01400000; + m_boot[0x405] = 0x4d9010; + m_boot[0x499c/4] = 0x000b0009; +} + +void psr540_state::psr540(machine_config &config) +{ + SH2_SH7014(config, m_maincpu, 7_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &psr540_state::map); + + SPEAKER(config, "lspeaker").front_left(); + SPEAKER(config, "rspeaker").front_right(); +} + +void psr540_state::map(address_map &map) +{ + map(0x0000000, 0x003ffff).ram().share(m_boot).unmapw(); + map(0x0400000, 0x07fffff).rom().region("program_rom", 0); + map(0x1000000, 0x13fffff).ram(); // dram +} + +static INPUT_PORTS_START( psr540 ) +INPUT_PORTS_END + +ROM_START( psr540 ) + ROM_REGION32_BE( 0x400000, "program_rom", 0 ) + ROM_LOAD16_WORD_SWAP( "xw25320.ic310", 0, 0x400000, CRC(e8d29e49) SHA1(079e0ccf6cf5d5bd2d2d82076b09dd702fcd1421)) + + ROM_REGION16_LE( 0x600000, "swx00", 0) + ROM_LOAD16_WORD_SWAP( "xw25320.ic310", 0, 0x400000, CRC(c7c4736d) SHA1(ff1052eb076557071ed8652e6c2fc0925144fbd5)) + ROM_LOAD16_WORD_SWAP( "xw25320.ic310", 0, 0x200000, CRC(9ef56c4e) SHA1(f26b588f9bcfd7bdbf1c0b38e4a1ea57e2f29f10)) +ROM_END + +SYST( 1999, psr540, 0, 0, psr540, psr540, psr540_state, empty_init, "Yamaha", "PSR540", MACHINE_IS_SKELETON ) -- cgit v1.2.3