1 // license:BSD-3-Clause
2 // copyright-holders:David Haywood, Sylvain Glaize, Paul Priest, Olivier Galibert
3 /*
4    Super Kaneko Nova System
5     Original Driver by Sylvain Glaize
6     taken to pieces and attempted reconstruction by David Haywood
7 
8 Mainboard + Cart combo
9   Regions are not cross compatible and have their own BIOS
10    Regions by color coded cart:
11 
12     White      = Japan
13     Light Blue = Europe
14     Dark Blue  = USA
15     Green      = Asia
16     Red        = Korean
17 
18   Credits (in no particular order):
19    Olivier Galibert for all the assistance and information he's provided
20    R. Belmont for working on the SH2 timers so sound worked
21    Nicola Salmoria for hooking up the Roz and improving the dirty tile handling
22    Paul Priest for a lot of things
23    Stephh for spotting what was wrong with Puzz Loop's inputs
24 
25 Puzz Loop is currently the only game dumped for all known regions.  This game is normally found on a ROM 4 BOARD
26    so the "U" location is printed on the label as U4 & U6.  However this same game has also been found on the
27    ROM-2-BOARD using EPROMs labeled for the ROM 4 BOARD, but inserted in sockets at U8 & U10
28 
29 ToDo:
30 
31 galpanis: Are the priorities correct on the KANEKO logo at the start, the invisible faded logo obscures the rotating white lines
32 
33 video:   Sprite Zooming - the current algorithm is leaving gaps, most noticeable in Gals Panic 4, and Jackie Chan which is sharing
34          the video code.
35 
36 video:   Sprite positions still kludged slightly (see skns_sprite_kludge)
37 
38 ------------------
39 
40 SUPER-KANEKO-NOVA-SYSTEM
41 MAIN-BOARD-A
42 NEP-16
43 
44 
45    BATT                                      HM514260
46    CR2032                       SKNSA1       HM514260       SH2
47             W24257                          LH5168
48 YMZ280B-F   W24257   BABY004  LATTICE  SW1  M62X42
49                               pLSI1016
50   HITACHI          28.636MHz 33.3333MHz
51   DF1                        21.504MHz
52 J D49307     ALTAIR                   DENEB
53              BY006-224                BY007-32F
54 A            (QFP208)                 (QFP208)
55 
56 M                  W24257  W24257           HM514260
57             /-     W24257  W24257                                 /-
58 M VEGA      ||             W24257  SPCII-B  HM514260              ||
59   BY005-197 ||             W24257  JH-6186                        ||
60 A (QFP144)  ||                     (QFP208)                       ||
61             ||                               W24257               ||
62   DSW1(8)   ||      VIEWIII-A      SPCII-A   W24257 LH540202      ||
63             ||      BL-001         JH-4181   W24257               ||
64             \-      (QFP240)       (QFP208)  W24257               \-
65   OKIM6253
66 
67 
68 Notes:
69       SKNSA1 is BIOS (Asia)
70       HM514260, W24257, LH5168, M62X42 all smt SRAM
71       LH540202 is DIP SRAM
72 
73 
74 Cart Layout
75 -----------
76 
77 SUPER-KANEKO-NOVA-SYSTEM
78 ROM-BOARD
79 NEP-16
80 
81 
82  /-                                                    /-
83  ||SK300-00  *  PAL PAL D431000 D431000  *       *     ||
84  ||                                                    ||
85  ||                                                    ||
86  ||                        *   SK-200-00               ||
87  ||          SK01A  SK01A                              ||
88  ||          U8     U10    *      *    SK-101 SK-100-00||
89  \-                                                    \-
90 
91  Notes:
92        *: unpopulated position for surface mounted 16MBit SOP44 mask ROM
93        U8 and U10 are socketed 27C040 EPROM
94        All other ROMs are surface mounted SOP44 mask ROM
95 
96 Cart Layout
97 -----------
98 
99 SUPER KANEKO NOVA SYSTEM
100 ROM 4 BOARD
101 NEP-16
102 
103 Top Side:
104  /-                                                    /-
105  ||SS300-00 SS210-00     SS102-00 SS103-00   SS201-00  ||
106  ||U1       U3           U8       U32        U9        ||
107  ||                                                    ||
108  ||                                                    ||
109  || 082*    SG01A  SG01A  #      #                     ||
110  ||          U4     U6    U29    U30                   ||
111  \-                                                    \-
112 
113 Bottom Side:
114  /-                                                    /-
115  ||SS200-00 SS000-00     SS101-00       ^       ^      ||
116  ||U17      U21          U20            U24     U26    ||
117  ||                                                    ||
118  ||                                                    ||
119  ||                                  NEC     NEC       ||
120  ||                                  D431000 D43100    ||
121  \-                                                    \-
122 
123 * Kaneko (208 pin PQFP)    # Empty sockets for 27C4001 / 27C040
124   ROM0                     ^ Empty sockets for uPD23C32000
125   082                        Full NEC ram number: D431000AGW-70LL
126   9709PK002
127 
128 
129 Cart Layout
130 -----------
131 
132 SUPER-KANEKO-NOVA-SYSTEM
133 ROM-2-BOARD
134 NEP-16
135 
136 
137  /-                                                    /-
138  ||PZL-300-00 * PAL PAL  *   PZL-200-00 PZL-210-00  *  ||
139  ||                                                    ||
140  ||                             D431000 D431000        ||
141  ||                                                    ||
142  ||          PZ01U  PZ01U  #    #                      ||
143  ||          U8     U10    U43  U44   *   * PZL-100-00 ||
144  \-                                                    \-
145 
146 
147 */
148 
149 #include "emu.h"
150 #include "includes/suprnova.h"
151 
152 #include "cpu/sh/sh2.h"
153 #include "machine/msm6242.h"
154 #include "machine/nvram.h"
155 #include "sound/ymz280b.h"
156 
157 #include "speaker.h"
158 
159 
hit_calc_orig(uint16_t p,uint16_t s,uint16_t org,uint16_t * l,uint16_t * r)160 static void hit_calc_orig(uint16_t p, uint16_t s, uint16_t org, uint16_t *l, uint16_t *r)
161 {
162 	switch(org & 3) {
163 	case 0:
164 		*l = p;
165 		*r = p+s;
166 	break;
167 	case 1:
168 		*l = p-s/2;
169 		*r = *l+s;
170 	break;
171 	case 2:
172 		*l = p-s;
173 		*r = p;
174 	break;
175 	case 3:
176 		*l = p-s;
177 		*r = p+s;
178 	break;
179 	}
180 }
181 
hit_calc_axis(uint16_t x1p,uint16_t x1s,uint16_t x2p,uint16_t x2s,uint16_t org,uint16_t * x1_p1,uint16_t * x1_p2,uint16_t * x2_p1,uint16_t * x2_p2,int16_t * x_in,uint16_t * x1tox2)182 static void hit_calc_axis(uint16_t x1p, uint16_t x1s, uint16_t x2p, uint16_t x2s, uint16_t org,
183 				uint16_t *x1_p1, uint16_t *x1_p2, uint16_t *x2_p1, uint16_t *x2_p2,
184 				int16_t *x_in, uint16_t *x1tox2)
185 {
186 	uint16_t x1l=0, x1r=0, x2l=0, x2r=0;
187 	hit_calc_orig(x1p, x1s, org,      &x1l, &x1r);
188 	hit_calc_orig(x2p, x2s, org >> 8, &x2l, &x2r);
189 
190 	*x1tox2 = x2p-x1p;
191 	*x1_p1 = x1p;
192 	*x2_p1 = x2p;
193 	*x1_p2 = x1r;
194 	*x2_p2 = x2l;
195 	*x_in = x1r-x2l;
196 }
197 
hit_recalc()198 void skns_state::hit_recalc()
199 {
200 	hit_t &hit = m_hit;
201 
202 	hit_calc_axis(hit.x1p, hit.x1s, hit.x2p, hit.x2s, hit.org,
203 		&hit.x1_p1, &hit.x1_p2, &hit.x2_p1, &hit.x2_p2,
204 		&hit.x_in, &hit.x1tox2);
205 	hit_calc_axis(hit.y1p, hit.y1s, hit.y2p, hit.y2s, hit.org,
206 		&hit.y1_p1, &hit.y1_p2, &hit.y2_p1, &hit.y2_p2,
207 		&hit.y_in, &hit.y1toy2);
208 	hit_calc_axis(hit.z1p, hit.z1s, hit.z2p, hit.z2s, hit.org,
209 		&hit.z1_p1, &hit.z1_p2, &hit.z2_p1, &hit.z2_p2,
210 		&hit.z_in, &hit.z1toz2);
211 
212 	hit.flag = 0;
213 	hit.flag |= hit.y2p > hit.y1p ? 0x8000 : hit.y2p == hit.y1p ? 0x4000 : 0x2000;
214 	hit.flag |= hit.y_in >= 0 ? 0 : 0x1000;
215 	hit.flag |= hit.x2p > hit.x1p ? 0x0800 : hit.x2p == hit.x1p ? 0x0400 : 0x0200;
216 	hit.flag |= hit.x_in >= 0 ? 0 : 0x0100;
217 	hit.flag |= hit.z2p > hit.z1p ? 0x0080 : hit.z2p == hit.z1p ? 0x0040 : 0x0020;
218 	hit.flag |= hit.z_in >= 0 ? 0 : 0x0010;
219 	hit.flag |= hit.x_in >= 0 && hit.y_in >= 0 && hit.z_in >= 0 ? 8 : 0;
220 	hit.flag |= hit.z_in >= 0 && hit.x_in >= 0                  ? 4 : 0;
221 	hit.flag |= hit.y_in >= 0 && hit.z_in >= 0                  ? 2 : 0;
222 	hit.flag |= hit.x_in >= 0 && hit.y_in >= 0                  ? 1 : 0;
223 /*  if(0)
224     log_event("HIT", "Recalc, (%d,%d)-(%d,%d)-(%d,%d):(%d,%d)-(%d,%d)-(%d,%d):%04x, (%d,%d,%d), %04x",
225           hit.x1p, hit.x1s, hit.y1p, hit.y1s, hit.z1p, hit.z1s,
226           hit.x2p, hit.x2s, hit.y2p, hit.y2s, hit.z2p, hit.z2s,
227           hit.org,
228           hit.x_in, hit.y_in, hit.z_in, hit.flag);
229 */
230 }
231 
hit_w(offs_t offset,uint32_t data)232 void skns_state::hit_w(offs_t offset, uint32_t data)
233 //void hit_w(uint32_t adr, uint32_t data, int type)
234 {
235 	hit_t &hit = m_hit;
236 	int adr = offset * 4;
237 
238 	switch(adr) {
239 	case 0x00:
240 	case 0x28:
241 		hit.x1p = data;
242 	break;
243 	case 0x08:
244 	case 0x30:
245 		hit.y1p = data;
246 	break;
247 	case 0x38:
248 	case 0x50:
249 		hit.z1p = data;
250 	break;
251 	case 0x04:
252 	case 0x2c:
253 		hit.x1s = data;
254 	break;
255 	case 0x0c:
256 	case 0x34:
257 		hit.y1s = data;
258 	break;
259 	case 0x3c:
260 	case 0x54:
261 		hit.z1s = data;
262 	break;
263 	case 0x10:
264 	case 0x58:
265 		hit.x2p = data;
266 	break;
267 	case 0x18:
268 	case 0x60:
269 		hit.y2p = data;
270 	break;
271 	case 0x20:
272 	case 0x68:
273 		hit.z2p = data;
274 	break;
275 	case 0x14:
276 	case 0x5c:
277 		hit.x2s = data;
278 	break;
279 	case 0x1c:
280 	case 0x64:
281 		hit.y2s = data;
282 	break;
283 	case 0x24:
284 	case 0x6c:
285 		hit.z2s = data;
286 	break;
287 	case 0x70:
288 		hit.org = data;
289 	break;
290 	default:
291 //      log_write("HIT", adr, data, type);
292 	break;
293 	}
294 	hit_recalc();
295 }
296 
hit2_w(uint32_t data)297 void skns_state::hit2_w(uint32_t data)
298 {
299 	hit_t &hit = m_hit;
300 
301 	// Decide to unlock on country char of string "FOR xxxxx" in Bios ROM at offset 0x420
302 	// this code simulates behaviour of protection PLD
303 	data>>= 24;
304 	hit.disconnect = 1;
305 	switch (m_region)
306 	{
307 		case 'J':
308 			if (data == 0) hit.disconnect= 0;
309 		break;
310 		case 'U':
311 			if (data == 1) hit.disconnect= 0;
312 		break;
313 		case 'K':
314 			if (data == 2) hit.disconnect= 0;
315 		break;
316 		case 'E':
317 			if (data == 3) hit.disconnect= 0;
318 		break;
319 		case 'A':
320 			if (data < 2) hit.disconnect= 0;
321 		break;
322 		// unknown country id, unlock per default
323 		default:
324 			hit.disconnect= 0;
325 		break;
326 	}
327 }
328 
329 
hit_r(offs_t offset)330 uint32_t skns_state::hit_r(offs_t offset)
331 //uint32_t hit_r(uint32_t adr, int type)
332 {
333 	hit_t &hit = m_hit;
334 	int adr = offset *4;
335 
336 //  log_read("HIT", adr, type);
337 
338 	if(hit.disconnect)
339 		return 0x0000;
340 	switch(adr) {
341 	case 0x28:
342 	case 0x2a:
343 		return (uint16_t)machine().rand();
344 	case 0x00:
345 	case 0x10:
346 		return (uint16_t)hit.x_in;
347 	case 0x04:
348 	case 0x14:
349 		return (uint16_t)hit.y_in;
350 	case 0x18:
351 		return (uint16_t)hit.z_in;
352 	case 0x08:
353 	case 0x1c:
354 		return hit.flag;
355 	case 0x40:
356 		return hit.x1p;
357 	case 0x48:
358 		return hit.y1p;
359 	case 0x50:
360 		return hit.z1p;
361 	case 0x44:
362 		return hit.x1s;
363 	case 0x4c:
364 		return hit.y1s;
365 	case 0x54:
366 		return hit.z1s;
367 	case 0x58:
368 		return hit.x2p;
369 	case 0x60:
370 		return hit.y2p;
371 	case 0x68:
372 		return hit.z2p;
373 	case 0x5c:
374 		return hit.x2s;
375 	case 0x64:
376 		return hit.y2s;
377 	case 0x6c:
378 		return hit.z2s;
379 	case 0x70:
380 		return hit.org;
381 	case 0x80:
382 		return hit.x1tox2;
383 	case 0x84:
384 		return hit.y1toy2;
385 	case 0x88:
386 		return hit.z1toz2;
387 	case 0x90:
388 		return hit.x1_p1;
389 	case 0xa0:
390 		return hit.y1_p1;
391 	case 0xb0:
392 		return hit.z1_p1;
393 	case 0x98:
394 		return hit.x1_p2;
395 	case 0xa8:
396 		return hit.y1_p2;
397 	case 0xb8:
398 		return hit.z1_p2;
399 	case 0x94:
400 		return hit.x2_p1;
401 	case 0xa4:
402 		return hit.y2_p1;
403 	case 0xb4:
404 		return hit.z2_p1;
405 	case 0x9c:
406 		return hit.x2_p2;
407 	case 0xac:
408 		return hit.y2_p2;
409 	case 0xbc:
410 		return hit.z2_p2;
411 	default:
412 //      log_read("HIT", adr, type);
413 	return 0;
414 	}
415 }
416 
417 /* end hit.c */
418 
419 
420 /* start old driver code */
421 
422 
TIMER_DEVICE_CALLBACK_MEMBER(skns_state::interrupt_callback)423 TIMER_DEVICE_CALLBACK_MEMBER(skns_state::interrupt_callback)
424 {
425 	m_maincpu->set_input_line(param, HOLD_LINE);
426 }
427 
machine_start()428 void skns_state::machine_start()
429 {
430 	m_btiles = memregion("gfx3")->base();
431 
432 	save_pointer(NAME(m_btiles), memregion("gfx3")->bytes());
433 	save_item(NAME(m_hit.x1p));
434 	save_item(NAME(m_hit.y1p));
435 	save_item(NAME(m_hit.z1p));
436 	save_item(NAME(m_hit.x1s));
437 	save_item(NAME(m_hit.y1s));
438 	save_item(NAME(m_hit.z1s));
439 	save_item(NAME(m_hit.x2p));
440 	save_item(NAME(m_hit.y2p));
441 	save_item(NAME(m_hit.z2p));
442 	save_item(NAME(m_hit.x2s));
443 	save_item(NAME(m_hit.y2s));
444 	save_item(NAME(m_hit.z2s));
445 	save_item(NAME(m_hit.org));
446 	save_item(NAME(m_hit.x1_p1));
447 	save_item(NAME(m_hit.x1_p2));
448 	save_item(NAME(m_hit.y1_p1));
449 	save_item(NAME(m_hit.y1_p2));
450 	save_item(NAME(m_hit.z1_p1));
451 	save_item(NAME(m_hit.z1_p2));
452 	save_item(NAME(m_hit.x2_p1));
453 	save_item(NAME(m_hit.x2_p2));
454 	save_item(NAME(m_hit.y2_p1));
455 	save_item(NAME(m_hit.y2_p2));
456 	save_item(NAME(m_hit.z2_p1));
457 	save_item(NAME(m_hit.z2_p2));
458 	save_item(NAME(m_hit.x1tox2));
459 	save_item(NAME(m_hit.y1toy2));
460 	save_item(NAME(m_hit.z1toz2));
461 	save_item(NAME(m_hit.x_in));
462 	save_item(NAME(m_hit.y_in));
463 	save_item(NAME(m_hit.z_in));
464 	save_item(NAME(m_hit.flag));
465 	save_item(NAME(m_hit.disconnect));
466 }
467 
machine_reset()468 void skns_state::machine_reset()
469 {
470 	hit_t &hit = m_hit;
471 
472 	if (m_region != 'A')
473 		hit.disconnect= 1;
474 	else
475 		hit.disconnect= 0;
476 
477 	membank("bank1")->set_base(memregion("user1")->base());
478 }
479 
480 
TIMER_DEVICE_CALLBACK_MEMBER(skns_state::irq)481 TIMER_DEVICE_CALLBACK_MEMBER(skns_state::irq)
482 {
483 	int scanline = param;
484 
485 	if(scanline == 240)
486 		m_maincpu->set_input_line(5,HOLD_LINE); //vblank
487 	else if(scanline == 0)
488 		m_maincpu->set_input_line(1,HOLD_LINE); // spc
489 }
490 
491 /**********************************************************************************
492 
493     Input port definitions
494 
495     NOTE: The driver reads data from eight 8bit input ports, even if they
496            are unused. So I left them mapped.
497 
498 **********************************************************************************/
499 
500 template <int P>
CUSTOM_INPUT_MEMBER(skns_state::paddle_r)501 CUSTOM_INPUT_MEMBER(skns_state::paddle_r)
502 {
503 	return m_paddle[P]->read();
504 }
505 
506 static INPUT_PORTS_START( skns )        /* 3 buttons, 2 players */
507 	PORT_START("400000")
508 	PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNUSED )
509 	PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_START1 )
510 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_START2 )
511 	PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_COIN1 )
512 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_COIN2 )
513 	PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_SERVICE )
514 	PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_TILT )
515 	PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_SERVICE1 )
516 	PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_UNKNOWN )
517 
518 	PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
519 	PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
520 	PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
521 	PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
522 	PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
523 	PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
524 	PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
525 	PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNUSED )
526 	PORT_BIT( 0x01000000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
527 	PORT_BIT( 0x02000000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
528 	PORT_BIT( 0x04000000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
529 	PORT_BIT( 0x08000000, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
530 	PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
531 	PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
532 	PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
533 	PORT_BIT( 0x80000000, IP_ACTIVE_LOW, IPT_UNUSED )
534 
535 	PORT_START("400004")
536 	PORT_SERVICE( 0x00000001, IP_ACTIVE_LOW )
DEF_STR(Flip_Screen)537 	PORT_DIPNAME( 0x00000002, 0x00000002, DEF_STR( Flip_Screen ) ) // This port affects 0x000000040191c8 function
538 	PORT_DIPSETTING(          0x00000002, DEF_STR( Off ) )
539 	PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
540 	PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) )
541 	PORT_DIPSETTING(          0x00000004, DEF_STR( Off ) )
542 	PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
543 	PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) )
544 	PORT_DIPSETTING(          0x00000008, DEF_STR( Off ) )
545 	PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
546 	PORT_DIPNAME( 0x00000010, 0x00000010, DEF_STR( Unknown ) )
547 	PORT_DIPSETTING(          0x00000010, DEF_STR( Off ) )
548 	PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
549 	PORT_DIPNAME( 0x00000020, 0x00000020, DEF_STR( Unknown ) )
550 	PORT_DIPSETTING(          0x00000020, DEF_STR( Off ) )
551 	PORT_DIPSETTING(          0x00000000, DEF_STR( On ) )
552 	PORT_DIPNAME( 0x00000040, 0x00000040, "Use Backup Ram" )
553 	PORT_DIPSETTING(          0x00000000, DEF_STR( No ) )
554 	PORT_DIPSETTING(          0x00000040, DEF_STR( Yes ) )
555 	PORT_DIPNAME( 0x00000080, 0x00000080, "Freeze" )
556 	PORT_DIPSETTING(          0x00000000, "Freezes the game")
557 	PORT_DIPSETTING(          0x00000080, "Right value")
558 	PORT_BIT( 0x0000ff00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<2>) // Paddle C
559 	PORT_BIT( 0x00ff0000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<1>) // Paddle B
560 	PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<0>) // Paddle A
561 
562 	PORT_START("40000c")
563 	PORT_BIT( 0x000000ff, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(skns_state, paddle_r<3>) // Paddle D
564 	PORT_BIT( 0xffffff00, IP_ACTIVE_LOW, IPT_UNUSED )
565 
566 	PORT_START("Paddle.A")
567 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
568 
569 	PORT_START("Paddle.B")
570 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
571 
572 	PORT_START("Paddle.C")
573 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
574 
575 	PORT_START("Paddle.D")
576 	PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
577 INPUT_PORTS_END
578 
579 static INPUT_PORTS_START( skns_1p )     /* 2 buttons, 1 player */
580 	PORT_INCLUDE( skns )
581 
582 	PORT_MODIFY("400000")
583 	/* jjparads and jjparad2 are 1 player only games
584 	   ryouran and teljan have an unemulated feature
585 	   that allows to play them in two player mode
586 	   via a cable-network connection (untestable)
587 	   Service mode test shows only P1 inputs */
588 	PORT_BIT( 0x00ff0000, IP_ACTIVE_LOW, IPT_UNUSED )
589 	/* same as above, coin 2 and start 2 are untestable
590 	   in ryouran and teljan. So I left disabled for now */
591 	PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_UNUSED )   /* Start 2 */
592 	PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_UNUSED )   /* Coin 2 */
593 	PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 3 */
594 
595 	PORT_MODIFY("400004")
596 	PORT_DIPNAME( 0x00000010, 0x00000010, "Test Mode" )
597 	PORT_DIPSETTING(          0x00000010, DEF_STR(Off) )
598 	PORT_DIPSETTING(          0x00000000, DEF_STR(On) )
599 INPUT_PORTS_END
600 
601 static INPUT_PORTS_START( cyvern )      /* 2 buttons, 2 players */
602 	PORT_INCLUDE( skns )
603 
604 	PORT_MODIFY("400000")
605 	PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 3 */
606 	PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 3 */
607 INPUT_PORTS_END
608 
609 static INPUT_PORTS_START( galpanis )    /* 1 button, 2 players */
610 	PORT_INCLUDE( skns )
611 
612 	PORT_MODIFY("400000")
613 	PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 2 */
614 	PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 3 */
615 	PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 2 */
616 	PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 3 */
617 INPUT_PORTS_END
618 
619 static INPUT_PORTS_START( puzzloop )    /* 2 buttons, 2 players, paddle */
620 	PORT_INCLUDE( skns )
621 
622 	PORT_MODIFY("400000")
623 	PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 3 */
624 	PORT_BIT( 0x40000000, IP_ACTIVE_LOW, IPT_UNUSED )   /* No Button 3 */
625 
626 	PORT_MODIFY("Paddle.A")  /* Paddle A */
627 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
628 
629 	PORT_MODIFY("Paddle.B")  /* Paddle B */
630 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2)
631 INPUT_PORTS_END
632 
633 static INPUT_PORTS_START( vblokbrk )    /* 3 buttons, 2 players, paddle */
634 	PORT_INCLUDE( skns )
635 
636 	PORT_MODIFY("Paddle.A")  /* Paddle A */
637 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
638 
639 	PORT_MODIFY("Paddle.B")  /* Paddle B */
640 	PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(2)
641 INPUT_PORTS_END
642 
643 
644 
645 void skns_state::io_w(offs_t offset, uint32_t data, uint32_t mem_mask)
646 {
647 	switch(offset) {
648 	case 2:
649 		if(ACCESSING_BITS_24_31)
650 		{ /* Coin Lock/Count */
651 //          machine().bookkeeping().coin_counter_w(0, data & 0x01000000);
652 //          machine().bookkeeping().coin_counter_w(1, data & 0x02000000);
653 //          machine().bookkeeping().coin_lockout_w(0, ~data & 0x04000000);
654 //          machine().bookkeeping().coin_lockout_w(1, ~data & 0x08000000); // Works in puzzloop, others behave strange.
655 		}
656 		if(ACCESSING_BITS_16_23)
657 		{ /* Analogue Input Select */
658 		}
659 		if(ACCESSING_BITS_8_15)
660 		{ /* Extended Output - Port A, Mahjong inputs, Comms etc. */
661 		}
662 		if(ACCESSING_BITS_0_7)
663 		{ /* Extended Output - Port B */
664 		}
665 	break;
666 	case 3:
667 		if(ACCESSING_BITS_8_15)
668 		{ /* Interrupt Clear, do we need these? */
669 /*          if(data&0x01)
670                 m_maincpu->set_input_line(1,CLEAR_LINE);
671             if(data&0x02)
672                 m_maincpu->set_input_line(3,CLEAR_LINE);
673             if(data&0x04)
674                 m_maincpu->set_input_line(5,CLEAR_LINE);
675             if(data&0x08)
676                 m_maincpu->set_input_line(7,CLEAR_LINE);
677             if(data&0x10)
678                 m_maincpu->set_input_line(9,CLEAR_LINE);
679             if(data&0x20)
680                 m_maincpu->set_input_line(0xb,CLEAR_LINE);
681             if(data&0x40)
682                 m_maincpu->set_input_line(0xd,CLEAR_LINE);
683             if(data&0x80)
684                 m_maincpu->set_input_line(0xf,CLEAR_LINE);*/
685 
686 			/* idle skip for vblokbrk/sarukani, i can't find a better place to put it :-( but i think it works ok unless its making the game too fast */
687 			if (m_maincpu->pc()==0x04013B42)
688 			{
689 				if (!strcmp(machine().system().name,"vblokbrk") ||
690 					!strcmp(machine().system().name,"sarukani"))
691 					m_maincpu->spin_until_interrupt();
692 			}
693 
694 		}
695 		else
696 		{
697 			logerror("Unk IO Write memmask:%08x offset:%08x data:%08x\n", mem_mask, offset, data);
698 		}
699 	break;
700 	default:
701 		logerror("Unk IO Write memmask:%08x offset:%08x data:%08x\n", mem_mask, offset, data);
702 	break;
703 	}
704 }
705 
706 /* end old driver code */
707 
v3t_w(offs_t offset,uint32_t data,uint32_t mem_mask)708 void skns_state::v3t_w(offs_t offset, uint32_t data, uint32_t mem_mask)
709 {
710 	COMBINE_DATA(&m_v3t_ram[offset]);
711 
712 	m_gfxdecode->gfx(1)->mark_dirty(offset/0x40);
713 	m_gfxdecode->gfx(3)->mark_dirty(offset/0x20);
714 
715 	data = m_v3t_ram[offset];
716 // i think we need to swap around to decode .. endian issues?
717 
718 	m_btiles[offset*4+0] = (data & 0xff000000) >> 24;
719 	m_btiles[offset*4+1] = (data & 0x00ff0000) >> 16;
720 	m_btiles[offset*4+2] = (data & 0x0000ff00) >> 8;
721 	m_btiles[offset*4+3] = (data & 0x000000ff) >> 0;
722 }
723 
skns_map(address_map & map)724 void skns_state::skns_map(address_map &map)
725 {
726 	map(0x00000000, 0x0007ffff).rom(); /* BIOS ROM */
727 	map(0x00400000, 0x0040000f).w(FUNC(skns_state::io_w)); /* I/O Write */
728 	map(0x00400000, 0x00400003).portr("400000");
729 	map(0x00400004, 0x00400007).portr("400004");
730 	/* In between is write only */
731 	map(0x0040000c, 0x0040000f).portr("40000c");
732 	map(0x00800000, 0x00801fff).ram().share("nvram"); /* 'backup' RAM */
733 	map(0x00c00000, 0x00c00001).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)); /* ymz280_w (sound) */
734 	map(0x01000000, 0x0100000f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
735 	map(0x01800000, 0x01800003).w(FUNC(skns_state::hit2_w));
736 	map(0x02000000, 0x02003fff).ram().share("spriteram"); /* sprite ram */
737 	map(0x02100000, 0x0210003f).ram().share("spc_regs"); /* sprite registers */
738 	map(0x02400000, 0x0240007f).ram().w(FUNC(skns_state::v3_regs_w)).share("v3_regs"); /* tilemap registers */
739 	map(0x02500000, 0x02503fff).ram().w(FUNC(skns_state::tilemapA_w)).share("tilemapa_ram"); /* tilemap A */
740 	map(0x02504000, 0x02507fff).ram().w(FUNC(skns_state::tilemapB_w)).share("tilemapb_ram"); /* tilemap B */
741 	map(0x02600000, 0x02607fff).ram().share("v3slc_ram"); /* tilemap linescroll */
742 	map(0x02a00000, 0x02a0001f).ram().w(FUNC(skns_state::pal_regs_w)).share("pal_regs");
743 	map(0x02a40000, 0x02a5ffff).ram().w(FUNC(skns_state::palette_ram_w)).share("palette_ram");
744 	map(0x02f00000, 0x02f000ff).rw(FUNC(skns_state::hit_r), FUNC(skns_state::hit_w));
745 	map(0x04000000, 0x041fffff).bankr("bank1"); /* GAME ROM */
746 	map(0x04800000, 0x0483ffff).ram().w(FUNC(skns_state::v3t_w)).share("v3t_ram"); /* tilemap b ram based tiles */
747 	map(0x06000000, 0x060fffff).ram().share("main_ram");
748 	map(0xc0000000, 0xc0000fff).ram().share("cache_ram"); /* 'cache' RAM */
749 }
750 
751 /***** GFX DECODE *****/
752 
753 static GFXDECODE_START( skns_bg )
754 	/* "spritegen" is sprites, RLE encoded */
755 	GFXDECODE_ENTRY( "gfx2", 0, gfx_16x16x8_raw, 0x000, 128 )
756 	GFXDECODE_ENTRY( "gfx3", 0, gfx_16x16x8_raw, 0x000, 128 )
757 	GFXDECODE_ENTRY( "gfx2", 0, gfx_16x16x4_packed_lsb, 0x000, 128 )
758 	GFXDECODE_ENTRY( "gfx3", 0, gfx_16x16x4_packed_lsb, 0x000, 128 )
759 GFXDECODE_END
760 
761 /***** MACHINE DRIVER *****/
762 
763 // XTALs : 28.636MHz, 33.3333MHz, 21.504MHz
skns(machine_config & config)764 void skns_state::skns(machine_config &config)
765 {
766 	SH2(config, m_maincpu, XTAL(28'636'000));
767 	m_maincpu->set_addrmap(AS_PROGRAM, &skns_state::skns_map);
768 
769 	TIMER(config, "scantimer").configure_scanline(FUNC(skns_state::irq), "screen", 0, 1);
770 
771 	MSM6242(config, "rtc", XTAL(32'768));
772 
773 	NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
774 
775 	timer_device &int15_timer(TIMER(config, "int15_timer"));
776 	int15_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_msec(2));
777 	int15_timer.config_param(15);
778 	timer_device &int11_timer(TIMER(config, "int11_timer"));
779 	int11_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_msec(8));
780 	int11_timer.config_param(11);
781 	timer_device &int9_timer(TIMER(config, "int9_timer"));
782 	int9_timer.configure_periodic(FUNC(skns_state::interrupt_callback), attotime::from_hz(XTAL(28'636'000)/1824));
783 	int9_timer.config_param(9);
784 
785 	SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
786 	m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
787 	m_screen->set_refresh_hz(59.5971); // measured by Guru
788 	m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
789 	m_screen->set_size(340,262);
790 	m_screen->set_visarea(0,319,0,239);
791 	m_screen->set_screen_update(FUNC(skns_state::screen_update));
792 	m_screen->screen_vblank().set(FUNC(skns_state::screen_vblank));
793 
794 	PALETTE(config, m_palette).set_entries(32768);
795 	GFXDECODE(config, m_gfxdecode, m_palette, skns_bg);
796 
797 	SKNS_SPRITE(config, m_spritegen, 0);
798 
799 	/* sound hardware */
800 	SPEAKER(config, "lspeaker").front_left();
801 	SPEAKER(config, "rspeaker").front_right();
802 
803 	ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(33'333'333) / 2));
804 	ymz.add_route(0, "lspeaker", 1.0);
805 	ymz.add_route(1, "rspeaker", 1.0);
806 }
807 
MACHINE_RESET_MEMBER(skns_state,sknsa)808 MACHINE_RESET_MEMBER(skns_state,sknsa)
809 {
810 	m_region = 'A';
811 	skns_state::machine_reset();
812 }
813 
MACHINE_RESET_MEMBER(skns_state,sknsj)814 MACHINE_RESET_MEMBER(skns_state,sknsj)
815 {
816 	m_region = 'J';
817 	skns_state::machine_reset();
818 }
819 
MACHINE_RESET_MEMBER(skns_state,sknsu)820 MACHINE_RESET_MEMBER(skns_state,sknsu)
821 {
822 	m_region = 'U';
823 	skns_state::machine_reset();
824 }
825 
MACHINE_RESET_MEMBER(skns_state,sknse)826 MACHINE_RESET_MEMBER(skns_state,sknse)
827 {
828 	m_region = 'E';
829 	skns_state::machine_reset();
830 }
831 
MACHINE_RESET_MEMBER(skns_state,sknsk)832 MACHINE_RESET_MEMBER(skns_state,sknsk)
833 {
834 	m_region = 'K';
835 	skns_state::machine_reset();
836 }
837 
838 
sknsa(machine_config & config)839 void skns_state::sknsa(machine_config &config)
840 {
841 	skns(config);
842 	MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsa)
843 }
844 
sknsj(machine_config & config)845 void skns_state::sknsj(machine_config &config)
846 {
847 	skns(config);
848 	MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsj)
849 }
850 
sknsu(machine_config & config)851 void skns_state::sknsu(machine_config &config)
852 {
853 	skns(config);
854 	MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsu)
855 }
856 
sknse(machine_config & config)857 void skns_state::sknse(machine_config &config)
858 {
859 	skns(config);
860 	MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknse)
861 }
862 
sknsk(machine_config & config)863 void skns_state::sknsk(machine_config &config)
864 {
865 	skns(config);
866 	MCFG_MACHINE_RESET_OVERRIDE(skns_state,sknsk)
867 }
868 
869 /***** IDLE SKIPPING *****/
870 
gutsn_speedup_r()871 uint32_t skns_state::gutsn_speedup_r()
872 {
873 /*
874     0402206A: MOV.L   @($8C,PC),R5
875     0402206C: MOV.L   @($8C,PC),R1
876     0402206E: MOV.L   @R1,R2       // R1 == 600C780
877     04022070: MOV.L   @R5,R3       // R5 == 6000078
878     04022072: CMP/EQ  R2,R3
879     04022074: BT      $0402206C
880 */
881 	if (m_maincpu->pc()==0x402206e)
882 	{
883 		if(m_main_ram[0x00078/4] == m_main_ram[0x0c780/4])
884 			m_maincpu->spin_until_interrupt();
885 	}
886 	return m_main_ram[0x0c780/4];
887 }
888 
cyvern_speedup_r()889 uint32_t skns_state::cyvern_speedup_r()
890 {
891 	if (m_maincpu->pc()==0x402ebd2) m_maincpu->spin_until_interrupt();
892 	return m_main_ram[0x4d3c8/4];
893 }
894 
puzzloopj_speedup_r()895 uint32_t skns_state::puzzloopj_speedup_r()
896 {
897 	if (m_maincpu->pc()==0x401dca0) m_maincpu->spin_until_interrupt();
898 	return m_main_ram[0x86714/4];
899 }
900 
puzzloopa_speedup_r()901 uint32_t skns_state::puzzloopa_speedup_r()
902 {
903 	if (m_maincpu->pc()==0x401d9d4) m_maincpu->spin_until_interrupt();
904 	return m_main_ram[0x85bcc/4];
905 }
906 
puzzloopu_speedup_r()907 uint32_t skns_state::puzzloopu_speedup_r()
908 {
909 	if (m_maincpu->pc()==0x401dab0) m_maincpu->spin_until_interrupt();
910 	return m_main_ram[0x85cec/4];
911 }
912 
puzzloope_speedup_r()913 uint32_t skns_state::puzzloope_speedup_r()
914 {
915 /*
916     0401DA12: MOV.L   @($80,PC),R1
917     0401DA14: MOV.L   @R1,R0 (R1=0x6081d38)
918     0401DA16: TST     R0,R0
919     0401DA18: BF      $0401DA26
920     0401DA26: BRA     $0401DA12
921 */
922 	if (m_maincpu->pc()==0x401da14) m_maincpu->spin_until_interrupt();
923 	return m_main_ram[0x81d38/4];
924 }
925 
senknow_speedup_r()926 uint32_t skns_state::senknow_speedup_r()
927 {
928 	if (m_maincpu->pc()==0x4017dce) m_maincpu->spin_until_interrupt();
929 	return m_main_ram[0x0000dc/4];
930 }
931 
teljan_speedup_r()932 uint32_t skns_state::teljan_speedup_r()
933 {
934 	if (m_maincpu->pc()==0x401ba32) m_maincpu->spin_until_interrupt();
935 	return m_main_ram[0x002fb4/4];
936 }
937 
jjparads_speedup_r()938 uint32_t skns_state::jjparads_speedup_r()
939 {
940 	if (m_maincpu->pc()==0x4015e84) m_maincpu->spin_until_interrupt();
941 	return m_main_ram[0x000994/4];
942 }
943 
jjparad2_speedup_r()944 uint32_t skns_state::jjparad2_speedup_r()
945 {
946 	if (m_maincpu->pc()==0x401620a) m_maincpu->spin_until_interrupt();
947 	return m_main_ram[0x000984/4];
948 }
949 
ryouran_speedup_r()950 uint32_t skns_state::ryouran_speedup_r()
951 {
952 	if (m_maincpu->pc()==0x40182ce) m_maincpu->spin_until_interrupt();
953 	return m_main_ram[0x000a14/4];
954 }
955 
galpans2_speedup_r()956 uint32_t skns_state::galpans2_speedup_r()
957 {
958 	if (m_maincpu->pc()==0x4049ae2) m_maincpu->spin_until_interrupt();
959 	return m_main_ram[0x0fb6bc/4];
960 }
961 
panicstr_speedup_r()962 uint32_t skns_state::panicstr_speedup_r()
963 {
964 	if (m_maincpu->pc()==0x404e68a) m_maincpu->spin_until_interrupt();
965 	return m_main_ram[0x0f19e4/4];
966 }
967 
sengekis_speedup_r()968 uint32_t skns_state::sengekis_speedup_r()// 60006ee  600308e
969 {
970 	if (m_maincpu->pc()==0x60006ec) m_maincpu->spin_until_interrupt();
971 	return m_main_ram[0xb74bc/4];
972 }
973 
sengekij_speedup_r()974 uint32_t skns_state::sengekij_speedup_r()// 60006ee  600308e
975 {
976 	if (m_maincpu->pc()==0x60006ec) m_maincpu->spin_until_interrupt();
977 	return m_main_ram[0xb7380/4];
978 }
979 
init_drc()980 void skns_state::init_drc()
981 {
982 	// init DRC to fastest options
983 	m_maincpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
984 	m_maincpu->sh2drc_add_fastram(0x02000000, 0x02003fff, 0, &m_spriteram[0]);
985 	m_maincpu->sh2drc_add_fastram(0x02100000, 0x0210003f, 0, &m_spc_regs[0]);
986 	m_maincpu->sh2drc_add_fastram(0x02600000, 0x02607fff, 0, &m_v3slc_ram[0]);
987 }
988 
set_drc_pcflush(uint32_t addr)989 void skns_state::set_drc_pcflush(uint32_t addr)
990 {
991 	m_maincpu->sh2drc_add_pcflush(addr);
992 }
993 
init_galpani4()994 void skns_state::init_galpani4()   { m_spritegen->skns_sprite_kludge(-5,-1); init_drc();  }
init_galpanis()995 void skns_state::init_galpanis()   { m_spritegen->skns_sprite_kludge(-5,-1); init_drc();  }
init_cyvern()996 void skns_state::init_cyvern()     { m_spritegen->skns_sprite_kludge(+0,+2); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x604d3c8, 0x604d3cb, read32smo_delegate(*this, FUNC(skns_state::cyvern_speedup_r)) );  set_drc_pcflush(0x402ebd2);  }
init_galpans2()997 void skns_state::init_galpans2()   { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60fb6bc, 0x60fb6bf, read32smo_delegate(*this, FUNC(skns_state::galpans2_speedup_r)) ); set_drc_pcflush(0x4049ae2); }
init_gutsn()998 void skns_state::init_gutsn()      { m_spritegen->skns_sprite_kludge(+0,+0); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x600c780, 0x600c783, read32smo_delegate(*this, FUNC(skns_state::gutsn_speedup_r)) ); set_drc_pcflush(0x402206e); }
init_panicstr()999 void skns_state::init_panicstr()   { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60f19e4, 0x60f19e7, read32smo_delegate(*this, FUNC(skns_state::panicstr_speedup_r)) ); set_drc_pcflush(0x404e68a);  }
init_senknow()1000 void skns_state::init_senknow()    { m_spritegen->skns_sprite_kludge(+1,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60000dc, 0x60000df, read32smo_delegate(*this, FUNC(skns_state::senknow_speedup_r)) ); set_drc_pcflush(0x4017dce);  }
init_puzzloope()1001 void skns_state::init_puzzloope()  { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6081d38, 0x6081d3b, read32smo_delegate(*this, FUNC(skns_state::puzzloope_speedup_r)) ); set_drc_pcflush(0x401da14); }
init_puzzloopj()1002 void skns_state::init_puzzloopj()  { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6086714, 0x6086717, read32smo_delegate(*this, FUNC(skns_state::puzzloopj_speedup_r)) ); set_drc_pcflush(0x401dca0); }
init_puzzloopa()1003 void skns_state::init_puzzloopa()  { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085bcc, 0x6085bcf, read32smo_delegate(*this, FUNC(skns_state::puzzloopa_speedup_r)) ); set_drc_pcflush(0x401d9d4); }
init_puzzloopu()1004 void skns_state::init_puzzloopu()  { m_spritegen->skns_sprite_kludge(-9,-1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6085cec, 0x6085cef, read32smo_delegate(*this, FUNC(skns_state::puzzloopu_speedup_r)) ); set_drc_pcflush(0x401dab0); }
init_jjparads()1005 void skns_state::init_jjparads()   { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000994, 0x6000997, read32smo_delegate(*this, FUNC(skns_state::jjparads_speedup_r)) ); set_drc_pcflush(0x4015e84); }
init_jjparad2()1006 void skns_state::init_jjparad2()   { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000984, 0x6000987, read32smo_delegate(*this, FUNC(skns_state::jjparad2_speedup_r)) ); set_drc_pcflush(0x401620a); }
init_ryouran()1007 void skns_state::init_ryouran()    { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000a14, 0x6000a17, read32smo_delegate(*this, FUNC(skns_state::ryouran_speedup_r)) );  set_drc_pcflush(0x40182ce); }
init_teljan()1008 void skns_state::init_teljan()     { m_spritegen->skns_sprite_kludge(+5,+1); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x6002fb4, 0x6002fb7, read32smo_delegate(*this, FUNC(skns_state::teljan_speedup_r)) ); set_drc_pcflush(0x401ba32); }
init_sengekis()1009 void skns_state::init_sengekis()   { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b74bc, 0x60b74bf, read32smo_delegate(*this, FUNC(skns_state::sengekis_speedup_r)) ); set_drc_pcflush(0x60006ec); }
init_sengekij()1010 void skns_state::init_sengekij()   { m_spritegen->skns_sprite_kludge(-192,-272); init_drc();m_maincpu->space(AS_PROGRAM).install_read_handler(0x60b7380, 0x60b7383, read32smo_delegate(*this, FUNC(skns_state::sengekij_speedup_r)) ); set_drc_pcflush(0x60006ec); }
init_sarukani()1011 void skns_state::init_sarukani()   { m_spritegen->skns_sprite_kludge(-1,-1); init_drc(); set_drc_pcflush(0x4013b42); } // Speedup is in io_w()
init_galpans3()1012 void skns_state::init_galpans3()   { m_spritegen->skns_sprite_kludge(-1,-1); init_drc();  }
1013 
1014 
1015 
1016 /***** ROM LOADING *****/
1017 
1018 // maybe we should treat each motherboard region as a separate parent / root?
1019 
1020 #define ROM_LOAD_BIOS(bios,name,offset,length,hash) \
1021 		ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios))
1022 
1023  /* NOTE: The Euro BIOS ROM has been found labeled SKNSE1 and SKNSE2 but the data is the same */
1024 #define SKNS_BIOS \
1025 	ROM_REGION( 0x0100000, "maincpu", 0 ) \
1026 	ROM_SYSTEM_BIOS( 0, "japan", "Japan" ) \
1027 	ROM_LOAD_BIOS( 0, "sknsj1.u10", 0x000000, 0x080000, CRC(7e2b836c) SHA1(92c5a7a2472496028bff0e5980d41dd294f42144) )  \
1028 	ROM_SYSTEM_BIOS( 1, "europe", "Europe" ) \
1029 	ROM_LOAD_BIOS( 1, "sknse2.u10", 0x000000, 0x080000, CRC(e2b9d7d1) SHA1(b530a3bb9dedc8cfafcba9f1f10277590be04a15) )  \
1030 	ROM_SYSTEM_BIOS( 2, "asia", "Asia" ) \
1031 	ROM_LOAD_BIOS( 2, "sknsa1.u10", 0x000000, 0x080000, CRC(745e5212) SHA1(caba649ab2d83b2d7e007eecee0fc582c019df38) )  \
1032 	ROM_SYSTEM_BIOS( 3, "usa", "USA" ) \
1033 	ROM_LOAD_BIOS( 3, "sknsu1.u10", 0x000000, 0x080000, CRC(384d21ec) SHA1(a27e8a18099d9cea64fa32db28d01101c2a78815) )  \
1034 	ROM_SYSTEM_BIOS( 4, "korea", "Korea" ) \
1035 	ROM_LOAD_BIOS( 4, "sknsk1.u10", 0x000000, 0x080000, CRC(ff1c9f79) SHA1(a51e598d43e76d37da69b1f094c111273bdfc94a) )  \
1036 	ROM_SYSTEM_BIOS( 5, "japanmod", "Japan (No Region Lock)" ) /* hack */ \
1037 	ROM_LOAD_BIOS( 5, "supernova_modbios-japan.u10", 0x000000, 0x080000, CRC(b8d3190c) SHA1(62c9a4a075fd944e89fe95c6b46046101eb6de1c) ) \
1038 	ROM_SYSTEM_BIOS( 6, "koreamod", "Korea (No Region Lock)" ) /* hack */ \
1039 	ROM_LOAD_BIOS( 6, "supernova-modbios-korea.u10", 0x000000, 0x080000, CRC(1d90517c) SHA1(463962ffe19880135f0d95a7beda79e27448e872) )
1040 
1041 
1042 
1043 #define SKNS_JAPAN \
1044 	SKNS_BIOS \
1045 	ROM_DEFAULT_BIOS( "japan" )
1046 
1047 #define SKNS_EUROPE \
1048 	SKNS_BIOS \
1049 	ROM_DEFAULT_BIOS( "europe" )
1050 
1051 #define SKNS_ASIA \
1052 	SKNS_BIOS \
1053 	ROM_DEFAULT_BIOS( "asia" )
1054 
1055 #define SKNS_USA \
1056 	SKNS_BIOS \
1057 	ROM_DEFAULT_BIOS( "usa" )
1058 
1059 #define SKNS_KOREA \
1060 	SKNS_BIOS \
1061 	ROM_DEFAULT_BIOS( "korea" )
1062 
1063 
1064 ROM_START( skns )
1065 	SKNS_BIOS
1066 
1067 	ROM_REGION32_BE( 0x200000, "user1", ROMREGION_ERASE00 ) /* SH-2 Code mapped at 0x04000000 */
1068 
1069 	ROM_REGION( 0x800000, "spritegen", ROMREGION_ERASE00 ) /* Sprites */
1070 
1071 	ROM_REGION( 0x800000, "gfx2", ROMREGION_ERASE00 ) /* Tiles Plane A */
1072 
1073 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1074 
1075 	ROM_REGION( 0x400000, "ymz", ROMREGION_ERASE00 ) /* Samples */
1076 ROM_END
1077 
1078 
1079 ROM_START( cyvern )
1080 	SKNS_USA
1081 
1082 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1083 	ROM_LOAD16_BYTE( "cv-usa.u10", 0x000000, 0x100000, CRC(1023ddca) SHA1(7967e3e876cdb797bdaa2eb5136a33cd43941501) )
1084 	ROM_LOAD16_BYTE( "cv-usa.u8",  0x000001, 0x100000, CRC(f696f6be) SHA1(d9e66173ca12693255d2bb0982da2fb96bfd155d) )
1085 
1086 	ROM_REGION( 0x800000, "spritegen", 0 ) /* Sprites */
1087 	ROM_LOAD( "cv100-00.u24", 0x000000, 0x400000, CRC(cd4ae88a) SHA1(925f4ae01a6ad3633be2a61be69e163f05401cf6) )
1088 	ROM_LOAD( "cv101-00.u20", 0x400000, 0x400000, CRC(a6cb3f0b) SHA1(8d83f44a096ca0a70962ca4c602c4331874c8560) )
1089 
1090 	ROM_REGION( 0x800000, "gfx2", 0 ) /* Tiles Plane A */
1091 	ROM_LOAD( "cv200-00.u16", 0x000000, 0x400000, CRC(ddc8c67e) SHA1(9b99e87e69e88011e6d693d19ac5e115b4fa50b0) )
1092 	ROM_LOAD( "cv201-00.u13", 0x400000, 0x400000, CRC(65863321) SHA1(b8b75f50406068ffc3fca3887d2f0a653ca491c9) )
1093 
1094 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1095 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1096 	/* 0x040000 - 0x3fffff empty? */
1097 	ROM_LOAD( "cv210-00.u18", 0x400000, 0x400000, CRC(7486bf3a) SHA1(3b4285ca570e9c5ad396c615bfc054372d1b0162) )
1098 
1099 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1100 	ROM_LOAD( "cv300-00.u4", 0x000000, 0x400000, CRC(fbeda465) SHA1(4d5066a22f4589b6b7f85b3e77c348d900ac4bdd) )
1101 ROM_END
1102 
1103 ROM_START( cyvernj )
1104 	SKNS_JAPAN
1105 
1106 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1107 	ROM_LOAD16_BYTE( "cvj-even.u10", 0x000000, 0x100000, CRC(802fadb4) SHA1(cbfac3a87a4863466117c61f2ecaf63d506352f6) )
1108 	ROM_LOAD16_BYTE( "cvj-odd.u8",   0x000001, 0x100000, CRC(f8a0fbdd) SHA1(5cc8c12c13b5eb3456083e70100450ba041de76e) )
1109 
1110 	ROM_REGION( 0x800000, "spritegen", 0 ) /* Sprites */
1111 	ROM_LOAD( "cv100-00.u24", 0x000000, 0x400000, CRC(cd4ae88a) SHA1(925f4ae01a6ad3633be2a61be69e163f05401cf6) )
1112 	ROM_LOAD( "cv101-00.u20", 0x400000, 0x400000, CRC(a6cb3f0b) SHA1(8d83f44a096ca0a70962ca4c602c4331874c8560) )
1113 
1114 	ROM_REGION( 0x800000, "gfx2", 0 ) /* Tiles Plane A */
1115 	ROM_LOAD( "cv200-00.u16", 0x000000, 0x400000, CRC(ddc8c67e) SHA1(9b99e87e69e88011e6d693d19ac5e115b4fa50b0) )
1116 	ROM_LOAD( "cv201-00.u13", 0x400000, 0x400000, CRC(65863321) SHA1(b8b75f50406068ffc3fca3887d2f0a653ca491c9) )
1117 
1118 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1119 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1120 	/* 0x040000 - 0x3fffff empty? */
1121 	ROM_LOAD( "cv210-00.u18", 0x400000, 0x400000, CRC(7486bf3a) SHA1(3b4285ca570e9c5ad396c615bfc054372d1b0162) )
1122 
1123 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1124 	ROM_LOAD( "cv300-00.u4", 0x000000, 0x400000, CRC(fbeda465) SHA1(4d5066a22f4589b6b7f85b3e77c348d900ac4bdd) )
1125 ROM_END
1126 
1127 ROM_START( galpani4 ) // only main CPU and plds dumps were provided
1128 	SKNS_EUROPE
1129 
1130 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1131 	ROM_LOAD16_BYTE( "gp4-000-e0.u10", 0x000000, 0x080000, CRC(7464cc28) SHA1(4ea6185b62d3e25efdaafb91397b51bc8f12fdee) ) // Hitachi HN27C4001G-10
1132 	ROM_LOAD16_BYTE( "gp4-001-e0.u8",  0x000001, 0x080000, CRC(8d162069) SHA1(1bd0181a9c9f37c8e8c9d6f75f045d76dffcd903) ) // Hitachi HN27C4001G-10
1133 
1134 	ROM_REGION( 0x400000, "spritegen", 0 )
1135 	ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1136 	ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1137 
1138 	ROM_REGION( 0x400000, "gfx2", 0 )
1139 	ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1140 	ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1141 
1142 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1143 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1144 	/* 0x040000 - 0x3fffff empty? */
1145 
1146 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1147 	ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) ) /* Doesn't seem to use these samples at all */
1148 	ROM_LOAD( "gp4-301-00.u7", 0x200000, 0x200000, NO_DUMP ) /* Different then GP4-301-01 - Changed some samples when compared to U4 ROM */
1149 
1150 	ROM_REGION( 0x400, "plds", 0 )
1151 	ROM_LOAD( "skns-r09.u9",  0x000, 0x117, CRC(b02058d9) SHA1(77d07e0f329fb1969aa4543cd124e36ad34b07ba) ) // Atmel ATF16V8B
1152 	ROM_LOAD( "skns-r11.u11", 0x200, 0x117, CRC(a9f05af4) SHA1(018684c1f9f7c2e1c86f0cb2db2ec7fb02e35cd8) ) // Atmel ATF16V8B
1153 ROM_END
1154 
1155 ROM_START( galpani4j )
1156 	SKNS_JAPAN
1157 
1158 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1159 	ROM_LOAD16_BYTE( "gp4j1.u10", 0x000000, 0x080000, CRC(919a3893) SHA1(83b89a9e628a1f46f8a56ea512fc8ad641d5e239) )
1160 	ROM_LOAD16_BYTE( "gp4j1.u8",  0x000001, 0x080000, CRC(94cb1fb7) SHA1(ac90103dd43cdce6a287ffc13631c1de477a9a71) )
1161 
1162 	ROM_REGION( 0x400000, "spritegen", 0 )
1163 	ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1164 	ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1165 
1166 	ROM_REGION( 0x400000, "gfx2", 0 )
1167 	ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1168 	ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1169 
1170 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1171 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1172 	/* 0x040000 - 0x3fffff empty? */
1173 
1174 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1175 	ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) )
1176 ROM_END
1177 
1178 ROM_START( galpani4k ) /* ROM-BOARD NEP-16 part number GP04K00372 with extra sound sample ROM at U7 */
1179 	SKNS_KOREA
1180 
1181 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1182 	ROM_LOAD16_BYTE( "gp4k1.u10", 0x000000, 0x080000, CRC(cbd5c3a0) SHA1(17fc0d6f6050ffd31707cee3fcc263cd5b9d0c4f) )
1183 	ROM_LOAD16_BYTE( "gp4k1.u8",  0x000001, 0x080000, CRC(7a95bfe2) SHA1(82e24fd4674ec25bc6608ced0921e8573fcff2c2) )
1184 
1185 	ROM_REGION( 0x400000, "spritegen", 0 )
1186 	ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1187 	ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1188 
1189 	ROM_REGION( 0x400000, "gfx2", 0 )
1190 	ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1191 	ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1192 
1193 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1194 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1195 	/* 0x040000 - 0x3fffff empty? */
1196 
1197 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1198 	ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) ) /* Doesn't seem to use these samples at all */
1199 	ROM_LOAD( "gp4-301-01.u7", 0x200000, 0x200000, CRC(886ef77f) SHA1(047d5fecf2034339c69b2cb605b623a814a18f0d) ) /* Changed some samples when compared to U4 ROM  */
1200 ROM_END
1201 
1202 ROM_START( galpanidx )
1203 	SKNS_ASIA
1204 
1205 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1206 	ROM_LOAD16_BYTE( "gpdx.u10", 0x000000, 0x100000, CRC(8eca883d) SHA1(f5a102ac21aeebc44afcd0ef7f655de21d4442b2) )
1207 	ROM_LOAD16_BYTE( "gpdx.u8",  0x000001, 0x100000, CRC(b0088d8f) SHA1(2363620265d3fc53bae1c5889ea761444f80735a) )
1208 
1209 	ROM_REGION( 0x400000, "spritegen", 0 )
1210 	ROM_LOAD( "gp4-100-00.u24", 0x000000, 0x200000, CRC(1df61f01) SHA1(a9e95bbb3013e8f2fd01243b1b392ff07b4f7d02) )
1211 	ROM_LOAD( "gp4-101-00.u20", 0x200000, 0x100000, CRC(8e2c9349) SHA1(a58fa9bcc9684ed4558e3395d592b64a1978a902) )
1212 
1213 	ROM_REGION( 0x400000, "gfx2", 0 )
1214 	ROM_LOAD( "gp4-200-00.u16", 0x000000, 0x200000, CRC(f0781376) SHA1(aeab9553a9af922524e528eb2d019cf36b6e2094) )
1215 	ROM_LOAD( "gp4-201-00.u18", 0x200000, 0x200000, CRC(10c4b183) SHA1(80e05f3932495ad4fc9bf928fa66e6d2931bbb06) )
1216 
1217 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1218 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1219 	/* 0x040000 - 0x3fffff empty? */
1220 
1221 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1222 	ROM_LOAD( "gp4-300-00.u4", 0x000000, 0x200000, CRC(8374663a) SHA1(095512564f4de25dc3752d9fbd254b9dabd16d1b) ) /* Doesn't seem to use these samples at all */
1223 	ROM_LOAD( "gp4-301-01.u7", 0x200000, 0x200000, CRC(886ef77f) SHA1(047d5fecf2034339c69b2cb605b623a814a18f0d) ) /* Changed some samples when compared to U4 ROM  */
1224 ROM_END
1225 
1226 ROM_START( galpanis )
1227 	SKNS_EUROPE
1228 
1229 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1230 	ROM_LOAD16_BYTE( "gps-000-e1.u10", 0x000000, 0x100000, CRC(b9ea3c44) SHA1(c1913545cd71ee75e60ade744a2a1054f770b981) )
1231 	ROM_LOAD16_BYTE( "gps-001-e1.u8",  0x000001, 0x100000, CRC(ded57bd0) SHA1(4c0122f0521829d4d83b6b1c403f7e6470f14951) )
1232 
1233 	ROM_REGION( 0x1000000, "spritegen", 0 )
1234 	ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1235 	ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1236 	ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1237 
1238 	ROM_REGION( 0x800000, "gfx2", 0 )
1239 	ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1240 	ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1241 
1242 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1243 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1244 	/* 0x040000 - 0x3fffff empty? */
1245 
1246 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1247 	ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1248 ROM_END
1249 
1250 ROM_START( galpanise )
1251 	SKNS_EUROPE
1252 
1253 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1254 	ROM_LOAD16_BYTE( "u10", 0x000000, 0x100000, CRC(e78e1623) SHA1(f68346b65d2613c8515894d9a239fcbb0b5cb52d) ) /* mask ROM with no labels */
1255 	ROM_LOAD16_BYTE( "u8",  0x000001, 0x100000, CRC(098eff7c) SHA1(3cac22cbb11905a46afaa62c0470624b3b554fc0) ) /* mask ROM with no labels */
1256 
1257 	ROM_REGION( 0x1000000, "spritegen", 0 )
1258 	ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1259 	ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1260 	ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1261 
1262 	ROM_REGION( 0x800000, "gfx2", 0 )
1263 	ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1264 	ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1265 
1266 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1267 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1268 	/* 0x040000 - 0x3fffff empty? */
1269 
1270 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1271 	ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1272 ROM_END
1273 
1274 ROM_START( galpanisj )
1275 	SKNS_JAPAN
1276 
1277 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1278 	ROM_LOAD16_BYTE( "gps-000-j1.u10", 0x000000, 0x100000, CRC(c6938c3f) SHA1(05853ee6a44a55702788a75580b04a4be45e9bcb) )
1279 	ROM_LOAD16_BYTE( "gps-001-j1.u8",  0x000001, 0x100000, CRC(e764177a) SHA1(3a1333eb1022ed1a275b9c3d44b5f4ab81618fb6) )
1280 
1281 	ROM_REGION( 0x1000000, "spritegen", 0 )
1282 	ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1283 	ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1284 	ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1285 
1286 	ROM_REGION( 0x800000, "gfx2", 0 )
1287 	ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1288 	ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1289 
1290 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1291 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1292 	/* 0x040000 - 0x3fffff empty? */
1293 
1294 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1295 	ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1296 ROM_END
1297 
1298 ROM_START( galpanisa )
1299 	SKNS_ASIA
1300 
1301 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1302 	ROM_LOAD16_BYTE( "gps-000-a0_9abc.u10", 0x000000, 0x100000, CRC(4e24b799) SHA1(614f4eb6a7b0ab03ea6ada28a670ed0759b3f4f9) ) /* hand written labels with checksum */
1303 	ROM_LOAD16_BYTE( "gps-001-a0_bd64.u8",  0x000001, 0x100000, CRC(aa4db8af) SHA1(10cc15fa065b6a2dcaf8c7d701c5ae7c18e4e863) ) /* hand written labels with checksum */
1304 
1305 	ROM_REGION( 0x1000000, "spritegen", 0 )
1306 	ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1307 	ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1308 	ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1309 
1310 	ROM_REGION( 0x800000, "gfx2", 0 )
1311 	ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1312 	ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1313 
1314 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1315 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1316 	/* 0x040000 - 0x3fffff empty? */
1317 
1318 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1319 	ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1320 ROM_END
1321 
1322 ROM_START( galpanisk )
1323 	SKNS_KOREA
1324 
1325 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1326 	ROM_LOAD16_BYTE( "gps-000-k1.u10", 0x000000, 0x100000, CRC(c9ff3d8a) SHA1(edfec265654aaa8cb307424e5b2899e708392cd0) )
1327 	ROM_LOAD16_BYTE( "gps-001-k1.u8",  0x000001, 0x100000, CRC(354e601d) SHA1(4d176f2337a3b0b63548b2e542f9fa87d0a1ef7b) )
1328 
1329 	ROM_REGION( 0x1000000, "spritegen", 0 )
1330 	ROM_LOAD( "gps-100-00.u24", 0x000000, 0x400000, CRC(a1a7acf2) SHA1(52c86ae907f0c0236808c19f652955b09e90ec5a) )
1331 	ROM_LOAD( "gps-101-00.u20", 0x400000, 0x400000, CRC(49f764b6) SHA1(9f4289858c3dac625ef623cc381a47b45aa5d8e2) )
1332 	ROM_LOAD( "gps-102-00.u17", 0x800000, 0x400000, CRC(51980272) SHA1(6c0706d913b33995579aaf0688c4bf26d6d35a78) )
1333 
1334 	ROM_REGION( 0x800000, "gfx2", 0 )
1335 	ROM_LOAD( "gps-200-00.u16", 0x000000, 0x400000, CRC(c146a09e) SHA1(5af5a7b9d9a55ec7aba3fd85a3a0211b92b1b84f) )
1336 	ROM_LOAD( "gps-201-00.u13", 0x400000, 0x400000, CRC(9dfa2dc6) SHA1(a058c42fd76c23c0e5c8c11f5617fd29e056be7d) )
1337 
1338 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1339 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1340 	/* 0x040000 - 0x3fffff empty? */
1341 
1342 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1343 	ROM_LOAD( "gps-300-00.u4", 0x000000, 0x400000, CRC(9e4da8e3) SHA1(6506d9300a442883357003a05fd2c78d364c35bb) )
1344 ROM_END
1345 
1346 ROM_START( galpans2 ) //only the 2 program ROMs were dumped, but mask ROMs are supposed to match.
1347 	SKNS_EUROPE
1348 
1349 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1350 	ROM_LOAD16_BYTE( "gps2e_u6__ver.3.u6", 0x000000, 0x100000, CRC(72fff5d1) SHA1(57001e04c469281a82a2956c6bc33502d5a3b882) )
1351 	ROM_LOAD16_BYTE( "gps2e_u4__ver.3.u4", 0x000001, 0x100000, CRC(95061601) SHA1(f98f1af9877b097e97acc5a3844ef9c523a92843) )
1352 
1353 	ROM_REGION( 0x1000000, "spritegen", 0 )
1354 	ROM_LOAD( "gs210000.u21", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1355 	ROM_LOAD( "gs210100.u20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1356 	ROM_LOAD( "gs210200.u8",  0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1357 	ROM_LOAD( "gs210300.u32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1358 
1359 	ROM_REGION( 0x800000, "gfx2", 0 )
1360 	ROM_LOAD( "gs220000.u17", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1361 	ROM_LOAD( "gs220100.u9",  0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1362 
1363 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1364 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1365 	/* 0x040000 - 0x3fffff empty? */
1366 	ROM_LOAD( "gs221000.u3",  0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1367 
1368 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1369 	ROM_LOAD( "gs230000.u1",  0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1370 ROM_END
1371 
1372 ROM_START( galpans2j )
1373 	SKNS_JAPAN
1374 
1375 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1376 	ROM_LOAD16_BYTE( "gps2j.u6", 0x000000, 0x100000, CRC(6e74005b) SHA1(a57e8307062e262c2e7a84e2c58f7dfe03fc0f78) )
1377 	ROM_LOAD16_BYTE( "gps2j.u4", 0x000001, 0x100000, CRC(9b4b2304) SHA1(0b481f4d71d92bf23f38ed22979efd4409004857) )
1378 
1379 	ROM_REGION( 0x1000000, "spritegen", 0 )
1380 	ROM_LOAD( "gs210000.u21", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1381 	ROM_LOAD( "gs210100.u20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1382 	ROM_LOAD( "gs210200.u8",  0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1383 	ROM_LOAD( "gs210300.u32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1384 
1385 	ROM_REGION( 0x800000, "gfx2", 0 )
1386 	ROM_LOAD( "gs220000.u17", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1387 	ROM_LOAD( "gs220100.u9",  0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1388 
1389 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1390 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1391 	/* 0x040000 - 0x3fffff empty? */
1392 	ROM_LOAD( "gs221000.u3",  0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1393 
1394 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1395 	ROM_LOAD( "gs230000.u1",  0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1396 ROM_END
1397 
1398 ROM_START( galpans2a )
1399 	SKNS_ASIA
1400 
1401 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1402 	ROM_LOAD16_BYTE( "gps2av11.u6", 0x000000, 0x100000, CRC(61c05d5f) SHA1(e47c7951c1f688edb6c677532f750537a64bb7b3) )
1403 	ROM_LOAD16_BYTE( "gps2av11.u4", 0x000001, 0x100000, CRC(2e8c0ac2) SHA1(d066260d6d3c2924b42394e867523e6112a125c5) )
1404 
1405 	ROM_REGION( 0x1000000, "spritegen", 0 )
1406 	ROM_LOAD( "gs210000.u21", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1407 	ROM_LOAD( "gs210100.u20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1408 	ROM_LOAD( "gs210200.u8",  0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1409 	ROM_LOAD( "gs210300.u32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1410 
1411 	ROM_REGION( 0x800000, "gfx2", 0 )
1412 	ROM_LOAD( "gs220000.u17", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1413 	ROM_LOAD( "gs220100.u9",  0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1414 
1415 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1416 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1417 	/* 0x040000 - 0x3fffff empty? */
1418 	ROM_LOAD( "gs221000.u3",  0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1419 
1420 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1421 	ROM_LOAD( "gs230000.u1",  0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1422 ROM_END
1423 
1424 /*
1425 
1426 Gals Panic SU (Kaneko 1999)
1427 Korean hacked version. Runs on Super Kaneko Nova System mainboard
1428 and original Super Kaneko Nova System ROM board labelled "ROM-BOARD"
1429 EPROMs at U8, U10 and mainboard U10 are new to this version.
1430 The ROM board is wired to accept 16MBit SOP44 maskROMs.
1431 The actual ROMs used are 32M. There are some wire mods to enable the
1432 higher capacity ROMs, basically wiring pin 44 of the SOP44's to
1433 some logic to enable it.
1434 All of the SOP44 ROMs are from Gals Panic 2, but because Gals Panic 2
1435 uses a different ROM board the Gals Panic SU ROMs are at different
1436 locations.
1437 For Gals Panic SU, the 32M ROMs can be taken from the existing
1438 Gals Panic 2 set.
1439 
1440 */
1441 
1442 ROM_START( galpansu )
1443 	SKNS_KOREA
1444 
1445 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1446 	ROM_LOAD16_BYTE( "su.u10", 0x000000, 0x100000, CRC(5ae66218) SHA1(c3f32603e1da945efb984ff99e1a30202e535773) )
1447 	ROM_LOAD16_BYTE( "su.u8",  0x000001, 0x100000, CRC(10977a03) SHA1(2ab95398d6b88d8819f368ee6104d7f8b485778d) )
1448 
1449 	/* the rest of the ROMs match Gals Panic S2, but are in different locations */
1450 	ROM_REGION( 0x1000000, "spritegen", 0 )
1451 	ROM_LOAD( "24", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1452 	ROM_LOAD( "20", 0x400000, 0x400000, CRC(f75c5a9a) SHA1(3919643cee6c88185a1aa3c58c5bc80599bf734e) )
1453 	ROM_LOAD( "17", 0x800000, 0x400000, CRC(25b4f56b) SHA1(f9a33d5ed54a04ecece3035e75508d191bbe74b1) )
1454 	ROM_LOAD( "32", 0xc00000, 0x400000, CRC(db6d4424) SHA1(0a88dafd0ee2490ff2ef39ce8eb1931c41bdda42) )
1455 
1456 	ROM_REGION( 0x800000, "gfx2", 0 )
1457 	ROM_LOAD( "16", 0x000000, 0x400000, CRC(5caae1c0) SHA1(8f77e4cf018d7290b2d804cbff9fccf0bf4d2404) )
1458 	ROM_LOAD( "13",  0x400000, 0x400000, CRC(8d51f197) SHA1(19d2afab823ea179918e7bcbf4df2283e77570f0) )
1459 
1460 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1461 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1462 	/* 0x040000 - 0x3fffff empty? */
1463 	ROM_LOAD( "7",  0x400000, 0x400000, CRC(58800a18) SHA1(5e6d55ecd12275662d6f59559e137b759f23fff6) )
1464 
1465 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1466 	ROM_LOAD( "4",  0x000000, 0x400000, CRC(0348e8e1) SHA1(8a21c7e5cea0bc08a2595213d689c58c0251fdb5) )
1467 ROM_END
1468 
1469 ROM_START( galpans3 )
1470 	SKNS_JAPAN
1471 
1472 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1473 	ROM_LOAD16_BYTE( "gpss3.u10", 0x000000, 0x100000, CRC(c1449a72) SHA1(02db81a0ea349742d6ddf71d59fcfce45f0c5212) )
1474 	ROM_LOAD16_BYTE( "gpss3.u8",  0x000001, 0x100000, CRC(11eb44cf) SHA1(482ef27fa86d6777def46918eac8be019896c0b0) )
1475 
1476 	ROM_REGION( 0x1000000, "spritegen", 0 )
1477 	ROM_LOAD( "u24.bin", 0x000000, 0x800000, CRC(70613168) SHA1(637c50e733dbc0226b1e0acc8000faa7e8977cb6) )
1478 
1479 	ROM_REGION( 0x800000, "gfx2", 0 )
1480 	ROM_LOAD( "u16.bin", 0x000000, 0x800000, CRC(a96daf2a) SHA1(40f4c32158d320146aeeac34c15ca6816a6876bc) )
1481 
1482 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1483 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1484 	/* 0x040000 - 0x3fffff empty? */
1485 
1486 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1487 	ROM_LOAD( "u4.bin", 0x000000, 0x400000, CRC(bf5736c6) SHA1(781292d87e9da1d21c1ac540baefff5e2f84a3f5) )
1488 ROM_END
1489 
1490 ROM_START( gutsn )
1491 	SKNS_JAPAN
1492 
1493 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1494 	ROM_LOAD16_BYTE( "gts000j0.u6", 0x000000, 0x080000, CRC(8ee91310) SHA1(8dd918189fe445d79c7f028168862b852f70a6f2) )
1495 	ROM_LOAD16_BYTE( "gts001j0.u4", 0x000001, 0x080000, CRC(80b8ee66) SHA1(4faf5f358ceee866f09bd81e63ba3ebd21bde835) )
1496 
1497 	ROM_REGION( 0x400000, "spritegen", 0 )
1498 	ROM_LOAD( "gts10000.u24", 0x000000, 0x400000, CRC(1959979e) SHA1(92a68784664dd833ca6fcca1b15cd46b9365d081) )
1499 
1500 	ROM_REGION( 0x400000, "gfx2", 0 )
1501 	ROM_LOAD( "gts20000.u16", 0x000000, 0x400000, CRC(c443aac3) SHA1(b0416a09ead26077e9276bae98d94eeb1cf86877) )
1502 
1503 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1504 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1505 	/* 0x040000 - 0x3fffff empty? */
1506 
1507 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1508 	ROM_LOAD( "gts30000.u4", 0x000000, 0x400000, CRC(8c169141) SHA1(41caea6fa644515f7417c84bdac599b13ad07e8c) )
1509 ROM_END
1510 
1511 ROM_START( panicstr )
1512 	SKNS_JAPAN
1513 
1514 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1515 	ROM_LOAD16_BYTE( "ps1000j0.u10", 0x000000, 0x100000, CRC(59645f89) SHA1(8da205c6e38899d6c637941700dd7eea56011c10) )
1516 	ROM_LOAD16_BYTE( "ps1001j0.u8",  0x000001, 0x100000, CRC(c4722be9) SHA1(7009d320a80cfa7d80efc5fc915081914bc3c827) )
1517 
1518 	ROM_REGION( 0x800000, "spritegen", 0 )
1519 	ROM_LOAD( "ps-10000.u24", 0x000000, 0x400000, CRC(294b2f14) SHA1(90cbd0acdaa2d89d208c28aae33ab57c03624089) )
1520 	ROM_LOAD( "ps110100.u20", 0x400000, 0x400000, CRC(e292f393) SHA1(b0914f7f0abf9f821f2592c289ea4e3b3e7f819a) )
1521 
1522 	ROM_REGION( 0x400000, "gfx2", 0 )
1523 	ROM_LOAD( "ps120000.u16", 0x000000, 0x400000, CRC(d772ac15) SHA1(6bf7b9bfccdcb7481b21fa2ab9b683d79033a192) )
1524 
1525 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1526 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1527 	/* 0x040000 - 0x3fffff empty? */
1528 
1529 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1530 	ROM_LOAD( "ps-30000.u4",  0x000000, 0x400000, CRC(2262e263) SHA1(73443e5f40f5c5c9bd41c6207fa6376072f0f65e) )
1531 ROM_END
1532 
1533 ROM_START( puzzloop )
1534 	SKNS_EUROPE
1535 
1536 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1537 	ROM_LOAD16_BYTE( "pl00e4.u6", 0x000000, 0x080000, CRC(7d3131a5) SHA1(f9302aa27addb8a730102b1869a34063d8b44e62) ) /* V0.94 */
1538 	ROM_LOAD16_BYTE( "pl00e4.u4", 0x000001, 0x080000, CRC(40dc3291) SHA1(d955752a2c884e6dd951f9a87f9d249bb1ab9116) ) /* V0.94 */
1539 
1540 	ROM_REGION( 0x800000, "spritegen", 0 )
1541 	ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1542 
1543 	ROM_REGION( 0x400000, "gfx2", 0 )
1544 	ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1545 
1546 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1547 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1548 	/* 0x040000 - 0x3fffff empty? */
1549 	ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1550 
1551 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1552 	ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1553 ROM_END
1554 
1555 ROM_START( puzzloope )
1556 	SKNS_EUROPE
1557 
1558 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1559 	ROM_LOAD16_BYTE( "pl00e1.u6", 0x000000, 0x080000, CRC(273adc38) SHA1(37ca873342ba9fb9951114048a9cd255f73fe19c) ) /* V0.93 */
1560 	ROM_LOAD16_BYTE( "pl00e1.u4", 0x000001, 0x080000, CRC(14ac2870) SHA1(d1abcfd64d7c0ead67e879c40e1010453fd4da13) ) /* V0.93 */
1561 
1562 	ROM_REGION( 0x800000, "spritegen", 0 )
1563 	ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1564 
1565 	ROM_REGION( 0x400000, "gfx2", 0 )
1566 	ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1567 
1568 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1569 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1570 	/* 0x040000 - 0x3fffff empty? */
1571 	ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1572 
1573 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1574 	ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1575 ROM_END
1576 
1577 ROM_START( puzzloopj )
1578 	SKNS_JAPAN
1579 
1580 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1581 	ROM_LOAD16_BYTE( "pl0j2.u6", 0x000000, 0x080000, CRC(23c3bf97) SHA1(77ea1f32bed5709a6ad5b250370f08cfe8036867) ) /* V0.94 */
1582 	ROM_LOAD16_BYTE( "pl0j2.u4", 0x000001, 0x080000, CRC(55b2a3cb) SHA1(d4cbe143fe2ad622af808cbd9eedffeff3b77e0d) ) /* V0.94 */
1583 
1584 	ROM_REGION( 0x800000, "spritegen", 0 )
1585 	ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1586 
1587 	ROM_REGION( 0x400000, "gfx2", 0 )
1588 	ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1589 
1590 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1591 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1592 	/* 0x040000 - 0x3fffff empty? */
1593 	ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1594 
1595 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1596 	ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1597 ROM_END
1598 
1599 ROM_START( puzzloopa )
1600 	SKNS_ASIA
1601 
1602 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1603 	ROM_LOAD16_BYTE( "pl0a3.u6", 0x000000, 0x080000, CRC(4e8673b8) SHA1(17acfb0550912e6f2519df2bc24fbf629a1f6147) ) /* V0.94 */
1604 	ROM_LOAD16_BYTE( "pl0a3.u4", 0x000001, 0x080000, CRC(e08a1a07) SHA1(aba58a81ae46c7b4e235a3213984026d170fa189) ) /* V0.94 */
1605 
1606 	ROM_REGION( 0x800000, "spritegen", 0 )
1607 	ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1608 
1609 	ROM_REGION( 0x400000, "gfx2", 0 )
1610 	ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1611 
1612 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1613 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1614 	/* 0x040000 - 0x3fffff empty? */
1615 	ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1616 
1617 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1618 	ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1619 ROM_END
1620 
1621 ROM_START( puzzloopk )
1622 	SKNS_KOREA
1623 
1624 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1625 	ROM_LOAD16_BYTE( "pl0k4.u6", 0x000000, 0x080000, CRC(8d81f20c) SHA1(c32a525e8f92a625e3fecb7c43dd04b13e0a75e4) ) /* V0.94 */
1626 	ROM_LOAD16_BYTE( "pl0k4.u4", 0x000001, 0x080000, CRC(17c78e41) SHA1(4a4b612ae00d521d2947ab32554ebb615be72471) ) /* V0.94 */
1627 
1628 	ROM_REGION( 0x800000, "spritegen", 0 )
1629 	ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1630 
1631 	ROM_REGION( 0x400000, "gfx2", 0 )
1632 	ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1633 
1634 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1635 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1636 	/* 0x040000 - 0x3fffff empty? */
1637 	ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1638 
1639 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1640 	ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1641 ROM_END
1642 
1643 ROM_START( puzzloopu )
1644 	SKNS_USA
1645 
1646 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1647 	ROM_LOAD16_BYTE( "plue5.u6", 0x000000, 0x080000, CRC(e6f3f82f) SHA1(ac61dc22fa3c1b1c2f3a41d3a8fb43938b77ca68) ) /* V0.94 */
1648 	ROM_LOAD16_BYTE( "plue5.u4", 0x000001, 0x080000, CRC(0d081d30) SHA1(ec0cdf120126104b9bb706f68c9ba9c3777dd69c) ) /* V0.94 */
1649 
1650 	ROM_REGION( 0x800000, "spritegen", 0 )
1651 	ROM_LOAD( "pzl10000.u24", 0x000000, 0x400000, CRC(35bf6897) SHA1(8a1f1f5234a61971a62401633de1dec1920fc4da) )
1652 
1653 	ROM_REGION( 0x400000, "gfx2", 0 )
1654 	ROM_LOAD( "pzl20000.u16", 0x000000, 0x400000, CRC(ff558e68) SHA1(69a50c8100edbf2d5d92ce14b3f079f76c544bdd) )
1655 
1656 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1657 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1658 	/* 0x040000 - 0x3fffff empty? */
1659 	ROM_LOAD( "pzl21000.u18", 0x400000, 0x400000, CRC(c8b3be64) SHA1(6da9ca8b963ebf10df6bc02bd1bdc66392e2fa60) )
1660 
1661 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1662 	ROM_LOAD( "pzl30000.u4", 0x000000, 0x400000, CRC(38604b8d) SHA1(1191cf48a6a7baa58e51509442b40ea67f5252d2) )
1663 ROM_END
1664 
1665 ROM_START( jjparads )
1666 	SKNS_JAPAN
1667 
1668 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1669 	ROM_LOAD16_BYTE( "jp1j1.u10", 0x000000, 0x080000, CRC(de2fb669) SHA1(229ff1ae0ec5bc77fc17642964e0bb0146594e86) )
1670 	ROM_LOAD16_BYTE( "jp1j1.u8",  0x000001, 0x080000, CRC(7276efb1) SHA1(3edc265b5c02da7d21a2494a6dc2878fbad93f87) )
1671 
1672 	ROM_REGION( 0x1000000, "spritegen", 0 )
1673 	ROM_LOAD( "jp100-00.u24", 0x000000, 0x400000, CRC(f31b2e95) SHA1(7e5bb518d4f6423785d3f9f2752a624a66b42469) )
1674 	ROM_LOAD( "jp101-00.u20", 0x400000, 0x400000, CRC(70cc8c24) SHA1(a4805ce19f512b047829548b635e68690d714175) )
1675 	ROM_LOAD( "jp102-00.u17", 0x800000, 0x400000, CRC(35401c1e) SHA1(38fe86a08555bb823b8d64ac043330aaaa6b8892) )
1676 
1677 	ROM_REGION( 0x200000, "gfx2", 0 )
1678 	ROM_LOAD( "jp200-00.u16", 0x000000, 0x200000, CRC(493d63db) SHA1(4b8fe7ff1ae14a914a675ce4072a4d9e5cfc08b0) )
1679 
1680 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1681 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1682 	/* 0x040000 - 0x3fffff empty? */
1683 
1684 	ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1685 	ROM_LOAD( "jp300-00.u4", 0x000000, 0x200000, CRC(7023fe46) SHA1(24a92133bc664d63b3be67c2ef11cd7b605ee7e8) )
1686 ROM_END
1687 
1688 ROM_START( jjparad2 )
1689 	SKNS_JAPAN
1690 
1691 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1692 	ROM_LOAD16_BYTE( "jp2000j1.u6", 0x000000, 0x080000, CRC(5d75e765) SHA1(33bcd8f929f6025b00df2ea783b13a391a28a5c3) )
1693 	ROM_LOAD16_BYTE( "jp2001j1.u4", 0x000001, 0x080000, CRC(1771910a) SHA1(7ca9584d379d7b41f303a3ba861f943c570ad97c) )
1694 
1695 	ROM_REGION( 0x1000000, "spritegen", 0 )
1696 	ROM_LOAD( "jp210000.u21", 0x000000, 0x400000, CRC(79a7e3d7) SHA1(bd0f8d01971e5895395f97f2520bcd03ab19d229) )
1697 	ROM_LOAD( "jp210100.u20", 0x400000, 0x400000, CRC(42415e0c) SHA1(f7bff86d55fa9002fbd14e4c62f9d3df8faaf7d0) )
1698 	ROM_LOAD( "jp210200.u8",  0x800000, 0x400000, CRC(26731745) SHA1(8939d36b82b10b1010e4b924e6b9fdd4742efe48) )
1699 
1700 	ROM_REGION( 0x800000, "gfx2", 0 )
1701 	ROM_LOAD( "jp220000.u17", 0x000000, 0x400000, CRC(d0e71873) SHA1(c6ffba3624e6d4c2d4e12ef7d88a02cbc3867b18) )
1702 	ROM_LOAD( "jp220100.u9",  0x400000, 0x400000, CRC(4c7d964d) SHA1(3352cd866a64466f4f5a990c2c5e3e28e7028a99) )
1703 
1704 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1705 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1706 	/* 0x040000 - 0x3fffff empty? */
1707 
1708 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1709 	ROM_LOAD( "jp230000.u1", 0x000000, 0x400000, CRC(73e30d7f) SHA1(af5b16cec722dbbf0e03d73edfa133dbf10ac4f3) )
1710 ROM_END
1711 
1712 ROM_START( sengekis )
1713 	SKNS_ASIA
1714 
1715 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1716 	ROM_LOAD16_BYTE( "ss01a.u6", 0x000000, 0x080000, CRC(962fe857) SHA1(3df74c5efff11333dea9316a063129dcec0d7bdd) )
1717 	ROM_LOAD16_BYTE( "ss01a.u4", 0x000001, 0x080000, CRC(ee853c23) SHA1(ddbf7f7cf509788ee3daf7b4d8ae1482e6e31a03) )
1718 
1719 	ROM_REGION( 0x1000000, "spritegen", 0 )
1720 	ROM_LOAD( "ss100-00.u21", 0x000000, 0x400000, CRC(bc7b3dfa) SHA1(dff10a7aef548abda48470293382057a2ca9557e) )
1721 	ROM_LOAD( "ss101-00.u20", 0x400000, 0x400000, CRC(ab2df280) SHA1(e456c578a36f585b24379d74def1bcab276c2b1b) )
1722 	ROM_LOAD( "ss102-00.u8",  0x800000, 0x400000, CRC(0845eafe) SHA1(663b163bf4e87c7df0030e791f95b1a5827de315) )
1723 	ROM_LOAD( "ss103-00.u32", 0xc00000, 0x400000, CRC(ee451ac9) SHA1(01cc6b6f371c0090a6a7f4c33d05f4b9a6c59fee) )
1724 
1725 	ROM_REGION( 0x800000, "gfx2", 0 )
1726 	ROM_LOAD( "ss200-00.u17", 0x000000, 0x400000, CRC(cd773976) SHA1(38b8df5e685be65c3fde09f9e585591f678632d4) )
1727 	ROM_LOAD( "ss201-00.u9",  0x400000, 0x400000, CRC(301fad4c) SHA1(15faf37eeec5cc46afcb4bd236345b5c3dd647ac) )
1728 
1729 	ROM_REGION( 0x600000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1730 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1731 	/* 0x040000 - 0x3fffff empty? */
1732 	ROM_LOAD( "ss210-00.u3",  0x400000, 0x200000, CRC(c3697805) SHA1(bd41064e3527cdc4b9a4ab9c423c916309b3f057) )
1733 
1734 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1735 	ROM_LOAD( "ss300-00.u1", 0x000000, 0x400000, CRC(35b04b18) SHA1(b69f33fc6a50ec20382329317d20b3c1e7f01b87) )
1736 ROM_END
1737 
1738 ROM_START( sengekisj )
1739 	SKNS_JAPAN
1740 
1741 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1742 	ROM_LOAD16_BYTE( "ss01j.u6", 0x000000, 0x080000, CRC(9efdcd5a) SHA1(66cca04d07999dc8ca0bcf19db925996b34d0390) )
1743 	ROM_LOAD16_BYTE( "ss01j.u4", 0x000001, 0x080000, CRC(92c3f45e) SHA1(60c647e66b0126fb7749874be39938972481b957) )
1744 
1745 	ROM_REGION( 0x1000000, "spritegen", 0 )
1746 	ROM_LOAD( "ss100-00.u21", 0x000000, 0x400000, CRC(bc7b3dfa) SHA1(dff10a7aef548abda48470293382057a2ca9557e) )
1747 	ROM_LOAD( "ss101-00.u20", 0x400000, 0x400000, CRC(ab2df280) SHA1(e456c578a36f585b24379d74def1bcab276c2b1b) )
1748 	ROM_LOAD( "ss102-00.u8",  0x800000, 0x400000, CRC(0845eafe) SHA1(663b163bf4e87c7df0030e791f95b1a5827de315) )
1749 	ROM_LOAD( "ss103-00.u32", 0xc00000, 0x400000, CRC(ee451ac9) SHA1(01cc6b6f371c0090a6a7f4c33d05f4b9a6c59fee) )
1750 
1751 	ROM_REGION( 0x800000, "gfx2", 0 )
1752 	ROM_LOAD( "ss200-00.u17", 0x000000, 0x400000, CRC(cd773976) SHA1(38b8df5e685be65c3fde09f9e585591f678632d4) )
1753 	ROM_LOAD( "ss201-00.u9",  0x400000, 0x400000, CRC(301fad4c) SHA1(15faf37eeec5cc46afcb4bd236345b5c3dd647ac) )
1754 
1755 	ROM_REGION( 0x600000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1756 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1757 	/* 0x040000 - 0x3fffff empty? */
1758 	ROM_LOAD( "ss210-00.u3",  0x400000, 0x200000, CRC(c3697805) SHA1(bd41064e3527cdc4b9a4ab9c423c916309b3f057) )
1759 
1760 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1761 	ROM_LOAD( "ss300-00.u1", 0x000000, 0x400000, CRC(35b04b18) SHA1(b69f33fc6a50ec20382329317d20b3c1e7f01b87) )
1762 ROM_END
1763 
1764 ROM_START( senknow )
1765 	SKNS_JAPAN
1766 
1767 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1768 	ROM_LOAD16_BYTE( "snw000j1.u6", 0x000000, 0x080000, CRC(0d6136f6) SHA1(eedd011cfe03577bfaf386723502d03f6e5dbd8c) )
1769 	ROM_LOAD16_BYTE( "snw001j1.u4", 0x000001, 0x080000, CRC(4a10ec3d) SHA1(bbec4fc53bd61d06ffe5a53debada5785b124fdd) )
1770 
1771 	ROM_REGION( 0x0800000, "spritegen", 0 )
1772 	ROM_LOAD( "snw10000.u21", 0x000000, 0x400000, CRC(5133c69c) SHA1(d279df3ffd005dbf0930a8e40eaf2467f8653284) )
1773 	ROM_LOAD( "snw10100.u20", 0x400000, 0x400000, CRC(9dafe03f) SHA1(978b4597ff2a54ac5049fd64798e8173b29dd363) )
1774 
1775 	ROM_REGION( 0x800000, "gfx2", 0 )
1776 	ROM_LOAD( "snw20000.u17", 0x000000, 0x400000, CRC(d5fe5f8c) SHA1(817d8d0a5fbc0c50dc3c592f938150f82df97cec) )
1777 	ROM_LOAD( "snw20100.u9",  0x400000, 0x400000, CRC(c0037846) SHA1(3267b142ebce47e1717250239d98fdb4af7964f8) )
1778 
1779 	ROM_REGION( 0x800000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1780 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1781 	/* 0x040000 - 0x3fffff empty? */
1782 	ROM_LOAD( "snw21000.u3",  0x400000, 0x400000, CRC(f5c23e79) SHA1(b509680001c3205b289f43d4f44aaaa7f896419b) )
1783 
1784 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1785 	ROM_LOAD( "snw30000.u1",  0x000000, 0x400000, CRC(ec9eef40) SHA1(8f74ec9cb6054a77227c0505094f0ef8bc371429) )
1786 ROM_END
1787 
1788 ROM_START( teljan )
1789 	SKNS_JAPAN
1790 
1791 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1792 	ROM_LOAD16_BYTE( "tel1j.u10", 0x000000, 0x080000, CRC(09b552fe) SHA1(2f315fd09eb22fa8c81faa1e926038f20daa845f) )
1793 	ROM_LOAD16_BYTE( "tel1j.u8",  0x000001, 0x080000, CRC(070b4345) SHA1(5743f12a351b89593c6adfaeb8a5a2ab7bc8b424) )
1794 
1795 	ROM_REGION( 0x1000000, "spritegen", 0 )
1796 	ROM_LOAD( "tj100-00.u24", 0x000000, 0x400000, CRC(810144f1) SHA1(1c90e71e5f34ee05771ab4a673329f78f17791df) )
1797 	ROM_LOAD( "tj101-00.u20", 0x400000, 0x400000, CRC(82f570e1) SHA1(3ba9d1775f897052aca5cff2edbf575399101c5c) )
1798 	ROM_LOAD( "tj102-00.u17", 0x800000, 0x400000, CRC(ace875dc) SHA1(be97c895beeac979c5704986e818d4f3cfa00e49) )
1799 
1800 	ROM_REGION( 0x400000, "gfx2", 0 )
1801 	ROM_LOAD( "tj200-00.u16", 0x000000, 0x400000, CRC(be0f90b2) SHA1(1848a65f244e1e8a3ff7ab38e76f86cabca8b47e) )
1802 
1803 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1804 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1805 	/* 0x040000 - 0x3fffff empty? */
1806 
1807 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1808 	ROM_LOAD( "tj300-00.u4", 0x000000, 0x400000, CRC(685495c4) SHA1(3853c0583b84ed3163370ae48e4b3912cbeb986e) )
1809 ROM_END
1810 
1811 
1812 ROM_START( ryouran )
1813 	SKNS_JAPAN
1814 
1815 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1816 	ROM_LOAD16_BYTE( "or-000-j2.u10",  0x000000, 0x080000, CRC(cba8ca4e) SHA1(7389502622a04101ca34f7b390ca0da820f62590) )
1817 	ROM_LOAD16_BYTE( "or-001-j2.u8",   0x000001, 0x080000, CRC(8e79c6b7) SHA1(0441d279cdc998e96abd6f607eceb4f866f58337) )
1818 
1819 	ROM_REGION( 0x1000000, "spritegen", 0 )
1820 	ROM_LOAD( "or100-00.u24", 0x000000, 0x400000, CRC(e9c7695b) SHA1(0a104d4e4e0c933d2eaaf410a8c243db6673786a) )
1821 	ROM_LOAD( "or101-00.u20", 0x400000, 0x400000, CRC(fe06bf12) SHA1(f3a2f88aed65bcc1c16f37fd4c0011e3538128f7) )
1822 	ROM_LOAD( "or102-00.u17", 0x800000, 0x400000, CRC(f2a5237b) SHA1(b8871f9c0f3864c334ec9a8146cf7dd1961ecb94) )
1823 
1824 	ROM_REGION( 0x800000, "gfx2", 0 )
1825 	ROM_LOAD( "or200-00.u16", 0x000000, 0x400000, CRC(4c4701a8) SHA1(7b397b553ba86bba2ee82228cabdf2179e878d69) )
1826 	ROM_LOAD( "or201-00.u13", 0x400000, 0x400000, CRC(a94064aa) SHA1(5d736f810ffdbb6ada5c5efcb5fb29eedafc3e2f) )
1827 
1828 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1829 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1830 	/* 0x040000 - 0x3fffff empty? */
1831 
1832 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1833 	ROM_LOAD( "or300-00.u4", 0x000000, 0x400000, CRC(a3f64b79) SHA1(6ecb2b4c0d213fe5384b19d6bfdb86871f21fd9f) )
1834 ROM_END
1835 
1836 ROM_START( ryourano )
1837 	SKNS_JAPAN
1838 
1839 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1840 	ROM_LOAD16_BYTE( "or000j1.u10",  0x000000, 0x080000, CRC(d93aa491) SHA1(dc01707f1e80d81f28d6b685d08fc6c0d2bf7330) )
1841 	ROM_LOAD16_BYTE( "or001j1.u8",   0x000001, 0x080000, CRC(f466e5e9) SHA1(65d699f6f9e299333e51a6a52cb13a0f1a902fe1) )
1842 
1843 	ROM_REGION( 0x1000000, "spritegen", 0 )
1844 	ROM_LOAD( "or100-00.u24", 0x000000, 0x400000, CRC(e9c7695b) SHA1(0a104d4e4e0c933d2eaaf410a8c243db6673786a) )
1845 	ROM_LOAD( "or101-00.u20", 0x400000, 0x400000, CRC(fe06bf12) SHA1(f3a2f88aed65bcc1c16f37fd4c0011e3538128f7) )
1846 	ROM_LOAD( "or102-00.u17", 0x800000, 0x400000, CRC(f2a5237b) SHA1(b8871f9c0f3864c334ec9a8146cf7dd1961ecb94) )
1847 
1848 	ROM_REGION( 0x800000, "gfx2", 0 )
1849 	ROM_LOAD( "or200-00.u16", 0x000000, 0x400000, CRC(4c4701a8) SHA1(7b397b553ba86bba2ee82228cabdf2179e878d69) )
1850 	ROM_LOAD( "or201-00.u13", 0x400000, 0x400000, CRC(a94064aa) SHA1(5d736f810ffdbb6ada5c5efcb5fb29eedafc3e2f) )
1851 
1852 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1853 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1854 	/* 0x040000 - 0x3fffff empty? */
1855 
1856 	ROM_REGION( 0x400000, "ymz", 0 ) /* Samples */
1857 	ROM_LOAD( "or300-00.u4", 0x000000, 0x400000, CRC(a3f64b79) SHA1(6ecb2b4c0d213fe5384b19d6bfdb86871f21fd9f) )
1858 ROM_END
1859 
1860 ROM_START( vblokbrk )
1861 	SKNS_EUROPE
1862 
1863 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1864 	ROM_LOAD16_BYTE( "sk000e2-e.u10", 0x000000, 0x080000, CRC(5a278f10) SHA1(6f1be0657da76144b0feeed672d92a85091289b6) ) /* labeled  SK000e2/E */
1865 	ROM_LOAD16_BYTE( "sk000e-o.u8",   0x000001, 0x080000, CRC(aecf0647) SHA1(4752e5012bae8e7af3972b455b4346499ec2b49c) ) /* labeled  SK000e/O */
1866 
1867 	ROM_REGION( 0x0400000, "spritegen", 0 )
1868 	ROM_LOAD( "sk-100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) )
1869 	ROM_LOAD( "sk-101.u20",    0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) )
1870 
1871 	ROM_REGION( 0x200000, "gfx2", 0 )
1872 	ROM_LOAD( "sk-200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) )
1873 
1874 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1875 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1876 	/* 0x040000 - 0x3fffff empty? */
1877 
1878 	ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1879 	ROM_LOAD( "sk-300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) )
1880 ROM_END
1881 
1882 ROM_START( vblokbrka )
1883 	SKNS_ASIA
1884 
1885 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1886 	ROM_LOAD16_BYTE( "sk01a.u10", 0x000000, 0x080000, CRC(4d1be53e) SHA1(3d28b73a67530147962b8df6244af8bea2ab080f) )
1887 	ROM_LOAD16_BYTE( "sk01a.u8",  0x000001, 0x080000, CRC(461e0197) SHA1(003573a4abdbecc6dd234a13c61ef07a25d980e2) )
1888 
1889 	ROM_REGION( 0x0400000, "spritegen", 0 )
1890 	ROM_LOAD( "sk-100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) )
1891 	ROM_LOAD( "sk-101.u20",    0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) )
1892 
1893 	ROM_REGION( 0x200000, "gfx2", 0 )
1894 	ROM_LOAD( "sk-200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) )
1895 
1896 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1897 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1898 	/* 0x040000 - 0x3fffff empty? */
1899 
1900 	ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1901 	ROM_LOAD( "sk-300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) )
1902 ROM_END
1903 
1904 ROM_START( sarukani )
1905 	SKNS_JAPAN
1906 
1907 	ROM_REGION32_BE( 0x200000, "user1", 0 ) /* SH-2 Code mapped at 0x04000000 */
1908 	ROM_LOAD16_BYTE( "sk1j1.u10", 0x000000, 0x080000, CRC(fcc131b6) SHA1(5e3e71ee1f736b6098e671e6f57b1fb313c81adb) )
1909 	ROM_LOAD16_BYTE( "sk1j1.u8",  0x000001, 0x080000, CRC(3b6aa343) SHA1(a969b20b1170d82351024cab9e37f2fbfd01ddeb) )
1910 
1911 	ROM_REGION( 0x0400000, "spritegen", 0 )
1912 	ROM_LOAD( "sk-100-00.u24", 0x000000, 0x200000, CRC(151dd88a) SHA1(87bb1039a9883f721a315760eb2c4abe4a94046f) )
1913 	ROM_LOAD( "sk-101.u20",    0x200000, 0x100000, CRC(779cce23) SHA1(70147b36d982524ba9921823e481ce8fbb5daa26) )
1914 
1915 	ROM_REGION( 0x200000, "gfx2", 0 )
1916 	ROM_LOAD( "sk-200-00.u16", 0x000000, 0x200000, CRC(2e297c61) SHA1(4071b945a1294fbc3d18fab1f144bf09af4349e8) )
1917 
1918 	ROM_REGION( 0x400000, "gfx3", ROMREGION_ERASE00 ) /* Tiles Plane B */
1919 	/* First 0x040000 bytes (0x03ff Tiles) are RAM Based Tiles */
1920 	/* 0x040000 - 0x3fffff empty? */
1921 
1922 	ROM_REGION( 0x200000, "ymz", 0 ) /* Samples */
1923 	ROM_LOAD( "sk-300-00.u4", 0x000000, 0x200000, CRC(e6535c05) SHA1(8895b7c326e0261691cb184887ac1ca637302460) )
1924 ROM_END
1925 
1926 
1927 /***** GAME DRIVERS *****/
1928 
1929 GAME( 1996, skns,      0,        skns,  skns,     skns_state, empty_init,     ROT0,  "Kaneko", "Super Kaneko Nova System BIOS", MACHINE_IS_BIOS_ROOT )
1930 
1931 GAME( 1996, galpani4,  skns,     sknse, cyvern,   skns_state, init_galpani4,  ROT0,  "Kaneko", "Gals Panic 4 (Europe)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND ) // 2nd sound ROM wasn't dumped, it's different than GP4-301-01
1932 GAME( 1996, galpani4j, galpani4, sknsj, cyvern,   skns_state, init_galpani4,  ROT0,  "Kaneko", "Gals Panic 4 (Japan)",  MACHINE_IMPERFECT_GRAPHICS )
1933 GAME( 1996, galpani4k, galpani4, sknsk, cyvern,   skns_state, init_galpani4,  ROT0,  "Kaneko", "Gals Panic 4 (Korea)",  MACHINE_IMPERFECT_GRAPHICS )
1934 GAME( 2001, galpanidx, galpani4, sknsa, cyvern,   skns_state, init_galpani4,  ROT0,  "Kaneko", "Gals Panic DX (Asia)",  MACHINE_IMPERFECT_GRAPHICS ) // copyright 2001, re-release for the Asian market?
1935 // there is a Gals Panic 4 version with 'Gals Panic SU' title as well, seen for sale in Korea (different to the Gals Panic SU clone of galpans2)
1936 
1937 GAME( 1996, jjparads,  skns,     sknsj, skns_1p,  skns_state, init_jjparads,  ROT0,  "Electro Design", "Jan Jan Paradise", MACHINE_IMPERFECT_GRAPHICS )
1938 
1939 GAME( 1997, galpanis,  skns,     sknse, galpanis, skns_state, init_galpanis,  ROT0,  "Kaneko", "Gals Panic S - Extra Edition (Europe, set 1)", MACHINE_IMPERFECT_GRAPHICS )
1940 GAME( 1997, galpanise, galpanis, sknse, galpanis, skns_state, init_galpanis,  ROT0,  "Kaneko", "Gals Panic S - Extra Edition (Europe, set 2)", MACHINE_IMPERFECT_GRAPHICS )
1941 GAME( 1997, galpanisj, galpanis, sknsj, galpanis, skns_state, init_galpanis,  ROT0,  "Kaneko", "Gals Panic S - Extra Edition (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1942 GAME( 1997, galpanisa, galpanis, sknsa, galpanis, skns_state, init_galpanis,  ROT0,  "Kaneko", "Gals Panic S - Extra Edition (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1943 GAME( 1997, galpanisk, galpanis, sknsk, galpanis, skns_state, init_galpanis,  ROT0,  "Kaneko", "Gals Panic S - Extra Edition (Korea)", MACHINE_IMPERFECT_GRAPHICS )
1944 
1945 GAME( 1997, jjparad2,  skns,     sknsj, skns_1p,  skns_state, init_jjparad2,  ROT0,  "Electro Design", "Jan Jan Paradise 2", MACHINE_IMPERFECT_GRAPHICS )
1946 
1947 GAME( 1997, sengekis,  skns,     sknsa, skns,     skns_state, init_sengekis,  ROT90, "Kaneko / Warashi", "Sengeki Striker (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1948 GAME( 1997, sengekisj, sengekis, sknsj, skns,     skns_state, init_sengekij,  ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1949 
1950 GAME( 1997, vblokbrk,  skns,     sknse, vblokbrk, skns_state, init_sarukani,  ROT0,  "Kaneko / Mediaworks", "VS Block Breaker (Europe)", MACHINE_IMPERFECT_GRAPHICS )
1951 GAME( 1997, vblokbrka, vblokbrk, sknsa, vblokbrk, skns_state, init_sarukani,  ROT0,  "Kaneko / Mediaworks", "VS Block Breaker (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1952 GAME( 1997, sarukani,  vblokbrk, sknsj, vblokbrk, skns_state, init_sarukani,  ROT0,  "Kaneko / Mediaworks", "Saru-Kani-Hamu-Zou (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1953 
1954 GAME( 1998, cyvern,    skns,     sknsu, cyvern,   skns_state, init_cyvern,    ROT90, "Kaneko", "Cyvern - The Dragon Weapons (US)", MACHINE_IMPERFECT_GRAPHICS )
1955 GAME( 1998, cyvernj,   cyvern,   sknsj, cyvern,   skns_state, init_cyvern,    ROT90, "Kaneko", "Cyvern - The Dragon Weapons (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1956 
1957 GAME( 1998, puzzloop,  skns,     sknse, puzzloop, skns_state, init_puzzloopu, ROT0,  "Mitchell", "Puzz Loop (Europe, v0.94)", MACHINE_IMPERFECT_GRAPHICS ) // Same speed up as US version
1958 GAME( 1998, puzzloope, puzzloop, sknse, puzzloop, skns_state, init_puzzloope, ROT0,  "Mitchell", "Puzz Loop (Europe, v0.93)", MACHINE_IMPERFECT_GRAPHICS )
1959 GAME( 1998, puzzloopj, puzzloop, sknsj, puzzloop, skns_state, init_puzzloopj, ROT0,  "Mitchell", "Puzz Loop (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1960 GAME( 1998, puzzloopa, puzzloop, sknsa, puzzloop, skns_state, init_puzzloopa, ROT0,  "Mitchell", "Puzz Loop (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1961 GAME( 1998, puzzloopk, puzzloop, sknsk, puzzloop, skns_state, init_puzzloopu, ROT0,  "Mitchell", "Puzz Loop (Korea)", MACHINE_IMPERFECT_GRAPHICS ) // Same speed up as US version
1962 GAME( 1998, puzzloopu, puzzloop, sknsu, puzzloop, skns_state, init_puzzloopu, ROT0,  "Mitchell", "Puzz Loop (USA)", MACHINE_IMPERFECT_GRAPHICS )
1963 
1964 GAME( 1998, ryouran ,  skns,     sknsj, skns_1p,  skns_state, init_ryouran,   ROT0,  "Electro Design", "VS Mahjong Otome Ryouran (set 1)", MACHINE_IMPERFECT_GRAPHICS )
1965 GAME( 1998, ryourano,  ryouran,  sknsj, skns_1p,  skns_state, init_ryouran,   ROT0,  "Electro Design", "VS Mahjong Otome Ryouran (set 2)", MACHINE_IMPERFECT_GRAPHICS )
1966 
1967 GAME( 1999, galpans2,  skns,     sknse, galpanis, skns_state, init_galpans2,  ROT0,  "Kaneko", "Gals Panic S2 (Europe)", MACHINE_IMPERFECT_GRAPHICS )
1968 GAME( 1999, galpans2j, galpans2, sknsj, galpanis, skns_state, init_galpans2,  ROT0,  "Kaneko", "Gals Panic S2 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1969 GAME( 1999, galpans2a, galpans2, sknsa, galpanis, skns_state, init_galpans2,  ROT0,  "Kaneko", "Gals Panic S2 (Asia)", MACHINE_IMPERFECT_GRAPHICS )
1970 GAME( 1999, galpansu,  galpans2, sknsk, galpanis, skns_state, init_galpans2,  ROT0,  "Kaneko", "Gals Panic SU (Korea)", MACHINE_IMPERFECT_GRAPHICS ) // official or hack?
1971 
1972 GAME( 1999, panicstr,  skns,     sknsj, galpanis, skns_state, init_panicstr,  ROT0,  "Kaneko", "Panic Street (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1973 
1974 GAME( 1999, senknow ,  skns,     sknsj, skns,     skns_state, init_senknow,   ROT0,  "Kaneko / Kouyousha", "Sen-Know (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1975 
1976 GAME( 1999, teljan  ,  skns,     sknsj, skns_1p,  skns_state, init_teljan,    ROT0,  "Electro Design", "Tel Jan", MACHINE_IMPERFECT_GRAPHICS )
1977 
1978 GAME( 2000, gutsn,     skns,     sknsj, skns,     skns_state, init_gutsn,     ROT0,  "Kaneko / Kouyousha", "Guts'n (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1979 
1980 GAME( 2002, galpans3,  skns,     sknsj, galpanis, skns_state, init_galpans3,  ROT0,  "Kaneko", "Gals Panic S3 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
1981