mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
hitachi/bml3.cpp: fix IG RAM debug display, hookup cassette SW list
New working software list items ------------------------------- bml3_cass: BM Tetris [Anna Wu]
This commit is contained in:
parent
5c6b4fbd57
commit
5a081e8579
2 changed files with 33 additions and 6 deletions
23
hash/bml3_cass.xml
Normal file
23
hash/bml3_cass.xml
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
license:CC0-1.0
|
||||
-->
|
||||
<softwarelist name="bml3_cass" description="Hitachi Basic Master Level 3 cassettes">
|
||||
|
||||
<software name="bmtetris" supported="yes">
|
||||
<description>BM Tetris</description>
|
||||
<year>1990</year>
|
||||
<publisher>Sakn Soft</publisher>
|
||||
<notes><![CDATA[
|
||||
Runs at 30 Hz in-game (verify, interlace?)
|
||||
]]></notes>
|
||||
<info name="usage" value="LOAD, press play on tape then RUN. Requires bml3mk5 (uses IG)." />
|
||||
<part name="cass" interface="bml3_cass">
|
||||
<dataarea name="cass" size="5106615">
|
||||
<!-- NOTE: the original .wav won't mount on MAME, this .flac does -->
|
||||
<rom name="tetris_all.flac" size="5106615" crc="696ce3a4" sha1="ba94ad716c7ecbf4434b67e1b79cd0e1012caecb"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
</softwarelist>
|
|
@ -38,9 +38,10 @@ TODO:
|
|||
#include "sound/spkrdev.h"
|
||||
#include "sound/ymopn.h"
|
||||
#include "video/mc6845.h"
|
||||
#include "emupal.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "softlist_dev.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
|
@ -223,7 +224,7 @@ protected:
|
|||
virtual u8 get_attr_mask() override { return 0x3f; }
|
||||
virtual u8 get_ig_mode(u8 attr) override { return BIT(attr, 5); }
|
||||
// NOTE: if IG attribute is enabled then the rest of attribute byte is ignored (no reverse etc.).
|
||||
// TODO: if IGMODREG is 1 then the resulting tile will be a white square
|
||||
// TODO: if IGMODREG is 1 then the resulting tile will be a white square
|
||||
virtual u8 get_ig_dots(u8 tile, u8 ra, u8 xi) override {
|
||||
u16 base_offset = tile << 3;
|
||||
u8 res = 0;
|
||||
|
@ -603,7 +604,7 @@ void bml3mk5_state::ig_ram_w(offs_t offset, u8 data)
|
|||
if (BIT(m_igen, i))
|
||||
m_ig_ram[offset + 0x800 * i] = data;
|
||||
}
|
||||
m_gfxdecode->gfx(0)->mark_dirty(offset / 8);
|
||||
m_gfxdecode->gfx(0)->mark_dirty(offset >> 3);
|
||||
}
|
||||
|
||||
void bml3mk5_state::main_map(address_map &map)
|
||||
|
@ -1015,16 +1016,16 @@ TIMER_DEVICE_CALLBACK_MEMBER( bml3_state::kansas_w )
|
|||
static const gfx_layout ig_charlayout =
|
||||
{
|
||||
8, 8,
|
||||
RGN_FRAC(1,3),
|
||||
0x100,
|
||||
3,
|
||||
{ RGN_FRAC(0, 3), RGN_FRAC(1, 3), RGN_FRAC(2, 3) },
|
||||
{ 0x1000*8, 0x800*8, 0 },
|
||||
{ STEP8(0, 1) },
|
||||
{ STEP8(0, 8) },
|
||||
8*8
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_bml3mk5 )
|
||||
GFXDECODE_ENTRY( nullptr, 0x1800, ig_charlayout, 0, 1 )
|
||||
GFXDECODE_ENTRY( nullptr, 0, ig_charlayout, 0, 1 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
|
@ -1065,6 +1066,7 @@ void bml3_state::bml3(machine_config &config)
|
|||
CASSETTE(config, m_cassette);
|
||||
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_ENABLED);
|
||||
m_cassette->add_route(ALL_OUTPUTS, "mono", 0.05);
|
||||
m_cassette->set_interface("bml3_cass");
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_refresh_hz(60);
|
||||
|
@ -1102,6 +1104,8 @@ void bml3_state::bml3(machine_config &config)
|
|||
BML3BUS_SLOT(config, "sl5", m_bml3bus, bml3_cards, nullptr);
|
||||
BML3BUS_SLOT(config, "sl6", m_bml3bus, bml3_cards, "kanji");
|
||||
|
||||
SOFTWARE_LIST(config, "cass_list").set_original("bml3_cass");
|
||||
|
||||
#if 0
|
||||
// TODO: slot device for sound card
|
||||
// audio
|
||||
|
|
Loading…
Reference in a new issue