mirror of
https://github.com/holub/mame
synced 2025-05-08 23:31:54 +03:00
de_3b: Added DMD (Deco Type 3)
decodmd2: Corrected lower dot intensities.
This commit is contained in:
parent
483d8a5d59
commit
0d0a4e5d39
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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 \
|
||||
|
@ -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
204
src/mame/video/decodmd3.c
Normal 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
62
src/mame/video/decodmd3.h
Normal 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_ */
|
Loading…
Reference in New Issue
Block a user