Software list items promoted to working

---------------------------------------
msx1_cart: Easi-Speech [hap]
This commit is contained in:
hap 2022-09-13 19:09:33 +02:00
parent 933f60e452
commit c827d7542a
2 changed files with 6 additions and 11 deletions

View File

@ -13007,7 +13007,7 @@ kept for now until finding out what those bytes affect...
</part>
</software>
<software name="espeech" supported="no">
<software name="espeech">
<description>Easi-Speech</description>
<year>1987</year>
<publisher>R.Amy</publisher>

View File

@ -6,12 +6,7 @@ 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.
a$=usr0("hello")
******************************************************************************/
@ -47,9 +42,9 @@ void msx_cart_easispeech_device::device_add_mconfig(machine_config &config)
uint8_t msx_cart_easispeech_device::read_cart(offs_t offset)
{
if (offset >= 0x4000 && offset < 0x8000)
if (offset >= 0x4000 && offset < 0x6000)
return get_rom_base()[offset & 0x1fff];
if (offset >= 0x8000 && offset < 0xc000)
if (offset >= 0x8000 && offset < 0xa000)
return m_speech->lrq_r() << 7;
return 0xff;
@ -57,6 +52,6 @@ uint8_t msx_cart_easispeech_device::read_cart(offs_t offset)
void msx_cart_easispeech_device::write_cart(offs_t offset, uint8_t data)
{
if (offset >= 0x8000 && offset < 0xc000)
m_speech->ald_w(data >> 2);
if (offset >= 0x8000 && offset < 0xa000)
m_speech->ald_w(bitswap<6>(data,3,5,7,6,4,2));
}