de_3b: Added DMD (Deco Type 3)

decodmd2: Corrected lower dot intensities.
This commit is contained in:
mahlemiut 2013-09-07 01:04:08 +00:00
parent 483d8a5d59
commit 0d0a4e5d39
6 changed files with 352 additions and 58 deletions

2
.gitattributes vendored
View File

@ -5446,6 +5446,8 @@ src/mame/video/decodmd1.c svneol=native#text/plain
src/mame/video/decodmd1.h svneol=native#text/plain
src/mame/video/decodmd2.c svneol=native#text/plain
src/mame/video/decodmd2.h svneol=native#text/plain
src/mame/video/decodmd3.c svneol=native#text/plain
src/mame/video/decodmd3.h svneol=native#text/plain
src/mame/video/decospr.c svneol=native#text/plain
src/mame/video/decospr.h svneol=native#text/plain
src/mame/video/deniam.c svneol=native#text/plain

View File

@ -5,6 +5,7 @@
#include "emu.h"
#include "machine/decopincpu.h"
#include "video/decodmd3.h"
#include "audio/decobsmt.h"
#include "machine/genpin.h"
#include "machine/nvram.h"
@ -15,11 +16,13 @@ class de_3b_state : public driver_device
public:
de_3b_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_decobsmt(*this, "decobsmt")
m_decobsmt(*this, "decobsmt"),
m_dmdtype3(*this, "decodmd")
{ }
// devices
required_device<decobsmt_device> m_decobsmt;
required_device<decodmd_type3_device> m_dmdtype3;
DECLARE_WRITE8_MEMBER(lamp0_w) { };
DECLARE_WRITE8_MEMBER(lamp1_w) { };
@ -27,6 +30,9 @@ public:
DECLARE_WRITE8_MEMBER(switch_w);
DECLARE_WRITE8_MEMBER(sound_w);
DECLARE_READ8_MEMBER(dmd_status_r);
DECLARE_WRITE8_MEMBER(pia2c_pa_w);
DECLARE_READ8_MEMBER(pia2c_pb_r);
DECLARE_WRITE8_MEMBER(pia2c_pb_w);
// devcb2 callbacks
DECLARE_READ8_MEMBER(display_r);
@ -150,10 +156,27 @@ WRITE8_MEMBER( de_3b_state::sound_w )
READ8_MEMBER( de_3b_state::dmd_status_r )
{
//return m_dmdtype3->status_r(space,offset);
return 0;
return m_dmdtype3->status_r(space,offset);
}
WRITE8_MEMBER( de_3b_state::pia2c_pa_w )
{
/* DMD data */
m_dmdtype3->data_w(space,offset,data);
logerror("DMD: Data write %02x\n", data);
}
READ8_MEMBER( de_3b_state::pia2c_pb_r )
{
return m_dmdtype3->busy_r(space,offset);
}
WRITE8_MEMBER( de_3b_state::pia2c_pb_w )
{
/* DMD ctrl */
m_dmdtype3->ctrl_w(space,offset,data);
logerror("DMD: Control write %02x\n", data);
}
READ8_MEMBER(de_3b_state::display_r)
{
UINT8 ret = 0x00;
@ -164,7 +187,7 @@ READ8_MEMBER(de_3b_state::display_r)
// ret = pia28_w7_r(space,0);
break;
case 3:
// ret = pia2c_pb_r(space,0);
ret = pia2c_pb_r(space,0);
break;
}
@ -173,13 +196,13 @@ READ8_MEMBER(de_3b_state::display_r)
WRITE8_MEMBER(de_3b_state::display_w)
{
/* switch(offset)
switch(offset)
{
case 0:
dig0_w(space,0,data);
// dig0_w(space,0,data);
break;
case 1:
dig1_w(space,0,data);
// dig1_w(space,0,data);
break;
case 2:
pia2c_pa_w(space,0,data);
@ -188,9 +211,9 @@ WRITE8_MEMBER(de_3b_state::display_w)
pia2c_pb_w(space,0,data);
break;
case 4:
pia34_pa_w(space,0,data);
// pia34_pa_w(space,0,data);
break;
}*/
}
}
WRITE8_MEMBER(de_3b_state::lamps_w)
@ -227,6 +250,8 @@ static MACHINE_CONFIG_START( de_3b, de_3b_state )
/* sound hardware */
MCFG_DECOBSMT_ADD(DECOBSMT_TAG)
MCFG_DECODMD_TYPE3_ADD("decodmd",":cpu3")
MACHINE_CONFIG_END
/*-------------------------------------------------------------
@ -236,8 +261,8 @@ ROM_START(batmanf)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnova.401", 0x0000, 0x10000, CRC(4e62df4e) SHA1(6c3be65fc8825f47cd08755b58fdcf3652ede702))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000001, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000000, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000000, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000001, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -249,8 +274,8 @@ ROM_START(batmanf3)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batcpua.302", 0x0000, 0x10000, CRC(5ae7ce69) SHA1(13409c7c993bd9940f3a72f3bac8c8c57a665b3f))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bmfrom0a.300", 0x00000001, 0x00080000, CRC(764bb217) SHA1(2923d2d2924faa4bdc6e67087fb8ce694d27809a))
ROM_LOAD16_BYTE("bmfrom3a.300", 0x00000000, 0x00080000, CRC(b4e3b515) SHA1(0f8bf08bc480eed575da54bfc0135f38a86302d4))
ROM_LOAD16_BYTE("bmfrom0a.300", 0x00000000, 0x00080000, CRC(764bb217) SHA1(2923d2d2924faa4bdc6e67087fb8ce694d27809a))
ROM_LOAD16_BYTE("bmfrom3a.300", 0x00000001, 0x00080000, CRC(b4e3b515) SHA1(0f8bf08bc480eed575da54bfc0135f38a86302d4))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -262,8 +287,8 @@ ROM_START(bmf_uk)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnove.401", 0x0000, 0x10000, CRC(80f6e4af) SHA1(dd233d2150dcb50b74a70e6ff89c74a3f0d8fae1))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000001, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000000, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000000, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000001, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -275,8 +300,8 @@ ROM_START(bmf_cn)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovc.401", 0x0000, 0x10000, CRC(99936537) SHA1(08ff9c6a1fcb3f198190d24bbc75ea1178427fda))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000001, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000000, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000000, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000001, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -288,8 +313,8 @@ ROM_START(bmf_no)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovn.401", 0x0000, 0x10000, CRC(79dd48b4) SHA1(eefdf423f9638e293e51bd31413de898ec4eb83a))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000001, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000000, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000000, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000001, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -301,8 +326,8 @@ ROM_START(bmf_sv)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovt.401", 0x0000, 0x10000, CRC(854029ab) SHA1(044c2fff6f3e8995c48344f727c1cd9079f7e232))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000001, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000000, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000000, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000001, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -314,8 +339,8 @@ ROM_START(bmf_at)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovh.401", 0x0000, 0x10000, CRC(acba13d7) SHA1(b5e5dc5ffc926612ea3d592b6d4e8e02f6290bc7))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0g.401", 0x00000001, 0x00080000, CRC(3a2d7d53) SHA1(340107290d58bfb8b9a6613215eb556626fe2461))
ROM_LOAD16_BYTE("bfdrom3g.401", 0x00000000, 0x00080000, CRC(94e424f1) SHA1(3a6daf9cbd38e21e2c6447ff1fb0e86b4c03f971))
ROM_LOAD16_BYTE("bfdrom0g.401", 0x00000000, 0x00080000, CRC(3a2d7d53) SHA1(340107290d58bfb8b9a6613215eb556626fe2461))
ROM_LOAD16_BYTE("bfdrom3g.401", 0x00000001, 0x00080000, CRC(94e424f1) SHA1(3a6daf9cbd38e21e2c6447ff1fb0e86b4c03f971))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -327,8 +352,8 @@ ROM_START(bmf_ch)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovs.401", 0x0000, 0x10000, CRC(4999d5f9) SHA1(61a9220da38e05360a9496504fa7b11aff14515d))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0g.401", 0x00000001, 0x00080000, CRC(3a2d7d53) SHA1(340107290d58bfb8b9a6613215eb556626fe2461))
ROM_LOAD16_BYTE("bfdrom3g.401", 0x00000000, 0x00080000, CRC(94e424f1) SHA1(3a6daf9cbd38e21e2c6447ff1fb0e86b4c03f971))
ROM_LOAD16_BYTE("bfdrom0g.401", 0x00000000, 0x00080000, CRC(3a2d7d53) SHA1(340107290d58bfb8b9a6613215eb556626fe2461))
ROM_LOAD16_BYTE("bfdrom3g.401", 0x00000001, 0x00080000, CRC(94e424f1) SHA1(3a6daf9cbd38e21e2c6447ff1fb0e86b4c03f971))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -340,8 +365,8 @@ ROM_START(bmf_de)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovg.401", 0x0000, 0x10000, CRC(dd37e99a) SHA1(7949ed43df38849d927f6ed0afa8c3f77cd74b6a))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0g.401", 0x00000001, 0x00080000, CRC(3a2d7d53) SHA1(340107290d58bfb8b9a6613215eb556626fe2461))
ROM_LOAD16_BYTE("bfdrom3g.401", 0x00000000, 0x00080000, CRC(94e424f1) SHA1(3a6daf9cbd38e21e2c6447ff1fb0e86b4c03f971))
ROM_LOAD16_BYTE("bfdrom0g.401", 0x00000000, 0x00080000, CRC(3a2d7d53) SHA1(340107290d58bfb8b9a6613215eb556626fe2461))
ROM_LOAD16_BYTE("bfdrom3g.401", 0x00000001, 0x00080000, CRC(94e424f1) SHA1(3a6daf9cbd38e21e2c6447ff1fb0e86b4c03f971))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -353,8 +378,8 @@ ROM_START(bmf_be)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovb.401", 0x0000, 0x10000, CRC(21309873) SHA1(cebd0c5c05dc5c0a2eb8563ad5c4759f78d6a4b9))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0f.401", 0x00000001, 0x00080000, CRC(e7473f6f) SHA1(f5951a9b6a8776073adf10e38b9d68d6d444240a))
ROM_LOAD16_BYTE("bfdrom3f.401", 0x00000000, 0x00080000, CRC(f7951709) SHA1(ace5b374d1e382d6f612b2bafc0e9fdde9e21014))
ROM_LOAD16_BYTE("bfdrom0f.401", 0x00000000, 0x00080000, CRC(e7473f6f) SHA1(f5951a9b6a8776073adf10e38b9d68d6d444240a))
ROM_LOAD16_BYTE("bfdrom3f.401", 0x00000001, 0x00080000, CRC(f7951709) SHA1(ace5b374d1e382d6f612b2bafc0e9fdde9e21014))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -366,8 +391,8 @@ ROM_START(bmf_fr)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovf.401", 0x0000, 0x10000, CRC(4baa793d) SHA1(4ba258d11f1bd7a2078ae6cd823a11e10ca96627))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0f.401", 0x00000001, 0x00080000, CRC(e7473f6f) SHA1(f5951a9b6a8776073adf10e38b9d68d6d444240a))
ROM_LOAD16_BYTE("bfdrom3f.401", 0x00000000, 0x00080000, CRC(f7951709) SHA1(ace5b374d1e382d6f612b2bafc0e9fdde9e21014))
ROM_LOAD16_BYTE("bfdrom0f.401", 0x00000000, 0x00080000, CRC(e7473f6f) SHA1(f5951a9b6a8776073adf10e38b9d68d6d444240a))
ROM_LOAD16_BYTE("bfdrom3f.401", 0x00000001, 0x00080000, CRC(f7951709) SHA1(ace5b374d1e382d6f612b2bafc0e9fdde9e21014))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -379,8 +404,8 @@ ROM_START(bmf_nl)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovd.401", 0x0000, 0x10000, CRC(6ae4570c) SHA1(e863d6d0963910a993f2a0b8ddeefba48d304ca6))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0f.401", 0x00000001, 0x00080000, CRC(e7473f6f) SHA1(f5951a9b6a8776073adf10e38b9d68d6d444240a))
ROM_LOAD16_BYTE("bfdrom3f.401", 0x00000000, 0x00080000, CRC(f7951709) SHA1(ace5b374d1e382d6f612b2bafc0e9fdde9e21014))
ROM_LOAD16_BYTE("bfdrom0f.401", 0x00000000, 0x00080000, CRC(e7473f6f) SHA1(f5951a9b6a8776073adf10e38b9d68d6d444240a))
ROM_LOAD16_BYTE("bfdrom3f.401", 0x00000001, 0x00080000, CRC(f7951709) SHA1(ace5b374d1e382d6f612b2bafc0e9fdde9e21014))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -392,8 +417,8 @@ ROM_START(bmf_it)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovi.401", 0x0000, 0x10000, CRC(7053ef9e) SHA1(918ab3e250b5965998ca0a38e1b8ba3cc012083f))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0i.401", 0x00000001, 0x00080000, CRC(23051253) SHA1(155669a3fecd6e67838b10e71a57a6b871c8762a))
ROM_LOAD16_BYTE("bfdrom3i.401", 0x00000000, 0x00080000, CRC(82b61a41) SHA1(818c8fdbf44e29fe0ec5362a34ac948e98002efa))
ROM_LOAD16_BYTE("bfdrom0i.401", 0x00000000, 0x00080000, CRC(23051253) SHA1(155669a3fecd6e67838b10e71a57a6b871c8762a))
ROM_LOAD16_BYTE("bfdrom3i.401", 0x00000001, 0x00080000, CRC(82b61a41) SHA1(818c8fdbf44e29fe0ec5362a34ac948e98002efa))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -405,8 +430,8 @@ ROM_START(bmf_sp)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnova.401", 0x0000, 0x10000, CRC(4e62df4e) SHA1(6c3be65fc8825f47cd08755b58fdcf3652ede702))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0l.401", 0x00000001, 0x00080000, CRC(b22b10d9) SHA1(c8f5637b00b0701d47a3b6bc0fdae08ae1a8df64))
ROM_LOAD16_BYTE("bfdrom3l.401", 0x00000000, 0x00080000, CRC(016b8666) SHA1(c10b7fc2c1e5b8382ff5b021a6b70f3a550b190e))
ROM_LOAD16_BYTE("bfdrom0l.401", 0x00000000, 0x00080000, CRC(b22b10d9) SHA1(c8f5637b00b0701d47a3b6bc0fdae08ae1a8df64))
ROM_LOAD16_BYTE("bfdrom3l.401", 0x00000001, 0x00080000, CRC(016b8666) SHA1(c10b7fc2c1e5b8382ff5b021a6b70f3a550b190e))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -418,8 +443,8 @@ ROM_START(bmf_jp)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnovj.401", 0x0000, 0x10000, CRC(eef9bef0) SHA1(ac37ae12673351be939a969ecbc5b68c3995dca0))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000001, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000000, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_LOAD16_BYTE("bfdrom0a.401", 0x00000000, 0x00080000, CRC(8a3c20ad) SHA1(37415ac7ba178981dffce3a17502f39ab29d90ea))
ROM_LOAD16_BYTE("bfdrom3a.401", 0x00000001, 0x00080000, CRC(5ef46847) SHA1(a80f241db3d309f0bcb455051e33fc2b74e2ddcd))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -431,8 +456,8 @@ ROM_START(bmf_time)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("batnova.401", 0x0000, 0x10000, CRC(4e62df4e) SHA1(6c3be65fc8825f47cd08755b58fdcf3652ede702))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bfdrom0t.401", 0x00000001, 0x00080000, CRC(b83b8d28) SHA1(b90e6a6fa55dadbf0e752745b87d1e8e9d7ccfa7))
ROM_LOAD16_BYTE("bfdrom3t.401", 0x00000000, 0x00080000, CRC(a024b1a5) SHA1(2fc8697fa98b7de7a844ca4d6a162b96cc751447))
ROM_LOAD16_BYTE("bfdrom0t.401", 0x00000000, 0x00080000, CRC(b83b8d28) SHA1(b90e6a6fa55dadbf0e752745b87d1e8e9d7ccfa7))
ROM_LOAD16_BYTE("bfdrom3t.401", 0x00000001, 0x00080000, CRC(a024b1a5) SHA1(2fc8697fa98b7de7a844ca4d6a162b96cc751447))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bmfu7.bin", 0x0000, 0x10000, CRC(58c0d144) SHA1(88a404d3625c7c154892282598b4949ac97de12b))
ROM_REGION(0x1000000, "bsmt", 0)
@ -447,8 +472,8 @@ ROM_START(baywatch)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("baycpua.400", 0x0000, 0x10000, CRC(89facfda) SHA1(71720b1da227752b0e276390abd08c742bca9090))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("bayrom0a.400", 0x00000001, 0x00080000, CRC(43d615c6) SHA1(7c843b6d5215305b02a55c9fa1d62375ef0766ea))
ROM_LOAD16_BYTE("bayrom3a.400", 0x00000000, 0x00080000, CRC(41bcb66b) SHA1(e6f0a9236e14c2e919881ca1ffe3356aaa121730))
ROM_LOAD16_BYTE("bayrom0a.400", 0x00000000, 0x00080000, CRC(43d615c6) SHA1(7c843b6d5215305b02a55c9fa1d62375ef0766ea))
ROM_LOAD16_BYTE("bayrom3a.400", 0x00000001, 0x00080000, CRC(41bcb66b) SHA1(e6f0a9236e14c2e919881ca1ffe3356aaa121730))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("bayw.u7", 0x0000, 0x10000, CRC(90d6d8a8) SHA1(482c5643453f21a078257aa13398845ef19cab3c))
ROM_REGION(0x1000000, "bsmt", 0)
@ -463,8 +488,8 @@ ROM_START(frankst)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("franka.103", 0x0000, 0x10000, CRC(a9aba9be) SHA1(1cc22fcbc0f51a17037637c04e606579956c9cba))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("frdspr0a.103", 0x00000001, 0x00080000, CRC(9dd09c7d) SHA1(c5668e53d6c914667a59538f82222ec2efc6f187))
ROM_LOAD16_BYTE("frdspr3a.103", 0x00000000, 0x00080000, CRC(73b538bb) SHA1(07d7ae21f062d15711d72af03bfcd52608f75a5f))
ROM_LOAD16_BYTE("frdspr0a.103", 0x00000000, 0x00080000, CRC(9dd09c7d) SHA1(c5668e53d6c914667a59538f82222ec2efc6f187))
ROM_LOAD16_BYTE("frdspr3a.103", 0x00000001, 0x00080000, CRC(73b538bb) SHA1(07d7ae21f062d15711d72af03bfcd52608f75a5f))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("frsnd.u7", 0x0000, 0x10000, CRC(084f856c) SHA1(c91331a32b565c2ed3f96156f44143dc22009e8e))
ROM_REGION(0x1000000, "bsmt", 0)
@ -477,8 +502,8 @@ ROM_START(frankstg)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("franka.103", 0x0000, 0x10000, CRC(a9aba9be) SHA1(1cc22fcbc0f51a17037637c04e606579956c9cba))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("frdspr0g.101", 0x00000001, 0x00080000, CRC(5e27ec02) SHA1(351d6f1b7d72e415f2bf5780b6533dbd67579261))
ROM_LOAD16_BYTE("frdspr3g.101", 0x00000000, 0x00080000, CRC(d6c607b5) SHA1(876d4bd2a5b89f1a28ff7cd45494c7245f147d27))
ROM_LOAD16_BYTE("frdspr0g.101", 0x00000000, 0x00080000, CRC(5e27ec02) SHA1(351d6f1b7d72e415f2bf5780b6533dbd67579261))
ROM_LOAD16_BYTE("frdspr3g.101", 0x00000001, 0x00080000, CRC(d6c607b5) SHA1(876d4bd2a5b89f1a28ff7cd45494c7245f147d27))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("frsnd.u7", 0x0000, 0x10000, CRC(084f856c) SHA1(c91331a32b565c2ed3f96156f44143dc22009e8e))
ROM_REGION(0x1000000, "bsmt", 0)
@ -494,8 +519,8 @@ ROM_START(mav_402)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("mavcpua.404", 0x0000, 0x10000, CRC(9f06bd8d) SHA1(3b931af5455ed9c40f2b6c884427a326bba8f75a))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("mavdisp0.402", 0x00000001, 0x00080000, CRC(4e643525) SHA1(30b91c91c2f1295cdd018023c5ac783570a0aeea))
ROM_LOAD16_BYTE("mavdisp3.402", 0x00000000, 0x00080000, CRC(8c5f9460) SHA1(6369b4c98ec6fd5e769275b44631b2b6dd5c411b))
ROM_LOAD16_BYTE("mavdisp0.402", 0x00000000, 0x00080000, CRC(4e643525) SHA1(30b91c91c2f1295cdd018023c5ac783570a0aeea))
ROM_LOAD16_BYTE("mavdisp3.402", 0x00000001, 0x00080000, CRC(8c5f9460) SHA1(6369b4c98ec6fd5e769275b44631b2b6dd5c411b))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("mavu7.dat", 0x0000, 0x10000, CRC(427e6ab9) SHA1(6ad9295097f3d498383c91adf4ca667f797f29b1))
ROM_REGION(0x1000000, "bsmt", 0)
@ -507,8 +532,8 @@ ROM_START(mav_401)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("mavcpua.404", 0x0000, 0x10000, CRC(9f06bd8d) SHA1(3b931af5455ed9c40f2b6c884427a326bba8f75a))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("mavdsar0.401", 0x00000001, 0x00080000, CRC(35b811af) SHA1(1e235a0f16ef0eecca5b6ec7a2234ed1dc4e4440))
ROM_LOAD16_BYTE("mavdsar3.401", 0x00000000, 0x00080000, CRC(c4c126ae) SHA1(b4841e83ec075bddc919217b65afaac97709e69b))
ROM_LOAD16_BYTE("mavdsar0.401", 0x00000000, 0x00080000, CRC(35b811af) SHA1(1e235a0f16ef0eecca5b6ec7a2234ed1dc4e4440))
ROM_LOAD16_BYTE("mavdsar3.401", 0x00000001, 0x00080000, CRC(c4c126ae) SHA1(b4841e83ec075bddc919217b65afaac97709e69b))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("mavu7.dat", 0x0000, 0x10000, CRC(427e6ab9) SHA1(6ad9295097f3d498383c91adf4ca667f797f29b1))
ROM_REGION(0x1000000, "bsmt", 0)
@ -520,8 +545,8 @@ ROM_START(mav_400)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("mavgc5.400", 0x0000, 0x10000, CRC(e2d0a88b) SHA1(d1571edba47aecc871ac0cfdaabca31774f70fa1))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("mavdisp0.400", 0x00000001, 0x00080000, CRC(b6069484) SHA1(2878d9a0151194bd4a0e12e2f75b02a5d7316b68))
ROM_LOAD16_BYTE("mavdisp3.400", 0x00000000, 0x00080000, CRC(149f871f) SHA1(e29a8bf149b77bccaeed202786cf76d9a4fd51df))
ROM_LOAD16_BYTE("mavdisp0.400", 0x00000000, 0x00080000, CRC(b6069484) SHA1(2878d9a0151194bd4a0e12e2f75b02a5d7316b68))
ROM_LOAD16_BYTE("mavdisp3.400", 0x00000001, 0x00080000, CRC(149f871f) SHA1(e29a8bf149b77bccaeed202786cf76d9a4fd51df))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("mavu7.dat", 0x0000, 0x10000, CRC(427e6ab9) SHA1(6ad9295097f3d498383c91adf4ca667f797f29b1))
ROM_REGION(0x1000000, "bsmt", 0)
@ -533,8 +558,8 @@ ROM_START(mav_100)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("mavcpu.100", 0x0000, 0x10000, CRC(13fdc959) SHA1(f8155f0fe5d4c3fe55000ab3b57f298fd9229fef))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("mavdsp0.100", 0x00000001, 0x00080000, CRC(3e01f5c8) SHA1(8e40f399c77aa17bebbefe04742ff2ff95508323))
ROM_LOAD16_BYTE("mavdsp3.100", 0x00000000, 0x00080000, CRC(e2b623f2) SHA1(7b5a6d0db30f3deedb8fe0e1731c81ec836a66f5))
ROM_LOAD16_BYTE("mavdsp0.100", 0x00000000, 0x00080000, CRC(3e01f5c8) SHA1(8e40f399c77aa17bebbefe04742ff2ff95508323))
ROM_LOAD16_BYTE("mavdsp3.100", 0x00000001, 0x00080000, CRC(e2b623f2) SHA1(7b5a6d0db30f3deedb8fe0e1731c81ec836a66f5))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("mavu7.dat", 0x0000, 0x10000, CRC(427e6ab9) SHA1(6ad9295097f3d498383c91adf4ca667f797f29b1))
ROM_REGION(0x1000000, "bsmt", 0)
@ -549,8 +574,8 @@ ROM_START(ctcheese)
ROM_REGION(0x10000, "maincpu", 0)
ROM_LOAD("ctcc5.bin", 0x0000, 0x10000, CRC(465d41de) SHA1(0e30b527d5b47f8823cbe6f196052b090e69e907))
ROM_REGION(0x01000000, "cpu3", 0)
ROM_LOAD16_BYTE("ctcdsp0.bin", 0x00000001, 0x00080000, CRC(6885734d) SHA1(9ac82c9c8bf4e66d2999fbfd08617ef6c266dfe8))
ROM_LOAD16_BYTE("ctcdsp3.bin", 0x00000000, 0x00080000, CRC(0c2b3f3c) SHA1(cb730cc6fdd2a2786d25b46b1c45466ee56132d1))
ROM_LOAD16_BYTE("ctcdsp0.bin", 0x00000000, 0x00080000, CRC(6885734d) SHA1(9ac82c9c8bf4e66d2999fbfd08617ef6c266dfe8))
ROM_LOAD16_BYTE("ctcdsp3.bin", 0x00000001, 0x00080000, CRC(0c2b3f3c) SHA1(cb730cc6fdd2a2786d25b46b1c45466ee56132d1))
ROM_REGION(0x010000, "soundcpu", 0)
ROM_LOAD("ctcu7.bin", 0x0000, 0x10000, CRC(406b9b9e) SHA1(f3f86c368c92ee0cb47323e6e0ca0fa05b6122bd))
ROM_REGION(0x1000000, "bsmt", 0)

View File

@ -1936,6 +1936,7 @@ $(MAMEOBJ)/pinball.a: \
$(MACHINE)/decopincpu.o \
$(VIDEO)/decodmd1.o \
$(VIDEO)/decodmd2.o \
$(VIDEO)/decodmd3.o \
$(DRIVERS)/de_3b.o \
$(DRIVERS)/flicker.o \
$(DRIVERS)/g627.o \

View File

@ -108,7 +108,7 @@ MC6845_UPDATE_ROW( dmd_update_row )
{
for(dot=0;dot<8;dot++)
{
intensity = (RAM[addr] >> (7-dot) & 0x01) | ((RAM[addr+0x200] >> (7-dot) & 0x01) << 1);
intensity = ((RAM[addr] >> (7-dot) & 0x01) << 1) | (RAM[addr+0x200] >> (7-dot) & 0x01);
bitmap.pix32(y,x+dot) = MAKE_RGB(0x3f*intensity,0x2a*intensity,0x00);
}
addr++;

204
src/mame/video/decodmd3.c Normal file
View File

@ -0,0 +1,204 @@
/*
* Data East Pinball / Sega Pinball Dot Matrix Display
*
* Type 3: 192x64
* 68000 @ 12MHz
* 68B45 CRTC
*/
#include "decodmd3.h"
#include "rendlay.h"
const device_type DECODMD3 = &device_creator<decodmd_type3_device>;
WRITE8_MEMBER( decodmd_type3_device::data_w )
{
m_latch = data;
}
READ8_MEMBER( decodmd_type3_device::busy_r )
{
UINT8 ret = 0x00;
ret = (m_status & 0x0f) << 3;
if(m_busy)
return 0x80 | ret;
else
return 0x00 | ret;
}
WRITE8_MEMBER( decodmd_type3_device::ctrl_w )
{
if(!(m_ctrl & 0x01) && (data & 0x01))
{
m_cpu->set_input_line(M68K_IRQ_1,ASSERT_LINE);
m_busy = true;
m_command = m_latch;
}
if((m_ctrl & 0x02) && !(data & 0x02))
{
m_cpu->set_input_line(INPUT_LINE_RESET,PULSE_LINE);
logerror("DMD3: Reset\n");
}
m_ctrl = data;
}
READ16_MEMBER( decodmd_type3_device::status_r )
{
return m_status;
}
WRITE16_MEMBER( decodmd_type3_device::status_w )
{
m_status = data & 0x0f;
}
READ16_MEMBER( decodmd_type3_device::latch_r )
{
// clear IRQ?
m_cpu->set_input_line(M68K_IRQ_1,CLEAR_LINE);
m_busy = false;
return m_command;
}
TIMER_DEVICE_CALLBACK_MEMBER(decodmd_type3_device::dmd_irq)
{
m_cpu->set_input_line(M68K_IRQ_2, HOLD_LINE);
}
WRITE16_MEMBER( decodmd_type3_device::crtc_address_w )
{
if(ACCESSING_BITS_8_15)
{
m_mc6845->address_w(space,offset,data >> 8);
m_crtc_index = data >> 8;
}
}
READ16_MEMBER( decodmd_type3_device::crtc_status_r )
{
if(ACCESSING_BITS_8_15)
return m_mc6845->register_r(space,offset);
else
return 0xff;
}
WRITE16_MEMBER( decodmd_type3_device::crtc_register_w )
{
if(ACCESSING_BITS_8_15)
{
if(m_crtc_index == 9) // hack!!
data -= 0x100;
m_mc6845->register_w(space,offset,data >> 8);
m_crtc_reg[m_crtc_index] = data >> 8;
}
}
MC6845_UPDATE_ROW( dmd64_update_row )
{
decodmd_type3_device *state = downcast<decodmd_type3_device *>(device->owner());
UINT8* RAM = state->m_ram->pointer();
UINT8 x,dot,intensity;
UINT16 addr = ((ma & 0x7ff) << 2) | ((ra & 0x02) << 12);
addr += ((ra & 0x01) * 24);
for(x=0;x<192;x+=16)
{
for(dot=0;dot<8;dot++)
{
intensity = ((RAM[addr+1] >> (7-dot) & 0x01) << 1) | (RAM[addr+0x801] >> (7-dot) & 0x01);
bitmap.pix32(y,x+dot) = MAKE_RGB(0x3f*intensity,0x2a*intensity,0x00);
}
for(dot=8;dot<16;dot++)
{
intensity = ((RAM[addr] >> (15-dot) & 0x01) << 1) | (RAM[addr+0x800] >> (15-dot) & 0x01);
bitmap.pix32(y,x+dot) = MAKE_RGB(0x3f*intensity,0x2a*intensity,0x00);
}
addr+=2;
}
}
MC6845_INTERFACE( decodmd3_6845_intf )
{
false, /* show border area */
16, /* number of pixels per video memory address */
NULL, /* begin_update */
dmd64_update_row, /* update_row */
NULL, /* end_update */
DEVCB_NULL, /* on_de_changed */
DEVCB_NULL, /* on_cur_changed */
DEVCB_NULL, /* on_hsync_changed */
DEVCB_NULL, /* on_vsync_changed */
NULL
};
static ADDRESS_MAP_START( decodmd3_map, AS_PROGRAM, 16, decodmd_type3_device )
AM_RANGE(0x00000000, 0x000fffff) AM_ROMBANK("dmdrom")
AM_RANGE(0x00800000, 0x0080ffff) AM_RAMBANK("dmdram")
AM_RANGE(0x00c00010, 0x00c00011) AM_READWRITE(crtc_status_r,crtc_address_w)
AM_RANGE(0x00c00012, 0x00c00013) AM_WRITE(crtc_register_w)
AM_RANGE(0x00c00020, 0x00c00021) AM_READWRITE(latch_r,status_w)
ADDRESS_MAP_END
static MACHINE_CONFIG_FRAGMENT( decodmd3 )
/* basic machine hardware */
MCFG_CPU_ADD("dmdcpu", M68000, XTAL_12MHz)
MCFG_CPU_PROGRAM_MAP(decodmd3_map)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer",decodmd_type3_device,dmd_irq,attotime::from_hz(150))
MCFG_MC6845_ADD("dmd6845",MC6845,NULL,XTAL_12MHz / 4,decodmd3_6845_intf) // TODO: confirm clock speed
MCFG_DEFAULT_LAYOUT(layout_lcd)
MCFG_SCREEN_ADD("dmd",RASTER)
MCFG_SCREEN_SIZE(192, 64)
MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 64-1)
MCFG_SCREEN_UPDATE_DEVICE("dmd6845",mc6845_device, screen_update)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("64K")
MACHINE_CONFIG_END
machine_config_constructor decodmd_type3_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( decodmd3 );
}
decodmd_type3_device::decodmd_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, DECODMD3, "Data East Pinball Dot Matrix Display Type 3", tag, owner, clock, "decodmd3", __FILE__),
m_cpu(*this,"dmdcpu"),
m_mc6845(*this,"dmd6845"),
m_ram(*this,RAM_TAG),
m_rambank(*this,"dmdram"),
m_rombank(*this,"dmdrom")
{}
void decodmd_type3_device::device_start()
{
}
void decodmd_type3_device::device_reset()
{
UINT8* ROM;
UINT8* RAM = m_ram->pointer();
m_rom = memregion(m_gfxtag);
ROM = m_rom->base();
memset(RAM,0,0x10000);
m_rambank->configure_entry(0, &RAM[0]);
m_rambank->set_entry(0);
m_rombank->configure_entry(0, &ROM[0]);
m_rombank->set_entry(0);
}
void decodmd_type3_device::static_set_gfxregion(device_t &device, const char *tag)
{
decodmd_type3_device &cpuboard = downcast<decodmd_type3_device &>(device);
cpuboard.m_gfxtag = tag;
}

