Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Robbbert committed Oct 4, 2024
2 parents f4f0c89 + 7155457 commit cd16f73
Show file tree
Hide file tree
Showing 38 changed files with 3,451 additions and 413 deletions.
20 changes: 20 additions & 0 deletions hash/lnux4004.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
license:CC0-1.0
-->

<softwarelist name="lnux4004" description="Linux/4004 SD Card images">

<software name="linux">
<description>Debian GNU/Linux 7 (Linux uMIPS 4.4.292+)</description>
<year>2024</year>
<publisher>Dmitry Grinberg</publisher>
<part name="linux4004" interface="sdcard">
<diskarea name="harddriv">
<disk name="linux4004" sha1="6458018636d21845c95e1076b81c615e16a97975" writeable="yes" />
</diskarea>
</part>
</software>

</softwarelist>
16 changes: 11 additions & 5 deletions hash/pc98.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21057,11 +21057,11 @@ Missing [7220] text selector for choices
<year>1992</year>
<publisher>M.N.M.ソフトウェア (M.N.M. Software)</publisher>
<notes><![CDATA[
Hangs on "Welcome to world of Mick Albart" message, [FDC] copy protection?
Has a seizure when entering gameplay
Non-functional in gameplay, random tileset
]]></notes>
<info name="alt_title" value="ゲイジ" />
<info name="release" value="19920925" />
<info name="usage" value="On first run boot user maker and a writable blank disk then follow instructions" />
<part name="flop1" interface="floppy_5_25">
<feature name="part_id" value="Game"/>
<dataarea name="flop" size="1281968">
Expand Down Expand Up @@ -23586,11 +23586,14 @@ TODO: to install to HDD should be "INST1.BAT B: A:<folder>" but it fails recogni
</part>
</software>

<!-- Doesn't recognize disk on disk swap prompt (even if game is actually installed on HDD) -->
<software name="headqrt" supported="no">
<description>Headquarters - America no Akumu</description>
<year>1994</year>
<publisher>アルゴラボ 算法研究所 (Algolab)</publisher>
<notes><![CDATA[
Installs fine but then asks for disk inserted in-game, fails to identify (copy protection?)
Draws garbage GVRAM during install (verify)
]]></notes>
<info name="alt_title" value="ヘッドクォーターズ アメリカの悪夢" />
<info name="release" value="19940520" />
<part name="flop1" interface="floppy_5_25">
Expand Down Expand Up @@ -41281,6 +41284,9 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt
<description>Space Invaders</description>
<year>1992</year>
<publisher>ウィズ (Wiz)</publisher>
<notes><![CDATA[
OPN channel 1 keeps repeating on deaths (verify)
]]></notes>
<info name="alt_title" value="スペースインベーダー" />
<info name="release" value="19920131" />
<part name="flop1" interface="floppy_5_25">
Expand Down Expand Up @@ -41383,7 +41389,6 @@ Cannot install, gets stuck at "please insert disk and press mouse" prompt
<software name="spcstage">
<description>Special Stage - Paris-Dakar Sabaku no Shissou</description>
<year>1992</year>
<!-- Takeru alt label? -->
<publisher>アレックス (Allex)</publisher>
<info name="alt_title" value="スペシャルステージ ~パリダカール砂漠の疾走~" />
<info name="release" value="19920330" />
Expand Down Expand Up @@ -53763,12 +53768,13 @@ Hangs after name entry with illegal opcode 0f 0e at PC=FF2C3
</part>
</software>

<software name="molemole" supported="no">
<software name="molemole" supported="yes">
<description>Mole Mole</description>
<year>1985</year>
<publisher>クロスメディアソフト (Cross Media Soft)</publisher>
<info name="alt_title" value="モールモール" />
<info name="release" value="198508xx" />
<info name="usage" value="Requires a vanilla or VM class with 2HD floppy drive" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1089808">
<rom name="mole.nfd" size="1089808" crc="e555b848" sha1="8123c7e10f7e77d7ea1d2e0d6e6d8349833bd0b0" offset="0" />
Expand Down
4 changes: 4 additions & 0 deletions hash/to_flop.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
license:CC0-1.0

