summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/sanremmg.cpp
blob: 6bfed308e06dc8e7e00b11f9ae3a68e374747b48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// license:BSD-3-Clause
// copyright-holders:David Haywood

/* San Remo / Elsy games

presumably gambling games, maybe missing a sub-board?

Devices
1x unknown quad SMT chip etched "ELSY" main
1x M30624FGAFP 16-bit Single-Chip Microcomputer - main (internal ROM not dumped)
1x TDA2003 Audio Amplifier - sound
1x oscillator 40.000
1x oscillator R100YXA62

ROMs
2x HY29LV160BT or equivalent

RAMs
2x HY628100BLG_70-70W or equivalent

Others
1x 28x2 JAMMA edge connector
1x 50 pins flat cable connector
1x 4 pins black connector
1x RS232 connectors
1x 8 DIP switches bank
1x battery 3.6V
1x battery 5.5V


M30624FG (M16C/62A family) needs CPU core and dumping of internal ROM
*/

#include "emu.h"
#include "cpu/arm7/arm7.h"
#include "cpu/arm7/arm7core.h"
#include "emupal.h"
#include "screen.h"


class sanremmg_state : public driver_device
{
public:
	sanremmg_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag)
		, m_maincpu(*this, "maincpu")
	{ }

	void sanremmg(machine_config &config);

protected:
	virtual void video_start() override;

private:
	required_device<cpu_device> m_maincpu;

	uint32_t screen_update_sanremmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);

	void sanremmg_map(address_map &map);
};


void sanremmg_state::video_start()
{
}

uint32_t sanremmg_state::screen_update_sanremmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	return 0;
}



void sanremmg_state::sanremmg_map(address_map &map)
{
	map(0x00000000, 0x00003fff).rom();
}


static INPUT_PORTS_START( sanremmg )
INPUT_PORTS_END

MACHINE_CONFIG_START(sanremmg_state::sanremmg)

	/* basic machine hardware */
	MCFG_DEVICE_ADD("maincpu", ARM7, 50000000) // wrong, this is an M30624FG (M16C/62A family) with 256K internal ROM, no CPU core available
	MCFG_DEVICE_PROGRAM_MAP(sanremmg_map)

	MCFG_SCREEN_ADD("screen", RASTER)
	MCFG_SCREEN_REFRESH_RATE(60)
	MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
	MCFG_SCREEN_SIZE(64*8, 32*8)
	MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
	MCFG_SCREEN_UPDATE_DRIVER(sanremmg_state, screen_update_sanremmg)
	MCFG_SCREEN_PALETTE("palette")

	PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x200);
MACHINE_CONFIG_END

/*
PCB is marked: "ELSY CE" and "2-028B" and "San Remo Games - Via Val D'OLIVI 295 - 18038 SANREMO (IM)" on component side
*/
ROM_START( sanremmg )
	ROM_REGION( 0x4000, "maincpu", 0 )
	ROM_LOAD( "sanremmg_m30624fg.mcu", 0x00000, 0x4000, NO_DUMP )

	ROM_REGION(0x400000, "data", 0 ) // start of 1.bin has 'Tue Sep 03 11:37:03' Not sure if 03 is year or day, start of string is erased with boot vector?
	ROM_LOAD( "1.bin",   0x000000, 0x200000, CRC(67fa5e76) SHA1(92beb90e1b370763966017d47cb748106014d371) ) // HY29LV160BT
	ROM_LOAD( "2.bin",   0x200000, 0x200000, CRC(61f69735) SHA1(ff46362ce6fe239089c85e698add1b8090bb39bb) )
	// there is space for what looks like a 3rd rom
ROM_END

/*
PCB is marked: "ELSY CE" and "OM1 2-030B" on component side
PCB is marked: "23:04E" and "N2557 TE" on solder side
PCB is labeled: "ELECTROSYSTEM ELSY" and "TEST OK 26" and "F03E04 Ver. 2.2" on component side
*/
ROM_START( elsypokr )
	ROM_REGION( 0x4000, "maincpu", 0 )
	ROM_LOAD( "elsypokr_m30624fg.mcu", 0x00000, 0x4000, NO_DUMP )

	ROM_REGION(0x400000, "data", 0 ) // start of first ROM has 'Mon Apr 05 10:25:38'. Not sure if 05 is year or day, start of string is erased with boot vector?
	ROM_LOAD( "mx29lv160bb.1.bin",   0x000000, 0x200000, CRC(da620fa6) SHA1(f2eea0146f6ddcaa4049f6fe7797d755faeace88) ) // MX29LV160BBTC-70
	ROM_LOAD( "mx29lv160bb.2.bin",   0x200000, 0x200000, CRC(7a0c3e38) SHA1(dd98d6f56272bf3cc0ed1a14234a8c6e0bc4dd37) )
	// there is space for what looks like a 3rd rom
ROM_END

/*
PCB is marked: "ELSY CE" and "2-0291" on component side
PCB is labelled: "Fruit Diamont", "3", "G09004 Ver.1.6" and "TEST OK 02/46" on component side
*/
ROM_START( elsygame )
	ROM_REGION( 0x4000, "maincpu", 0 )
	ROM_LOAD( "elsygame_m30624fg.mcu", 0x00000, 0x4000, NO_DUMP )

	ROM_REGION(0x400000, "data", 0 ) // start of first ROM has 'Thu Nov 07 12:12:25'. Not sure if 07 is year or day, start of string is erased with boot vector?
	ROM_LOAD( "mx29lv160bb.1.bin",   0x000000, 0x200000, CRC(cef067b2) SHA1(16fb83d6053532872db89259b64761f8be02de71) ) // MX29LV160BBTC-70
	ROM_LOAD( "mx29lv160bb.2.bin",   0x200000, 0x200000, CRC(9b0cb755) SHA1(e66bac00c219d345cb6a9478e23bee2a2e79398b) )
	// there is space for what looks like a 3rd rom
ROM_END

GAME( 2003, sanremmg, 0,        sanremmg,  sanremmg, sanremmg_state, empty_init,  ROT0, "San Remo Games", "unknown San Remo / Elsy Multigame", MACHINE_IS_SKELETON )
GAME( 200?, elsypokr, 0,        sanremmg,  sanremmg, sanremmg_state, empty_init,  ROT0, "Electro System (Elsy)", "unknown Elsy poker", MACHINE_IS_SKELETON )
GAME( 2002, elsygame, 0,        sanremmg,  sanremmg, sanremmg_state, empty_init,  ROT0, "Electro System (Elsy)", "unknown Elsy game", MACHINE_IS_SKELETON ) // Fruit Diamont (sic)?