New NOT_WORKING software list additions

---------------------------------------
msx1+cart: Easi-Speech [hap]
This commit is contained in:
hap 2021-07-23 18:59:52 +02:00
parent 5e96746f9e
commit b8974ddcba
5 changed files with 111 additions and 0 deletions

View File

@ -13007,6 +13007,18 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="espeech" supported="no">
<description>Easi-Speech</description>
<year>1987</year>
<publisher>R.Amy</publisher>
<part name="cart" interface="msx_cart">
<feature name="slot" value="easispeech" />
<dataarea name="rom" size="8192">
<rom name="easi-speech.rom" size="8192" crc="7b00670c" sha1="5a1a91cbba1790461def230d22503ec2c4719cc1" offset="0" />
</dataarea>
</part>
</software>
<software name="falc">
<description>Family Automation Language Community (Jpn)</description>
<year>1984</year>

View File

@ -1692,6 +1692,8 @@ if (BUSES["MSX_SLOT"]~=null) then
MAME_DIR .. "src/devices/bus/msx_cart/disk.h",
MAME_DIR .. "src/devices/bus/msx_cart/dooly.cpp",
MAME_DIR .. "src/devices/bus/msx_cart/dooly.h",
MAME_DIR .. "src/devices/bus/msx_cart/easi_speech.cpp",
MAME_DIR .. "src/devices/bus/msx_cart/easi_speech.h",
MAME_DIR .. "src/devices/bus/msx_cart/fmpac.cpp",
MAME_DIR .. "src/devices/bus/msx_cart/fmpac.h",
MAME_DIR .. "src/devices/bus/msx_cart/fs_sr022.cpp",

View File

@ -9,6 +9,7 @@
#include "crossblaim.h"
#include "disk.h"
#include "dooly.h"
#include "easi_speech.h"
#include "fmpac.h"
#include "fs_sr022.h"
#include "halnote.h"
@ -47,6 +48,7 @@ void msx_cart(device_slot_interface &device)
device.option_add_internal("fs_sr022", MSX_CART_FS_SR022);
device.option_add_internal("superloderunner", MSX_CART_SUPERLODERUNNER);
device.option_add_internal("synthesizer", MSX_CART_SYNTHESIZER);
device.option_add_internal("easispeech", MSX_CART_EASISPEECH);
device.option_add_internal("cross_blaim", MSX_CART_CROSSBLAIM);
device.option_add_internal("korean_80in1", MSX_CART_KOREAN_80IN1);
device.option_add_internal("korean_90in1", MSX_CART_KOREAN_90IN1);

View File

@ -0,0 +1,62 @@
// license:BSD-3-Clause
// copyright-holders:hap
/******************************************************************************
Easi-Speech cartridge (R.Amy, 1987)
The program adds a hook to 0xfd29, usage appears to be something like this:
defusr0=&hfd29
x=usr0("hello")
TODO:
- Speech doesn't work. At boot, it's supposed to say "M S X easy speech".
Maybe ald_w data is scrambled a bit? The expected usage in notes above
also does not work.
******************************************************************************/
#include "emu.h"
#include "easi_speech.h"
DEFINE_DEVICE_TYPE(MSX_CART_EASISPEECH, msx_cart_easispeech_device, "msx_cart_easispeech", "MSX Cartridge - Easi-Speech")
msx_cart_easispeech_device::msx_cart_easispeech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, MSX_CART_EASISPEECH, tag, owner, clock)
, msx_cart_interface(mconfig, *this)
, m_speech(*this, "speech")
{
}
ROM_START( msx_cart_easispeech )
ROM_REGION( 0x10000, "speech", 0 )
ROM_LOAD( "sp0256a-al2", 0x1000, 0x0800, CRC(b504ac15) SHA1(e60fcb5fa16ff3f3b69d36c7a6e955744d3feafc) )
ROM_END
const tiny_rom_entry *msx_cart_easispeech_device::device_rom_region() const
{
return ROM_NAME( msx_cart_easispeech );
}
void msx_cart_easispeech_device::device_add_mconfig(machine_config &config)
{
SP0256(config, m_speech, 3120000); // frequency unknown
m_speech->add_route(ALL_OUTPUTS, ":speaker", 1.00);
}
uint8_t msx_cart_easispeech_device::read_cart(offs_t offset)
{
if (offset >= 0x4000 && offset < 0x8000)
return get_rom_base()[offset & 0x1fff];
if (offset >= 0x8000 && offset < 0xc000)
return m_speech->lrq_r() << 7;
return 0xff;
}
void msx_cart_easispeech_device::write_cart(offs_t offset, uint8_t data)
{
if (offset >= 0x8000 && offset < 0xc000)
m_speech->ald_w(data >> 2);
}

View File

@ -0,0 +1,33 @@
// license:BSD-3-Clause
// copyright-holders:hap
#ifndef MAME_BUS_MSX_CART_EASISPEECH_H
#define MAME_BUS_MSX_CART_EASISPEECH_H
#pragma once
#include "bus/msx_cart/cartridge.h"
#include "sound/sp0256.h"
DECLARE_DEVICE_TYPE(MSX_CART_EASISPEECH, msx_cart_easispeech_device)
class msx_cart_easispeech_device : public device_t, public msx_cart_interface
{
public:
msx_cart_easispeech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual uint8_t read_cart(offs_t offset) override;
virtual void write_cart(offs_t offset, uint8_t data) override;
protected:
// device-level overrides
virtual void device_start() override { ; }
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
private:
required_device<sp0256_device> m_speech;
};
#endif // MAME_BUS_MSX_CART_EASISPEECH_H