mirror of
https://github.com/holub/mame
synced 2025-04-09 18:17:44 +03:00
New systems marked not working
------------------------------ Zhongguo Majiang [little0] - misc/norautp.cpp: updated decryption tables for norautua / norautub. Also srccleaned
This commit is contained in:
parent
a4bfb636b4
commit
b6e44ca5e6
@ -42860,6 +42860,9 @@ poemzet2
|
||||
@source:skeleton/i7000.cpp
|
||||
i7000
|
||||
|
||||
@source:skeleton/iam2.cpp
|
||||
zhonggmj
|
||||
|
||||
@source:skeleton/icatel.cpp
|
||||
icatel
|
||||
|
||||
|
@ -226,7 +226,7 @@
|
||||
noraut type 60h-63h A0h-A3h C0h-C3h
|
||||
DPHL type 7Ch-7Fh BCh-BFh DCh-DFh
|
||||
|
||||
|
||||
|
||||
(*) Confirmed lines.
|
||||
|
||||
|
||||
@ -362,9 +362,9 @@
|
||||
|
||||
- the following sets have direct credits to play (no bet),
|
||||
and show paytable when coin-up through dynamic size change
|
||||
of the lines 5 and 6:
|
||||
|
||||
dphl, dphljp, dphlunkb, sureshoto, smshilo
|
||||
of the lines 5 and 6:
|
||||
|
||||
dphl, dphljp, dphlunkb, sureshoto, smshilo
|
||||
|
||||
|
||||
*******************************************************************************
|
||||
@ -623,11 +623,11 @@
|
||||
- Derivated inputs for fasdrwp.
|
||||
- Added buttons-lamps layout for fastdrwp.
|
||||
- Promoted fastdrwp set to working.
|
||||
|
||||
|
||||
- Added support for dynamic size chars lines.
|
||||
That fixes the paytable shown in different games
|
||||
such as dphl, dphljp, dphlunkb, sureshoto, smshilo,
|
||||
etc, allowing to remove the imperfect graphics flags.
|
||||
such as dphl, dphljp, dphlunkb, sureshoto, smshilo,
|
||||
etc, allowing to remove the imperfect graphics flags.
|
||||
- norautua: fixed the overflow when drawing cards
|
||||
in the possible straight case.
|
||||
- Rewrote the screen update to save a big number of lines.
|
||||
@ -661,12 +661,12 @@
|
||||
[2025-04]
|
||||
|
||||
- Decoded color palettes from bipolar PROMs
|
||||
(applies to hardware types featuring these devices)
|
||||
(applies to hardware types featuring these devices)
|
||||
- Implemented dynamic palette per line.
|
||||
- Unified sureshoto and dphl machine config.
|
||||
- Real colors for dphl, dphljp, newhilop, pkii_dm,
|
||||
pma, gtipoker, smshilo, fastdrwp, sureshoto,
|
||||
and dphlunkb.
|
||||
and dphlunkb.
|
||||
- Fixed more ASCII PCB layouts.
|
||||
- Improved edge connector / pinout diagram.
|
||||
- Fixed documentation about the 3x PPI 8255 devices
|
||||
@ -828,40 +828,40 @@ void norautp_state::video_start()
|
||||
|
||||
uint32_t norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
bitmap.fill(0, cliprect);
|
||||
|
||||
for (int y = 0, c = 0; y < 8; y++)
|
||||
bitmap.fill(0, cliprect);
|
||||
|
||||
for (int y = 0, c = 0; y < 8; y++)
|
||||
{
|
||||
bool double_w = y == 2 || ((y == 4 || y == 5) && !(m_display_line_control && m_vreg));
|
||||
|
||||
for (int x = 0; x < (double_w ? 16 : 32); c += double_w ? 2 : 1, x++)
|
||||
bool double_w = y == 2 || ((y == 4 || y == 5) && !(m_display_line_control && m_vreg));
|
||||
|
||||
for (int x = 0; x < (double_w ? 16 : 32); c += double_w ? 2 : 1, x++)
|
||||
{
|
||||
int t = m_np_vram[c] & 0x3f;
|
||||
int col = ((m_np_vram[c] >> 6) + (double_w && y >= 4 ? 4 : 0)) & 3;
|
||||
m_gfxdecode->gfx(double_w ? 1 : 0)->opaque(bitmap, cliprect, t, col, 0, 0,
|
||||
double_w ? (x << 5) + 8 : x << 4, y << 5);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
int t = m_np_vram[c] & 0x3f;
|
||||
int col = ((m_np_vram[c] >> 6) + (double_w && y >= 4 ? 4 : 0)) & 3;
|
||||
m_gfxdecode->gfx(double_w ? 1 : 0)->opaque(bitmap, cliprect, t, col, 0, 0,
|
||||
double_w ? (x << 5) + 8 : x << 4, y << 5);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t norautp_state::screen_update_dphl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
bitmap.fill(0, cliprect);
|
||||
|
||||
for (int y = 0, c = 0; y < 8; y++)
|
||||
bitmap.fill(0, cliprect);
|
||||
|
||||
for (int y = 0, c = 0; y < 8; y++)
|
||||
{
|
||||
bool double_w = y == 2 || ((y == 4 || y == 5) && !(m_display_line_control && m_vreg));
|
||||
|
||||
for (int x = 0; x < (double_w ? 16 : 32); c += double_w ? 2 : 1, x++)
|
||||
bool double_w = y == 2 || ((y == 4 || y == 5) && !(m_display_line_control && m_vreg));
|
||||
|
||||
for (int x = 0; x < (double_w ? 16 : 32); c += double_w ? 2 : 1, x++)
|
||||
{
|
||||
int t = m_np_vram[c] & 0x3f;
|
||||
int col = (((m_np_vram[c] >> 6) + (double_w && y >= 4 ? 4 : 0)) & 3 ) + (y * 4);
|
||||
m_gfxdecode->gfx(double_w ? 1 : 0)->opaque(bitmap, cliprect, t, col, 0, 0,
|
||||
double_w ? (x << 5) + 8 : x << 4, y << 5);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
int t = m_np_vram[c] & 0x3f;
|
||||
int col = (((m_np_vram[c] >> 6) + (double_w && y >= 4 ? 4 : 0)) & 3 ) + (y * 4);
|
||||
m_gfxdecode->gfx(double_w ? 1 : 0)->opaque(bitmap, cliprect, t, col, 0, 0,
|
||||
double_w ? (x << 5) + 8 : x << 4, y << 5);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1035,14 +1035,14 @@ void norautp_state::ppi2_b_w(uint8_t data)
|
||||
Unknow:
|
||||
|
||||
7654 3210
|
||||
---- ---x *
|
||||
---- --x- *
|
||||
---- -x-- *
|
||||
---- x--- *
|
||||
---x ---- *
|
||||
--x- ---- *
|
||||
-x-- ---- *
|
||||
x--- ---- *
|
||||
---- ---x *
|
||||
---- --x- *
|
||||
---- -x-- *
|
||||
---- x--- *
|
||||
---x ---- *
|
||||
--x- ---- *
|
||||
-x-- ---- *
|
||||
x--- ---- *
|
||||
*/
|
||||
logerror("PPI2-B: pc:%04x - data:%02x\n", m_maincpu->pc(), data);
|
||||
|
||||
@ -1262,9 +1262,9 @@ void norautp_state::gtipa_map(address_map &map)
|
||||
{
|
||||
//map.global_mask(0x7fff); // A15 not connected
|
||||
map(0x0000, 0x3fff).rom();
|
||||
map(0xc000, 0xc3ff).ram().share("nvram");
|
||||
map(0xd000, 0xd3ff).ram().share("nvram");
|
||||
|
||||
map(0xc000, 0xc3ff).ram().share("nvram");
|
||||
map(0xd000, 0xd3ff).ram().share("nvram");
|
||||
|
||||
}
|
||||
|
||||
void norautp_state::dphla_map(address_map &map)
|
||||
@ -3046,7 +3046,7 @@ ROM_END
|
||||
PCB silksceened:
|
||||
DELLFERN U.K. LTD.
|
||||
MADE IN ENGLAND.
|
||||
|
||||
|
||||
PCB REDESIGNED BY M.A.BROWN.
|
||||
|
||||
|
||||
@ -3103,7 +3103,7 @@ ROM_END
|
||||
| '--------------------' U5 U4 U3 U2 U1 |
|
||||
| U5 |
|
||||
'----------------------------------------------------------------------------------------------'
|
||||
|
||||
|
||||
*/
|
||||
|
||||
ROM_START( df_djpkr )
|
||||
@ -3117,7 +3117,7 @@ ROM_START( df_djpkr )
|
||||
ROM_END
|
||||
|
||||
// Same as above, but with different graphics ROM.
|
||||
// GFX ROM is identical to mainline one, but copied 32 times to fill the 64k device.
|
||||
// GFX ROM is identical to mainline one, but copied 32 times to fill the 64k device.
|
||||
ROM_START( df_djpkra )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // Program ROM is 0000-1fff, copied along the 64K of the ROM
|
||||
ROM_LOAD( "rom_u11.bin", 0x0000, 0x2000, CRC(9d150a47) SHA1(da9c0d6632faab685dd061f39b01d8e65793e1e6) )
|
||||
@ -4946,7 +4946,7 @@ void norautp_state::init_enc()
|
||||
static const uint8_t data_sub_table_01[0x100] =
|
||||
{// 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
|
||||
unkn, unkn, 0x52, unkn, unkn, 0x85, 0x34, 0x60, unkn, unkn, 0x56, unkn, unkn, 0x0b, unkn, 0x7f, // 0x0x
|
||||
unkn, unkn, 0x9e, 0x1d, 0x63, 0x2a, 0xb0, unkn, unkn, unkn, unkn, 0x4e, unkn, 0x35, 0xea, unkn, // 0x1x
|
||||
unkn, 0x27, 0x9e, 0x1d, 0x63, 0x2a, 0xb0, unkn, unkn, unkn, unkn, 0x4e, unkn, 0x35, 0xea, unkn, // 0x1x
|
||||
0x0d, 0xe2, 0x40, 0x45, unkn, unkn, unkn, unkn, 0x08, 0xef, 0x21, unkn, 0x7e, 0x10, unkn, 0x2d, // 0x2x
|
||||
0x19, 0x0a, unkn, 0x0f, unkn, unkn, 0x50, 0xf4, unkn, unkn, 0x06, unkn, unkn, 0x4d, unkn, unkn, // 0x3x
|
||||
0x30, 0xb4, unkn, 0xf8, unkn, 0xad, 0x1c, 0x3b, unkn, 0x2b, 0x93, 0xe4, unkn, unkn, unkn, unkn, // 0x4x
|
||||
@ -4974,7 +4974,7 @@ void norautp_state::init_enc()
|
||||
0xa5, unkn, 0x4c, unkn, 0x23, 0x54, unkn, unkn, unkn, 0x0a, unkn, unkn, unkn, unkn, unkn, unkn, // 0x6x
|
||||
0x2b, 0xdd, 0x6b, unkn, 0x5c, unkn, 0x00, unkn, unkn, unkn, unkn, 0x36, unkn, 0x57, 0xce, unkn, // 0x7x
|
||||
0x1d, unkn, unkn, unkn, 0xbf, 0x32, 0xf0, 0x4f, 0x16, 0x35, 0x63, 0x21, 0x0c, 0x1b, unkn, unkn, // 0x8x
|
||||
0x56, unkn, 0xef, unkn, 0x06, unkn, 0x59, 0x04, 0x41, unkn, unkn, unkn, 0x4b, unkn, unkn, unkn, // 0x9x
|
||||
0x56, unkn, 0xef, unkn, 0x06, unkn, 0x59, 0x04, 0x41, 0xe8, unkn, unkn, 0x4b, unkn, unkn, unkn, // 0x9x
|
||||
0x28, 0x7b, 0x3d, unkn, unkn, 0x12, 0xb6, unkn, 0x44, 0xb4, unkn, unkn, unkn, 0x09, unkn, unkn, // 0xax
|
||||
0xd2, unkn, 0xff, 0x3c, 0x6a, 0x20, 0xab, unkn, unkn, 0x40, 0xee, 0xa0, unkn, 0xbb, 0x68, 0x1e, // 0xbx
|
||||
0xc5, 0x49, 0x6d, unkn, 0x5f, 0x17, 0xfc, unkn, unkn, 0xb0, unkn, unkn, 0x2f, unkn, 0xbe, unkn, // 0xcx
|
||||
@ -4992,7 +4992,7 @@ void norautp_state::init_enc()
|
||||
0x40, unkn, 0x04, 0x3c, 0x12, 0xe3, 0x4c, unkn, unkn, 0xf8, unkn, 0xc5, 0x4e, unkn, unkn, 0x15, // 0x4x
|
||||
0xf1, 0x20, unkn, 0x93, unkn, 0x94, unkn, 0x16, 0xa5, unkn, unkn, 0xdc, 0x5a, unkn, 0x19, unkn, // 0x5x
|
||||
0xff, unkn, 0x3b, unkn, 0x55, 0x4b, unkn, unkn, 0x54, 0x47, unkn, 0x50, unkn, unkn, 0x46, unkn, // 0x6x
|
||||
unkn, unkn, unkn, 0x13, unkn, 0x6e, unkn, unkn, unkn, 0xb0, unkn, 0xb3, 0x90, 0x7a, unkn, unkn, // 0x7x
|
||||
unkn, unkn, unkn, 0x13, unkn, 0x6e, unkn, unkn, unkn, 0xb0, unkn, 0xb3, 0x90, 0x6c, unkn, unkn, // 0x7x
|
||||
0xd7, 0xf0, unkn, 0x42, unkn, unkn, 0xc3, unkn, unkn, 0xd5, unkn, 0x22, 0x4a, unkn, 0x4f, unkn, // 0x8x
|
||||
unkn, 0x6a, 0xdb, 0xf7, unkn, 0x37, unkn, unkn, 0xfc, 0x02, unkn, unkn, 0xbd, unkn, unkn, unkn, // 0x9x
|
||||
0x11, 0x53, unkn, unkn, unkn, 0x1c, unkn, 0x52, 0x63, 0xbc, 0x41, 0xf9, unkn, unkn, 0xc4, unkn, // 0xax
|
||||
@ -5267,20 +5267,6 @@ void norautp_state::init_enc()
|
||||
case 0x0f: rom[i] = data_sub_table_0f[x]; break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
// fix table for bin to bcd conversion
|
||||
ROM[0x1da0] = 0x10; // 10.000
|
||||
ROM[0x1da1] = 0x27;
|
||||
ROM[0x1da2] = 0xe8; // 1.000
|
||||
ROM[0x1da3] = 0x03;
|
||||
ROM[0x1da4] = 0x64; // 100
|
||||
ROM[0x1da5] = 0x00;
|
||||
ROM[0x1da6] = 0x0a; // 10
|
||||
ROM[0x1da7] = 0x00;
|
||||
|
||||
// fix jump
|
||||
ROM[0x0b53] = 0x6c;
|
||||
}
|
||||
|
||||
|
||||
@ -5312,7 +5298,7 @@ void norautp_state::init_gtipa()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
|
||||
// ROM[0x07a6] = 0xaf; // xor a (no checksum)
|
||||
// ROM[0x07a6] = 0xaf; // xor a (no checksum)
|
||||
ROM[0x1ffe] = 0xff;
|
||||
}
|
||||
|
||||
@ -5385,4 +5371,4 @@ GAME( 1993, tpoker2, 0, dphltest, norautp, norautp_state, empty_init,
|
||||
//**************************************************************************************
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT
|
||||
GAME( 1989, unkljfpk, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "LJF Corporation", "unknown LJF Corporation poker game", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
|
||||
GAME( 1989, unkljfpk, 0, nortest1, norautp, norautp_state, empty_init, ROT0, "LJF Corporation", "unknown LJF Corporation poker game", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
|
||||
|
196
src/mame/skeleton/iam2.cpp
Normal file
196
src/mame/skeleton/iam2.cpp
Normal file
@ -0,0 +1,196 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:
|
||||
|
||||
/*
|
||||
Mahjongs running on IAM2 custom CPU
|
||||
|
||||
IAMPCB0007-02
|
||||
1184003B
|
||||
|
||||
The main components are:
|
||||
IAM2 F99130265 custom CPU (?)
|
||||
2 IS61C1024-20K RAMs (near IAM2)
|
||||
N3412256P-15 SRAM (near IAM2)
|
||||
UT6264PC-70LL RAM (near GFX (?) ROM)
|
||||
U6295 (Oki M6295 clone)
|
||||
4 banks of 8 DIP switches
|
||||
|
||||
TODO:
|
||||
- identify CPU arch
|
||||
*/
|
||||
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/arm7/arm7.h"
|
||||
#include "sound/okim6295.h"
|
||||
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
#include "tilemap.h"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
class iam2_state : public driver_device
|
||||
{
|
||||
public:
|
||||
iam2_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu")
|
||||
{ }
|
||||
|
||||
void iam2(machine_config &config) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
virtual void video_start() override ATTR_COLD;
|
||||
|
||||
private:
|
||||
required_device<cpu_device> m_maincpu;
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void program_map(address_map &map) ATTR_COLD;
|
||||
};
|
||||
|
||||
|
||||
uint32_t iam2_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void iam2_state::video_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void iam2_state::program_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x0003ffff).rom();
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START( zhonggmj )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW1:1")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW1:2")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW1:3")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW1:4")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW1:5")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW1:6")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW1:7")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW1:8")
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW2:1")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW2:2")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW2:3")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW2:4")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW2:5")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW2:6")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW2:7")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW2:8")
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW3:1")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW3:2")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW3:3")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW3:4")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW3:5")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW3:6")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW3:7")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW3:8")
|
||||
|
||||
PORT_START("DSW4")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "SW4:1")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "SW4:2")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "SW4:3")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "SW4:4")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "SW4:5")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "SW4:6")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "SW4:7")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "SW4:8")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static GFXDECODE_START( gfx_iam2 )
|
||||
// TODO
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
void iam2_state::iam2(machine_config &config)
|
||||
{
|
||||
ARM7(config, m_maincpu, 24'000'000); // TODO: unidentified CPU arch and clock not verified
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &iam2_state::program_map);
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // TODO
|
||||
screen.set_refresh_hz(60);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(64*8, 64*8);
|
||||
screen.set_visarea(0, 64*8-1, 0, 32*8-1);
|
||||
screen.set_screen_update(FUNC(iam2_state::screen_update));
|
||||
|
||||
GFXDECODE(config, "gfxdecode", "palette", gfx_iam2);
|
||||
|
||||
PALETTE(config, "palette").set_entries(0x100); // TODO
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
OKIM6295(config, "oki", 24'000'000 / 24, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // pin 7 and clock not verified
|
||||
}
|
||||
|
||||
|
||||
ROM_START( zhonggmj )
|
||||
ROM_REGION( 0x40000, "maincpu", 0 )
|
||||
ROM_LOAD( "zhonggmjmajiang_p28f020.u21", 0x00000, 0x40000, CRC(b6dda141) SHA1(bdaa88d5802226a252bbb222ae37cbc1a9bf0461) )
|
||||
|
||||
ROM_REGION( 0x400000, "gfx", 0 )
|
||||
ROM_LOAD( "zhonggmjmajiang_p28f020.u6", 0x000000, 0x400000, CRC(156eca53) SHA1(7b044048b23b3472a27e32aa05a604a3a4bacd7b) ) // FIXED BITS (xxxxxxxx0xxxxxxx)
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "zhonggmjmajiang_data.u15", 0x00000, 0x80000, CRC(99cb835d) SHA1(3f74e9dcfb9dfcc798fb9abb93afd865a1c6e200) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
GAME( 200?, zhonggmj, 0, iam2, zhonggmj, iam2_state, empty_init, ROT0, "I.A.M.", "Zhongguo Majiang", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
|
Loading…
Reference in New Issue
Block a user