diff options
| author | 2023-11-23 10:35:24 +0100 | |
|---|---|---|
| committer | 2023-11-23 10:35:24 +0100 | |
| commit | 883af3f660aaa12f960064b7f7c495ac5b5e8ee1 (patch) | |
| tree | 9741b022157661aae0d9852757a6ec4961f4416a /src | |
| parent | 1e3785e3a123c86f135149120cc02b91ee9596ff (diff) | |
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]
Diffstat (limited to 'src')
| -rw-r--r-- | src/mame/mame.lst | 3 | ||||
| -rw-r--r-- | src/mame/yamaha/ympsr540.cpp | 69 |
2 files changed, 72 insertions, 0 deletions
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<sh2_device> m_maincpu; + required_shared_ptr<u32> 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 ) |