62
src/mame/video/decodmd3.h Normal file
View File

@ -0,0 +1,62 @@
/*
* Data East Pinball DMD Type 3 Display
*/
#ifndef DECODMD3_H_
#define DECODMD3_H_
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "video/mc6845.h"
#include "machine/ram.h"
#define MCFG_DECODMD_TYPE3_ADD(_tag, _region) \
MCFG_DEVICE_ADD(_tag, DECODMD3, 0) \
decodmd_type3_device::static_set_gfxregion(*device, _region);
class decodmd_type3_device : public device_t
{
public:
decodmd_type3_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
required_device<cpu_device> m_cpu;
required_device<mc6845_device> m_mc6845;
required_device<ram_device> m_ram;
required_memory_bank m_rambank;
required_memory_bank m_rombank;
DECLARE_WRITE8_MEMBER(data_w);
DECLARE_READ8_MEMBER(busy_r);
DECLARE_WRITE8_MEMBER(ctrl_w);
DECLARE_READ16_MEMBER(latch_r);
DECLARE_READ16_MEMBER(status_r);
DECLARE_WRITE16_MEMBER(status_w);
DECLARE_WRITE16_MEMBER(crtc_address_w);
DECLARE_WRITE16_MEMBER(crtc_register_w);
DECLARE_READ16_MEMBER(crtc_status_r);
TIMER_DEVICE_CALLBACK_MEMBER(dmd_irq);
static void static_set_gfxregion(device_t &device, const char *tag);
memory_region* m_rom;
protected:
virtual machine_config_constructor device_mconfig_additions() const;
virtual void device_start();
virtual void device_reset();
private:
UINT8 m_status;
UINT8 m_crtc_index;
UINT8 m_crtc_reg[0x100];
UINT8 m_latch;
UINT8 m_ctrl;
UINT8 m_busy;
UINT8 m_command;
const char* m_gfxtag;
};
extern const device_type DECODMD3;
#endif /* DECODMD3_H_ */