Thanks to DCMOTO (http://dcmoto.free.fr) for info!

FIXME: Many of these images should be 5.25" rather than 3.5". (The old custom Thomson floppy emulation didn't care about form factor.)
TODO: SAP format is not currently supported.
TBD: Which images are compatible with which systems?
-->
<softwarelist name="to_flop" description="Thomson TO-series floppy disks">

Expand Down
2 changes: 2 additions & 0 deletions scripts/src/bus.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4844,6 +4844,8 @@ if (BUSES["SPECTRUM"]~=null) then
MAME_DIR .. "src/devices/bus/spectrum/mikroplus.h",
MAME_DIR .. "src/devices/bus/spectrum/mpoker.cpp",
MAME_DIR .. "src/devices/bus/spectrum/mpoker.h",
MAME_DIR .. "src/devices/bus/spectrum/musicmachine.cpp",
MAME_DIR .. "src/devices/bus/spectrum/musicmachine.h",
MAME_DIR .. "src/devices/bus/spectrum/opus.cpp",
MAME_DIR .. "src/devices/bus/spectrum/opus.h",
MAME_DIR .. "src/devices/bus/spectrum/plus2test.cpp",
Expand Down
23 changes: 23 additions & 0 deletions scripts/src/machine.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3320,6 +3320,17 @@ if (MACHINES["SAA5070"]~=null) then
}
end

---------------------------------------------------
--
--@src/devices/machine/sc16is741.h,MACHINES["SC16IS741"] = true
---------------------------------------------------
if (MACHINES["SC16IS741"]~=null) then
files {
MAME_DIR .. "src/devices/machine/sc16is741.cpp",
MAME_DIR .. "src/devices/machine/sc16is741.h",
}
end

---------------------------------------------------
--
--@src/devices/machine/scc66470.h,MACHINES["SCC66470"] = true
Expand Down Expand Up @@ -4474,6 +4485,18 @@ if (MACHINES["PC87306"]~=null) then
}
end

---------------------------------------------------
--
--@src/devices/machine/pc97338.h,MACHINES["PC97338"] = true
---------------------------------------------------

if (MACHINES["PC97338"]~=null) then
files {
MAME_DIR .. "src/devices/machine/pc97338.cpp",
MAME_DIR .. "src/devices/machine/pc97338.h",
}
end

---------------------------------------------------
--
--@src/devices/machine/w83787f.h,MACHINES["W83787F"] = true
Expand Down
4 changes: 2 additions & 2 deletions src/devices/bus/cpc/musicmachine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// copyright-holders:Barry Rodewald
/*
* The Music Machine - MIDI and sampling expansion
* by Ram Electronics
* by Ram Electronics Ltd
*/

#include "emu.h"
Expand All @@ -16,7 +16,7 @@
// DEVICE DEFINITIONS
//**************************************************************************

DEFINE_DEVICE_TYPE(CPC_MUSICMACHINE, cpc_musicmachine_device, "cpcmusic", "The Music Machine")
DEFINE_DEVICE_TYPE(CPC_MUSICMACHINE, cpc_musicmachine_device, "cpcmusic", "The Music Machine (CPC)")


void cpc_musicmachine_device::device_add_mconfig(machine_config &config)
Expand Down
4 changes: 4 additions & 0 deletions src/devices/bus/spectrum/exp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@ void spectrum_expansion_slot_device::mreq_w(offs_t offset, uint8_t data)
#include "mgt.h"
#include "mikroplus.h"
#include "mpoker.h"
#include "musicmachine.h"
#include "opus.h"
#include "plus2test.h"
#include "protek.h"
Expand Down Expand Up @@ -215,6 +216,7 @@ void spectrum_expansion_devices(device_slot_interface &device)
device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
device.option_add("mpoker", SPECTRUM_MPOKER);
device.option_add("mprint", SPECTRUM_MPRINT);
device.option_add("musicmachine", SPECTRUM_MUSICMACHINE);
device.option_add("opus", SPECTRUM_OPUS);
device.option_add("plusd", SPECTRUM_PLUSD);
device.option_add("proceed", SPECTRUM_PROCEED);
Expand Down Expand Up @@ -244,6 +246,7 @@ void spec128_expansion_devices(device_slot_interface &device)
device.option_add("mface128", SPECTRUM_MFACE128);
device.option_add("mikroplus", SPECTRUM_MIKROPLUS);
device.option_add("mprint", SPECTRUM_MPRINT);
device.option_add("musicmachine", SPECTRUM_MUSICMACHINE);
device.option_add("opus", SPECTRUM_OPUS);
device.option_add("plusd", SPECTRUM_PLUSD);
device.option_add("plus2test", SPECTRUM_PLUS2TEST);
Expand All @@ -259,5 +262,6 @@ void specpls3_expansion_devices(device_slot_interface &device)
{
device.option_add("kempjoy", SPECTRUM_KEMPJOY);
device.option_add("mface3", SPECTRUM_MFACE3);
device.option_add("musicmachine", SPECTRUM_MUSICMACHINE);
}

