mirror of
https://github.com/holub/mame
synced 2025-04-25 01:40:16 +03:00
mpc3000: main screen turn on (nw)
This commit is contained in:
parent
5ed6731658
commit
bc54aab8bc
@ -56,9 +56,11 @@
|
||||
#include "emu.h"
|
||||
#include "cpu/nec/v53.h"
|
||||
#include "sound/l7a1045_l6028_dsp_a.h"
|
||||
#include "video/hd61830.h"
|
||||
#include "bus/midi/midi.h"
|
||||
#include "speaker.h"
|
||||
#include "screen.h"
|
||||
#include "emupal.h"
|
||||
|
||||
class mpc3000_state : public driver_device
|
||||
{
|
||||
@ -66,6 +68,7 @@ public:
|
||||
mpc3000_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_lcdc(*this, "lcdc")
|
||||
, m_dsp(*this, "dsp")
|
||||
, m_mdout(*this, "mdout")
|
||||
{ }
|
||||
@ -76,6 +79,7 @@ public:
|
||||
|
||||
private:
|
||||
required_device<v53_base_device> m_maincpu;
|
||||
required_device<hd61830_device> m_lcdc;
|
||||
required_device<l7a1045_sound_device> m_dsp;
|
||||
required_device<midi_port_device> m_mdout;
|
||||
|
||||
@ -88,10 +92,7 @@ private:
|
||||
DECLARE_READ16_MEMBER(dsp_0008_hack_r);
|
||||
DECLARE_WRITE16_MEMBER(dsp_0008_hack_w);
|
||||
DECLARE_READ8_MEMBER(dma_memr_cb);
|
||||
DECLARE_WRITE8_MEMBER(lcd_w)
|
||||
{
|
||||
printf("%c", data);
|
||||
}
|
||||
DECLARE_PALETTE_INIT(mpc3000);
|
||||
};
|
||||
|
||||
void mpc3000_state::machine_start()
|
||||
@ -128,7 +129,8 @@ void mpc3000_state::mpc3000_io_map(address_map &map)
|
||||
{
|
||||
map(0x0060, 0x0067).rw(m_dsp, FUNC(l7a1045_sound_device::l7a1045_sound_r), FUNC(l7a1045_sound_device::l7a1045_sound_w));
|
||||
map(0x0068, 0x0069).rw(FUNC(mpc3000_state::dsp_0008_hack_r), FUNC(mpc3000_state::dsp_0008_hack_w));
|
||||
map(0x00e0, 0x00e0).w(FUNC(mpc3000_state::lcd_w));
|
||||
map(0x00e0, 0x00e0).rw(m_lcdc, FUNC(hd61830_device::data_r), FUNC(hd61830_device::data_w)).umask16(0x00ff);
|
||||
map(0x00e2, 0x00e2).rw(m_lcdc, FUNC(hd61830_device::status_r), FUNC(hd61830_device::control_w)).umask16(0x00ff);
|
||||
}
|
||||
|
||||
READ8_MEMBER(mpc3000_state::dma_memr_cb)
|
||||
@ -137,6 +139,12 @@ READ8_MEMBER(mpc3000_state::dma_memr_cb)
|
||||
return m_maincpu->space(AS_PROGRAM).read_byte(offset);
|
||||
}
|
||||
|
||||
PALETTE_INIT_MEMBER(mpc3000_state, mpc3000)
|
||||
{
|
||||
palette.set_pen_color(0, rgb_t(138, 146, 148));
|
||||
palette.set_pen_color(1, rgb_t(92, 83, 88));
|
||||
}
|
||||
|
||||
void mpc3000_state::mpc3000(machine_config &config)
|
||||
{
|
||||
// V53A isn't devcb3 compliant yet.
|
||||
@ -152,6 +160,18 @@ void mpc3000_state::mpc3000(machine_config &config)
|
||||
MCFG_V53_DMAU_IN_IOR_3_CB(WRITE8("dsp", l7a1045_sound_device, dma_r_cb))
|
||||
MCFG_V53_DMAU_OUT_IOW_3_CB(WRITE8("dsp", l7a1045_sound_device, dma_w_cb))
|
||||
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
MCFG_SCREEN_REFRESH_RATE(80)
|
||||
MCFG_SCREEN_UPDATE_DEVICE("lcdc", hd61830_device, screen_update)
|
||||
MCFG_SCREEN_SIZE(240, 64) //6x20, 8x8
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 64-1)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_PALETTE_ADD("palette", 2)
|
||||
MCFG_PALETTE_INIT_OWNER(mpc3000_state, mpc3000)
|
||||
|
||||
HD61830(config, m_lcdc, 4.9152_MHz_XTAL / 2 / 2);
|
||||
|
||||
auto &mdin(MIDI_PORT(config, "mdin"));
|
||||
midiin_slot(mdin);
|
||||
//mdin.rxd_handler().set(m_maincpu, FUNC());
|
||||
@ -184,4 +204,4 @@ void mpc3000_state::init_mpc3000()
|
||||
{
|
||||
}
|
||||
|
||||
CONS( 1994, mpc3000, 0, 0, mpc3000, mpc3000, mpc3000_state, init_mpc3000, "Akai / Roger Linn", "MPC-3000", MACHINE_IMPERFECT_SOUND )
|
||||
CONS( 1994, mpc3000, 0, 0, mpc3000, mpc3000, mpc3000_state, init_mpc3000, "Akai / Roger Linn", "MPC-3000", MACHINE_NOT_WORKING )
|
||||
|
Loading…
Reference in New Issue
Block a user