1 // license:BSD-3-Clause
2 // copyright-holders:David Haywood
3 /*
4
5 Sega M1 hardware (837-7571) (PCB)
6
7 Sega Bingo Multicart (837-10675) (Sticker on PCB)
8
9 used for redemption / gambling style machines in a satellite setup
10
11 based on Caribbean Boule the following hardware setup is used
12
13 One X-Board (segaxbd.cpp) drives a large rear-projection monitor which all players view to see the main game progress.
14
15 Multiple M1 boards ("satellite" board) for each player for them to view information privately.
16
17 One 'link' board which connects everything together. The link board has audio hardware, a 68K, and a Z80 as
18 well as a huge bank of UARTS and toslink connectors, but no video. It's possible the main game logic runs
19 on the 'link' board.
20
21
22 Unfortunately we don't have any dumps of anything other than an M1 board right now.
23
24 ---
25
26 is this related to (or a component of?) bingoc.cpp, the EPR numbers are much lower there tho
27 so it's probably an earlier version of the same thing or one of the 'link' boards?
28
29 uses s24 style tilemaps (ram based?)
30
31
32 */
33
34
35 #include "emu.h"
36 #include "cpu/m68000/m68000.h"
37 #include "cpu/z80/z80.h"
38 #include "machine/315_5296.h"
39 #include "machine/gen_latch.h"
40 #include "machine/i8251.h"
41 #include "machine/mb8421.h"
42 #include "sound/2612intf.h"
43 #include "video/segaic24.h"
44 #include "emupal.h"
45 #include "screen.h"
46 #include "speaker.h"
47
48
49
50 class segam1_state : public driver_device
51 {
52 public:
segam1_state(const machine_config & mconfig,device_type type,const char * tag)53 segam1_state(const machine_config &mconfig, device_type type, const char *tag)
54 : driver_device(mconfig, type, tag)
55 , m_maincpu(*this, "maincpu")
56 , m_audiocpu(*this, "audiocpu")
57 , m_m1comm(*this, "m1comm")
58 , m_screen(*this, "screen")
59 , m_palette(*this, "palette")
60 , m_paletteram(*this, "paletteram")
61 , m_tile(*this, "tile")
62 , m_mixer(*this, "mixer")
63 , m_ymsnd(*this, "ymsnd")
64 { }
65
66 void unkm1(machine_config &config);
67 void segam1(machine_config &config);
68
69 private:
70 void paletteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
71 void sound_a0_bank_w(uint8_t data);
72
73 virtual void machine_start() override;
74 virtual void video_start() override;
75
76 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
77 required_device<cpu_device> m_maincpu;
78 required_device<z80_device> m_audiocpu;
79 required_device<z80_device> m_m1comm;
80 required_device<screen_device> m_screen;
81 required_device<palette_device> m_palette;
82 required_shared_ptr<u16> m_paletteram;
83 required_device<segas24_tile_device> m_tile;
84 required_device<segas24_mixer_device> m_mixer;
85 required_device<ym3438_device> m_ymsnd;
86 void segam1_comms_map(address_map &map);
87 void segam1_map(address_map &map);
88 void segam1_sound_io_map(address_map &map);
89 void segam1_sound_map(address_map &map);
90 void unkm1_sound_map(address_map &map);
91 };
92
machine_start()93 void segam1_state::machine_start()
94 {
95 membank("soundbank")->configure_entries(0x00, 0x10, memregion("audiocpu")->base(), 0x2000);
96 }
97
video_start()98 void segam1_state::video_start()
99 {
100 }
101
sound_a0_bank_w(uint8_t data)102 void segam1_state::sound_a0_bank_w(uint8_t data)
103 {
104 membank("soundbank")->set_entry(data & 0x0f);
105 }
106
107 // 315-5242
108
paletteram_w(offs_t offset,uint16_t data,uint16_t mem_mask)109 void segam1_state::paletteram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
110 {
111 COMBINE_DATA(&m_paletteram[offset]);
112 data = m_paletteram[offset];
113
114 u16 r = (data & 0x00f) << 4;
115 if(data & 0x1000)
116 r |= 8;
117
118 u16 g = data & 0x0f0;
119 if(data & 0x2000)
120 g |= 8;
121
122 u16 b = (data & 0xf00) >> 4;
123 if(data & 0x4000)
124 b |= 8;
125
126 r |= r >> 5;
127 g |= g >> 5;
128 b |= b >> 5;
129
130 m_palette->set_pen_color(offset, rgb_t(r, g, b));
131
132 if(data & 0x8000) {
133 r = 255-0.6*(255-r);
134 g = 255-0.6*(255-g);
135 b = 255-0.6*(255-b);
136 } else {
137 r = 0.6*r;
138 g = 0.6*g;
139 b = 0.6*b;
140 }
141 m_palette->set_pen_color(offset+m_palette->entries()/2, rgb_t(r, g, b));
142 }
143
144
145 // copied from segas24.cpp
146 namespace {
147 struct layer_sort {
layer_sort__anonee3373ed0111::layer_sort148 layer_sort(segas24_mixer_device *_mixer) { mixer = _mixer; }
149
operator ()__anonee3373ed0111::layer_sort150 bool operator()(int l1, int l2) {
151 static const int default_pri[12] = { 0, 1, 2, 3, 4, 5, 6, 7, -4, -3, -2, -1 };
152 int p1 = mixer->get_reg(l1) & 7;
153 int p2 = mixer->get_reg(l2) & 7;
154 if(p1 != p2)
155 return p1 - p2 < 0;
156 return default_pri[l2] - default_pri[l1] < 0;
157 }
158
159 segas24_mixer_device *mixer;
160 };
161 }
162
163 // copied from segas24.cpp
screen_update(screen_device & screen,bitmap_ind16 & bitmap,const rectangle & cliprect)164 uint32_t segam1_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
165 {
166 if (m_mixer->get_reg(13) & 1)
167 {
168 bitmap.fill(m_palette->black_pen());
169 return 0;
170 }
171
172 screen.priority().fill(0);
173 bitmap.fill(0, cliprect);
174
175 std::vector<int> order;
176 order.resize(12);
177 for(int i=0; i<12; i++)
178 order[i] = i;
179
180 std::sort(order.begin(), order.end(), layer_sort(m_mixer.target()));
181
182 int level = 0;
183 for(int i=0; i<12; i++)
184 if(order[i] < 8)
185 m_tile->draw(screen, bitmap, cliprect, order[i], level, 0);
186 else
187 level++;
188
189 return 0;
190 }
191
192
193
segam1_map(address_map & map)194 void segam1_state::segam1_map(address_map &map)
195 {
196 map(0x000000, 0x07ffff).rom();
197 map(0x340000, 0x340fff).rw("dpram", FUNC(mb8421_device::right_r), FUNC(mb8421_device::right_w)).umask16(0x00ff);
198 map(0xb00000, 0xb0ffff).rw(m_tile, FUNC(segas24_tile_device::tile_r), FUNC(segas24_tile_device::tile_w));
199 map(0xb20000, 0xb20001).nopw(); /* Horizontal split position (ABSEL) */
200 map(0xb40000, 0xb40001).nopw(); /* Scanline trigger position (XHOUT) */
201 map(0xb60000, 0xb60001).nopw(); /* Frame trigger position (XVOUT) */
202 map(0xb70000, 0xb70001).nopw(); /* Synchronization mode */
203 map(0xb80000, 0xbfffff).rw(m_tile, FUNC(segas24_tile_device::char_r), FUNC(segas24_tile_device::char_w));
204 map(0xc00000, 0xc03fff).ram().w(FUNC(segam1_state::paletteram_w)).share("paletteram");
205 map(0xc04000, 0xc0401f).rw(m_mixer, FUNC(segas24_mixer_device::read), FUNC(segas24_mixer_device::write));
206 map(0xe00000, 0xe0001f).rw("io1", FUNC(sega_315_5296_device::read), FUNC(sega_315_5296_device::write)).umask16(0x00ff);
207 map(0xe40000, 0xe40001).portr("INX");
208 map(0xe40002, 0xe40003).portr("INY");
209 map(0xe40005, 0xe40005).w("soundlatch", FUNC(generic_latch_8_device::write));
210 map(0xe40006, 0xe40007).nopw();
211 map(0xe40008, 0xe40009).portr("INZ");
212 map(0xe80000, 0xe8001f).rw("io2", FUNC(sega_315_5296_device::read), FUNC(sega_315_5296_device::write)).umask16(0x00ff);
213 map(0xf00000, 0xf03fff).mirror(0x0fc000).ram(); // NVRAM?
214 }
215
segam1_sound_map(address_map & map)216 void segam1_state::segam1_sound_map(address_map &map)
217 {
218 map(0x0000, 0x7fff).rom();
219 map(0xa000, 0xbfff).bankr("soundbank");
220 map(0xf000, 0xffff).ram();
221 }
222
unkm1_sound_map(address_map & map)223 void segam1_state::unkm1_sound_map(address_map &map)
224 {
225 segam1_sound_map(map);
226 map(0xe000, 0xefff).ram();
227 }
228
segam1_sound_io_map(address_map & map)229 void segam1_state::segam1_sound_io_map(address_map &map)
230 {
231 map.global_mask(0xff);
232 map(0x80, 0x83).rw(m_ymsnd, FUNC(ym3438_device::read), FUNC(ym3438_device::write));
233 map(0xa0, 0xa0).w(FUNC(segam1_state::sound_a0_bank_w));
234 map(0xc0, 0xc0).r("soundlatch", FUNC(generic_latch_8_device::read)).nopw();
235 }
236
segam1_comms_map(address_map & map)237 void segam1_state::segam1_comms_map(address_map &map)
238 {
239 map(0x0000, 0x7fff).rom();
240 map(0x8000, 0x9fff).ram();
241 map(0xa000, 0xa7ff).rw("dpram", FUNC(mb8421_device::left_r), FUNC(mb8421_device::left_w));
242 map(0xc000, 0xc001).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
243 map(0xe003, 0xe003).nopw(); // ???
244 }
245
246
247 static INPUT_PORTS_START( segam1 )
248 PORT_START("INA")
249 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
250 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
251 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
252 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
253 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
254 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
255 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
256 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
257
258 PORT_START("INB")
259 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
260 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
261 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
262 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
263 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
264 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
265 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
266 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
267
268 PORT_START("INC")
269 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
270 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
271 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
272 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
273 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
274 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
275 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
276 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
277
278 PORT_START("IND")
279 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
280 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
281 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
282 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
283 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
284 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
285 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
286 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
287
288 PORT_START("INE")
289 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
290 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
291 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
292 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
293 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
294 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
295 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
296 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
297
298 PORT_START("INF")
299 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
300 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
301 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
302 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
303 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
304 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
305 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
306 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
307
308 PORT_START("ING")
309 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
310 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
311 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
312 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
313 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
314 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
315 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
316 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
317
318 PORT_START("INX")
319 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
320 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
321 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
322 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
323 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
324 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
325 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
326 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
327 PORT_BIT(0xff00, IP_ACTIVE_LOW, IPT_UNUSED)
328
329 PORT_START("INY")
330 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
331 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
332 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
333 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
334 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
335 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
336 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
337 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
338 PORT_BIT(0xff00, IP_ACTIVE_LOW, IPT_UNUSED)
339
340 PORT_START("INZ")
341 PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNKNOWN)
342 PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
343 PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_UNKNOWN)
344 PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
345 PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNKNOWN)
346 PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNKNOWN)
347 PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNKNOWN)
348 PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
349 PORT_BIT(0xff00, IP_ACTIVE_LOW, IPT_UNUSED)
350 INPUT_PORTS_END
351
352
353
354
segam1(machine_config & config)355 void segam1_state::segam1(machine_config &config)
356 {
357 M68000(config, m_maincpu, XTAL(20'000'000)/2);
358 m_maincpu->set_addrmap(AS_PROGRAM, &segam1_state::segam1_map);
359 m_maincpu->set_vblank_int("screen", FUNC(segam1_state::irq4_line_hold));
360
361 Z80(config, m_audiocpu, 4000000); // unknown clock
362 m_audiocpu->set_addrmap(AS_PROGRAM, &segam1_state::segam1_sound_map);
363 m_audiocpu->set_addrmap(AS_IO, &segam1_state::segam1_sound_io_map);
364
365 Z80(config, m_m1comm, 4000000); // unknown clock
366 m_m1comm->set_addrmap(AS_PROGRAM, &segam1_state::segam1_comms_map);
367
368 sega_315_5296_device &io1(SEGA_315_5296(config, "io1", 0)); // unknown clock
369 io1.in_pa_callback().set_ioport("INA");
370 io1.in_pb_callback().set_ioport("INB");
371 io1.in_pc_callback().set_ioport("INC");
372 io1.in_pd_callback().set_ioport("IND");
373 io1.in_pe_callback().set_ioport("INE");
374 io1.in_pf_callback().set_ioport("INF");
375
376 sega_315_5296_device &io2(SEGA_315_5296(config, "io2", 0)); // unknown clock
377 io2.in_pg_callback().set_ioport("ING");
378
379 I8251(config, "uart", 4000000); // unknown clock
380
381 mb8421_device &dpram(MB8421(config, "dpram"));
382 dpram.intl_callback().set_inputline("m1comm", 0);
383
384 S24TILE(config, m_tile, 0, 0x3fff).set_palette(m_palette);
385 S24MIXER(config, m_mixer, 0);
386
387 SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
388 m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
389 m_screen->set_raw(16000000, 656, 0, 496, 424, 0, 384); // copied from segas24.cpp; may not be accurate
390 m_screen->set_screen_update(FUNC(segam1_state::screen_update));
391 m_screen->set_palette(m_palette);
392
393 PALETTE(config, m_palette).set_entries(8192*2);
394
395 // sound hardware
396 SPEAKER(config, "mono").front_center();
397
398 GENERIC_LATCH_8(config, "soundlatch").data_pending_callback().set_inputline("audiocpu", INPUT_LINE_NMI);
399
400 YM3438(config, m_ymsnd, 8000000);
401 m_ymsnd->add_route(ALL_OUTPUTS, "mono", 0.40);
402 //m_ymsnd->irq_handler().set(FUNC(segam1_state::ym3438_irq_handler));
403 }
404
unkm1(machine_config & config)405 void segam1_state::unkm1(machine_config &config)
406 {
407 segam1(config);
408 m_audiocpu->set_addrmap(AS_PROGRAM, &segam1_state::unkm1_sound_map);
409
410 m_m1comm->set_disable(); // not dumped yet
411 }
412
413
414 ROM_START( bingpty ) // 1994/05/01 string
415 ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
416 ROM_LOAD16_BYTE( "epr-16648b.bin", 0x00000, 0x20000, CRC(e4fceb4c) SHA1(0a248bb328d2f6d72d540baefbe62838f4b76585) )
417 ROM_LOAD16_BYTE( "epr-16649b.bin", 0x00001, 0x20000, CRC(736d8bbd) SHA1(c359ad513d4a7693cbb1a27ce26f89849e894d05) )
418
419 ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 Code */
420 ROM_LOAD( "epr-14845.bin", 0x00000, 0x20000, CRC(90d47101) SHA1(7bc002c104e3dbde1986aaec54112d5658eab523) )
421
422 ROM_REGION( 0x8000, "m1comm", 0 ) /* Z80 Code */
423 ROM_LOAD( "epr-14221a.bin", 0x00000, 0x8000, CRC(a13e67a4) SHA1(4cd269c7f04a64ae7806c8784f86bf6553a25d85) )
424
425 // dumps of the X-Board part, and the LINK PCB are missing.
426 ROM_END
427
428 ROM_START( unkm1 ) // 1992.01.31 string
429 ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
430 ROM_LOAD16_BYTE( "epr-14427.ic8", 0x00000, 0x40000, CRC(2d904fc6) SHA1(7062f47d77d09906420118c85e1cb565bec345a7) )
431 ROM_LOAD16_BYTE( "epr-14428.ic7", 0x00001, 0x40000, CRC(97a317f4) SHA1(19bc4cf6b6c580caa44f36c929b445ed94b2d9eb) )
432
433 ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 Code */
434 ROM_LOAD( "epr-14429.ic104", 0x00000, 0x20000, CRC(1ff8262d) SHA1(fb90bd877b2dc65eb3e5495d6e21dee1f871fb44) )
435
436 ROM_REGION( 0x8000, "m1comm", 0 )
437 ROM_LOAD( "unkm1_comm.bin", 0x00000, 0x8000, NO_DUMP ) // CPU almost certainly exists, but not even type is confirmed
438
439 ROM_REGION( 0x100, "plds", 0 )
440 ROM_LOAD( "315-5472-01.ic22", 0x000, 0x0eb, CRC(828ee6e2) SHA1(f32dd0f6297cc8bd3049be4bca502c0f8ec738cf) )
441 // dumps of the X-Board part, and the LINK PCB are missing.
442 ROM_END
443
444 GAME( 1994, bingpty, 0, segam1, segam1, segam1_state, empty_init, ROT0, "Sega", "Bingo Party Multicart (Rev B) (M1 Satellite board)", MACHINE_NOT_WORKING )
445 GAME( 1992, unkm1, 0, unkm1, segam1, segam1_state, empty_init, ROT0, "Sega", "unknown Sega gambling game (M1 Satellite board)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
446