149 changes: 149 additions & 0 deletions src/devices/bus/spectrum/musicmachine.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
// license:BSD-3-Clause
// copyright-holders:Andrei I. Holub
/*
* The Music Machine - MIDI and sampling expansion
* by Ram Electronics Ltd
*/

#include "emu.h"
#include "musicmachine.h"

#include "bus/midi/midi.h"
#include "machine/6850acia.h"
#include "machine/clock.h"
#include "sound/dac.h"

#include "speaker.h"


namespace {

class spectrum_musicmachine_device : public device_t, public device_spectrum_expansion_interface
{
public:
// construction/destruction
spectrum_musicmachine_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);

void write_acia_clock(u8 data);

protected:
// device_t implementation
virtual void device_start() override ATTR_COLD;
virtual void device_reset() override ATTR_COLD;
virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;

// device_spectrum_expansion_interface implementation
virtual u8 iorq_r(offs_t offset) override;
virtual void iorq_w(offs_t offset, u8 data) override;

private:
required_device<acia6850_device> m_acia;
required_device<dac_byte_interface> m_dac;

bool m_irq_select;
};


void spectrum_musicmachine_device::device_add_mconfig(machine_config &config)
{
ACIA6850(config, m_acia).txd_handler().set("mdout", FUNC(midi_port_device::write_txd));
m_acia->irq_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::nmi_w));
MIDI_PORT(config, "mdin", midiin_slot, "midiin").rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd));
MIDI_PORT(config, "mdout", midiout_slot, "midiout");
clock_device &acia_clock(CLOCK(config, "acia_clock", 31250*16));
acia_clock.signal_handler().set(FUNC(spectrum_musicmachine_device::write_acia_clock));

SPEAKER(config, "speaker").front_center();
ZN429E(config, m_dac, 0).add_route(ALL_OUTPUTS, "speaker", 0.2);
}


//**************************************************************************
// LIVE DEVICE
//**************************************************************************

spectrum_musicmachine_device::spectrum_musicmachine_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
device_t(mconfig, SPECTRUM_MUSICMACHINE, tag, owner, clock)
, device_spectrum_expansion_interface(mconfig, *this)
, m_acia(*this,"acia")
, m_dac(*this,"dac")
{
}

//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------

void spectrum_musicmachine_device::device_start()
{
save_item(NAME(m_irq_select));
}

//-------------------------------------------------
// device_reset - device-specific reset
//-------------------------------------------------

void spectrum_musicmachine_device::device_reset()
{
m_irq_select = false;
}

void spectrum_musicmachine_device::write_acia_clock(u8 data)
{
m_acia->write_txc(data);
m_acia->write_rxc(data);
}

u8 spectrum_musicmachine_device::iorq_r(offs_t offset)
{
u8 data = (offset & 1) ? m_slot->fb_r() : 0xff;

switch (offset & 0xff)
{
case 0x7f:
if ((offset & 0x3ff) == 0x27f)
data = m_acia->status_r();
else if ((offset & 0x3ff) == 0x37f)
data = m_acia->data_r();
break;
case 0xbf:
// TODO ADC_READ
break;
case 0xdf:
// TODO Strobe: ADC_START
break;
}

return data;
}

void spectrum_musicmachine_device::iorq_w(offs_t offset, u8 data)
{
switch (offset & 0xff)
{
case 0x5f:
m_irq_select = data & 1;
break;
case 0x7f:
if ((offset & 0x3ff) == 0x07f)
m_acia->control_w(data);
else if ((offset & 0x3ff) == 0x17f)
m_acia->data_w(data);
break;
case 0x9f:
m_dac->write(data);
break;
case 0xdf:
// TODO Strobe: ADC_START
break;
}
}

} // anonymous namespace


//**************************************************************************
// DEVICE DEFINITIONS
//**************************************************************************

DEFINE_DEVICE_TYPE_PRIVATE(SPECTRUM_MUSICMACHINE, device_spectrum_expansion_interface, spectrum_musicmachine_device, "spectrummusic", "The Music Machine (ZX)")
20 changes: 20 additions & 0 deletions src/devices/bus/spectrum/musicmachine.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*
* The Music Machine - MIDI and sampling expansion
* by Ram Electronics
*
* Contains a 6850 AICA, Ferranti ZN429E8 DAC and ZN449 ADC
*/

#ifndef MAME_BUS_SPECTRUM_MUSICMACHINE_H
#define MAME_BUS_SPECTRUM_MUSICMACHINE_H

#pragma once

#include "exp.h"


DECLARE_DEVICE_TYPE(SPECTRUM_MUSICMACHINE, device_spectrum_expansion_interface)

#endif // MAME_BUS_SPECTRUM_MUSICMACHINE_H
Loading

0 comments on commit cd16f73

Please sign in to comment.